Model
.ai
urmărim modelele AI deschise

Cum funcționează modelele generative AI pentru imagini: difuzie, latente și encodere de text explicate simplu

Subiect: Modele
De Quartermaster
Publicat 28 Aug 2025

Prezentare generală

Orice model de imagine actual este un denoiser. În timpul antrenamentului i se arată milioane de imagini cu cantități crescânde de zgomot aleator adăugat, împreună cu descrierea fiecărei imagini, și învață să prezică ce zgomot a fost adăugat. La generare procesul merge invers: începi cu zgomot pur, întrebi modelul ce zgomot e acolo având promptul tău, elimini puțin din el, repeți de douăzeci sau treizeci de ori, și apare o imagine care se potrivește cu descrierea. Asta e tot trucul; „difuzia” e numele procesului gradual de adăugare și eliminare a zgomotului.
Lucrul pe pixeli la dimensiune completă ar fi prea lent, așa că de la Stable Diffusion 1.x denoising-ul se face într-un spațiu comprimat numit latent. O rețea mică separată, VAE, comprimă o imagine 1024x1024 într-o grilă 128x128 de numere și o extinde înapoi la final. Denoiser-ul (un U-Net în SD 1.5 și SDXL, un transformer în Flux, Qwen, Z-Image și modelele video) nu vede niciodată pixelii. De aceea dimensiunile imaginilor trebuie să fie multipli de 8 sau 16 și de ce pasul de decodare VAE la final poate rămâne fără memorie singur.
Promptul intră printr-un encoder de text, care transformă cuvintele într-o listă de numere pe care denoiser-ul le poate folosi ca condiție. SD 1.5 folosește un encoder CLIP cu limită de 77 de tokeni, SDXL folosește două, Flux adaugă un model mare de limbaj T5, iar modelele din 2025 și 2026 (Qwen Image, FLUX.2, Z-Image, Wan 2.2) folosesc LLM-uri complete ca encodere. Acea schimbare singură explică majoritatea diferențelor în cum se scriu prompturile: liste de taguri pentru modelele bazate pe CLIP, propoziții naturale pentru cele bazate pe LLM. Un LoRA, în final, e un set mic de corecții pentru greutățile denoiser-ului (și uneori ale encoder-ului) care direcționează ce desenează; nu adaugă cunoștințe noi din nimic, doar reechilibrează ce a învățat modelul de bază.

Referință

Nume
Tip
Ce este
Denoiser (U-Net / DiT)
component
Rețeaua principală. Prezice zgomotul dintr-un latent dat promptul și pasul. U-Net în SD 1.5 și SDXL; transformer de difuzie (DiT / MMDiT) în Flux, FLUX.2, Qwen, Z-Image, Wan, LTX, H3.
VAE
component
Comprimă imaginile în latente și înapoi. Un VAE greșit sau lipsă dă imagini spălăcite sau cu tentă mov. Flux și familiile mai noi vin cu propriile VAE-uri cu 16 canale.
Text encoder
component
CLIP-L, CLIP-G, T5-XXL sau un LLM (Qwen2.5-VL, Mistral, Gemma). Decide cum se înțelege promptul și cât de lung poate fi.
Scheduler / sampler
setting
Programul care decide cât zgomot se elimină la fiecare pas și metoda numerică folosită. Schimbă textura și viteza de convergență, nu conținutul.
Steps
setting
Câte iterații de denoising. Modelele distilate (Turbo, Lightning, Schnell, Klein) sunt antrenate să aibă nevoie de 1 până la 8.
CFG / guidance
setting
Ghidare fără clasificator: cât de mult se împinge predicția condiționată de prompt față de cea necondiționată. Prea mare arde culorile; modelele distilate pentru ghidare (Flux dev) iau o singură valoare de ghidare.
Latent size
setting
Dimensiunea imaginii împărțită la 8 (SD) sau 16 (Flux, Wan). Modelele desenează cel mai bine aproape de rezoluția la care au fost antrenate.
Flow matching
training method
Înlocuitorul din 2024+ pentru programele clasice de zgomot în difuzie (Flux, SD3, Wan, Z-Image). Aceeași idee, drum mai drept de la zgomot la imagine, mai puțini pași necesari.

Pas cu pas

  1. Zgomot la intrare: sampler-ul creează o grilă latentă de numere aleatoare din seed. Schimbă seed-ul și totul după se schimbă.
  2. Prompt la intrare: encoderul de text transformă cuvintele tale în embedding-uri. La modelele CLIP orice peste 77 de tokeni e tăiat sau împărțit; la modelele bazate pe LLM un paragraf e ok.
  3. Fiecare pas: denoiser-ul rulează de două ori pe SD și SDXL (cu și fără prompt); diferența, scalată cu CFG, împinge latentul spre prompt. Flux dev rulează o dată cu o valoare de ghidare încorporată.
  4. Sampler-ul scade zgomotul prezis conform programului (Karras, exponențial, simplu, beta). După ultimul pas latentul e o imagine curată în formă comprimată.
  5. Decodare: VAE extinde latentul în pixeli. Există decodare VAE pe plăci pentru că acest pas singur poate depăși memoria unui card de 8 GB la dimensiuni mari.
  6. Treceri opționale a doua oară: hires-fix adaugă puțin zgomot și denoisează la o dimensiune mai mare; img2img pornește de la o imagine existentă în loc de zgomot pur; inpainting limitează schimbarea la o mască.
  7. Modelele video adaugă o axă de timp latentului (un clip de 5 secunde e un latent 3D) și altfel e același ciclu, de aceea au nevoie de zece ori mai multă memorie.

Exemple

Același prompt prin trei arhitecturi diferite

SD 1.5 (CLIP, 77 tokens): "portrait of an old sailor, grey beard, wool cap, harbour background, film photo"
SDXL (two CLIPs): same words, 1024x1024, CFG 6, 28 steps
Flux dev (CLIP-L + T5): "A weathered old sailor with a grey beard and a navy wool cap stands at a harbour railing at dusk; shallow depth of field, Kodak Portra look." guidance 3.5, 24 steps

Nodurile ComfyUI mapate pe componente

Load Checkpoint -> MODEL (denoiser), CLIP (text encoder), VAE
CLIP Text Encode (prompt) -> KSampler (sampler, steps, CFG, seed) -> VAE Decode -> Save Image

Sfaturi

  • Un model nu poate desena ce nu a fost în datele lui de antrenament. De aceea fine-tune-urile anime cunosc mii de personaje și modelele foto nu, și de aceea există un LoRA pentru aproape orice lipsă.
  • Fine-tune-urile (DreamShaper, Juggernaut, Illustrious, Pony) au aceeași arhitectură ca baza lor, doar cu greutăți diferite; un LoRA pentru baza de obicei merge pe fine-tune, un LoRA pentru un fine-tune foarte diferit (Pony) deseori nu.
  • Modelele distilate schimbă flexibilitatea pe viteză. SDXL Lightning la 4 pași e ok pentru schițe; modelul complet la 28 de pași e mai bun pentru finale.
  • Encoderul de text e adesea cel mai mare fișier. Flux cu T5-XXL fp16 are nevoie de 9 GB doar pentru encoder, de aceea există versiuni fp8 și GGUF.
  • Distilarea ghidării (Flux dev) și CFG nu sunt același lucru. Folosirea unui CFG de 7 pe Flux dev dă imagini arse; folosește setările de pe pagina modelului.
  • Tot ce e aici rulează în cloud la fel ca local; diferența e doar cine deține GPU-ul.

Depanare

Imaginile ies gri, spălăcite sau cu tentă mov

De ce se întâmplă
VAE lipsă sau nepotrivit, sau un overflow fp16 la VAE pe SDXL.

Cum se repară
Încarcă VAE-ul care aparține familiei; pe SDXL folosește VAE-ul cu fix fp16.

Promptul lung e ignorat parțial

De ce se întâmplă
Limită de tokeni CLIP pe SD 1.5 și SDXL.

Cum se repară
Pune cuvintele importante primele sau treci la un model Flux, Qwen sau Z-Image cu encoder LLM.

Culorile sunt arse și contrastul e extrem

De ce se întâmplă
CFG prea mare pentru model sau CFG folosit pe un model distilat pentru ghidare.

Cum se repară
Scade CFG la 5-7 pe SDXL; folosește ghidare 3-4 și CFG 1 pe Flux dev.

Tiling sau subiecte duble la dimensiuni mari

De ce se întâmplă
Latent mult mai mare decât rezoluția de antrenament; modelul se repetă.

Cum se repară
Generează la dimensiunea nativă și mărește apoi, sau folosește hires-fix cu denoise 0.4.

Memorie insuficientă doar la final

De ce se întâmplă
Pasul de decodare VAE la dimensiune completă.

Cum se repară
Folosește decodare VAE pe plăci sau o dimensiune mai mică urmată de un upscaler.

Întrebări

Modelul copiază imagini din setul lui de antrenament?

Stochează greutăți, nu imagini, și nu poate recupera o poză de antrenament. Pot apărea duplicate apropiate ale unor imagini foarte frecvente (tablouri celebre, logo-uri), motiv pentru care e bine să nu le ceri în prompt.

De ce modelele noi au nevoie de mai multă memorie dacă ideea e aceeași?

Denoiser-e mai mari (12 miliarde de parametri pentru Flux față de 0.9 pentru SD 1.5), encodere de text mai mari și latente mai mari. Versiunile cuantizate fp8 și GGUF le aduc înapoi jos.

Care e diferența între checkpoint și model?

Checkpoint-ul e fișierul salvat al unui model (denoiser, adesea cu encoder și VAE incluse). Oamenii folosesc cuvintele interschimbabil.

De ce același seed dă o imagine diferită pe alt PC?

GPU diferit, precizie (fp16 vs bf16) sau implementare sampler; zgomotul e același, dar calculele diferă puțin. Pe aceeași mașină, cu aceleași setări, iese aceeași imagine.

Mai mulți pași ajută mereu?

Nu. Majoritatea sampler-elor converg în 25-30 de pași; după aia pierzi vreme degeaba. Modelele distilate se strică cu mai mulți pași.

Modele din acest ghid

Scris de
Ține inventarul: fiecare LoRA, fiecare cuantizare, fiecare fișier pe care cineva l-a redenumit în final_v2_REAL.safetensors. Măsoară hardware-ul în câte redări Wan încap înainte de cină. Îți va da cifra VRAM, apoi îți va spune că e greșită pentru că ai Chrome deschis. Greutăți deschise sau nu a fost livrat.
Toate ghidurile de Quartermaster

Mai multe ghiduri