Kapitel 21 · Diffusion · 9 min

Ein Bild erzeugen, indem man Rauschen entfernt

Stable Diffusion, DALL-E, Midjourney. Der umgekehrte Entrauschungs-Prozess, die Rolle von CLIP, und warum U-Net den Transformern weicht.

Eine andere Familie

Alles, was wir bisher gesehen haben, beschreibt Transformer, die den nächsten Token vorhersagen. Das ist die Architektur, die Sprache, Code und zunehmend auch Video und Audio dominiert.

Aber wenn du einen Prompt in Midjourney, DALL-E oder Stable Diffusion eingibst, ist das nicht das, was passiert. Das Bild wird nicht Pixel für Pixel von links nach rechts erzeugt. Es erscheint überall gleichzeitig, in aufeinanderfolgenden Schritten verfeinert.

Das ist das Werk einer ganz anderen Modellfamilie: der Diffusionsmodelle.

Die zentrale Idee: Entrauschen lernen

Der Diffusionsprozess beruht auf einer fast zu einfachen Intuition. Wenn ich ein scharfes Bild nehme und ihm schrittweise Gaußsches Rauschen hinzufüge, wird es irgendwann ununterscheidbar vom reinen Rauschen. Wenn ich lerne, diesen Prozess zu invertieren — Rauschen schrittweise zu entfernen —, dann kann ich vom reinen Rauschen ausgehen und mit einem scharfen Bild enden.

Während des Trainings:

  1. Wir nehmen ein Bild aus dem Datensatz
  2. Wir fügen ihm Rauschen gemäß einem vordefinierten Plan hinzu (zum Beispiel T = 1000 Schritte)
  3. Wir trainieren ein Netzwerk, das hinzugefügte Rauschen vorherzusagen, gegeben das verrauschte Bild und den Schritt t

So lernt das Modell, für jedes Rauschniveau zu erkennen, was „echtes Bild" und was „hinzugefügtes Rauschen" ist.

Bei der Inferenz invertieren wir: Wir starten von reinem Rauschen, und bei jedem Schritt sagt das Modell das Rauschen voraus, wir ziehen es ab und beginnen von vorn. Nach T Schritten erhalten wir ein plausibles Bild — eines, das der gelernten Verteilung ähnelt.

Probier das Entrauschen aus

Die Animation startet bei reinem Rauschen und entrauscht es Schritt für Schritt. Jeder Schritt folgt dem im Training gelernten Gradienten, geleitet vom CLIP-Text-Embedding. Bei 5 Schritten ist das Ergebnis verschwommen; bei 50 ist es scharf.

Spiele mit der Anzahl der Schritte. Bei 5 Schritten bleibt das Bild körnig — das Modell hat keine Zeit zu verfeinern. Bei 50 Schritten wird es scharf, aber das ist zehnmal mehr Compute. Die meisten modernen Sampler (DDIM, DPM-Solver) erreichen nahezu optimale Qualität in 20 bis 30 Schritten.

Ein gezieltes Bild ansteuern: die Guidance

Reines Rauschen ist für alle Prompts dasselbe. Woher weiß das Modell, dass wir einen Sonnenuntergang wollen und keinen Hund? Die Antwort: Wir konditionieren das Modell auf den Text.

Während des Trainings liefern wir dem Netzwerk neben dem verrauschten Bild und dem Schritt ein Embedding des Texts, der zum Bild gehört (oft ein Encoder vom Typ CLIP). So lernt das Netzwerk konditionierte Rauschvorhersagen: „Wenn das Bild einen Sonnenuntergang beschreibt, sieht das Rauschen so aus."

Bei der Inferenz berechnen wir zwei Vorhersagen: eine mit dem Prompt, eine ohne (oder mit einem leeren Prompt). Die Technik des Classifier-Free Guidance (CFG) besteht darin, in Richtung des Prompts zu extrapolieren:

finale_vorhersage = vorhersage_ohne_prompt + guidance × (vorhersage_mit_prompt − vorhersage_ohne_prompt)

Der Guidance-Koeffizient (CFG-Scale) steuert, wie weit man sich vom Natürlichen entfernt, um dem Prompt zu folgen. Bei CFG=0 ignoriert das Modell den Text; bei CFG=7 folgt das Bild treu dem Prompt, ohne künstlich zu wirken; jenseits von 12 wird es übersättigt und verliert seine feinen Details.

Latent Diffusion: weniger Compute betreiben

Ein Bild von 512×512 hat 786.432 Pixel (3 Kanäle × 512 × 512). 1.000 Entrausch-Schritte auf so vielen Pixeln durchzuführen, ist sehr teuer. Stable Diffusion hat einen Trick populär gemacht: in einem komprimierten latenten Raum arbeiten.

Bevor wir das Diffusionsmodell trainieren, trainieren wir einen Autoencoder (einen VAE), der die Bilder in einen latenten Raum 64×64×4 komprimiert — etwa 48× kleiner. Die Diffusion gilt dann nur für dieses Latent, nicht für die Pixel. Am Ende des Entrauschens dekodieren wir das Latent zum endgültigen Bild.

Das ist es, was Stable Diffusion auf einer Consumer-GPU in wenigen Sekunden ausführbar macht — während ein äquivalentes Pixel-basiertes Modell einen Cluster erfordern würde.

CLIP: die Brücke zwischen Text und Bild

Um auf Text zu konditionieren, braucht man eine textuelle Repräsentation, die einen Raum mit der der Bilder teilt. Das ist die Rolle von CLIP (Contrastive Language-Image Pretraining), das von OpenAI auf 400 Millionen Bild-/Bildunterschrift-Paaren trainiert wurde.

CLIP lernt zwei Encoder — einen für Bilder, einen für Text —, die Embeddings in einem gemeinsamen Raum erzeugen. Eine Bildunterschrift und ihr Zielbild haben nahe Embeddings; eine unzusammenhängende Bildunterschrift ist weit entfernt. Diese Ausrichtung erlaubt es dem Diffusionsmodell, textuelle Prompts zu verstehen, die es im Training nie genau so gesehen hat.

U-Net vs. Transformer (DiT)

Lange Zeit war die Referenzarchitektur für Diffusion das U-Net: ein U-förmiges konvolutionales Netzwerk mit Skip Connections, die feine Details bewahren. Stable Diffusion 1.4, 1.5 und 2 verwenden alle U-Nets.

Aber 2022 schlugen Peebles und Xie DiT vor (Diffusion Transformer): das U-Net durch einen reinen Transformer ersetzen. Jeder „Patch" des Bildes wird wie ein Token behandelt, mit voller Attention auf alle anderen Patches. Keine konvolutionale Pyramide mehr, keine Skip Connections — nur gestapelte Transformer-Blöcke.

Stable Diffusion 3, FLUX, Sora (Video) — alle aktuellen Architekturen sind zum Transformer migriert. Warum? Weil Transformer besser skalieren: Wir finden dieselben Scaling Laws wie für Sprache wieder. Eine Verdopplung des Compute auf einem DiT verbessert die Bilder vorhersagbar.

Der Sampler: DDPM, DDIM, DPM-Solver

Der Sampler ist der Algorithmus, der bei jedem Schritt entscheidet, wie die Rauschvorhersage mit dem aktuellen Zustand kombiniert wird, um den nächsten Schritt zu erzeugen.

SamplerTypische SchritteBesonderheit
DDPM1000Stochastisch, treu zum Training, langsam
DDIM20–50Deterministisch, mit DDPM vergleichbare Qualität in deutlich weniger Schritten
DPM-Solver10–25ODE-Solver, noch schneller
Euler / Heun20–30Klassische ODE-Methoden, einfach und robust
LCM4–8Latent Consistency Distillation, ultraschnell

Die Wahl des Samplers ist einer der zugänglichsten Hebel, um Geschwindigkeit gegen Qualität abzuwägen.

Warum diese Familie neben den Transformern existiert

Man könnte fragen: Warum erzeugt man Bilder nicht wie Text, Token für Token? Die Antwort ist subtil.

Bei Text ist die Reihenfolge natürlich: Wir lesen von links nach rechts, und jedes Wort hängt von den vorherigen ab. Bei einem Bild gibt es keine kanonische Reihenfolge. Pixel für Pixel zu erzeugen, führt Artefakte ein (die ersten Pixel haben nicht den Kontext der letzten). Die Diffusion löst dieses Problem, indem sie das gesamte Bild parallel erzeugt, bei jedem Schritt global verfeinert.

Deshalb wurden die autoregressiven Ansätze auf Pixeln (wie PixelRNN oder das ursprüngliche ImageGPT von OpenAI) zugunsten der Diffusion aufgegeben. Die einzig mögliche Rückkehr wäre über autoregressive Modelle auf Bildtokens (DALL-E 1 und nun Chameleon von Meta) — aber sie sind in puncto fotorealistischer Qualität immer noch weniger leistungsfähig als die Diffusionen.

Diffusion ist kein Transformer. Es ist eine andere, mathematisch orthogonale Art, eine komplexe Verteilung zu lernen — und für Bilder ist es diejenige, die gewonnen hat.

Aktualisiert am

Diffusion: Bilder durch Entrauschen erzeugen · Step by Token