Video znázorňuje princip generování obrázků pomocí generativního modelu Stable Diffusion, především odstraňováním obrazového šumu. Ukáže uživateli jak model vytváří obrázky z textových popisů a jak funguje celý proces v pozadí. Doprovodný text následně problematiku popisuje více do hloubky.

Generování obrázků s využitím AI je komplexní a vícefázový proces, který integruje různé technologie strojového a hlubokého učení. Základní princip spočívá v tom, že AI model, který byl trénován na rozsáhlém množství dat, dokáže na základě zadaného promptu vytvořit nový obrázek.

Mezi nejčastěji používané modely pro generování obrázků patří GAN (Generative Adversarial Networks) a difúzní modely. Pro účely tohoto popisu se zaměříme na princip difuzního modelu konkrétně na model latentní difúze, vzhledem k tomu, že práce se věnuje generátoru obrázků Stable Diffusion, který je populární implementací tohoto přístupu.

Latentní difúze je také důvod, proč Stable Diffusion dokáže generovat obrázky s vyšším rozlišením tak rychle – proces difúze není spouštěn na samotných pixelových obrázcích, ale na komprimovaném obraze v latentním prostoru.

Generování obrázků lze rozdělit do tří kroků.

1. Zadání promptu a ostatních parametrů

Prvním krokem v procesu generování obrázku je vyplnění parametrů pro generování včetně promptu, tedy jak již bylo zmíněno, textového popisu, který specifikuje, jak by měl výsledný obrázek vypadat. Tento krok je zásadní, protože poskytuje modelu informace o tom, co má být na obrázku zobrazeno.

2. Předzpracování promptu

Algoritmus nejprve analyzuje zadaný prompt.

  • Tokenizace
    • Výzva je rozdělena na jednotlivá slova, fráze nebo dokonce části slov. Například prompt fastfood shop by byl rozdělen na 3 tokeny: fast, food a shop. Tokeny jsou číselné reprezentace „slov“, které model může zpracovat.
    • Maximální množství tokenů na prompt je 77, respektive 75, jelikož ke každému promptu je přidán startovací a ukončovací token.
  • Embeding (vkládání)
    • Každý token se převede na jeho vektorovou reprezentaci. Vektor zachycuje význam slova v kontextu promptu.
  • Cross-attention (křížová pozornost)
    • Jde o klíčovou metodu Stable Diffusion, která umožňuje efektivní propojení textových promptů s generovanými obrazy.
    • Funguje tak, že model udržuje mapu vztahů mezi slovy a částmi obrazu, což umožňuje efektivní a přesné generování obrázků na základě textových popisů. Tento mechanismus je opakovaně využíván v celém procesu generování, čímž se zvyšuje přesnost a kvalita výsledného obrázku.
    • Výstup je využíván šumovým prediktorem v celém U-Netu (což je je typ konvoluční neuronové sítě). U-Net "čte" a "reaguje" na textový prompt pro vytváření kontextově relevantních obrázků.

3. Krokování samotného procesu generování

  • Model generuje náhodný tenzor2 v latentním prostoru, který slouží jako výchozí bod pro generování obrazu. Tento proces je řízen seedem generátoru náhodných čísel, který zajišťuje, že při stejném seedu bude generován stejný náhodný tenzor.
  • Variační Automatický Kodér (VAE) převede vstupní obraz (tenzor) do latentního prostoru.
  • Prediktor šumu odhaduje šum a následně ho odstraňuje z latentního tenzoru. Tento proces se opakuje v několika iteracích, kdy každá iterace zmenšuje množství šumu.
  • Po odstranění šumu z latentního tenzoru dekodér VAE převádí latentní reprezentaci zpět do původního obrazového prostoru.