Hur generativa AI-bildmodeller fungerar: diffusion, latenter och textkodare förklarade enkelt
Översikt
Varje nuvarande bildmodell är en brusreducerare. Under träning visas den miljontals bilder med ökande mängder slumpmässigt brus tillagt, tillsammans med bildens bildtext, och den lär sig att förutsäga vilket brus som lagts till. Vid generering körs processen baklänges: börja från rent brus, fråga modellen vilket brus som finns där givet din prompt, ta bort lite av det, upprepa tjugo eller trettio gånger, och en bild som matchar bildtexten dyker upp. Det är hela tricket; "diffusion" är namnet på den här gradvisa processen att lägga till och ta bort brus.
Att jobba med fullstora pixlar skulle vara alldeles för långsamt, så sedan Stable Diffusion 1.x sker brusreduceringen i ett komprimerat utrymme som kallas latent. Ett separat litet nätverk, VAE, pressar en 1024x1024-bild till ett 128x128 rutnät av siffror och expanderar tillbaka i slutet. Brusreduceraren (en U-Net i SD 1.5 och SDXL, en transformer i Flux, Qwen, Z-Image och videomodellerna) ser aldrig pixlar. Det är därför bildstorlekar måste vara multiplar av 8 eller 16, och varför VAE-dekodningssteget i slutet kan ta slut på minne på egen hand.
Prompten går in via en textkodare som omvandlar ord till en lista med siffror som brusreduceraren kan använda som villkor. SD 1.5 använder en CLIP-kodare med en gräns på 77 tokens, SDXL använder två, Flux lägger till en stor T5-språkmodell, och modellerna för 2025 och 2026 (Qwen Image, FLUX.2, Z-Image, Wan 2.2) använder fulla LLM:er som kodare. Den enda förändringen förklarar mest av skillnaden i hur prompts skrivs: tagglistor för CLIP-baserade modeller, naturliga meningar för LLM-baserade. En LoRA är slutligen en liten uppsättning korrigeringar till brusreducerarens vikter (och ibland kodaren) som styr vad den ritar; den lägger inte till ny kunskap från ingenstans, utan omväger det basmodellen redan lärt sig.
Referens
Namn | Typ | Vad det är |
|---|---|---|
Denoiser (U-Net / DiT) | component | |
VAE | component | Komprimerar bilder till latenter och tillbaka. En felaktig eller saknad VAE ger urvattnade eller lila bilder. Flux och nyare familjer levererar sina egna 16-kanals VAE:er. |
Text encoder | component | CLIP-L, CLIP-G, T5-XXL eller en LLM (Qwen2.5-VL, Mistral, Gemma). Bestämmer hur prompten förstås och hur lång den kan vara. |
Scheduler / sampler | setting | Schemat för hur mycket brus som ska tas bort vid varje steg och den numeriska metoden som används. Ändrar textur och konvergenshastighet, inte innehåll. |
Steps | setting | Hur många brusreduceringsiterationer. Destillerade modeller (Turbo, Lightning, Schnell, Klein) tränas för att behöva 1 till 8. |
CFG / guidance | setting | Classifier-free guidance: hur mycket prompt-betingad förutsägelse skjuts bort från den obetingade. För högt värde bränner färger; vägledningsdestillerade modeller (Flux dev) använder ett enda vägledningsvärde istället. |
Latent size | setting | |
Flow matching | training method |
Steg för steg
- Brus in: samplern skapar ett latent rutnät av slumpmässiga tal från seed. Byt seed och allt efter ändras.
- Prompt in: textkodaren omvandlar dina ord till inbäddningar. På CLIP-modeller klipps eller slängs allt efter 77 tokens bort; på LLM-baserade modeller funkar ett stycke fint.
- Samplern subtraherar det förutsagda bruset enligt schemat (Karras, exponential, simple, beta). Efter sista steget är latenten en ren bild i komprimerad form.
- Dekodning: VAE expanderar latenten till pixlar. Tiled VAE decode finns eftersom detta steg ensam kan överskrida minnet på ett 8 GB kort vid stora storlekar.
- Valfria andra pass: hires-fix lägger till lite brus igen och brusreducerar i större storlek; img2img startar från en befintlig bild istället för rent brus; inpainting begränsar ändringen till en mask.
- Videomodeller lägger till en tidsaxel till latenten (en 5-sekundersklipp är en 3D latent) och är annars samma loop, vilket är varför de behöver tio gånger minnet.
Exempel
Samma prompt genom tre arkitekturer
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-noder kopplade till komponenterna
Load Checkpoint -> MODEL (denoiser), CLIP (text encoder), VAE
CLIP Text Encode (prompt) -> KSampler (sampler, steps, CFG, seed) -> VAE Decode -> Save Image
Tips
- En modell kan inte rita något som inte fanns i dess träningsdata. Det är därför anime-finetunes kan tusentals karaktärer medan fotomodeller inte kan, och varför det finns en LoRA för nästan varje lucka.
- Finetunes (DreamShaper, Juggernaut, Illustrious, Pony) är samma arkitektur som basen med olika vikter; en LoRA för basen funkar oftast på finetunen, men en LoRA för en väldigt annorlunda finetune (Pony) funkar ofta inte.
- Destillerade modeller byter flexibilitet mot snabbhet. SDXL Lightning på 4 steg funkar för utkast; fullmodellen på 28 steg är bättre för slutresultat.
- Textkodaren är ofta den största filen. Flux med T5-XXL fp16 behöver 9 GB bara för kodaren, därför finns fp8 och GGUF-versioner.
- Vägledningsdestillering (Flux dev) och CFG är inte samma sak. Att använda CFG 7 på Flux dev ger brända bilder; använd inställningarna på modellens sida.
- Allt här körs på molnpartnerna exakt som lokalt; skillnaden är bara vem som äger GPU:n.
Felsökning
Bilder blir gråa, urvattnade eller med lila ton
Varför det händer
Saknad eller felaktig VAE, eller en fp16 VAE-overflow på SDXL.
Så löser du det
Ladda VAE:n som hör till familjen; på SDXL använd fp16-fix VAE:n.
Lång prompt ignoreras delvis
Varför det händer
CLIP-tokenbegränsning på SD 1.5 och SDXL.
Så löser du det
Sätt viktiga ord först, eller byt till en Flux-, Qwen- eller Z-Image-modell med LLM-kodare.
Färger bränns och kontrasten blir extrem
Varför det händer
CFG för högt för modellen, eller CFG används på en vägledningsdestillerad modell.
Så löser du det
Sänk CFG till 5 till 7 på SDXL; använd vägledning 3 till 4 och CFG 1 på Flux dev.
Tiling eller dubbla motiv vid stora storlekar
Varför det händer
Latent mycket större än träningsupplösningen; modellen upprepar sig.
Så löser du det
Generera i originalstorlek och förstora, eller använd hires-fix med 0.4 brusreducering.
Minnet tar slut först i slutet
Varför det händer
VAE-dekodningssteget i full storlek.
Så löser du det
Använd tiled VAE decode, eller en mindre utgångsstorlek följt av en förstoring.
Frågor
Kopierar modellen bilder från sin träningsdata?
Den lagrar vikter, inte bilder, och kan inte hämta en träningsbild. Nära dubbletter av mycket frekventa träningsbilder kan dyka upp (berömda målningar, logotyper), vilket är en anledning att undvika att prompta för dem.
Varför behöver nya modeller mer minne om idén är densamma?
Större brusreducerare (12 miljarder parametrar för Flux mot 0.9 för SD 1.5), större textkodare och större latenter. Kvantiserade fp8- och GGUF-versioner sänker dem igen.
Vad är skillnaden mellan en checkpoint och en modell?
En checkpoint är den sparade filen för en modell (brusreducerare, ofta med kodare och VAE inkluderade). Folk använder orden omväxlande.
Varför ger samma seed en annan bild på en annan dator?
Olika GPU, precision (fp16 vs bf16) eller sampler-implementering; bruset är samma men beräkningarna skiljer sig lite. Samma maskin, samma inställningar, samma bild.
Hjälper alltid fler steg?
Nej. De flesta samplers konvergerar vid 25 till 30 steg; mer än så är bortkastad tid. Destillerade modeller blir sämre med fler steg.
Länkar och källor
- 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
Modeller i den här guiden
Stable Diffusion 1.5-modeller
Stable Diffusion XL 1.0-modeller
Flux-modeller
Qwen-modeller
Zimage-modeller
Wan-modeller
Skriven av
Håller koll på lagret: varje LoRA, varje kvant, varje fil som någon döpt om till final_v2_REAL.safetensors. Mäter hårdvara i hur många Wan-renderingar som får plats före middag. Ger dig VRAM-siffran, för att sedan säga att den är fel för att du har Chrome öppet. Öppna vikter eller så levererades det inte.
Alla guider av Quartermaster
Relaterade guider
Kom igång med AI-bildgenerering: din första bild på tio minuter
14 aug 2025
Steg, CFG, samplers, schemaläggare och frön: förklaringar av genereringsinställningarna med säkra standardvärden
19 nov 2025
Checkpoint vs LoRA vs embedding vs ControlNet: vilken fil gör vad
8 okt 2025
Flux vs SDXL vs SD 1.5 vs Qwen vs Z-Image: vilken modelfamilj ska du använda 2026
22 maj 2026
Fler guider
VRAM-krav för alla populära AI-bild- och videomodeller (2026): full precision, FP8 och GGUF
6 okt 2026
CUDA slut på minne: hur mycket VRAM varje AI-modell behöver och hur man får plats med det
18 maj 2026
Alternativ till Civitai: var du hittar och laddar ner AI-modeller 2026
16 sep 2026

AMD Amuse år 2026: vad hände, och ska du fortfarande använda det?
9 okt 2026
Vad är en LoRA och hur använder man en i ComfyUI, Forge, Automatic1111 och i molnet
20 maj 2026
