Ga naar de hoofdinhoud
BVDNET
Arnhem · websites & automatiseringBVDNET
Modellen & Architectuur

Diffusiemodel

Een diffusiemodel is een soort AI die beelden maakt door te beginnen met willekeurige ruis en die stap voor stap weg te halen, gestuurd door een tekstprompt.

Ook bekend als: diffusiemodel, diffusion model, latent diffusion, denoising diffusion, DDPM

Een diffusiemodel is een soort AI die afbeeldingen, en inmiddels ook video, maakt uit een tekstbeschrijving. Tijdens de training ziet het foto's die stap voor stap onder willekeurige ruis verdwijnen, en leert het dat terug te draaien. Voor een nieuw beeld begint het met pure ruis en haalt het die in stappen weg, gestuurd door je prompt. Stable Diffusion werkt zo; een webshop kan het gebruiken voor banners.

Hoe werkt het?

Het idee komt van Sohl-Dickstein e.a. (2015), geïnspireerd door de natuurkunde: vernietig de structuur in data langzaam met een voorwaarts diffusieproces, en leer daarna het omgekeerde proces dat die structuur herstelt. Ho, Jain en Abbeel (2020) maakten er beeldgeneratie van hoge kwaliteit van met DDPM (denoising diffusion probabilistic models):

  1. Voorwaarts proces: neem een trainingsafbeelding en voeg in elk van 1.000 stappen een beetje gaussische ruis toe, tot er alleen ruis over is.
  2. Training: een neuraal netwerk, in DDPM een U-Net, leert voorspellen welke ruis er bij een bepaalde stap is toegevoegd.
  3. Omgekeerd proces: om te genereren begin je met pure ruis, en het netwerk haalt stap voor stap zijn schatting van de ruis weg, tot er een beeld verschijnt.

Elke stap is een volledige doorgang door het netwerk, en dat maakt genereren traag. Samplers zoals DDIM (2020) maken goede beelden 10 tot 50 keer sneller dan DDPM; de bibliotheek diffusers gebruikt standaard 50 stappen.

Hoe stuurt een tekstprompt het beeld?

Een tekstencoder zet de prompt om in embeddings, en het netwerk dat de ruis weghaalt leest die bij elke stap via cross-attention. Stable Diffusion v1 gebruikt CLIP ViT-L/14 van OpenAI als tekstencoder (modelkaart); DALL-E 3 gebruikt T5 XXL van Google (paper over DALL-E 3).

Classifier-free guidance (Ho en Salimans, 2022) bepaalt hoe sterk het beeld de prompt volgt. Het model wordt getraind met en zonder prompt. Bij elke stap maakt het van allebei een voorspelling en duwt het resultaat verder in de richting van de prompt; een hogere guidance scale betekent een sterkere duw en minder variatie. ControlNet (2023) voegt ruimtelijke sturing toe aan een getraind model, zoals randen, een dieptekaart of een lichaamshouding.

Waarom werken in een latente ruimte?

Diffusie op de pixels zelf kostte vaak honderden GPU-dagen training. Rombach e.a. (december 2021) verplaatsten het proces naar de gecomprimeerde latente ruimte van een voorgetrainde autoencoder. In Stable Diffusion, uitgebracht in augustus 2022, verkleint die autoencoder elke zijde van het beeld met een factor 8: een afbeelding van 512 × 512 wordt een raster van 64 × 64 met vier kanalen. DALL-E 3 werkt in de latente ruimte van dezelfde autoencoder.

Hoe verhoudt diffusie zich tot GAN's?

Vóór diffusie maakten GAN's de beste beelden, maar ze zijn vaak lastig te trainen en kunnen instorten zonder zorgvuldig gekozen instellingen. In 2021 lieten Dhariwal en Nichol zien dat diffusiemodellen de beste GAN's verslaan op beeldkwaliteit op ImageNet, terwijl ze meer van de variatie in de data dekken. De prijs is snelheid: elk beeld kost veel doorgangen door het netwerk.

Waar gaat het mis?

De modelkaart van Stable Diffusion v1 (2022) noemt de beperkingen: het model kan geen leesbare tekst maken, heeft moeite met composities zoals "a red cube on top of a blue sphere", maakt soms fouten in gezichten en mensen, werkt slechter in andere talen dan Engels, reproduceert sommige beelden die vaak in de trainingsdata voorkomen, en neemt vaak wit en westers als standaard. Latere modellen verbeterden een deel hiervan; DALL-E 3 kan tekst in een beeld zetten, maar niet betrouwbaar.

Is diffusie alleen voor beelden?

OpenAI beschrijft zijn videomodel Sora (februari 2024) als een diffusion transformer (technisch rapport). De techniek wordt ook voor tekst gebruikt: de taalmodellen Nemotron-Labs Diffusion van NVIDIA (2026) kunnen met diffusie meerdere tokens tegelijk genereren (modelkaart).