Ana içeriğe atla

Stable Diffusion XL’i DreamBooth ve LoRA ile İnce Ayarlama

Hugging Face AutoTrain Advance, DreamBooth ve LoRA kullanarak Stable Diffusion XL’i kişisel fotoğraflar üzerinde başarıyla ince ayarlayıp özelleştirilmiş, yüksek kaliteli görseller üretmeyi öğrenin.
Güncel 3 Eki 2026  · 14 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

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.

Image from arxiv.org

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."

image1.png

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.

  1. 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.
  2. DreamBooth, gerçek hayatta tekrarlanması zor ya da tamamen kurgusal olabilecek senaryolar oluşturarak kişiselleştirme imkânı tanır.
  3. 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.

Image from Stable Diffusion XL on TPUv5e

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

image4.png

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.

image3.png

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)

image14.png

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.

  1. SDXL refiner 1.0’ı difüzyon hattı ile yükleyin.
  2. 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.
  3. 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.

image17.png

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.

  1. Projeye isim verin.
  2. Temel modelin konumu.
  3. Veri kümesinin dizini.
  4. 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.

image10.png

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.

image7.png

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)

image11.png

AutoTrain DreamBooth Eğitim Betiği

Şimdi, AutoTrain DreamBooth betiğini kullanarak modelimizi bu beş görsel üzerinde ince ayarlama zamanı.

  1. Temel modeli, proje adını ve veri dizinini belirtin.
  2. Ö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.
  3. En iyi performans için geri kalan argümanları aynı tutun.
  4. 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.

Image from kingabzpro/sdxl-lora-abid

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.

image6.png

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ü.

image9.png

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))

image12.png

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.

image16.png

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.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

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.

Konular
Yapay Zeka
Makine Öğrenimi

Yapay Zekâ Yolculuğunuza Bugün Başlayın!

Program

AI Temelleri

10 sa
Yapay zekanın temellerini keşfedin, yapay zekayı işinizde etkili bir şekilde kullanmayı öğrenin ve dinamik yapay zeka dünyasında yolunuzu bulmak için ChatGPT gibi modellere dalın.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör