Primele modele de difuzie populare pentru imagini, precum Stable Diffusion 1.x și SDXL, foloseau ca rețea principală o U-Net convoluțională, care estimează zgomotul de eliminat la fiecare pas.
Diffusion Transformers (DiT), propuse de William Peebles și Saining Xie în decembrie 2022, înlocuiesc U-Net-ul cu un transformer care lucrează pe patch-uri din imaginea latentă, asemănător tokenilor dintr-un text. Lucrarea a arătat că modelele cu mai mult calcul (transformer mai adânc sau mai lat, ori mai multe patch-uri) au obținut constant imagini mai bune, iar cel mai mare model, DiT-XL/2, a obținut FID 2,27 pe ImageNet 256×256.
Ideea a fost preluată de modele importante: Stable Diffusion 3 (Stability AI, 2024) folosește un transformer cu ponderi separate pentru text și imagine și antrenare de tip rectified flow; FLUX.1 (Black Forest Labs) este un transformer rectified flow de 12 miliarde de parametri; Sora (OpenAI, 2024) a fost descris de OpenAI ca un diffusion transformer pe patch-uri spațio-temporale, iar aplicația și API-ul lui au fost închise în 2026. Pentru folosirea practică a acestor modele, vezi secțiunile ComfyUI și AI pentru audio și video.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
Patch-uri latente |
Imaginea latentă este tăiată în pătrate de p × p (în DiT-XL/2, p = 2). Patch-urile mai mici înseamnă mai mulți tokeni, mai mult calcul și, în lucrarea DiT, rezultate mai bune. |
Condiționarea |
Felul în care promptul sau clasa ghidează generarea. DiT-ul original era condiționat pe clase ImageNet; Stable Diffusion 3 lasă tokenii de text și de imagine să comunice în ambele sensuri, în același transformer. |
Rectified flow / flow matching |
Formulări în care drumul dintre zgomot și imagine este o linie dreaptă sau un drum ales special. Lucrarea Stable Diffusion 3 le folosește pentru generare de înaltă rezoluție. |
Pași de eșantionare |
Numărul de pași de eliminare a zgomotului. FLUX.1 [schnell], distilat special, generează în 1–4 pași. |
Exemple practice și scenarii reale
Exemplul 1: Generare cu FLUX.1 [schnell] din biblioteca diffusers
Exemplul din fișa modelului de pe Hugging Face. enable_model_cpu_offload() mută părți din model în memoria RAM ca să reducă necesarul de memorie video.
import torch
from diffusers import FluxPipeline
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", torch_dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()
prompt = "A cat holding a sign that says hello world"
image = pipe(
prompt,
guidance_scale=0.0,
num_inference_steps=4,
max_sequence_length=256,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]
image.save("flux-schnell.png")
Greșeli frecvente și capcane
- Confuzia DiT cu un model autoregresiv: DiT curăță de zgomot toate patch-urile în paralel, în pași succesivi, nu le generează pe rând, de la stânga la dreapta.
- Subestimarea memoriei: 12 miliarde de parametri în bfloat16 înseamnă aproximativ 24 GB doar pentru ponderi; pe plăci video mai mici ai nevoie de descărcare parțială în RAM sau de variante cuantizate.
- Ignorarea licenței: FLUX.1 [schnell] are licența Apache-2.0, dar FLUX.1 [dev] are o licență necomercială.
Întrebări & Discuții: Diffusion Transformers (DiT)
Ai o întrebare despre Diffusion Transformers (DiT) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.