Difuzní model je typ generativního modelu, který vytváří nová data (nejčastěji obrázky) pomocí procesu postupného odstraňování šumu. Princip je inspirován termodynamikou – konkrétně šířením (difuzí) plynu. Model se učí, jak z čistého obrazu udělat chaos a, co je nejdůležitější, jak tento proces obrátit.
Proces funguje ve dvou hlavních fázích:
Do čistého trénovacího obrázku se postupně v mnoha krocích přidává náhodný šum (Gaussovský šum), dokud se obrázek nezmění v naprostý chaos, kde není poznat původní obsah.
Toto je fáze, kde probíhá „kouzlo“. Neuronová síť (obvykle architektury U-Net) se učí předpovídat, kolik šumu bylo v daném kroku přidáno, a tento šum odečíst.
Aby model věděl, co má z šumu vytvořit (např. „kočku na měsíci“), používá se mechanismus Conditioning (podmiňování):
1. Textový prompt je převeden na číselný vektor pomocí modelu **CLIP** (od OpenAI). 2. Tento vektor je "vstříknut" do procesu zpětné difuze pomocí mechanismu [[it_encyklopedie:attention_mechanism|Attention]]. 3. Model pak při odstraňování šumu preferuje ty tvary, které statisticky odpovídají vašemu popisu.
Generování obrázků ve vysokém rozlišení je výpočetně extrémně drahé. Model Stable Diffusion přinesl revoluci tím, že difuzní proces neprovádí přímo na pixelech, ale v tzv. latentním prostoru (komprimované verzi obrázku vytvořené pomocí autoencoderu).
| Vlastnost | GAN | Difuzní modely |
|---|---|---|
| Kvalita obrazu | Velmi vysoká, ale někdy trpí artefakty. | Špičková, velmi detailní a realistická. |
| Diverzita | Nízká (často generuje podobné věci). | Vysoká (dokáže pokrýt celý rozsah dat). |
| Rychlost | Velmi rychlé (jeden průchod sítí). | Pomalejší (vyžaduje desítky kroků čištění). |
| Stabilita učení | Špatná (sítě se mohou zhroutit). | Výborná (trénování je velmi stabilní). |
Zajímavost: Proces difuze je v podstatě jako pozorování mraků. Vidíte náhodné tvary, ale vaše mysl (v tomto případě neuronová síť podpořená textovým zadáním) v nich začne hledat a zvýrazňovat známé objekty, dokud se tam skutečně neobjeví.