Latent Diffusion 与 Stable Diffusion
一句话:把扩散过程从高分辨率像素空间搬到 VAE 压缩后的潜空间,再用文本条件 + 交叉注意力 + CFG 驱动 U-Net 去噪,这就是 Stable Diffusion 能在消费级显卡上跑文生图的核心配方。 关键年份:LDM/Stable Diffusion(Rombach et al. 2021/2022,arXiv:2112.10752);Classifier Guidance(Dhariwal & Nichol 2021,arXiv:2105.05233);Classifier-Free Guidance(Ho & Salimans 2022,arXiv:2207.12598);SDXL(Podell et al. 2023,arXiv:2307.01952)。 前置阅读:扩散模型基础、AIGC 总览、VLM 与多模态
为什么要在潜空间做扩散
扩散模型基础 介绍的 DDPM/score-based 模型直接在像素上加噪去噪。问题在于算力:一张
Latent Diffusion Models(LDM,arXiv:2112.10752)的洞察是:图像里大量信息是感知上冗余的高频细节,可以先用一个自编码器把图压缩到低维潜空间,再在潜空间里做扩散。具体做法是训练一个 VAE(更准确说是带 KL 正则或 VQ 正则的自编码器),把图压到下采样因子
这样划分职责非常清晰:
- 自编码器负责"感知压缩":去掉肉眼几乎无感的高频冗余,但保留语义结构;
- 扩散模型负责"语义生成":只在紧凑的潜空间里建模数据分布。
算力收益是数量级的——同样质量下,潜空间扩散的训练与采样开销远低于像素空间,这正是 Stable Diffusion 能在单张消费级 GPU 上跑起来的根本原因。
三件套:VAE + U-Net + 文本条件
Stable Diffusion 推理流程可以拆成三个模块协作:
1)VAE 编码器 / 解码器。训练时编码器
2)U-Net 去噪网络。这是真正学习去噪的主体,参数集中在这里。它在每个时间步
3)文本条件注入。文本经文本编码器变成一串 token 嵌入序列,作为交叉注意力的 Key/Value,而 U-Net 的图像特征作为 Query:
这里
Classifier Guidance vs Classifier-Free Guidance
条件生成的一个核心问题是:纯按条件采样往往多样性够但与条件的契合度不够。Guidance 就是用来调节"忠实度 vs 多样性"权衡的旋钮。
Classifier Guidance(Dhariwal & Nichol 2021)。额外训练一个在带噪图像上工作的分类器
缺点很明显:要额外训一个噪声鲁棒的分类器,且只能引导到分类器认识的类别,难以扩展到开放文本。
Classifier-Free Guidance(CFG,Ho & Salimans 2022)。不需要分类器,而是训练时以一定概率(通常 10%~20%)把条件
其中
| 维度 | Classifier Guidance | Classifier-Free Guidance |
|---|---|---|
| 额外模型 | 需训练带噪分类器 | 无 |
| 条件类型 | 受限于分类器类别 | 任意条件(文本等) |
| 训练改动 | 不改扩散模型 | 训练时随机丢弃条件 |
| 推理成本 | 1 次去噪 + 分类器梯度 | 每步 2 次去噪(条件 + 无条件) |
| 现状 | 已少用 | 事实标准 |
注意 CFG 的推理代价:每个时间步要分别算条件和无条件两次前向,因此实际去噪计算量约为不带 guidance 的两倍——这也是 采样加速与蒸馏 里很多蒸馏方法要专门把 CFG "烧进"模型的原因。
Stable Diffusion 版本线
| 版本 | 文本编码器 | 原生分辨率 | 关键变化 |
|---|---|---|---|
| SD 1.4 / 1.5 | CLIP ViT-L/14 | 512×512 | LDM 配方落地,社区生态起点 |
| SD 2.0 / 2.1 | OpenCLIP ViT-H/14 | 768×768 | 换开源文本编码器,重训数据 |
| SDXL | CLIP ViT-L/14 + OpenCLIP ViT-bigG/14 | 1024×1024 | 更大 U-Net、双文本编码器、多分辨率训练、可选 refiner |
SDXL(arXiv:2307.01952) 是这条线的一次显著放大。论文要点(以官方为准):U-Net backbone 约为前代的三倍大,参数增长主要来自更多注意力块;用两个文本编码器(CLIP ViT-L 与 OpenCLIP ViT-bigG)拼出更宽的交叉注意力上下文;采用多宽高比(multi-aspect)训练以更好支持非正方形构图;并额外提供一个 refiner 模型,用 image-to-image 的方式在后处理阶段提升细节保真度。
值得一提的是后续生态走向了两个方向:一是架构从 U-Net 迁往 Transformer(DiT)、训练目标从 DDPM 走向 Flow Matching / Rectified Flow(如 SD3、FLUX 系列,细节以官方为准),参见 架构演进;二是围绕 SD/SDXL 衍生出庞大的可控生成与定制生态(ControlNet、LoRA、IP-Adapter),参见 条件控制与定制 与 LoRA。
小结
LDM/Stable Diffusion 的工程价值在于一组可组合的设计:用 VAE 把扩散搬进低维潜空间换来数量级的算力节省;用交叉注意力把文本(乃至任意模态)条件优雅地注入 U-Net;用 CFG 在无需额外分类器的前提下精确调节生成的忠实度。理解这三点,再去看 架构演进、采样加速 和 视频生成 就会顺畅很多。
参考文献
- Rombach, Blattmann, Lorenz, Esser, Ommer. High-Resolution Image Synthesis with Latent Diffusion Models. 2021/2022. arXiv:2112.10752(CVPR 2022)
- Dhariwal, Nichol. Diffusion Models Beat GANs on Image Synthesis. 2021. arXiv:2105.05233(提出 classifier guidance / ADM)
- Ho, Salimans. Classifier-Free Diffusion Guidance. 2022. arXiv:2207.12598
- Podell, English, Lacey, Blattmann, Dockhorn, Müller, Penna, Rombach. SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis. 2023. arXiv:2307.01952