LORA Kurulumu ve Kohya Arayüzü

Bu başlıkta yapay zeka eğitmeyi anlatacağım. Yapay zeka’yı eğitmek için iki farklı yöntemden bahsedeceğim birisi Dreambooth extension’ı diğer ise kohya’nın arayüzünü kullanarak Lora. Dreambooth daha uzun süreler ve daha fazla vram istediği için ona daha sonra değineceğim. Şuan kullanacağımız yöntem Lora olacak. Bunun için de Kohya arayüzünü kullanacağız. Lora ile stil ve insan yüzü eğitebilirsiniz.

Avantajları

-Çok çok daha kısa sürede sonuca ulaşabilmek.

-Tatmin edici seviyede sonuçlar vermesi.

-Çok daha küçük boyutlarda olacağı için daha az alan kaplaması.

-İstediğimiz checkpointte kullanabiliyor olmamız.(Dreambooth ile eğittiğimizde sadece eğittiğimiz checkpoint aktifken kullanabiliyoruz. Ama Lora ile istediğimiz checkpointte eğittiğimiz yüzü ve ya stili rahatlıkla kullanabiliyoruz. Bu büyük bir avantaj bizim için.

-Vram kullanımının minumum seviyede olması. Daha eski ve düşün vram’li grafik kartlarında da kullanabiliyor olmamız.

Şimdi kuruluma geçelim,

Python ve git kurulu olması gerekiyor yine ama stable diffusion kurulumunda anlattığım için tekrar anlatmıyorum bu kısmı.

1. Öncelikle yine bir kohya arayüzü için bir klasör oluşturuyoruz istediğimiz bir lokasyona. Daha sonra klasör içerisinden adres satırına cmd yazarak komut istemi’ne giriyoruz.

git clone https://github.com/bmaltais/kohya_ss.git

Bu kodu yapıştırıyoruz ve kohya arayüzünün repository’den klasörümüze kopyalanmasını bekliyoruz.

Ardından cd kohya_ss yazarak directory’i değiştiriyoruz.
.\setup.bat

Komutu ile kuruluma başlıyoruz.
Burada size bazı sorular sorabilir default ayarlarda bırakabilirsiniz.

30xx ve 40xx ekran kartı olanlar CUDNN da yükleyebilir eğitme hızını bir miktar arttırmakta ama opsiyonel bu kısım.

Artık arayüzü kullanmaya hazırız.
kohya_ss klasöründe ki gui.bat dosyasından arayüzümüzü çalıştırabiliriz artık.

http://127.0.0.1:7860/ bu adresten arayüzümüze ulaşabiliriz.

Lora ile Yüz Eğitme
lora1

İlk olarak karşımıza çıkan ekrandan en üstte ki Lora Tab’ını seçiyoruz.
Model quick pick yazan yerden custom’ı seçiyor ve eğiteceğimiz yüzün temel alacağı checkpoint’i seçiyoruz.
Ben photon modelini kullanıyorum, istediğinize göre beğendiğiniz başka bir modeli de temel alabilirsiniz.
(Dreamshaper, realisticvision, deliberate vb.)
Bunun içinde dosya kağıdı olan simgeye tıklayıp modelimiz neredeyse onu bulup tıklıyoruz.

Daha sonra folders tab’ına tıklayıp orada ki ayarları yapmaya geçiyoruz.
lora2

İlk olarak klasörlerimizi ayarlayalım.
Ben LoraTraining diye bir ana klasör oluşturdum onun altında da modelimin adı olacak şekilde bir klasör daha oluşturdum.
Yine bu klasörün içerisinde de 3 tane daha klasör oluşturup adlarını Log, Model, Images olacak şekilde ayarladım.
Yani klasör bağlantıları şu şekilde oldu. LoraTraining/modelimeverdiğimisim/Images
Böyle olacak şekilde yukarıda belirttiğimiz 3 klasörü de oluşturalım.
Daha sonra yine Images klasörünün içerisinde bir klasör oluşturalım.
Örnek;
Eğiteceğimiz yüz Teknoltan olsun. Ve bu yüzü photon modeliyle eğiteceğiz diyelim.
LoraTraining/teknoltanPhoton/Images/10_teknoltanPhoton/
Burada 10_ yazmamızın sebebi her fotonun 10 kere tekrarlanmasını istediğimizden.
Bunu arayüzden de ayarlayabiliyoruz ama böylesi daha iyi hangi modelimiz kaç tekrarda eğitildiğini anlamış oluyoruz klasör adına bakarak.
teknoltanPhoton ise modelimize vereceğimiz eşsiz Id. Burada önemli olan mesela mustafa vb. gibi çok kullanılan isimlerden kaçmamız.
Çünkü o modelle mustafa eğitilmiştir zaten o model hali hazırda bir mustafa biliyordur. Eğer eşsiz bir isim vermezsek,
yüzümüzü düzgün çizmeyecektir.

Klasörlerimiz hazır olduğuna göre artık eğitmek için kullanacağımız fotoları ayarlamaya geçebiliriz.
10-20 arası fotoğraf bize yetecektir. Fotoları seçerken yüzümüzün net olduğundan emin olalım.
Farklı açılardan da olması daha düzgün sonuçlar almamız için mühim.
Evde ben çekeyim hemen derseniz de üzerinizde aynı renk kıyafetler ve aynı arka plan olmamasına dikkat edin.
Öyle olursa yapay zeka arka planı ve üzerinizde ki kıyafeti de öğrenir ve her kendinizi çizdirmek istediğinizde onları da dahil etmeye çalışır.
Fotoğraflarımızı ayarladıktan sonra,
https://www.birme.net
Bu siteye atarak fotolarımızı hepsinin boyutunu 512×512’ye çekiyoruz. Stable diffusion 1.5 ile eğiteceğimizden bu çözünürlük gerekli.
Eğer ki SDXL ile eğitecek olsaydım 1024×1024 olması gerekiyordu ama bunun için en az 20gb vram gerekli.
Daha sonra çözünürlüklerini ayarladığımız fotolarımızı
LoraTraining/teknoltanPhoton/Images/10_teknoltanPhoton/
bu klasörün içerisine atıyoruz. Hepsini seçip tekrar isimlendirip 1’e basarak sıralı şekilde isimlendiriyoruz.
Her fotoğraf için belirleyici terimler içeren not belgesi oluşturabiliriz ama bu da opsiyonel. 1. foto için not belgesi oluşturup,
o fotoda ki objeye tanıtabiliriz. Mesela “man portrait, black hair, beard, brown eyes gibi” o fotoyu anlatan şeyleri yazabiliriz bu
yapay zekanın fotoyu anlaması için yardımcı olacak bir detay.

Yukarıda ki görselde ki boşlukları doldurmaya geldik artık.
Image Folder: Images klasörümüzü seçiyoruz. 10_ ile başlayan klasörü değil ana klasörümüz olan Images’ı seçiyoruz.
Output Folder: Model klasörümüzü seçiyoruz.
Logging Folder: Log klasörümüzü seçiyoruz.

Model Output Name ise seçtiğimiz eşsiz isim olacak. Bizim örneğimizde bu teknoltanPhoton.
Bunu da yazdıktan sonra sonra ki tab’e(parameters) geçebiliriz.
lora3

Burada tek tek hepsinden bahsedip kafanızı karıştırmak istemiyorum o yüzden sadece bize lazım olanları anlatacağım.

İlk olarak Train Batch Size‘ı 2 ve ya 3 yapabiliriz. Bu aynı anda kaç fotonun eğitileceğini söylüyor. Stable’da ki batch size ile aynı.
Eğer ki kartınızın ram’i yüksekse bunu 3 ve ya 4 yapabilirsiniz. Ama 2 idealdir. Ve bu ayar eğitimin süresini de kısaltıp uzatmakta.

Epoch‘u ise 10 yapıyoruz. Her bir foto 10 kere eğitilecek. Burada ki hesap şu şekilde. Biz zaten her fotoyu 10 kere eğit demiştik
klasör adımızda bu da ona çarpan ekleyecek.
Yani 16 fotomuz var diyelim 16×10=160 Epoch da 10 olduğu için 160×10=1600. Yani Lora modelimiz 1600 adımda eğitilecek.

Save Every N Epoch ise hangi aşamalarda modeli kaydetmek istediğimiz. 10 epoch demiştik, eğer ki 5 yazarsak buraya 5.epoch’da modeli kayıt edecek.
Daha sonra da 10.epoch’da tekrar kayıt edecek yani finalde elimizde 2 tane model olacak.
Bunun da amacı eper ki model istediğimizden fazla eğitilirse yani karakter bize benzemek yerine başka şekiller alırsa diye bunu yapıyoruz. 5. ve 10. adımlarda kayıt aldığı için
ikisini de deneyip hangisinde daha bize yakın sonuç veriyorsa onu kullanıyoruz.

Caption Extension: Eğer ki not belgeleri oluşturduysak her fotomuz için buraya onun uzantısını giriyoruz. Oluşturduysak .txt yazıyoruz buraya.

Max Resolution: Vram miktarınız 8gb dan az ise bunu olduğu gibi bırakabilirsiniz. Ama yüksekse 768,768 yapabilirsiniz. Fotolarınızı eğitirken daha yüksek çözünürlüklü görseller
kullanır ve daha başarılı sonuçlar alırsınız.

Network Rank (dimension): Buraya 256 yazabiliriz ama eğer hata alırsanız out of cuda gibi bunu 128 veya 64 e düşürebilirsiniz. Ama en iyi sonucu 256’da alırsınız.
Network Alpha: Buraya ise yukarıya ne yazdıysanız onun yarısını yazabilirsiniz. 256 yazdıysanız buraya da 128 yazarak devam edebilirsiniz.

Burada da genel olarak ayarları bitirdik şimdi son kısıma geçiyoruz. Dataset preparation tab’i.
lora4
Instance Prompt: Burası eşsiz ismimizin olacağı yer. Yani model bizim yüzümüzü nasıl tanımlayacak ve çağıracak. teknoltanPhoton yazıyoruz bizim örneğimizde.

Class Prompt: Burası ise bu çağırdığımız şeyin ne olduğunu belirtiyoruz Person yazabiliriz. Yani teknoltanPhoton bir kişi bunu tanımlıyoruz burada.

Training Images: Buraya fotolarımızın bulunduğu klasörü belirtiyoruz.

Repeat(training images’ın karşısında ki) kısmına birşey yazmamıza gerek yok zaten belirttik 10 diye daha önce ama 10 yazabiliriz yine aklınızı karıştırmasın diye.

txt dosyalarını oluşturduysak yapacak bir şeyimiz kalmıyor. Ama oluşturmadıysak Class Prompt kısmına cinsiyet filan da belirtmemiz gerekiyor.
Yoksa sizin yüzünüzü karşı cinsinizde anlayabilir.
Bu yüzden txt dosyalarını oluşturup fotolarınızı betimlemek çok fayda sağlayacaktır.

Herşey tamamsa artık Start Training diyebiliriz. (Eğer klasörleri kendimiz oluşturmadıysak bu sekmedeyken prepare training data ile otomatik kendisinin oluşturmasını sağlayabiliriz.
Copy data diyerekte klasörlerinin lokasyonlarını belirttiğimiz sekmeyi otomatik oalrak doldurtabiliriz.
Bu özellik yeni eklendi o yüzden ben klasörleri manuel oluşturttum daha iyi anlamanız için. Ama burayı da kullanabilirsiniz.
Burayı kullanırsanız yine gerekli işlemleri bitirdikten sonra start training ile eğitime başlayabilirsiniz.

Artık komut istemi ekranından takip edebiliriz durumumuzu. Herşey sorunsuz ilerlediyse eğitmeye başlayacaktır. Kullandığınız ekran kartına göre 5-30 dk arasında bitecektir eğitim.
Eğitim bittikten sonra oluşturduğumuz modelimizi model klasörümüz içerisinde bulabiliriz.
Daha sonra modelimizi stable diffusion klasörümüz içerisinde ki model/Lora/ içerisine atalım.

Artık konsolu kapatıp stable difussion’a geçebiliriz.
İlk paylaştığım görselde ki 4 numaralı alandan Lora sekmesini seçelim ve prompt’umuzun içerisine bizim lora modelimizi ekleyelim.
Bu lora modelimiz photon modelini baz alarak eğitildi. Yani realistik sonuçlar verecektir. İnsan yüzünü iyi çizecektir.
Ve en güzel tarafı lora modelimizi istediğimiz modelde kullanabiliriz. Anime çizimler yapan modellerde de kullanabiliriz +18 modellerde de istediğimiz her checkpointte kullanabiliriz.
(not sd 1.5 lora modelleri xl checkpointlerde kullanılamıyor.)
Yani photon checkpointini kullanmak zorunda değiliz görsel üretirken. Dreamshaper seçiliyken de bu oluşturduğumuz lora’yı kullanabiliriz.

Mesela prompt’umuz şu şekilde olsun portrait of a man standing in a battlefield, bloody atmosphere, rainy background.
Lora’mızı seçip bu prompt’a ekledikten sonra man olarak çizeceği insanın yüzünü bizim loramızla çizecek.
Lora’yı ekledikten sonra prompt’umuz bu şekilde olacak.
portrait of a man standing in a battlefield, bloody atmosphere, rainy background.<lora:teknoltanPhoton:1.0>

Bu eklenen satır,
<lora:teknoltanPhoton:1.0>
Burada ki 1 lora’mızın kuvveti olarak düşünebiliriz Ben genelde 0.6 ve 0.8 kullanıyorum. Çok fazla kuvvetli olunca bozabiliyor yüzü.
Siz de kendinize göre ayarlayabilirsiniz tatmin olduğunuz bir kuvvette. 0 ve 1 arası olmak zorunda değil 1.5, 2 gibi daha yüksek rakamları da kullanabilirsiniz.
Artık geriye herşeyi yapay zekaya bırakmak kalıyor. Generate.
Konuyu editleyerek eklediğim için ve editleme editörü biraz kanser olduğundan biraz zor oldu yazmam ama umarım düzgün ve faydalı olacak şekilde hazırlayabilmişimdir Lora kısmını. Gece temasını kullanıyorum onunla da alakalı olabilir tabi. Ama düzgün bir şekilde sayfa düzenini bozmadan yazmak için çabaladım.
 

Yorum yapın