Zurück zu allen Artikeln
3 Min. Lesezeit

Diffusionsmodelle erklärt: die Mathematik hinter Stable Diffusion

Wie denoising-basierte probabilistische Diffusionsmodelle Bilder erzeugen, indem sie einen schrittweisen Verrauschungsprozess umkehren – von Grund auf erklärt.

  • Generative AI
  • Diffusion Models
  • Deep Learning
  • Computer Vision

Die Grundidee

Diffusionsmodelle gehören zur Familie der generativen Modelle mit latenten Variablen. Ihre Idee ist elegant: Statt Daten direkt zu erzeugen, lernt das Modell, sie zu entrauschen.

Im Training werden Datenbeispiele über TT Schritte schrittweise mit gaußschem Rauschen verfälscht, bis sie praktisch nicht mehr von reinem Rauschen zu unterscheiden sind. Anschließend lernt das Modell, diesen Prozess umzukehren und das Rauschen Schritt für Schritt vorherzusagen und zu entfernen.

Der Vorwärtsprozess

Ausgehend von einer sauberen Probe x0x_0 definiert der Vorwärtsprozess eine Markov-Kette, die nach und nach Rauschen hinzufügt:

q(xt∣xt−1)=N(xt; 1−βt xt−1, βtI)q(x_t | x_{t-1}) = \mathcal{N}(x_t;\, \sqrt{1 - \beta_t}\, x_{t-1},\, \beta_t I)

wobei {βt}t=1T\{\beta_t\}_{t=1}^T ein fester Rauschplan ist. Eine nützliche Eigenschaft: xtx_t kann direkt aus x0x_0 in geschlossener Form gesampelt werden. Setzen wir αt=1−βt\alpha_t = 1 - \beta_t und αˉt=∏s=1tαs\bar{\alpha}_t = \prod_{s=1}^t \alpha_s:

q(xt∣x0)=N(xt; αˉt x0, (1−αˉt)I)q(x_t | x_0) = \mathcal{N}(x_t;\, \sqrt{\bar{\alpha}_t}\, x_0,\, (1 - \bar{\alpha}_t) I)

Oder äquivalent über den Reparametrisierungstrick:

xt=αˉt x0+1−αˉt ϵ,ϵ∼N(0,I)x_t = \sqrt{\bar{\alpha}_t}\, x_0 + \sqrt{1 - \bar{\alpha}_t}\, \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)

Für t→Tt \to T gilt αˉt→0\bar{\alpha}_t \to 0 und xT≈N(0,I)x_T \approx \mathcal{N}(0, I).

Der Rückwärtsprozess

Der Rückwärtsprozess lernt, Schritt für Schritt zu entrauschen:

pθ(xt−1∣xt)=N(xt−1; μθ(xt,t), Σθ(xt,t))p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1};\, \mu_\theta(x_t, t),\, \Sigma_\theta(x_t, t))

Das Netz ϵθ(xt,t)\epsilon_\theta(x_t, t) wird darauf trainiert, das hinzugefügte Rauschen ϵ\epsilon vorherzusagen. Das Trainingsziel vereinfacht sich zu:

Lsimple=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2]\mathcal{L}_{simple} = \mathbb{E}_{t, x_0, \epsilon}\left[\|\epsilon - \epsilon_\theta(x_t, t)\|^2\right]

Damit wird das Problem zu einer Denoising-Regression: Rauschen vorhersagen und den MSE minimieren.

Die Netzarchitektur: U-Net

Das Denoising-Netz ist ein U-Net, also eine Encoder-Decoder-Architektur mit Skip Connections zwischen korrespondierenden Feature Maps von Encoder und Decoder.

Input x_t + timestep embedding
         ↓
  [Conv] → [ResBlock] → [Attention] → [Downsample]
         ↓                                  ↓
  [Conv] → [ResBlock] → [Attention] → [Downsample]
         ↓
      Middle Block (ResBlock + Attention)
         ↓
  [Upsample] → [ResBlock] → [Attention]
         ↓
  [Upsample] → [ResBlock] → [Attention]
         ↓
    Output (predicted noise ε)

Der Zeitschritt tt wird als sinusförmiges Embedding kodiert, ähnlich den Positionskodierungen von Transformers, und per FiLM-Conditioning in jeden ResBlock eingespeist.

Rauschpläne

Der Plan {βt}\{\beta_t\} steuert, wie schnell sich Rauschen ansammelt. Häufige Varianten:

  • Linear (DDPM): βt\beta_t steigt linear von β1=10−4\beta_1 = 10^{-4} auf βT=0.02\beta_T = 0.02
  • Kosinus (verbessertes DDPM): αˉt=cos⁡2(t/T+s1+s⋅π2)\bar{\alpha}_t = \cos^2\left(\frac{t/T + s}{1 + s} \cdot \frac{\pi}{2}\right) — verhindert zu starke Verrauschung in frühen Schritten
  • Flow Matching (u. a. Stable Diffusion 3, Flux): gerade Pfade durch den Daten-Rausch-Raum für schnelleres Sampling

DDIM: schnelleres Sampling

Ein Standard-DDPM benötigt T=1000T = 1000 Denoising-Schritte für ein Bild. DDIM (Denoising Diffusion Implicit Models) formuliert den Rückwärtsprozess als nicht-markovsche Kette und ermöglicht dadurch Generierung in 20–50 Schritten bei vergleichbarer Qualität.

Der DDIM-Aktualisierungsschritt:

xt−1=αˉt−1xt−1−αˉt ϵθαˉt⏟vorhergesagtes x0+1−αˉt−1 ϵθx_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \underbrace{\frac{x_t - \sqrt{1-\bar{\alpha}_t}\,\epsilon_\theta}{\sqrt{\bar{\alpha}_t}}}_{\text{vorhergesagtes }x_0} + \sqrt{1 - \bar{\alpha}_{t-1}}\,\epsilon_\theta

Latente Diffusionsmodelle

Stable Diffusion arbeitet im latenten Raum, nicht direkt im Pixelraum. Ein Variational Autoencoder (VAE) komprimiert zunächst das Bild:

z=E(x),x^=D(z)z = \mathcal{E}(x), \quad \hat{x} = \mathcal{D}(z)

Der Diffusionsprozess läuft auf dem latenten zz, typischerweise 64×64×464 \times 64 \times 4 für ein 512×512512 \times 512-Bild. Das reduziert den Rechenaufwand gegenüber Pixelraum-Diffusion ungefähr um den Faktor 48.

Classifier-Free Guidance

Um die Generierung in Richtung eines Textprompts cc zu lenken, interpoliert Classifier-Free Guidance zwischen bedingten und unbedingten Vorhersagen:

ϵ~θ(xt,t,c)=ϵθ(xt,t,∅)+w [ϵθ(xt,t,c)−ϵθ(xt,t,∅)]\tilde{\epsilon}_\theta(x_t, t, c) = \epsilon_\theta(x_t, t, \emptyset) + w\,[\epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t, \emptyset)]

Die Guidance-Skala ww steuert den Kompromiss zwischen Sample-Qualität (höheres ww) und Vielfalt (niedrigeres ww). Typische Werte liegen bei 7–15.

Wichtigste Erkenntnisse

  • Diffusionsmodelle formulieren Generierung als iteratives Denoising mit einem einfachen Regressionsziel
  • Der Vorwärtsprozess definiert xtx_t analytisch aus x0x_0 in einem Schritt und macht das Training dadurch effizient
  • DDIM reduziert die Inferenz von 1000 auf etwa 20–50 Schritte ohne Retraining
  • Latente Diffusion verschiebt den Prozess in einen komprimierten VAE-Latentraum und macht hochauflösende Generierung praktikabel
  • Classifier-Free Guidance ist der wichtigste Hebel für Ausgabetreue und Prompt-Adhärenz