Stable Diffusion’da seed ne işe yarar?

Yazan: Güncelleme: 3 dk okuma

Seed, her üretimin yola çıktığı rastgele gürültüyü belirleyen bir tam sayıdır. Aynı seed, prompt, model, ayarlar ve yazılımla Stable Diffusion aynı görseli üretir; seed değerini değiştirdiğinizde ise aynı prompt için farklı bir kompozisyon elde edersiniz. Automatic1111’de ve bu sitede değeri -1 yaparsanız seed rastgele seçilir.

Seed neden önemlidir?

Difüzyon gürültüden başlar ve her görsel, bu gürültü ile ayarlarınızın deterministik bir fonksiyonudur. Seed, bu gürültünün reçetesidir. Bu özelliği sayesinde seed, öğrenmenin en yararlı aracıdır: seed değerini sabitleyin, tek bir şeyi değiştirin, karşılaştırın. Sanatçı stilleri karşılaştırmamızın ardındaki yöntem de tam olarak budur: 1.731 sanatçı, dört sabit prompt ve her prompt için tek bir sabit seed; yalnızca sanatçının adı değişir. Böylece gördüğünüz farklar sanatçının etkisinden ibarettir, başka hiçbir şeyden kaynaklanmaz.

Pratikte nasıl kullanılır?

  1. Hoşunuza giden bir kompozisyon çıkana kadar seed değeri -1 iken görsel üretin.
  2. Seed değerini görselin bilgilerinden okuyun (Automatic1111 bunu PNG meta verilerine ve görselin altına yazar) ve seed alanına yapıştırın.
  3. Şimdi promptu ya da negatif promptu kelime kelime iyileştirin: kompozisyon çoğunlukla yerinde kalır, ayrıntılar değişir.
  4. Euler, DDIM ya da DPM++ 2M gibi ancestral olmayan bir örnekleyici (sampler) kullanıyorsanız adım sayısını ya da CFG değerini değiştirdiğinizde aynı seed yine öncekine yakın bir görsel verir; bu da ayarları eşit koşullarda karşılaştırmanızı sağlar. Euler a gibi ancestral örnekleyiciler ise her adımda yeni gürültü eklediğinden görsel öncekinden uzaklaşır.

Bu sitedeki prompt örnekleri, bilinen bir sonuçtan yola çıkabilmeniz için hemen hemen her görselin seed değerini de verir.

Yeniden üretilebilirliği neler bozar?

  • Farklı bir model ya da LoRA: gürültü aynıdır ama gürültüyü gideren ağ aynı değildir; bu yüzden görsel değişir: hafif bir LoRA ile biraz, başka bir modelle tamamen.
  • Farklı bir görsel boyutu: gürültü tensörünün şekli değişir, dolayısıyla seed aynı olsa bile ortaya çıkan görselin öncekiyle hiçbir ilgisi kalmaz.
  • Farklı bir GPU ya da yazılım sürümü: kayan nokta hesaplarındaki çok küçük farklar ayrıntıları değiştirebilir; farklı markaların GPU’ları arasında ise Automatic1111, rastgele sayı kaynağı CPU olarak ayarlanmadıkça gürültünün kendisini bile farklı üretir.
  • Automatic1111’de variation seed, Clip skip ve Eta noise seed delta gibi sonucu değiştiren ek ayarlar da vardır; birebir aynı sonucu almak için bunları da aynı tutun.

Aynı seed’in varyasyonları

Automatic1111’de bir variation seed alanı ve bir variation strength kaydırıcısı bulunur: 0.1 ile 0.3 arasında görselin “kardeşlerini” elde edersiniz; poz ve renk paleti aynı kalır, yalnızca küçük değişiklikler olur. Bu, en iyi elleri ya da en iyi yüzü seçmek için kullanışlıdır. Bir eksenine seed değerlerini, diğerine promptun bir kelimesini koyduğunuz bir X/Y/Z plot ise tek seferde bir karşılaştırma ızgarası üretir.

Sıkça sorulan sorular

Daha büyük bir seed daha mı iyidir?

Hayır. Seed bir kalite ayarı değil, bir gürültü deseninin etiketidir; 7 ile 4.294.967.295 aynı derecede iyidir. Önemli olan tek şey, aynı sonucu tekrar verebilmesidir.

Aynı seed ile başka bir sitede aynı görseli elde edebilir miyim?

Yalnızca o site aynı modeli, boyutu, örnekleyiciyi, adım sayısını, CFG değerini ve yazılımı kullanıyorsa. İki Automatic1111 kurulumu arasında bu genellikle sağlanır; farklı hizmetler arasında ise neredeyse hiçbir zaman sağlanmaz.

Aynı seed bu sitenin araçlarında neden farklı bir görsel veriyor?

Herkese açık araçlar her isteğe kendi negatif promptunu, ayrıntı LoRA’larını, adım sayısını ve örnekleyicisini uygular; inpainting aracı ise görselinizi 1024 piksele sığacak şekilde yeniden boyutlandırır. Bu yüzden sonuç, yerel kurulumunuzda elde ettiğinizden farklı olur. Site içinde ise aynı seed ile yapılan aynı istek yeniden üretilebilir.