DİFÜZYON MODELLERİ-II
Part I’de alegorik olarak “difüzyon” nedir ondan bahsetmiştim.
DİFÜZYON MODELLERİ-II
Part I’de alegorik olarak “difüzyon” nedir ondan bahsetmiştim.
Fakat bu modeller sadece difüzyondan oluşmuyor.Aşağıda generic bir mimari diyagram verilmiştir.Bu diyagram üzerinden modelin çalışma prensibine daha yakından bakacağız.
Bölüm 1-Problem Tanımı

Yukarıdaki diyagramdan görülebileceği üzere kullanıcı, üretimi prompt ve seed gibi parametrelerle etkileyebilir. Ancak bu ikisinin rolleri birbirinden oldukça farklıdır. Prompt, görüntünün semantik içeriğini yönlendirirken seed başlangıçtaki rastgele gürültüyü belirler. Seed’i değiştirmek farklı görüntüler üretmemizi sağlar fakat bu değişiklik üzerinde semantik bir kontrolümüz yoktur. Örneğin seed’i değiştirerek “kadının sağ kolunu biraz yukarı kaldır” gibi belirli bir müdahaleyi garanti edemeyiz. Böyle bir kontrol için çoğunlukla prompt üzerinde çalışmamız gerekir.
Prompt konusunda sürekli “Prompt Engineering” veya daha gündelik konuşmada “Promptu düzgün vermezsen yapmaz” tarzı söylemleri duymuşsunuzdur ki kesinlikle doğrudur.Bu arada promptlar için tek doğru yoktur modelin nasıl eğitinildiğine göre değişir ama bu başka bir videonun konusu.
Fakat çok detaylı da yazsanız metnin bir betimleme kabiliyeti vardır semantik olarak çok iyi olsa da uzamsal bilgi verme konusunda kısıtlıdır.
Bu yazının da ana konusu aslında bu kısıtı nasıl aşarız? Sorusunun cevabını bulmak.Bu konuda bize yardımcı olacak makale: “Controllable Generation with Text-to-Image Diffusion Models: A Survey” 10.1109/TPAMI.2025.3646548
Örneğin “A woman standing in a room” promptunu girdiniz ve çıktı olarak:

Örneğin kadının bu şekilde durmasını istemiyorum durmasını istemiyorum.Bu durumda istediğim pozu bir llm’e atıp detaylı bir prompt hazırlamasını isteyebilirim ve bu süreci izlediğimde ortaya çıkan sonuç aşağıda yer almaktadır.

Olmasını istediğim poz -Çıktı Aldığım Poz
Tabii ki promptu daha da derinlemesine hazırlamasını istediğinizde veya daha gelişmiş bir t2i kullandığınızda(Gemini 3.1 pro ile hazırlandı) istediğiniz sonuca daha yakın bir sonuç elde edebilirsiniz.
Fakat bu yapılması görece basit bir durum.Yalnızca duruş yerine derinlik,kenar ve segmentasyon haritaları da isteyebilirim promptta ve her birini detaylıca anlatmak için çok uzunca bir prompt yazmam gerekir ki bir sürü nedenden-token maliyeti,bağlamdan kopma vs.- dolayı pek tercih edilmez.
Problem tanımını uzun uzadıya yaptıysak gelelim eylem planına.Ne Yapacağız?
Bölüm 2-CONDITION’LAR
Condition, diffusion modelinin görüntüyü üretirken uymasını istediğimiz ek bilgidir. Aslında promptun kendisi de bir condition’dır. Ancak controllable generation yaklaşımında metnin yanına pose, depth, edge, segmentation map, reference image veya identity gibi farklı bilgi kaynakları da ekleyebiliriz.
Condition’ı önkoşul olarak çevirebiliriz aslında çünkü yukarıdaki her şey resme bir önkoşul belirtiyor.Difüzyon alegorisindeki gibi düşünürsek prompt olarak “bir tanrıça çiz” dedik bu bir önkoşul artık heykeltıraşın oyun alanını daralttık yaptığı şey ne kadar özgün olursa olsun bir tanrıça olmak zorundadır.Bir pose belirtmek veya belki de reference image gibi düşünebileceğimiz “şu heykele benzesin” mesajını verecek her condition heykeltıraşın oyun alanını daraltır ve bizi tahayyül ettiğimiz objeye yaklaştırır.
Controllable text-to-image generation çalışmaları üç temel problem altında incelenebilir. Novel condition yaklaşımı, pretrained bir diffusion modeline pose, depth veya identity gibi yeni bir kontrol türünün nasıl ekleneceğini araştırır.
Multiple-condition generation ise birden fazla kontrol sinyalinin aynı anda, birbirlerinin etkisini bozmadan kullanılmasını hedefler.
Universal controllable generation ise her condition için ayrı bir mekanizma geliştirmek yerine, farklı condition türlerini ortak bir yapı altında işleyebilen genel sistemler geliştirmeyi amaçlar.
Tamamdır şu ana kadar bayağı yol kat ettik.İlk olarak problemi tanımladık(Yalnızca prompt bazı durumlarda yetersiz kalmaktadır).Daha sonra problemin çözümünden bahsettik(Novel Conditions).
Peki bu önkoşulları nasıl uygulayacağız? Bu da bizi bir diğer bölüme götürüyor.
Bölüm 3-Novel Condition Kontrolü
Bu önkoşullar ışığında bir görsel elde etmek için kullanılan 2 yöntem var.
Birinci yöntem Condition’ı doğrudan noise prediction mekanizmasına dahil etmekte diğeri ise dıştan bir gözle gradyanı yönlendirmektedir.
Bu biraz muğlak bir cümle oldu farkındayım o yüzden 1. yöntemi alt yöntemleriyle beraber inceleyelim.
1-Condition Score Prediction:3 alt yönteme ayrılır
1.1.Tuning Based:Pretrained diffusion modeline yeni bir condition/concept öğretmek için modelin bazı parametrelerini veya text representation’ını finetune etme yaklaşımıdır.
Yine çok karışık oldu.Özetle:Model yeni condition’ı bilmiyor → birkaç örnek ver → embedding’i veya model ağırlıklarını optimize et → model bu concept’i öğrenmiş olsun.
Örnekler:
- Textual Inversion: Modele yeni bir kavram öğretmek için bu kavramı temsil eden özel bir kelime/token oluşturur. Modelin ana yapısını büyük ölçüde değiştirmek yerine, bu tokenın nasıl temsil edileceğini öğrenir.
- DreamBooth: Belirli bir kişi, nesne veya karakteri modele öğretmek için U-Net’in bazı parametrelerini de günceller. Ayrıca modelin genel bilgisini kaybetmemesi için prior preservation kullanır.
- LoRA: Modelin tamamını yeniden eğitmek yerine, modele küçük ve eğitilebilir ek ağırlıklar ekler. Böylece çok daha az parametreyle, daha düşük maliyetle yeni bir stil, kişi veya kavram öğretilebilir.
Textual Inversion ve DreamBooth temel tuning yöntemleri olarak, LoRA ise parameter-efficient fine-tuning (PEFT) yöntemi olarak sınıflandırılır.
- 2.Adapter-Based:Aslında yukarıda belirtmiş olduğumuz pose örneği gibi örnekler bu başlık altındadır.
Pretrained diffusion modelini doğrudan yeniden eğitmek yerine, yeni condition’ı işleyip modele aktaracak ek bir encoder/adapter modülü eğitme yaklaşımıdır. Bu yapı, novel condition’ın bir encoder E ile feature’a dönüştürülüp denoising modeline verilmesi şeklinde gerçekleşir
Özetle: Model pose/depth/reference image gibi condition’ı doğrudan bilmiyor → condition’ı anlayan bir adapter ekle → adapter bunu modelin anlayacağı feature’lara çevirsin → diffusion modeli bu bilgiyi kullanarak görüntüyü üretsin.
Burada adapter’ı bir tercüman gibi düşünebiliriz. Ana diffusion modeli zaten görüntü üretmeyi biliyor. Adapter’ın görevi, dışarıdan gelen pose, depth, layout veya referans görüntü gibi bilgileri modelin anlayabileceği bir dile çevirmek.
Örnekler:
- ControlNet: Ana U-Net’in yanında condition bilgisini işleyen ek bir branch kullanır. Pose, depth, edge gibi yapısal bilgileri işler ve bunları ana U-Net’e aktarır. Ana model ile yardımcı branch arasında zero convolution katmanları kullanılır.
- T2I-Adapter: Depth, sketch, segmentation gibi dışarıdan verilen spatial condition’ları işler ve bunlardan çıkardığı feature’ları pretrained diffusion modeline aktarır.
- Image Personalization Adapter’ları: Referans bir görüntüden kişi, nesne veya stil bilgisini çıkaran encoder’lar kullanır. Örneğin CLIP veya BLIP-2 gibi encoder’lardan alınan visual feature’lar diffusion modeline condition olarak aktarılabilir.
1.3 Training-Free:Pretrained diffusion modeline yeni bir eğitim yapmadan, modelin zaten öğrendiği attention ve feature bilgilerini inference sırasında kullanarak üretimi kontrol etme yaklaşımıdır. Makalede bu yöntemlerin modelin mevcut iç özelliklerinden yararlanarak yeni condition’ları desteklediği belirtiliyor.
Özetle: Model zaten çok şey biliyor → yeni bir şey eğitme → inference sırasında attention veya feature’lara müdahale et → çıktıyı istediğin condition’a yönlendir.
Örnekler:
- Attention Map Adjustment: Cross-attention map’lerini değiştirerek objelerin konumu, layout veya hangi özelliğin hangi objeye ait olduğu kontrol edilir. Örneğin DenseDiffusion bu yaklaşımı kullanır.
- Feature Injection: Referans görüntüden alınan feature’lar attention mekanizmasına eklenerek stil, görünüm veya yapı bilgisi üretime aktarılır. Örneğin StyleAligned, referans görüntünün stil feature’larını self-attention üzerinden diğer görüntülere taşır.
En basit ayrım:
Tuning-based = Modele öğret. Adapter-based = Modelin yanına yardımcı koy. Training-free = Modelin zaten bildiklerini inference sırasında yönlendir.
Bu yüzden training free bir yönünden Sokratik bir yaklaşımdadır.
3.2 — Condition-Guided Score Estimation
Aslında burada yöntem olarak kabaca “Model normal denoising tahminini yapsın; sonra üretilen ara sonucun istediğimiz condition’a ne kadar uyduğunu ölçelim ve gradient ile sampling yönünü düzeltelim.” diyoruz.
Yine şemayla anlatacak olursak
Current latent / intermediate feature ↓ Condition predictor ↓ Predicted condition ↓ Compare with desired condition ↓ Loss ↓ Gradient ↓ Denoising yönünü düzelt
Şeklinde özetlenebilir.
Temmet.
doi numarası ile ulaşabilirsiniz.
메타데이터
- post_id
- cf82c684fd05
- slug
- di̇füzyon-modelleri̇-ii-cf82c684fd05
- url
- https://medium.com/@ahmetcihandemir0/di%CC%87f%C3%BCzyon-modelleri%CC%87-ii-cf82c684fd05
- canonical_url
- https://medium.com/@ahmetcihandemir0/di%CC%87f%C3%BCzyon-modelleri%CC%87-ii-cf82c684fd05
- author_url
- https://medium.com/@ahmetcihandemir0
- status
- ok
- fetched_at
- 2026-08-13 00:03:50