Teknik
Kimse promptunu yeniden yazmazken nasıl yazarsın
Promptunu ne bir süzgeç eliyor ne de bir katman yeniden yazıyor; gönderdiğin metin, çizilen metin. O yüzden elindeki tek değişken de, ayıklayabileceğin tek şey de senin cümlen. Bu da prompt yazmayı bir numara torbası değil bir disiplin yapıyor: sıfat yığmak yerine kareyi ve ışığı anlat, farkı bir şeye bağlayabilmek için tek seferde tek şey oynat, negatif promptu da bir alışkanlık değil model başına ilan edilen bir alan gibi ele al.
İstek gerçekte ne taşıyor
Bir üretim isteği şunları taşıyor: model kimliği, prompt ve o modelin kabul ettiği seçenekler — görselde boyut; videoda çözünürlük, süre ve kimi modelde en-boy oranı; bir de varsa referans görsellerin adresleri. Yüzeyin tamamı bu, uç uç API referansında yazılı. Metninle çizim arasında hiçbir şey durmuyor: yeniden yazma aşaması yok, guidance düğmesi yok, adım sayısı yok. Seed ile negatif prompt kimi modelde açık, çoğunda değil; hangi modelin neyi kabul ettiğini katalog ucu ve model sayfası söylüyor. Bir model kendi ayarı olarak prompt genişletici sunuyorsa o kapalı gönderiliyor.
O eksik ara katman, prompt numaralarının neden başka yerlerde var olduğunu açıklıyor. OpenAI'ın görsel üretim dokümanı kendi modeli için şunu yazıyor: "will automatically revise your prompt for improved performance". Aynı doküman yeniden yazılmış metni revised_prompt alanında geri veriyor ve kapatmanın bir yolunu belgelemiyor. Prompt hacklemek, bir yeniden yazıcıyla pazarlık etmenin görüntüsü; burada pazarlık edilecek kimse yok. Filtresiz üretim o katmanı söküyor.
Ucun tanımlamadığı anahtarlar okunmuyor bile. JSON'a bir cfg değeri ya da adım sayısı ekle: ne bir şey olur ne de hata döner. seed ile negative_prompt bunun dışında: onları ilan eden modelde okunuyorlar, ilan etmeyen bir modele gönderildiğinde istek 400 ile geri dönüyor. Hiç teslim edilmemiş bir alanı ayarlamaya bir öğleden sonra harcamadan önce bilmeye değer.
Tek şey oynat, gürültü tabanını öğren
Bir karşılaştırma ancak tek şey oynadığında okunabilir. Aynı üretimde hem cümleyi hem boyutu değiştirdiysen farkın iki açıklaması var ve ikisini ayıramazsın; o üretim sana bir şeylerin olduğundan başka bir şey öğretmedi.
İkinci bir değişkenlik kaynağı daha var ve o senin değil. Seed göndermediğinde adaptör her istekte yeni bir değer üretiyor, seed açmayan modellerde ise çekilişi sabitleyecek bir alan hiç yok; yani aynı prompt iki kez gönderildiğinde tek bir görsel olarak dönmüyor; çözünürlük ve süre seçimi mekanizmayı ve büyük üretimin neden bir büyütme değil taze bir çekiliş olduğunu taşıyor. Bir düzenlemeden anlam çıkarmadan önce bunu ölç. Referansını iki kez çalıştır, ikisinin ne kadar açıldığına bak ve o mesafeyi, bir cümle değişikliğinin aşması gereken en küçük fark say. Bunu modelin sunduğu en ucuz seçenekte yap; her deneme kredi harcıyor ve fiyat sayfası hangisinin ne aldığını listeliyor.
Bunun için deftere ihtiyacın yok. Prompt üretimin yanında olduğu gibi saklanıyor ve generations ucundan dönen her kayıtta geri geliyor, yani geçmişin zaten deney kaydın. İşe yarayan cümleyi yeniden yazmak yerine oradan kopyala: yeniden yazmak, yapmayı istemediğin bir düzenlemedir.
Havayı değil kareyi anlat
Sıfat yığını kompozisyonu modele geri veriyor. Karanlık, ruhani, hiperdetaylı — hiçbiri özne, yerleşim ya da ışık yönü adlandırmıyor; bunlar bir görselin tarifi değil, sonuç hakkında bir dilek. Hugging Face Diffusers prompt rehberi kuralı doğrudan söylüyor: özneyi, üslubu ve bağlamı sayıyor, sonra da "use these elements as a structured narrative, not a keyword list" diyor, çünkü bugünün modelleri anahtar kelime eşlemiyor, dil okuyor.
Uzun listeler ayrıca belgelenmiş bir biçimde çöküyor. Attend-and-Excite'ta (Chefer ve ark., SIGGRAPH 2023) yazarlar "catastrophic neglect, where the model fails to generate one or more of the subjects from the input prompt" durumunu değerlendiriyor ve modelin ayrıca "fails to correctly bind attributes (e.g., colors) to their corresponding subjects" olduğunu bildiriyor. Bu, on öznede değil iki öznede ve iki renkte başlıyor.
O yüzden karar yaz. Karede ne var ve nerede duruyor, ışık nereden geliyor ve ne kadar sert, lens arka plana ne yapıyor. Her biri çizime karşı denetlenebilir: ışığın soldan gelip gelmediğini görebilirsin. Ruhani olup olmadığını göremezsin, yani o kelime düzenlemenin işe yaradığını sana asla söyleyemez.
Negatif prompt her modelde yok
Negatif prompta uzanmak yerel hatlardan kalma kas hafızası ve zaten hiçbir zaman bir yazma biçimi değildi. O, örnekleme döngüsüne verilen ayrı bir argüman. Diffusers referansı negative_prompt'u "the prompt or prompts not to guide the image generation" diye tanımlıyor ve "ignored when not using guidance" olduğunu belirtiyor; yani alan var, çünkü uzaklaşılacak koşulsuz bir dalı olan bir guidance adımı var.
Bu API'de negatif prompt yalnız onu ilan eden modellerde var; geri kalanında yazdığın her şey tarif. "Filigran yok, yazı yok" cümlesi bir filigran ve bir yazı adlandırıyor. Bunun yerine olumlusunu söyle: şapka yok yerine kafada ne olduğunu, bulanık değil yerine neyin keskin olduğunu ve arka planın ne kadar hızlı düştüğünü yaz.
İstenmeyen bir öğe birkaç denemeden sonra hâlâ duruyorsa zar atmayı bırak. Elindeki kareyi referans olarak bir düzenleme modeline ver ve değişikliği onun üzerinden anlat; bu daha kısa bir argüman ve başka türden bir istek. Katalog hangi modellerin referans okuduğunu işaretliyor, karakteri tutarlı tutmak da bir ekin cümlenin taşıyamadığı neyi taşıdığını anlatıyor.
Cümlenin satın alamayacağı şey
Video aynı alandan daha fazlasını istiyor. Klip tek çekimde çiziliyor, yani cümlen kareyi olduğu kadar hareketi ve kamerayı da taşımak zorunda; insanların atladığı kısım kamera ve yazmamak onu senin yerine seçtiriyor. Görselden videoya o devir, API'yi kendi kodundan çağırmak da aynı döngünün bir script'ten sürülmüş hâli.
Hiçbir cümlenin satın alamayacağı şey, yasak kategorilerin ötesine geçmek. Bir kategoriye takılan istek üretim başlamadan reddediliyor, yani hiçbir şeye mal olmuyor; ama bunlar tonunun bir okuması değil kategori ve yeniden yazmak bir isteği kategorinin dışına taşımıyor. Neye izin var, ne engelli çizgiyi koyuyor.
Sık sorulan sorular
Model görmeden önce promptumu değiştiren bir şey var mı?
Yok. Yeniden yazma aşaması yok; bir model kendi ayarı olarak prompt genişletici sunuyorsa o kapalı gönderiliyor. Üretimin yanında saklanan metin, çizilen metin, yani geçmişinden kopyalanan bir cümle ilk seferki gibi davranıyor.
Negatif promptu nereye yazacağım?
İlan eden modellerde negative_prompt alanına; hangi modelin açtığını model sayfası ve katalog ucu söylüyor. İlan etmeyen bir modele gönderirsen istek 400 dönüyor, sessizce yutulmuyor. Alanı olmayan modellerde olumlu cümleyi yaz ya da görseli bir düzenleme modeline geri gönderip düzeltmeyi onun üzerinden anlat.
Aynı prompt neden iki kez farklı görsel veriyor?
Seed göndermezsen adaptör her istekte yeni bir değer üretiyor; seed açmayan modellerde de çekilişi sabitleyecek bir alan yok. Onunla dövüşmek yerine ölç: referansını iki kez çalıştır ve aradaki farkı, bir cümle değişikliğinin aşması gereken en küçük fark say.
