Model
.ai
sledujeme otevřené AI modely

Jak fungují generativní AI modely pro obrázky: jednoduše o difuzi, latentních prostorech a textových enkodérech

Téma: Modely
Autor: Quartermaster
Publikováno 28. Srp 2025

Přehled

Každý současný model pro obrázky je odšumovač. Během tréninku mu ukazují miliony obrázků s postupně přidávaným náhodným šumem spolu s popiskem každého obrázku a model se učí předpovídat, jaký šum byl přidán. Při generování se proces obrací: začíná se s čistým šumem, model se ptá, jaký šum tam je vzhledem k tvému promptu, trochu ho odstraní, opakuje to dvacet až třicetkrát a vznikne obrázek odpovídající popisku. To je celý trik; „difuze“ je název pro tento postup postupného přidávání a odstraňování šumu.
Práce s plnými pixely by byla příliš pomalá, takže od Stable Diffusion 1.x se odšumování děje v komprimovaném prostoru zvaném latentní prostor. Samostatná malá síť, VAE, stlačí obrázek 1024x1024 do mřížky 128x128 čísel a na konci ho zase rozbalí. Odšumovač (U-Net v SD 1.5 a SDXL, transformer ve Flux, Qwen, Z-Image a video modelech) nikdy nevidí pixely. Proto musí být velikosti obrázků násobky 8 nebo 16 a proč krok dekódování VAE na konci může sám vyčerpat paměť.
Prompt jde přes textový enkodér, který převede slova na seznam čísel, podle kterých se odšumovač řídí. SD 1.5 používá jeden CLIP enkodér s limitem 77 tokenů, SDXL používá dva, Flux přidává velký jazykový model T5 a modely z let 2025 a 2026 (Qwen Image, FLUX.2, Z-Image, Wan 2.2) používají plné LLM jako enkodéry. Tahle jediná změna vysvětluje většinu rozdílů v tom, jak se píšou prompty: seznamy tagů pro modely založené na CLIP, přirozené věty pro ty s LLM. LoRA je nakonec malá sada oprav vah odšumovače (a někdy i enkodéru), která ovlivňuje, co model kreslí; nepřidává novou znalost z ničeho, jen přehodnocuje, co už základní model umí.

Reference

Název
Typ
Co to je
Odšumovač (U-Net / DiT)
component
Hlavní síť. Předpovídá šum v latentním prostoru podle promptu a kroku. U-Net v SD 1.5 a SDXL; difuzní transformer (DiT / MMDiT) ve Flux, FLUX.2, Qwen, Z-Image, Wan, LTX, H3.
VAE
component
Komprimuje obrázky do latentů a zpět. Špatný nebo chybějící VAE dává vybledlé nebo fialové obrázky. Flux a novější rodiny mají vlastní 16kanálové VAE.
Textový enkodér
component
CLIP-L, CLIP-G, T5-XXL nebo LLM (Qwen2.5-VL, Mistral, Gemma). Určuje, jak se prompt chápe a jak dlouhý může být.
Plánovač / sampler
setting
Plán, kolik šumu se má odstranit v každém kroku a použitá numerická metoda. Mění texturu a rychlost konvergence, ne obsah.
Kroky
setting
Kolik iterací odšumování. Destilované modely (Turbo, Lightning, Schnell, Klein) jsou trénované na 1 až 8 kroků.
CFG / vedení
setting
Classifier-free guidance: jak moc se předpověď podle promptu odklání od nepodmíněné. Příliš vysoké hodnoty spálí barvy; guidance-distilované modely (Flux dev) používají jednu hodnotu vedení.
Velikost latentního prostoru
setting
Velikost obrázku dělená 8 (SD) nebo 16 (Flux, Wan). Modely kreslí nejlépe blízko rozlišení, na kterém byly trénované.
Flow matching
training method
Náhrada klasických plánů šumu pro difuzi od roku 2024+ (Flux, SD3, Wan, Z-Image). Stejný princip, přímější cesta od šumu k obrázku, potřebuje méně kroků.

Krok za krokem

  1. Šum dovnitř: sampler vytvoří latentní mřížku náhodných čísel ze seed hodnoty. Změna seedu změní všechno dál.
  2. Prompt dovnitř: textový enkodér převede tvá slova na embeddingy. U CLIP modelů se přes 77 tokenů rozdělí nebo zahodí; u LLM modelů je v pohodě i odstavec.
  3. Každý krok: odšumovač se spustí dvakrát u SD a SDXL (s promptem a bez něj); rozdíl, vynásobený CFG, posune latent směrem k promptu. Flux dev běží jednou s vestavěnou hodnotou vedení.
  4. Sampler odečte předpovězený šum podle plánu (Karras, exponenciální, jednoduchý, beta). Po posledním kroku je latent čistý obrázek v komprimované podobě.
  5. Dekódování: VAE rozbalí latent zpět na pixely. Existuje dlaždicové dekódování VAE, protože tenhle krok může sám překročit paměť 8GB karty u velkých rozměrů.
  6. Volitelné druhé průchody: hires-fix přidá trochu šumu a odšumuje ve větší velikosti; img2img začíná z existujícího obrázku místo čistého šumu; inpainting omezuje změnu na masku.
  7. Video modely přidávají časovou osu do latentního prostoru (5sekundový klip je jeden 3D latent) a jinak je to stejný cyklus, proto potřebují desetkrát víc paměti.

Příklady

Stejný prompt přes tři architektury

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

Uzly ComfyUI namapované na komponenty

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

Tipy

  • Model nemůže nakreslit něco, co nebylo v jeho tréninkových datech. Proto anime fine-tuny znají tisíce postav a foto modely ne, a proč existuje LoRA skoro na každou mezeru.
  • Fine-tuny (DreamShaper, Juggernaut, Illustrious, Pony) mají stejnou architekturu jako základní model s jinými váhami; LoRA pro základ obvykle funguje i na fine-tunu, LoRA pro hodně odlišný fine-tun (Pony) často ne.
  • Destilované modely obětují flexibilitu pro rychlost. SDXL Lightning na 4 krocích je dobrý na náčrty; plný model na 28 krocích je lepší na finální obrázky.
  • Textový enkodér je často největší soubor. Flux s T5-XXL fp16 potřebuje 9 GB jen na enkodér, proto existují verze fp8 a GGUF.
  • Guidance distillation (Flux dev) a CFG nejsou to samé. Použití CFG 7 na Flux dev dává spálené obrázky; použij nastavení na stránce modelu.
  • Vše tady běží na cloudových partnerech stejně jako lokálně; rozdíl je jen v tom, kdo vlastní GPU.

Řešení problémů

Obrázky jsou šedé, vybledlé nebo mají fialový nádech

Proč k tomu dochází
Chybějící nebo nesprávný VAE, nebo přetečení fp16 VAE na SDXL.

Jak to opravit
Načti VAE patřící k rodině; u SDXL použij fp16-fix VAE.

Dlouhý prompt je částečně ignorován

Proč k tomu dochází
Limit tokenů CLIP u SD 1.5 a SDXL.

Jak to opravit
Dej důležitá slova na začátek, nebo přejdi na Flux, Qwen nebo Z-Image s LLM enkodérem.

Barvy jsou spálené a kontrast extrémní

Proč k tomu dochází
Příliš vysoké CFG pro model, nebo CFG použité na guidance-distilovaný model.

Jak to opravit
Sniž CFG na 5 až 7 u SDXL; použij vedení 3 až 4 a CFG 1 u Flux dev.

Dlaždicování nebo zdvojené objekty u velkých rozměrů

Proč k tomu dochází
Latentní prostor mnohem větší než tréninkové rozlišení; model se opakuje.

Jak to opravit
Generuj v nativní velikosti a pak zvětši, nebo použij hires-fix s 0.4 odšumováním.

Nedostatek paměti jen na úplném konci

Proč k tomu dochází
Krok dekódování VAE v plné velikosti.

Jak to opravit
Použij dlaždicové dekódování VAE, nebo menší výstupní velikost následovanou zvětšovačem.

Otázky

Kopíruje model obrázky ze svého tréninku?

Ukládá váhy, ne obrázky, a nemůže vyvolat tréninkový obrázek. Mohou se objevit téměř duplikáty velmi častých tréninkových obrázků (slavné obrazy, loga), což je důvod, proč je lepší je nepřipomínat v promptu.

Proč nové modely potřebují víc paměti, když je princip stejný?

Větší odšumovače (12 miliard parametrů u Flux proti 0.9 u SD 1.5), větší textové enkodéry a větší latentní prostory. Kvantované verze fp8 a GGUF je zase zmenšují.

Jaký je rozdíl mezi checkpointem a modelem?

Checkpoint je uložený soubor modelu (odšumovač, často s enkodérem a VAE). Lidé tyto pojmy používají zaměnitelně.

Proč stejný seed dává jiný obrázek na jiném PC?

Jiná GPU, přesnost (fp16 vs bf16) nebo implementace sampleru; šum je stejný, ale aritmetika se mírně liší. Na stejném stroji, se stejnými nastaveními, je obrázek stejný.

Pomáhá víc kroků vždycky?

Ne. Většina samplerů konverguje do 25 až 30 kroků; víc už je zbytečné. Destilované modely se při více krocích zhoršují.

Modely v tomto návodu

Napsal
Spravuje zásoby: každý LoRA, každý kvant, každý soubor, který někdo přejmenoval na final_v2_REAL.safetensors. Měří hardware podle toho, kolik Wan renderů se vejde před večeří. Řekne ti číslo VRAM, pak ti řekne, že je špatné, protože máš otevřený Chrome. Otevřené váhy, nebo to nevyplulo.
Všechny průvodce od Quartermaster

Další návody