Stable Diffusion Genel Kurulum Rehberi

Stable Diffusion Genel Kurulum Rehber(Extensionlar, Controlnet, Lora, Yapay Zeka Eğitimi, Deforum, Animatediff, İnfinitezoom)

1- Giriş (Ön Bilgi)

Genel olarak yapay zekadan bahsetmek istiyorum öncelikle,

Uzun yıllardır yapay zeka bir çok konuda kullanılıyor özellikle openai tarafından gpt çıkarıldıktan sonra daha da yaygınlaştı bu durum. Nvidia’nın yapay zeka destekli dlss sistemi ile çözünürlük upscale ederken araları doldurma daha az grafik birimi harcayarak daha performanslı grafik kartları üretmesiyle de görsel yapay zeka üzerine eğilim arttı. Ve en büyük örneği olan midjourney ile birlikte günlük milyonlarca insan discord üzerinden, yapay zekayı görsel üretmek için kullandı. Midjourney açık betaya geçtikten kullanıcılara hesap başına 25dk yani 1 görsel/dakika olacak şekilde 25 görsel üretme hakkı tanıdı. Midjourney dediğimiz şey günümüzde kullanabileceğimiz tabiriyle aslında bir yapap zeka modeli. Midjourney kategorize edilmiş milyonlarca görsel kullanılarak eğitilmiş bir model. İnsanlar ilgisiyle birlikte tabiki görsel yapay zeka’nın açık kaynaklı verisyonlarının da üretilmesi kaçınılmazdı ve ortaya Stable Diffusion çıktı.

Kısaca stable diffusion’ın geçmişi bu şekilde. Stable diffusion kullanıcılara sunultukdan sonra 1 versiyonu, 1.5 versiyonu, xl 0.9 versiyonu ve son olara sdxl 1 versiyonu çıktı. Ama en popüler olan 1.5 versiyonundan ilerleyeceğiz biz bu dökümanda. Bu versiyon genel olarak 512×512 ve 768×768 görsel üretmek için en ideali ve en kararlı sürümü. SdXL 1024×1024 görseller üretebiliyor ama bizim bu modelleri(model kelimesi aklınızı karıştırmasın yapay zeka modellerden bahsetmiyorum, checkpoint dediğimiz bireylerin ürettiği stable diffusionda kullanılabilecek modellerden bahsediyorum. Yapay zeka modeli ile checkpoint modeller ayrı iki olgu.) eğitebilmemiz için 24 gb vram’li grafik kartlarına sahip olmamız gerekiyor. Herkesin böyle bir imkanı olmadığı için halen en popüler olan ve daha fazla insanın model eğitip sınırsızca limitleri olmadan kullanabileceği sd 1.5 versiyonu üzerinden rehbere devam edeceğiz.

2- Kurulum Öncesi ve Kurulum

İlk olarak benim tavsiyem nvidia ekran kartlı minimum 6gb vram’i olan ekran kartı ve windows işletim sistemi.

Eğer ki yapay zeka checkpoint(modeller) eğitmek istiyorsak en az 12gb vram’li ekran kartı şart. Bunu da en ucuz karşılayabileceğiz ekran kartı 3060 12gb olan model. Bende de bu ekran kartı var. Ama yapay zeka eğitmeyeceğim ben insanların oluşturduğu checkpointleri kullanıp görsel oluşturacağım sadece diyorsanız 6gb bile yeterli. Şimdi sizde 8gb vram’i olan 4070 vardır yapay zeka eğitemezsiniz belki ama 3060’a göre çok daha hızlı görsel üretebilirsiniz. Iteration dediğimiz anlık işlem gücü hız için çok önemli. Bunun için tom’s hardware sitesinin yaptığı benchmark testini bırakıyorum aşağıya,

yapayzeka

Benim tecrübelerime gelirsek ben 768×512 olacak şekilde aynı anda 6 tane görseli 45 saniyede üretebiliyorum.

Şimdi lafı daha fazla uzatmadan kurulum kısmına gelelim,

İlk önce kullanacağımız arayüz automatic1111’in yaptığı arayüz olacak. Bu en yaygın ve bize çok fazla olanak(extensionlar) sağlayan arayüz.

Kurulum için,

  1. Python 3.10.6 ve Git yüklememiz gerekli, daha güncel python sürümlerinde torch desteklenmediğinden bu versiyonun yüklü olduğundan emin olmamız lazım:(not: python yüklerken add python to path seçeneğinin tikli olduğundan emin olalım.)

    • Windows: Python 3.10.6 (webpageexe, ya da win7 version), git için ise buradan yükleme yapıyoruz (webpage)
    • Linux (Debian-based): 
      1
      sudo apt install wget git python3 python3-venv

    • Linux (Red Hat-based): 
      1
      sudo dnf install wget git python3

    • Linux (Arch-based): 
      1
      sudo pacman -S wget git python3

  2. Şimdi de automatic1111’in git repositorysini yerel makinemize yüklüyoruz:(Not: SSD’ye yüklemenizi tercih ederim işlem hızı ve arayüzün açılış sekans hızı için. Ama şimdiden uyarayayım yükleyeceğimiz checkpointler üreteceğimiz görseller, extensionlar filan 45gb+ bir yer kaplayacaktır. Şuan bende 90gb yer kaplamakta. Ama tabi bunu minumuma çekmek elimizde görselleri silerek veya sadece bir checkpoint kullanarak alandan kazanç sağlanabilir.)

    • Bunun için ilk önce bir klasör oluşturalım, istediğiniz adı verebilirsiniz klasore sd1.5, yapay zeka vb. ve klasörün içerisinden cmd ile komut istemine girelim, (komut istemine girebilmek için klasör açıkken adres satırına cmd yazıyoruz)
    • Daha sonra komut istemindeyken bu kodu yapıştırıp enter yapıyoruz; 
      1
      git clone <a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui.git" target="_blank" rel="nofollow noopener">https://github.com/AUTOMATIC1111/stable-diffusion-webui.git</a>

    • İleride güncellemek istediğimizde yine aynı şekilde klasör içerisinden cmd ile komut istemine girip git pull yaparak güncelleyebiliriz. 

Buraya kadar herşeyi sorunsuz yaptıysak artık kullanıma hazır durumda demektir.

Arayüz’ü çalıştırmak için klasörümüzün içerisinde ki webui-user.bat dosyasına çalıştırabiliriz ama bunu yapmadan önce bir iki ufak ayar daha yapacağız. .bat dosyasını edit(düzenle) ile not defterinde açalım,

     set COMMANDLINE_ARGS= –xformers –autolaunch –no-gradio-queue

Dosyasımızın içerisinde ki bu kısmı bu şekilde düzenleyelim. Xformers hem görsel üretme hızımızı arttıran hem de vram kullanımımızı düşüren bir parametre, autolaunch ise biz bat dosyasını çalıştırdıktan sonra arayüzümüz hazır olduğunuda otomatik olarak default browserımızda açılmasını sağlıyor. gradio kısmı ise yapay zeka eğitirken karşılaşabileceğimiz bazı gecikmelerde veya donmalarda sistem şişip patlamadan sonra ki aşamaya geçmesini sağlıyor. Her zaman olan bir durum değil bu ama 1 saat 2 saat eğitim yaparken yarıda patlayıp sinir bozmak yerine o aşamayı es geçip devam ediyor işleme böylece boşuna vakit kaybetmemiş oluyoruz. Çünkü eğitim sırasında pc de işlem yaparken eğer ki vram kullanma durumu olursa patlayabiliyor eğitim veya o an donabiliyor bunların önüne geçmiş oluyoruz.

Eğer ki 6-8 gb arası vram’imiz var ise –medvram parametresini de kullanabiliriz daha fazla vram’imiz varsa kullanamya gerek yok.

Kurulum kısmı bitti. Amd ekran kartları için farklı işlemler yapmak gerekebiliyor ama benim herhangi bir tecrübem yok o konuda deneyip emin olamadığım içinde o kısıma girmiyorum hiç.

3- Son Hazırlıklar

Artık kullanmaya hazırız ama ondan önce ihtiyacımız olan checkpoint modellerini ayarlayalım,

Bunun için ihtiyacımız olan site,

https://civitai.com/

Üye olmanızı tavsiye ederim, +18 kısımlara da ulaşabilmeniz için üyelik şart.

Bu siteden size bir kaç checkpoint önereceğim onlar ile başlayabiliriz ilk çıktımızı almaya,

Daha realistik çıktılar için photon checkpointini tavsiye ediyorum bence oldukça başarılı, ayrıca kendi yüzümüzü ve ya başka insanların yüzlerini eğitmek için de yine bu checkpoint temel alarak üzerinden eğitim yapabiliriz. O kısıma ilerleyen kısımlarda değineceğiz,

https://civitai.com/models/84728/photon

Dreamshaper ise daha genel geçer hepsi bi arada diyebileceğimiz bir checkpoint. Başlangıç için tavsiye edebileceğim checkpointlerden birisi.

https://civitai.com/models/4384/dreamshaper

Bu checkpointleri indirdikten sonra oluşturduğumuz klasörün içerisinde ki “stable-diffusion-webui\models\Stable-diffusion” bu konuma atıyoruz. Zevkinize ve ilginize göre başka checkpointlerde indirebilir denemeler yapabilirsiniz ama unutmayın sdxl olan checkpointleri şimdilik kullanmayacağız. sd 1.5 olan checkpointleri indireceğiz, yani 1.99gb boyutunda olan checkpointler şuan bizim odaklandıklarımız. Xl olanlar zaten 5 6 gb civarı onlara bulaşmıyoruz şu an için. Ama aklınızda olsun onları da indirip aynı şekilde kullanabiliriz pc’niz yeterli ise.

Not: Civitai da checkpointlere girdiğiniz pencereyi aşağıya kaydırırsanız o checkpoint ile oluşturulmuş görselleri de görebilirsiniz içlerine girdiğinizde yapan kişi eğer paylaşmışsa promtları ve diğer ayarlarıda bulabilir ve deneyebilirsiniz siz de.

Başka kaynak sitelere şu an için girmiyorum çünkü o konulara geldiğimizde paylaşacağım onları.

4- Arayüz ve İlk Açılış

Bat dosyamızı artık çalıştırabiliriz, eğer ki herşeyi sorunsuz yaptıysak, gerekli bazı otomatik indirme işlemlerinden sonra arayüzümüz açılacaktır.

zeka

Karşımıza gelecek ekran bu şekilde olacaktır. (Ben de yüklü olan bazı extensionlar sizde olmadığından bazı kısımlar eksik olabilir oraları önemsemeyin.)

Kutucuklara böldüm ve o şekilde açıklamaya geçeceğim,

1– Seçili olan checkpointimiz, ben tavsiye olarak verdiğim photon’u kullanıyorum.

2-Burası ana sekmelerimizin olduğu bölüm;

  txt2img: Yazı ile prompt girdiğimiz en çok kullanacağımız bölüm.

  img2img: Yapay zekaya görsel vererek onun üzerinden yeni görseller elde ettiğimiz bölüm.

  Extras: burası basit bir şekilde görsellerimizi upscale ettiğimiz veya üzerinde bazı değişiklikler yaptığımız bölüm, çok da bir önemi yok çünkü farklı upscale yöntemleri göstereceğim ben size düşük vram ile 4k 8k çözünürlüklere çıkabileceğimiz yöntemler mevcut.

  PngInfo: Burası daha önce çıkarttığımız bir görseli buraya sürüklediğimizde o görseli yaparken girdiğimiz prompt’u ve diğer ayarları görebileceğimiz yani yapay zeka ile oluşturulan görselin exif bilgilerini bulabileceğimiz yer diyebiliriz.

  Checkpoint merger: Burası iki checkpoint modeli birleştirebildiğimiz yer. Pek kullandığım ve ya kullanılan bir özellik değil daha efektif ve daha basit yöntemler var bunun için o yüzden bu kısma girmiyorum.

  Train: Burası aslında yapay zeka eğitmek için ama biz dreambooth ve lora kullacağız o yüzden burayı kullanmayacağız eğitim için. İlerleyen kısımlarda bahsedeceğim.

  Settings: Burası arayüz’ün ve yüklü olan bütün extensionların ayarlarını yapabileceğimiz yer. (küçük not: kayıt yerini buradan değiştirebilirsiniz isterseniz, üretilen bütün görseller ana klasorumuzde ki outputs klasorunun içine kaydediliyor isterseniz saving directory path’den değiştirebilirsiniz bu konumu. Mesela ben alandan kazanmak için sadece seçtiğim görselleri kaydediyorum diğer üretilen hiç bir görsel kayıt olmuyor.

  Extensions: Burası en önemli yerlerden birisi. Yüklediğimiz ve yüklemek istediğimiz extensionları buradan görebiliyor, açıp kapatabiliyor ve güncelleyebiliyoruz.

3- Burası pozitif ve negatif promptlarımızı girdiğimiz alan. Basit olarak bahsetmek gerekirse; Midjourney de ne yazarsak yazalım yapay zeka bize birşeyler üretiyor ama stable diffusion da biraz daha komutlar ile girmek gerekiyor promptları. Örnek olarak, isşte bir adam var üzerinde zırh var elinde şu var. Ayakta duruyor arka planda şu var vs. gibi. Yani bir kitaptan alıntıyı girdiğinizde veya bir özlü söz girdiğinizde midjourney gibi gibi size sanatsal sonuçlar veremeyebilir. Biraz daha tasvir etmek gerekiyor istediğimiz promptu.

Negatif promtp ise görselde olmasını istemediğimiz şeyleri yazıyoruz. Yine yapay zekaya istediğimiz şeyi tasvir etmekte yardımcı oluyoruz yani.

4- Burası ekstra networkleri kullandığımız alan. İleride daha detaylı anlatacağım için detaya girmiyorum. Kafa karışıklığı yaratabilir çünkü daha lora ve embeddingsleri bilmiyoruz.

5- En önemli kısımlardan birisi burası.

Sampling Method: Bu görsel üretirken kullandığımız örnekleme methodu diyebiliriz. Farklı farklı kullanabileceğimiz methodlar var. Bunların da basit bir örneğini bırakıyorum aşağıya.

sampling

Euler A kullanabilirsiniz genel olarak tatmin edici benim için. Aynı promptu daha sonra diğer methotlarla da deneyip farkı daha iyi anlayabilirsiniz ve beğendiğinizi kullanabilirsiniz. Hepsinin farklı farklı özellikleri bir diğerinde iyi olabiliyor verdiğiniz prompta göre. Bunu denedikçe daha iyi algılayacaksınız.

Sampling steps: Burası görsel üretilirken yapay zekanın görsel üzerinde kaç adımda çalışacağını seçtiğiniz bölüm. Euler a için 30-40 idealdir, Karras için 25 30 idealdir. Tabi bu adım süresi arttıkça görsel çıktınızın oluşturulması da uzayacağı için genel olarak 25-40 steps kullanılıyor. Fazlası görseli boğabileceği ve süreyi uzatacağı gibi, azı da görselin tam oluşturulmasını engelleyecektir. Orta yolu dediğim aralıklar için yeterli. Yukarıda verdiğim görselde stepslerde yazmakta oradan fikir edinebilirsiniz.

6- Çözünürlük ayarladığımız kısım,

512×512 kullanmanızı çok tavsite etmem tabi logo vb tasarımlar yapmıyorsanız. Genel olarak ben 512×768 ve 768×512 kullanıyorum. Ama istediğinize göre bunlar üzerinde değişiklik yapabilirsiniz. Tabi bu vram kullanımınızı ve işlem süresini çok fazla etkileyecektir.

7-

Batch Count: Burası paket olarak kaç görsel üreteceğinizi belirlediğiniz kısım.

Batch size: Aynı anda kaç görsel üreteceğinizi belirlediğiniz kısım(paket büyüklüğü).

Örnek,

Batch count: 1

Batch size: 6 ise aynı anda 6 görsel üretip sonucu size verir yapay zeka. Aynı anda görsel üretmek vram’e de o kadar fazla yük binmesi demek. Ama siz fazla görsel istiyorsunuz ama vram’iniz az ise batch countu 6 yapıp size kısmını 1 de bırakırsanız. 1 görsel üretip vrami boşaltıp diğer görsele geçer ve sonuç olarak yine size 6 görsel sunar sistem. Tabi aynı anda üretilenlerde seed olayı da devreye giriyor ama oralara girmeyeceğim şimdilik.

Ben ilk başkta size’ı 4 ve ya 6 yaparak promptumu deniyorum genelde. Başarılı olduğuna inandığım bir prompt bulduğumda ise count’u 4 size’ı 6 yapıp 24 görsel alıyorum. 12gb vram’li ekran kartım olduğunu tekrardan belirteyim. Siz de vram’inize göre optimal sayıları bulup ona göre bir yol izleyebilirsiniz. Şunu da belirteyim bu sayılar benim sistemim de 768×512 için geçerli. Eğer ki daha büyük çözünürlükle bir görsel alacaksam vram’im yetmediği için size’ı 4-2-1 şeklinde görseli elde edebileceğim seviyelere çekiyorum.

8-

Cfg Scale: Burası yapay zeka ve prompt’umuz arasında dengeyi ayarladığımız kısım. Artırırsak prompt’a daha bağlı oluyor yapay zeka, azaltırsak ise daha özgür bırakmış oluyoruz. Genelde 4-11 arası kullanılıyor. Ama yine siz deneyerek kendi ayarınızı bulabilirsiniz. Zaten civitai da checkpointlerin sayfalarında o checkpoint için tavsiye edilen cfg ayarları oluyor genelde aklınızda olsun.

9-

Seed: Bu da oluşturulan görselin uniqueid’si olarak düşünebiliriz. Oluşturulan her görsel eşsiz bir kodu oluyor ve ona benzer görselleri üretmek için o sayıyı buraya girdiğimizde yine ona benzer görseller üretir yapay zeka. Bir nevi görselin tc kimlik no su gibi düşünebilirsiniz. -1 de bırakırsanız veya yanda ki zar simgesine tıklarsanız random(rastgele) bir seed girerek oluşturur görseli. Geri dönüşüm işaretine başarsanız son oluşturduğunuz görselin seed’ini kullanarak yeni görseller oluşturursunuz. Mesela bir sürü görsel oluşturdunuz daha sonra bir tanesini beğendiniz diyelim. Onu png info kısmına atarak seed’ini ve diğer ayarlarını kopyalayıp yine ona benzer görseller oluşturmaya devam edebilirsiniz.

 

 

Giriş kısmı bu kadar burdan sonrası Generate diyerek görsel oluşturmaktan geçiyor.

İlk mesaj kurulum ve arayüz tanıtımı gibi olsun istediğimden daha fazla detay girmeyeceğim. Konuya gelecek geri dönüşler ve duruma göre öncelik sırasını ayarlayıp başlıkta da bahsettiğim bütün konuları tek tek anlatacağım. Tabi bu konuda moderatörlerin de yardımına ihtiyacım var. Mesaj editleme gibi çünkü çok fazla ekleme yapacağım konu var ve hepsini tek mesaja koyarsam ne sayfa düzeni kalır ne de insanlar o kadar uzun uzadıya okumayabilir.

Takıldığınız ve ya basit açıklama istediğim yerleri her zaman sorabilirsiniz. Ana maddeler halinde bahsedecek de olsam o zaman kadar basit şekilde açıklarım sıkıntı olmaz.

Mesela herkesin merak ettiği kendi yüzümüzü ve ya birisinin yüzünü nasıl eğitiriz gibi sorulara Lora ve dreambooth kısmında gireceğim. Ama yapayzekaya giren herkes ilk önce kendini veya bir tanıdığını çizdirmeye çalıştığı için önden ufak tefek bilgiler verebilirim. Ve ya ilk önce neyi öğrenmek istiyorsanız o konuyu daha önce işleyebilirim.

Ana başlıkları altta vereyim siz onlar içinden seçin isterseniz,

1- Extensions

Controlnet: Bu zaten olmazsa olmazlardan. Görsel üzerinde çok daha fazla kontrolümüzün olmasını sağlayan en başarılı extension diyebiliriz.

dreambooth: Yapay zeka eğitmek için kullanabileceğimiz başarılı bir extension.

adetailer: Oluşturduğumuz görselde insan yüzleri hayvan yüzleri gibi veya vücut, eller gibi kısımların tekrardan üzerinden geçip çok çok daha başarılı sonuçlar elde etmemizi sağlayan olmazsa olmazlardan.

deforum: Üzerinde fazla kontrolümüzün olmadığı ama yapay zekanın yaratıcılığıyla enterasan video sekansları oluşturabileceğimiz başarılı bir extension.

animatediff: Görselden ufak animasyonlar gifler oluşturabileceğimiz halen daha tam stabil olmayan ama başarılı sayılabilecek bir eklenti. Örnek, Karakterinin saçlarının uçuşması, hafif vücut hareketleri, arkada ki yaprakların ağaçların rüzgara verdiği tepkiler filan.

infinitezoom: Görsel için görsel diyebiliriz. Sonsuzyakınlaştırma diye tabi edilen görsel efekt.

2- Lora

Lora uzun saatler uğraşmadan vram’i de sömürmeden ufak boyutlu kendi stillerimizi ve yüzleri eğitebileceğimiz bir arayüz.

Ekstra kurulum gerekiyor ama kendi yüzümüzü checkpointe bağlı olmadan heryerde kullanabileceğimiz şekilde eğitebileceğimiz yegane şey Lora.

Yorum yapın