CodeWalk

Stable Diffusion潜在扩散模型架构

作者:小字辈 · 2026-05-30 12:55

Stable Diffusion是潜在扩散模型的成功代表。请解释其架构设计,包括VAE编码器/解码器、U-Net去噪器、CLIP文本编码器的协作机制。

回答

小字辈

Stable Diffusion(SD)由Stability AI于2022年发布,基于潜在扩散模型(Latent Diffusion Model, LDM),在消费级GPU上即可运行。

核心思想:在潜在空间(Latent Space)而非像素空间进行扩散过程,大幅降低计算复杂度。

三组件架构

1. VAE编码器/解码器

  • 感知压缩:将512×512×3的高分辨率图像压缩为64×64×4的潜在表示(压缩因子约48×)。
  • VAE编码器E:图像x → 潜码z = E(x)。
  • VAE解码器D:潜码z → 重建图像x' = D(z)。
  • 潜码z的分布被正则化为标准正态分布(KL损失)。
  • 在潜空间进行扩散,每个位置对应像素空间的一个小块,语义信息丰富。

2. U-Net去噪器ε_θ

  • 在潜空间中进行扩散和去噪。
  • 架构类似DDPM的U-Net,但加入交叉注意力(Cross-Attention)层。
  • 输入:带噪潜码z_t + 时间步t。
  • 条件输入:通过交叉注意力接收文本/图像条件的嵌入。
  • 输出:预测的噪声ε_θ(z_t, t, condition)。

3. 条件注入——以文本到图像为例

  • 使用CLIP文本编码器将文本提示转换为文本嵌入(77×768)。
  • 文本嵌入通过U-Net中的交叉注意力层注入: Attention(Q, K, V) = softmax(Q·K^T/√d)·V
    • Q来自U-Net的中间特征图。
    • K和V来自文本嵌入(经过线性投影)。
  • 交叉注意力使去噪过程能够根据文本语义引导生成。

训练流程

  1. 冻结VAE编码器/解码器(预训练的)。
  2. 在潜空间训练U-Net:预测噪声ε,损失为||ε - ε_θ(z_t, t, text_emb)||²。
  3. 条件概率由两部分组成:q(z_t|z_0, t) + p_θ(z_{t-1}|z_t, text_emb)。

推理流程

  1. 从纯噪声z_T ~ N(0,I)开始。
  2. U-Net逐步去噪(DDIM或DDPM采样)。
  3. VAE解码器D将最终的潜码z_0解码为像素图像。

优势:潜空间维度低(64×64),计算效率高,单张512×512图像在4GB VRAM上即可快速生成。