Hoe generatieve AI-beeldmodellen werken: diffusie, latents en tekstencoders eenvoudig uitgelegd
Overzicht
Elk huidig beeldmodel is een ruisverwijderaar. Tijdens het trainen krijgt het miljoenen beelden te zien met steeds meer toegevoegde willekeurige ruis, samen met de bijschrift van elk beeld, en leert het te voorspellen welke ruis is toegevoegd. Bij het genereren loopt het proces achteruit: begin met pure ruis, vraag het model welke ruis er is gegeven je prompt, verwijder een beetje daarvan, herhaal twintig of dertig keer, en er verschijnt een beeld dat bij het bijschrift past. Dat is de hele truc; "diffusie" is de naam van dit geleidelijke ruis-toevoegen en ruis-verwijderen proces.
Werken met volledige pixels zou veel te traag zijn, dus sinds Stable Diffusion 1.x gebeurt het ruisverwijderen in een gecomprimeerde ruimte die latent wordt genoemd. Een apart klein netwerk, de VAE, perst een 1024x1024 beeld samen tot een 128x128 raster van getallen en zet het aan het eind weer uit. De ruisverwijderaar (een U-Net in SD 1.5 en SDXL, een transformer in Flux, Qwen, Z-Image en de videomodellen) ziet nooit pixels. Daarom moeten beeldformaten veelvouden van 8 of 16 zijn, en kan de VAE decodeerfase aan het eind soms zelf geheugen tekortkomen.
De prompt gaat via een tekstencoder, die woorden omzet in een lijst getallen waarop de ruisverwijderaar kan reageren. SD 1.5 gebruikt één CLIP-encoder met een limiet van 77 tokens, SDXL gebruikt er twee, Flux voegt een grote T5-taalmodel toe, en de modellen van 2025 en 2026 (Qwen Image, FLUX.2, Z-Image, Wan 2.2) gebruiken volledige LLM's als encoders. Die ene verandering verklaart het grootste deel van het verschil in hoe prompts worden geschreven: taglijsten voor CLIP-gebaseerde modellen, natuurlijke zinnen voor LLM-gebaseerde. Een LoRA is tenslotte een kleine set correcties op de ruisverwijderaar-gewichten (en soms de encoder) die stuurt wat het model tekent; het voegt geen nieuwe kennis toe, maar herweegt wat het basismodel al geleerd heeft.
Naslag
Naam | Type | Wat het is |
|---|---|---|
Ruisverwijderaar (U-Net / DiT) | component | |
VAE | component | Perst beelden naar latents en terug. Een verkeerde of ontbrekende VAE geeft verbleekte of paarse beelden. Flux en nieuwere families leveren hun eigen 16-kanaals VAEs. |
Tekstencoder | component | CLIP-L, CLIP-G, T5-XXL of een LLM (Qwen2.5-VL, Mistral, Gemma). Bepaalt hoe de prompt wordt begrepen en hoe lang die kan zijn. |
Scheduler / sampler | setting | Het schema van hoeveel ruis er bij elke stap wordt verwijderd en de gebruikte numerieke methode. Verandert textuur en convergentiesnelheid, niet de inhoud. |
Stappen | setting | Hoeveel ruisverwijderingsiteraties. Gedistilleerde modellen (Turbo, Lightning, Schnell, Klein) zijn getraind om 1 tot 8 te gebruiken. |
CFG / begeleiding | setting | Classifier-free guidance: hoeveel de prompt-geconditioneerde voorspelling wordt weggeduwd van de ongeconditioneerde. Te hoog verbrandt kleuren; begeleiding-gedistilleerde modellen (Flux dev) gebruiken één enkele begeleidingswaarde. |
Latent grootte | setting | |
Flow matching | training method |
Stap voor stap
- Ruis erin: de sampler maakt een latent raster van willekeurige getallen uit de seed. Verander de seed en alles stroomafwaarts verandert mee.
- Prompt erin: de tekstencoder zet je woorden om in embeddings. Bij CLIP-modellen wordt alles na 77 tokens opgesplitst of weggegooid; bij LLM-gebaseerde modellen is een alinea prima.
- Elke stap: de ruisverwijderaar wordt twee keer uitgevoerd op SD en SDXL (met en zonder prompt); het verschil, vermenigvuldigd met CFG, wijst de latent richting de prompt. Flux dev draait één keer met een ingebakken begeleidingswaarde.
- De sampler trekt de voorspelde ruis af volgens het schema (Karras, exponentieel, simpel, beta). Na de laatste stap is de latent een schoon beeld in gecomprimeerde vorm.
- Decoderen: de VAE zet de latent om naar pixels. Tiled VAE decode bestaat omdat deze stap alleen al het geheugen van een 8 GB kaart kan overschrijden bij grote formaten.
- Optionele tweede rondes: hires-fix voegt wat ruis toe en verwijdert die weer bij een grotere grootte; img2img begint met een bestaand beeld in plaats van pure ruis; inpainting beperkt de verandering tot een masker.
- Videomodellen voegen een tijdas toe aan de latent (een clip van 5 seconden is één 3D latent) en zijn verder dezelfde lus, daarom hebben ze tien keer zoveel geheugen nodig.
Voorbeelden
Dezelfde prompt door drie architecturen
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
ComfyUI knooppunten gekoppeld aan de componenten
Load Checkpoint -> MODEL (denoiser), CLIP (text encoder), VAE
CLIP Text Encode (prompt) -> KSampler (sampler, steps, CFG, seed) -> VAE Decode -> Save Image
Tips
- Een model kan niet tekenen wat niet in zijn trainingsdata zat. Daarom kennen anime-finetunes duizenden personages en fotomodellen niet, en bestaat er bijna voor elke kloof een LoRA.
- Finetunes (DreamShaper, Juggernaut, Illustrious, Pony) hebben dezelfde architectuur als hun basis met andere gewichten; een LoRA voor de basis werkt meestal op de finetune, een LoRA voor een heel andere finetune (Pony) vaak niet.
- Gedistilleerde modellen ruilen flexibiliteit in voor snelheid. SDXL Lightning met 4 stappen is prima voor schetsen; het volledige model met 28 stappen is beter voor eindresultaten.
- De tekstencoder is vaak het grootste bestand. Flux met T5-XXL fp16 heeft 9 GB nodig alleen voor de encoder, daarom bestaan er fp8 en GGUF-versies.
- Begeleidingsdistillatie (Flux dev) en CFG zijn niet hetzelfde. Een CFG van 7 op Flux dev geeft verbrande beelden; gebruik de instellingen op de modelpagina.
- Alles hier draait op de cloudpartners precies hetzelfde als lokaal; het verschil is alleen wie de GPU bezit.
Probleemoplossing
Beelden komen grijs, verbleekt of met paarse tint uit
Waarom het gebeurt
Ontbrekende of verkeerde VAE, of een fp16 VAE overflow op SDXL.
Zo los je het op
Laad de VAE die bij de familie hoort; gebruik op SDXL de fp16-fix VAE.
Lange prompt wordt deels genegeerd
Waarom het gebeurt
CLIP tokenlimiet op SD 1.5 en SDXL.
Zo los je het op
Zet de belangrijkste woorden vooraan, of stap over naar een Flux-, Qwen- of Z-Image-model met een LLM-encoder.
Kleuren zijn verbrand en contrast is extreem
Waarom het gebeurt
CFG te hoog voor het model, of CFG gebruikt op een begeleiding-gedistilleerd model.
Zo los je het op
Verlaag CFG naar 5 tot 7 op SDXL; gebruik begeleiding 3 tot 4 en CFG 1 op Flux dev.
Tegels of dubbele onderwerpen bij grote formaten
Waarom het gebeurt
Latent veel groter dan de trainingsresolutie; het model herhaalt zichzelf.
Zo los je het op
Genereer op native grootte en schaal op, of gebruik hires-fix met 0.4 ruisverwijdering.
Geheugen tekort alleen aan het eind
Waarom het gebeurt
De VAE decodeerfase op volledige grootte.
Zo los je het op
Gebruik tiled VAE decode, of een kleinere uitvoergrootte gevolgd door een opschaler.
Vragen
Kopieert het model beelden uit zijn trainingsset?
Het slaat gewichten op, geen beelden, en kan geen trainingsfoto ophalen. Bijna-dubbele beelden van zeer frequente trainingsbeelden kunnen verschijnen (beroemde schilderijen, logo's), wat een reden is om die niet te prompten.
Waarom hebben nieuwe modellen meer geheugen nodig als het idee hetzelfde is?
Grotere ruisverwijderaars (12 miljard parameters voor Flux tegenover 0,9 voor SD 1.5), grotere tekstencoders en grotere latents. Gequantiseerde fp8 en GGUF-versies brengen dat weer omlaag.
Wat is het verschil tussen een checkpoint en een model?
Een checkpoint is het opgeslagen bestand van een model (ruisverwijderaar, vaak met encoder en VAE erbij). Mensen gebruiken de woorden door elkaar.
Waarom geeft dezelfde seed een ander beeld op een andere pc?
Andere GPU, precisie (fp16 vs bf16) of sampler-implementatie; de ruis is hetzelfde maar de rekenkunde verschilt iets. Zelfde machine, zelfde instellingen, zelfde beeld.
Helpt een hoger aantal stappen altijd?
Nee. De meeste samplers convergeren rond 25 tot 30 stappen; daarna verspil je tijd. Gedistilleerde modellen worden slechter bij meer stappen.
Links en bronnen
- Denoising Diffusion Probabilistic Models (Ho et al., 2020)
- High-Resolution Image Synthesis with Latent Diffusion Models (Rombach et al., 2022)
- Flow Matching for Generative Modeling (Lipman et al., 2022)
- Flux family page
- SD 1.5 family page
- BitVector web appAD
Modellen in deze gids
Stable Diffusion 1.5-modellen
Stable Diffusion XL 1.0-modellen
Flux-modellen
Qwen-modellen
Zimage-modellen
Wan-modellen
Geschreven door
Beheert de voorraad: elke LoRA, elke quant, elk bestand dat iemand hernoemde naar final_v2_REAL.safetensors. Meet hardware in hoeveel Wan-renders er voor het avondeten passen. Geeft je het VRAM-cijfer, om je daarna te vertellen dat het fout is omdat je Chrome open hebt staan. Open gewichten of het is niet verzonden.
Alle gidsen door Quartermaster
Verwante gidsen
Aan de slag met AI-beeldgeneratie: je eerste afbeelding in tien minuten
14 aug 2025
Stappen, CFG, samplers, schedulers en seeds: de generatie-instellingen uitgelegd met veilige standaardwaarden
19 nov 2025
Checkpoint vs LoRA vs embedding vs ControlNet: welk bestand doet wat
8 okt 2025
Flux vs SDXL vs SD 1.5 vs Qwen vs Z-Image: welke modelfamilie gebruik je in 2026
22 mei 2026
Meer gidsen
VRAM-vereisten voor elke populaire AI-beeld- en videomodel (2026): volledige precisie, FP8 en GGUF
6 okt 2026
CUDA geheugen vol: hoeveel VRAM elk AI-model nodig heeft en hoe het past
18 mei 2026
Civitai-alternatieven: waar je AI-modellen kunt vinden en downloaden in 2026
16 sep 2026

AMD Amuse in 2026: wat is er gebeurd en moet je het nog gebruiken?
9 okt 2026
Wat is een LoRA en hoe gebruik je er een in ComfyUI, Forge, Automatic1111 en in de cloud
20 mei 2026
