Latent Diffusion:潜在扩散模型

定义

Latent Diffusion(潜在扩散模型,LDM)把扩散过程从高维的像素空间搬到低维的潜在空间(latent space):先用 VAE 把图像压缩成小的 latent 表示,在 latent 上做扩散/去噪,最后用 VAE 解码回像素。Stable Diffusion 就是 Latent Diffusion 的代表(Rombach et al., 2022)。

直观理解

直接在像素空间扩散太贵:一张 512×512 的图有约 26 万维,而像素间大量信息是冗余的(相邻像素高度相关)。

LDM 的核心观察是:感知上重要的「语义信息」可以压缩到一个很小的 latent。扩散模型只需要对「语义」建模,不需要逐像素建模。于是:

原图 → VAE 编码器 → 压缩 latent → 在 latent 中扩散/去噪 → 生成 latent → VAE 解码器 → 输出图片

收益:

  • 计算量骤降:高分辨率生成从「不可行」变成「可行」;
  • 复用预训练 VAE:编解码与扩散解耦,各自独立训练;
  • 条件注入自然:文本 prompt 通过编码器变成 embedding,用 cross-attention 注入网络。

公式推导

1. VAE 压缩

编码器把图像 xx 映射到低维 latent:z=E(x)z = \mathcal E(x),解码器重建 x^=D(z)\hat x = \mathcal D(z),latent 维度远小于像素维度。训练目标含重建损失 + 正则项,使 latent 空间规整(见 VAE)。

2. 在 latent 上做标准 DDPM

扩散过程与 DDPM 同构,只是把 xx 换成 latent zz:

zt=αˉt z0+1−αˉt ϵz_t = \sqrt{\bar\alpha_t}\,z_0 + \sqrt{1-\bar\alpha_t}\,\epsilon

网络预测噪声 ϵθ(zt,t,τ(c))\epsilon_\theta(z_t, t, \tau(c)),其中 τ(c)\tau(c) 是条件(如 CLIP 文本编码器)得到的 embedding。

3. 条件注入:cross-attention

文本 prompt 经文本编码器得到 τ(c)\tau(c),通过 cross-attention 注入 U-Net 的每一层(作为 key/value,latent 作为 query)。这让网络在每个去噪尺度上都能「看到」文本语义。

4. 损失与采样

损失与 DDPM 同构,只是换成 latent:

L=Ez0, ϵ, t, c[∥ϵ−ϵθ(zt,t,τ(c))∥2]L = \mathbb E_{z_0,\,\epsilon,\,t,\,c}\left[\|\epsilon - \epsilon_\theta(z_t, t, \tau(c))\|^2\right]

采样时用 CFG 做引导,配合 DDIM 加速。生成出的 latent 经解码器 D\mathcal D 得到最终图像。

相关

  • VAE — 负责编解码压缩
  • DDPM — latent 上的扩散/去噪机制
  • CFG — 采样时的条件引导
  • DDIM — 采样加速
  • 扩散模型 — 概念总览,含 latent 流程的直觉