Akış
Bir karakteri seri boyunca aynı tutmak
Üretimler arasında kendiliğinden taşınan hiçbir şey yok: her üretim sıfırdan kuruluyor, yani tek bir yazılı tarif her başlata bastığında biraz başka bir yüze düşüyor. Bir karakteri sabit tutmanın yolu onu yeniden tarif etmek değil görsel olarak vermek: özneyi bir kez çiz, işe yarayan kareyi sakla ve o kareyi ardından gelen her çekime geri besle.
Çıpa bir görseldir, bir paragraf değil
Bir kimliği yerinde tutan şey daha iyi bir cümle değil, bir ek. Ye ve ark. IP-Adapter makalesinde sebebi açıkça veriyor: istediğin görseli yalnız metinden almak zor, çünkü "it often involves complex prompt engineering". Belirli bir çene hattının sıfatı yok ve hiçbir sıfat yığını bir taneye toplanmıyor.
Her görsel iyi çıpa olmuyor. Düz, dengeli aydınlatılmış bir portre dramatik bir kareyi genelde yeniyor, çünkü içinde kazara kopyalanacak daha az şey var: sert bir kontur ışığı ya da güçlü bir renk baskısı da kanıt ve modelin yalnız yüzü kastettiğini bilmesinin bir yolu yok. Çıpayı sıkıcı tut, sahnelemeyi prompt yapsın.
Bir görsel kanıt olarak değil kare olarak da gelebilir; bu, başka kurallara tabi başka bir iş. Görselden videoya o ayrımı ve dayattığı kırpmayı anlatıyor.
Yetenek ilan edilir, çıkarsanmaz
Katalogdaki her model ne yaptığını yayınlıyor: metinden görsele, görselden görsele, metinden videoya, görselden videoya. Alan, modelin görsel kabul edip etmediğinden hesaplanmıyor, yazılı duruyor; böylece model sayfası, katalog ucu ve sunucu gövdenin nasıl görünmesi gerektiği konusunda aynı şeyi söylüyor.
Referans okuyan modeller kendi alt ve üst sınırını ilan ediyor ve retler iki yönde de işliyor. Referansın üstüne kurulmuş bir model, referanssız gelen isteği geri çeviriyor. Hiç referans okumayan bir model de eki atıp yine de çizmek yerine referans taşıyan isteği geri çeviriyor. Sana para kazandıran ikinci ret: atılmış bir görsel, elinde onu hiç kullanmamış bir çıktı ve ekranda bunu söyleyen hiçbir şey bırakmıyor.
Geçerli boyutlar da modelin kendisine ait ve adı benzeyen bir akrabadan miras alınmıyor. Ekler ek ücret taşıyabiliyor; hem üretim düğmesi hem çözünürlük ve süre seçimi toplamı senin için çıkarıyor.
Bir kez çiz, kaleni sakla, geri besle
Yalnız tarifle çalışan bir modelde başla; karakter hâlâ pazarlığa açıkken ve kimseyi korumak için değil kim olduğunu bulmak için ödüyorken. Bir kare doğru olana kadar cümleyi yinele; oraya varmak kendi başına bir zanaat ve özgün karakter tasarımı o zanaatın baştan sona hâli.
Sonra onu gerçekten sakla: dosyayı indir. Çıktılar galerinde sınırlı bir süre duruyor ve sonra sunucudan siliniyor, yani aylarca kullanmayı düşündüğün bir çıpa senin denetimindeki bir yerde yaşamalı. Serileri sessizce bitiren adım bu.
Geri vermek bağlantıyı kopyalamakla olmuyor. Biten bir üretim senin kimliğinin arkasından sunuluyor ve çizimi yapan sağlayıcı senin yerine giriş yapamıyor, yani dosya yüklenip dönen adresle eklenmeli; görselden videoya ucu ve retleri taşıyor. Panelde referans kutusu bunu senin için yapıyor.
Sonraki her çekim tek bir istek, yalnız sahne başka: aynı ek, aynı karakter cümlesi, yalnız sahneleme yeniden yazılmış. API referansı gövdeyi, filtresiz prompt yazmak da karenin geri kalanının onunla birlikte oynamasını engelleyen cümle disiplinini taşıyor.
Kimlik nerede kayar, ne değiştirilir
Buradaki tekrarlanabilirlik yazabileceğin bir sayıdan değil ekten geliyor, çünkü seed açan modellerde bile aynı sayı aynı kareyi garanti etmiyor, açmayanlarda ise çekilişi sabitleyecek bir alan hiç yok; çözünürlük ve süre seçimi o mekanizmayı taşıyor. Birebir aynı iki gönderim iki bağımsız çekiliş, yani yalnız tarifle bir arada tutulan bir seri yapısı gereği kayıyor.
En sık sebep, çekimler arasında promptu yeniden yazmak. Yeniden sözcüklenen her tarif, dokunmayı istemediğin her şeyi — yüz dahil — yeniden pazarlığa açıyor. Tek seferde tek yan cümle oynat ki onunla birlikte neyin oynadığını görebilesin.
İkincisi, her yeni çıktıyı çıpaya terfi ettirmek. Bir üretim girdilerini kopyalamıyor, yeniden ifade ediyor; yani çıpanın üstüne kurulmuş çıpanın üstüne kurulmuş bir çıpa başladığı yerden istikrarla uzaklaşıyor. Bir çıpa kümesi tut: ilk kale her istekte kalır, iyi yeni kareler onu emekliye ayırmak yerine kümeye katılır. Bunun zor olması senin kuruntun değil. Avrahami ve ark.'nın "The Chosen One: Consistent Characters in Text-to-Image Diffusion Models" çalışması şu gözlemle açılıyor: "the users that use these models struggle with the generation of consistent characters".
Üçüncü sebep, kayan yeri göstermeyen bir çıpa. Dörtte üç portre yalnız arkadan görünen bir tokayla ilgili hiçbir şey söylemiyor, model de onu her seferinde yeniden uyduruyor. Onu tarif eden bir cümle değil, gösteren bir görünüş ekle.
Ne yapmadığını bilmek işe yarıyor. DreamBooth (Ruiz ve ark., CVPR 2023) "just a few images of a subject" alıp modeli ince ayarlıyor, öyle ki model "learns to bind a unique identifier with that specific subject". Burada eğitim adımı yok, yani kimlik her istekte senin görsellerinden yeniden türetiliyor. Kayabilmesinin sebebi bu; iki çekim arasında hiçbir şeyi yeniden eğitmeden karakter değiştirebilmenin sebebi de.
Karakteri videoya taşımak
Video aynı yerden bölünmüyor. Görsel alan bir video modeli o görselle açılıyor, yani yaptığın kare canlandırılan şey oluyor; bu da kompozisyonu tartışmanın dışına çıkarıyor ve kırpmayı modelin değil senin kararın yapıyor. Video tarafında hiçbir şey senin için bir karakterin etrafına çekim kurmuyor, yani kimin görüneceği iş hâlâ bir görselken çözülmeli.
Sıra bundan çıkıyor: çıpayı bir görsel modelinde kur, istediğin kareyi sabit görsel olarak sahnele, o kareyi videoya ver ve karakter cümlesini birebir aynı tut ki yalnız eylem değişsin. Video genel bakışı yolları, storyboard ve previz de tek bir yapım gibi okunması gereken bir çekim dizisini anlatıyor.
Sık sorulan sorular
Ürettiğim bir görseli adresini yapıştırarak referans verebilir miyim?
Hayır. Biten bir üretim senin kimliğinin arkasından sunuluyor ve referansı çeken sağlayıcı senin yerine giriş yapamıyor. Dosyayı yükle ve dönen adresi ekle; model sayfasındaki referans kutusu bunu senin için yapıyor.
Aynı prompt neden her seferinde başka bir yüz veriyor?
Çünkü çekilişi sabitleyen bir şey göndermiyorsun. Gövde bir model, bir prompt ve o modelin kendi ayarlarını taşıyor; seed açmayan modellerde böyle bir alan yok, açanlarda da aynı sayı aynı kareyi garanti etmiyor — yani birebir aynı iki gönderim iki bağımsız sonuç.
Çıpamı her seferinde en yeni çıktıyla değiştirmeli miyim?
Hayır. Her üretim girdilerini kopyalamıyor yeniden ifade ediyor, yani çıpa üstüne kurulan çıpalar kayıyor. İlk kaleyi her istekte tut ve iyi yeni kareler onu emekliye ayırmak yerine kümeye katılsın.
Daha fazla referans eklemek sonucu iyileştirir mi?
Daha fazla referans bir kalite ayarı değil, daha dar bir soru. Her görsel modelden bir kararı alıyor; bu da yalnız aldığı karar yanlış giden karar olduğunda işe yarıyor.
