Program
Bu eğitimde, Stable Diffusion XL ve DreamBooth’u, ayrıca görüntü üretim modeline diffuser kütüphanesiyle nasıl erişileceğini öğreneceğiz. Buna ek olarak, modeli kişisel fotoğraflar üzerinde ince ayarlamayı ve performansını değerlendirmeyi göreceğiz. Yapay zekâya yeni başlıyorsanız, temel bir başlangıç için bir Yapay Zekâ Temelleri kursu almanızı öneririz.
Stable Diffusion XL’i Anlamak
Stability AI ekibi, yapay zekâ metinden-görüntü üretim modellerinde bir sonraki evrimi temsil eden Stable Diffusion XL (SDXL) 1.0’ı yayımladı. Bu açık kaynaklı model, yalnızca araştırma amaçlı SDXL 0.9 sürümünü temel alarak dünyanın halka açık en yetkin görsel oluşturma modeli hâline geldi.
Haftalar süren deneyler boyunca yapılan niceliksel analizler ve niteliksel insan değerlendirmeleri, SDXL’in diğer açık kaynaklı modellere kıyasla en yüksek kaliteyi ve en çok tercih edilen görselleri üretebildiğini gösteriyor.

Görsel kaynağı: arxiv.org
Bu yüksek kalite, iki modelden oluşan bir ansambl kullanılarak elde edildi: 3,5 milyar parametreli bir temel üretici ve 6,6 milyar parametreli bir rafine edici. Bu çiftli boru hattı, yeterince verimli kalarak tüketici GPU’larında çalışabilecek şekilde görüntü kalitesini en üst düzeye çıkarır.
Artık SDXL 1.0 ile kullanıcıların etkileyici görseller üretmek için uzun ve karmaşık istemlere ihtiyacı yok. Modelin zekâsı, sadece birkaç kelimeyle karmaşık görseller üretmeye olanak tanıyor.
SDXL’in özel veri kümeleri ve görevler üzerinde ince ayarlanması daha da kolaylaştı. Bu sayede yapı, stil ve kompozisyon üzerinde ayrıntılı kontrol sağlayabiliyoruz.
DreamBooth Nedir?
DreamBooth, 2022’de Google araştırma ekibi tarafından tanıtılan ve özellikle Stable Diffusion gibi metinden-görüntü modelleri alanında üretken yapay zekâya önemli bir ilerleme sağlayan bir tekniktir.
Google araştırmacılarının sözleriyle buna DreamBooth deniyor çünkü:
"Bir fotoğraf kabinine benziyor ama özneyi, hayallerinizin götürdüğü her yerde sentezlenebilecek şekilde yakalıyor."

Görsel kaynağı: DreamBooth
DreamBooth, ince ayarlanan modelin farklı şekillerde render etmeye uzmanlaşacağı belirli bir özel özneyi modele eklemenizi sağlar. Bu anlamda, belli bir kişi, karakter, nesne veya sahneye odaklanan kendi görüntü üreticinizi oluşturma olanağı tanır.
DreamBooth, modeli etkili şekilde eğitmek için öznenin yalnızca birkaç (genellikle 3-5) görüntüsünü gerektirir. Eğitim tamamlandığında, model özneyi kullanıcı hayal gücüyle sınırlı olarak sayısız ortam, sahne ve pozda konumlandırabilir.
DreamBooth Kullanım Alanları
Görüntü üretim modelini DreamBooth ile ince ayarlamak pek çok alan için faydalı olabilir. Photoshop becerileri olmadan denemeler yapma ve yüksek kaliteli görseller üretme özgürlüğü sağlar. İşte çalışma alanına kolayca değer katabileceği bazı örnekler.
- Grafik tasarım, reklamcılık ve eğlence gibi yaratıcı sektörler, görsel içerik üretiminde yüksek düzeyde özelleştirme ve özgünlük sunan DreamBooth’tan büyük fayda sağlayabilir.
- DreamBooth, gerçek hayatta tekrarlanması zor ya da tamamen kurgusal olabilecek senaryolar oluşturarak kişiselleştirme imkânı tanır.
- Ayrıca görsel temsilin kritik olduğu eğitim ve araştırma alanlarında kişiselleştirilmiş eğitim içerikleri oluşturmak veya araştırma amaçları için kullanılabilir.
Bir sonraki bölümlerde, ücretsiz Kaggle GPU’larını kullanarak SDXL modeline erişme ve modeli özel bir veri kümesi üzerinde ince ayarlama sürecine daha derinlemesine bakacağız.
Stable Diffusion XL’e Erişim
Hugging Face’teki Stable Diffusion XL Spaces demosunu deneyebiliriz; bu demo, girdinize göre hızlıca dört görsel üretir. Uygulamanız için uygun olup olmadığına karar vermeden önce biraz kurcalayın.

Görsel kaynağı: TPUv5e üzerinde Stable Diffusion XL
Diğer yöntem ise Python’daki diffusers kütüphanesini kullanarak özel bir istemle görsel üretmektir.
Kurulum
Koda geçmeden önce, CUDA desteğine sahip bir GPU makinesi kullandığınızdan emin olun.
!nvidia-smi

Ardından PIP ile diffuser paketini kurun.
%pip install --upgrade diffusers[torch] -q
Temel Modeli ve VAE Çözücüyü Yükleme
özel VAE çözücüsünü, NaN üretmeden fp16 duyarlıkta çalışacak şekilde değiştirilmiş sürümüyle yükleyeceğiz.
Sonrasında, VAE çözücüsünü diffuser iş akışına entegre ederek fp16 duyarlıkta temel SDXL modelini yükleyip bir hat oluşturacağız.
Temel modeli doğrudan “fp16” olmadan da yükleyebilirdik, ancak bu GPU bellek sorunlarına yol açardı. Bu nedenle Kaggle, Colab ve dizüstü GPU’larında çalıştırmak için modeli fp16 varyantında kullanmanız gerekir.
from diffusers import DiffusionPipeline, AutoencoderKL
import torch
vae = AutoencoderKL.from_pretrained(
"madebyollin/sdxl-vae-fp16-fix",
torch_dtype=torch.float16
)
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
vae=vae,
torch_dtype=torch.float16,
variant="fp16",
use_safetensors=True,
)
pipe.to("cuda");
Görüntü Üretim Hattını Çalıştırma
Görsel üretmek için basit bir istem, çıkarım adımları ve istem başına üretilecek görsel sayısını sağlamalısınız.
Bizim örneğimizde tek bir istemden dört görsel üreteceğiz.
prompt = "A man in a spacesuit is running a marathon in the jungle."
image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 4)
Görselleri bir ızgarada göstermek için, görselleri yeniden boyutlandırıp ızgarada sergileyen basit bir Python işlevi yazabiliriz.
from PIL import Image
def image_grid(imgs, rows, cols, resize=256):
assert len(imgs) == rows * cols
if resize is not None:
imgs = [img.resize((resize, resize)) for img in imgs]
w, h = imgs[0].size
grid_w, grid_h = cols * w, rows * h
grid = Image.new("RGB", size=(grid_w, grid_h))
for i, img in enumerate(imgs):
x = i % cols * w
y = i // cols * h
grid.paste(img, box=(x, y))
return grid
Model çıktısını kolayca karşılaştırmak için dört görseli 2x2 bir ızgarada göstereceğiz.
image_grid(image.images, 2, 2)
Sonuçlar harika. SDXL’in, Stable Diffusion 1.6’dan çok daha iyi olduğu kesin.

Başka bir istem yazalım ve havai fişeklerle oynayan bir maymunun üç görselini üretelim.
prompt = "A playful monkey handling fireworks with ease."
image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 3)
image_grid(image.images, 1, 3)

Stable Diffusion modeline çevrim içi ve yerel olarak nasıl erişileceğini Stable Diffusion Nasıl Çalıştırılır eğitimini izleyerek öğrenin.
Refiner ile Sonuçları İyileştirme
Görüntü kalitesini ve model doğruluğunu daha da artırmak için Refiner kullanacağız.
- SDXL refiner 1.0’ı difüzyon hattı ile yükleyin.
- Görseli temel SDXL modeliyle üretin. Çıktı türünü, yeniden oluşturulmuş görsel yerine girdinin latent temsili döndürülecek şekilde “latent” olarak değiştireceğiz.
- Refiner’a istemi ve üretilen görselin latent temsilini verin.
refiner = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0",
vae=vae,
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16",
)
refiner.to("cuda")
n_steps = 40
high_noise_frac = 0.7
image = pipe(
prompt=prompt,
num_inference_steps=n_steps,
denoising_end=high_noise_frac,
output_type="latent",
).images
image = refiner(
prompt=prompt,
num_inference_steps=n_steps,
denoising_start=high_noise_frac,
image=image,
).images[0]
image
Rafine edilmiş görsel yüksek kalitede ve istemi doğru şekilde takip ediyor.

Python ile en gelişmiş difüzyon modellerini kullanarak fotogerçekçi görseller üretmeyi Python’da Diffusers ile Yapay Zekâ Kullanarak Fotogerçekçi Görseller Üretme eşlikli kodlama etkinliğini izleyerek öğrenin.
AutoTrain Advanced ile SDXL’i İnce Ayarlama
Zamanla SDXL’in ince ayarlanması çok daha kolay hâle geldi. AutoTrain Advance sayesinde, artık tek bir Python betiğiyle modelimizi ince ayarlayabiliyoruz. Bu Otomatik Makine Öğrenimi kütüphanesi, en yeni makine öğrenimi modellerini en az kodla eğitmek ve dağıtmak için tasarlanmıştır.
Python paketini PIP ile kurabilirsiniz:
%pip install -U autotrain-advanced
SDXL modelini accelerate ve transformers ile ince ayarlamakla ilgileniyorsanız, SDXL DreamBoot LoRA Colab Defteri’ne göz atın. Defter biraz eski olduğundan düzgün çalışması için değişiklik yapmanız gerekebilir.
Kurulum
DreamBooth betiğini çalıştırmadan önce, betiği çalıştırırken kullanacağımız bazı değişkenleri ayarlamalıyız.
- Projeye isim verin.
- Temel modelin konumu.
- Veri kümesinin dizini.
- Modeli Hugging Face’e göndermek için depo kimliği.
PROJECT_NAME = "Dreambooth_SDXL"
MODEL_NAME = "stabilityai/stable-diffusion-xl-base-1.0"
DATA_DIR = "/kaggle/input/abids-photos"
REPO_ID = "kingabzpro/sdxl-lora-abid"
Sonraki adımda, Kaggle’ın Gizli (Secret) özelliğini kullanarak bir Hugging Face belirteci ayarlayacaksınız. Gizli bilgileri nasıl ayarlayacağınızı Mistral 7B Eğitimi: Mistral 7B’yi Kullanmak için Adım Adım Kılavuz yazısından öğrenin.
from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
HF_TOKEN = user_secrets.get_secret("HUGGINGFACE_TOKEN")
Kaggle’da Özel Veri Kümesi Oluşturma
Kaggle’da selfielerinizden oluşan özel bir veri kümesi oluşturmak için, defterin sağ panelindeki yükle (upload) düğmesine tıklamanız gerekir.

Veri kümesi başlığını ekleyin ve farklı konumlarda çekilmiş beş selfienin bulunduğu zip dosyasını yükleyin. Bu örnekte, yazarın fotoğrafları kullanılıyor.

Beş görselin tümünü Jupyter Notebook’ta görüntülemek için görselleri PIL ile yükleyip image_grid işlevimize vereceğiz.
from PIL import Image
def image_grid(imgs, rows, cols, resize=256):
assert len(imgs) == rows * cols
if resize is not None:
imgs = [img.resize((resize, resize)) for img in imgs]
w, h = imgs[0].size
grid_w, grid_h = cols * w, rows * h
grid = Image.new("RGB", size=(grid_w, grid_h))
for i, img in enumerate(imgs):
x = i % cols * w
y = i // cols * h
grid.paste(img, box=(x, y))
return grid
import glob
Farklı konumlarda çekilmiş, yazara ait beş yüksek kaliteli görseli görüntüledik. Lütfen tüm fotoğrafların yüksek kalitede ve benzer boyutlarda olduğundan emin olun.
imgs = [Image.open(path) for path in glob.glob("/kaggle/input/abids-photos/*.jpg")]
image_grid(imgs, 1, 5)

AutoTrain DreamBooth Eğitim Betiği
Şimdi, AutoTrain DreamBooth betiğini kullanarak modelimizi bu beş görsel üzerinde ince ayarlama zamanı.
- Temel modeli, proje adını ve veri dizinini belirtin.
- Örnek istemin benzersiz olduğundan ve kişiyi veya nesneyi tanımladığından emin olun. Kişinin tam adını, "Abid Ali Awan", kullanın ve fotoğrafı ayrıntılı olarak betimleyin.
- En iyi performans için geri kalan argümanları aynı tutun.
- LoRA adaptör modelini Hugging Face Hub’a yüklemek için Hugging Face erişim belirtecini ve depo kimliğini sağlayın.
!autotrain dreambooth \
--model $MODEL_NAME \
--project-name $PROJECT_NAME \
--image-path $DATA_DIR \
--prompt "A photo of Abid Ali Awan wearing casual clothes, taking a selfie, and smiling." \
--resolution 1024 \
--batch-size 1 \
--num-steps 500 \
--gradient-accumulation 4 \
--lr 1e-4 \
--fp16 \
--gradient-checkpointing \
--push-to-hub \
--token $HF_TOKEN \
--repo-id $REPO_ID
Modeli eğitmek ve LoRA ağırlıklarını Hugging Face’e göndermek 2 saat 15 dakika sürdü.
LoRA, yani Low-Rank Adaptation, orijinal ağırlıkları değiştirmeden mevcut bir modele küçük, eğitilebilir katmanlar eklemeyi içeren bir tekniktir.
LoRA, sanat tarzları, karakterler veya temalar gibi yeni kavramları modele eklemeyi, kapsamlı hesaplama veya bellek kullanımına ihtiyaç duymadan mümkün kıldığı için faydalıdır.
Steps: 100%|█████████| 500/500 [2:15:11<00:00, 14.49s/it, loss=0.119, lr=0.0001]Model weights saved in Dreambooth_SDXL/pytorch_lora_weights.safetensors
Steps: 100%|█████████| 500/500 [2:15:11<00:00, 16.22s/it, loss=0.119, lr=0.0001]
pytorch_lora_weights.safetensors: 100%|████| 23.4M/23.4M [00:01<00:00, 11.9MB/s]
7 GB’lık bir model dosyası kaydetmek yerine, çıkarım sırasında temel modele eklenecek 23,4 MB’lık bir LoRA adaptörü kaydedeceğiz.

Görsel kaynağı: kingabzpro/sdxl-lora-abid
SDXL İnce Ayarlı Modelde Çıkarım
FP16 duyarlıkta özel bir VAE çözücüsü ve SDXL temel modelini kullanarak görsel üretmek için bir difüzyon hattı oluşturacağız.
Ardından, LoRA ağırlıklarını yükleyip Hugging Face depo kimliğimizi kullanarak temel modele ekleyeceğiz.
Son olarak, istemle hattı çalıştırıp üç görsel üreteceğiz.
from diffusers import DiffusionPipeline, AutoencoderKL, StableDiffusionXLImg2ImgPipeline
import torch
vae = AutoencoderKL.from_pretrained(
"madebyollin/sdxl-vae-fp16-fix",
torch_dtype=torch.float16
)
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
vae=vae,
torch_dtype=torch.float16,
variant="fp16",
use_safetensors=True,
)
pipe.to("cuda");
pipe.load_lora_weights(REPO_ID, weight_name="pytorch_lora_weights.safetensors")
prompt = "A photo of Abid Ali Awan participating in a marathon."
image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 3)
image_grid(image.images, 1, 3)
Sonuçlar etkileyici. “Abid Ali Awan”ın görsellerini üretecek şekilde modelimizi başarıyla ince ayarladık.

Başka bir istemle tekrar deneyelim.
prompt = "A photo of Abid Ali Awan giving a press conference."
image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 3)
image_grid(image.images, 1, 3)
Sonuçlar yine olağanüstü.

Refiner Kullanma
Bu bölümde, üretilen görseli SDXL Refiner 1.0 ile iyileştireceğiz.
Önce Stable Diffusion hattını kullanarak görseli üretecek ve tekrarlanabilirlik için elle bir tohum değeri sağlayacağız.
prompt = "A photo of Abid Ali Awan wearing a business suit at an office meeting."
seed = 65
generator = torch.Generator("cuda").manual_seed(seed)
image = pipe(prompt=prompt, num_inference_steps=25, generator=generator).images[0]
image.resize((300, 300))

Sonraki adımda, SDXL refiner’ı yükleyip aynı istem, üreteç ve üretilen görselle refiner hattını çalıştıracağız.
refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0",
vae=vae,
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16",
)
refiner.to("cuda");
image = refiner(prompt=prompt, num_inference_steps=25, generator=generator, image=image)
image.images[0].resize((300, 300))
Görsel rafine edici görüntü kalitesini artırdı, ancak ortaya çıkan görsel yazarın orijinal fotoğrafına hiç benzemiyor. Bunun yerine, Güney Asya’dan genel bir iş insanını andırıyor. Muhtemelen, ince ayarlı modeller için rafine ediciyi kullanmaktan kaçınmak daha iyi.

SDXL modelini ince ayarladıktan sonra sonraki adım, bir Üretken Yapay Zekâ uygulaması geliştirmektir. Projenizi oluştururken ilham almak için Üretken Modeller ve Açık Kaynak Araçlarla İnşa Edilebilecek 5 Proje blog yazısına göz atın.
Sonuç
Bu eğitimde, Stable Diffusion XL modelini ve DreamBooth tekniğini öğrendik. Ayrıca, kişiselleştirilmiş görsel üretimi için AutoTrain Advance’in DreamBooth betiğini kullanarak Stable Diffusion XL’i ince ayarlamayı gördük.
Temel SDXL modelini yükledikten sonra, yalnızca yazarın beş fotoğrafını kullanarak hafif bir LoRA adaptörü eğittik. Ardından LoRA ağırlıkları temel SDXL’e eklendi ve bu sayede model, milyarlarca parametreli tam modelin yeteneklerini korurken yazarın çeşitli kurgusal senaryolardaki yüksek kaliteli görsellerini üretebildi.
SDXL Refiner görüntü kalitesini artırsa da, en çok genel istemlerde etkili oldu ve ince ayar ile elde edilen kişiselleştirmenin bir kısmını bastırıyor gibi göründü. Yine de bu eğitim, sadece birkaç görselle AutoTrain Advance kullanarak bir SDXL modelini ince ayarlamanın ne kadar basit olduğunu gösterdi.
Yapay zekâ dünyasına yeni adım atıyor ve tüm bu ilgiyi anlamak istiyorsanız, bir Yapay Zekâ Temelleri kursu almanızı öneririz. Bu sayede Üretken Yapay Zekâ ve karmaşık dil modelleri hakkında bilgi edinebilirsiniz. Ayrıca, Python ile Makine Öğrenimi Bilimcisi kariyer yoluna kaydolarak yapay zekâ mühendisliği kariyerinize başlayabilirsiniz. Bu kapsamlı program, doğal dil işleme ve görüntü işlemenin yanı sıra scikit-learn, PySpark ve Keras gibi popüler Python makine öğrenimi paketlerini öğrenmenize yardımcı olur.
Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

