引言:生成式 AI 的范式转变
扩散模型(Diffusion Models)是近年来生成式 AI 最重要的技术突破之一。与 GAN 的训练不稳定和 VAE 的生成模糊相比,扩散模型通过逐步去噪的过程生成高质量的样本,已成为图像、视频、音频生成的主流范式。
1. DDPM 数学原理
前向过程(加噪):定义马尔可夫链,每一步加入高斯噪声:
q(x_t | x_{t-1}) = N(x_t; √(1-β_t) · x_{t-1}, β_t · I)
利用重参数化技巧,可以直接从 x_0 采样任意步 t 的噪声图像:
x_t = √(ᾱ_t) · x_0 + √(1-ᾱ_t) · ε, where ε ~ N(0,I)
# ᾱ_t = ∏_{s=1}^{t} (1-β_s)
反向过程(去噪):训练一个神经网络 ε_θ 预测加入的噪声:
L_simple = E[‖ε - ε_θ(√(ᾱ_t)·x_0 + √(1-ᾱ_t)·ε, t)‖²]
这个简化目标(Ho et al. 2020)等价于变分下界的加权形式,是 DDPM 训练高效的关键。
2. 采样加速策略
原始 DDPM 需要 1000 步采样才能得到高质量图像。主流加速方法:
- DDIM(Song et al. 2021):非马尔可夫前向过程,支持跳步采样(50-100 步即可)
- DPM-Solver:基于 ODE 视角的高阶求解器,10-20 步高质量采样
- Consistency Models:一步生成的学生模型蒸馏
3. Stable Diffusion:潜在空间扩散
关键创新:不在像素空间操作,而是通过预训练的 VAE 编码器将图像压缩到潜在空间(4×64×64 vs 3×512×512),扩散过程在高维语义空间完成,然后解码回像素。
条件机制:通过 cross-attention 注入文本条件:
# U-Net 中的 cross-attention
Q = W_Q · φ(z_t) # 来自潜在特征
K = W_K · τ_θ(y) # 来自文本编码 (CLIP)
V = W_V · τ_θ(y)
Attention(Q,K,V) = softmax(QK^T/√d) · V
Classifier-Free Guidance 实现条件缩放:
ε̂_θ(z_t, c) = ε_θ(z_t, ∅) + w · (ε_θ(z_t, c) - ε_θ(z_t, ∅))
# w 为 guidance scale,通常 7.5-15
4. ControlNet:精确控制生成
ControlNet 通过添加可训练的旁路分支(side network)来注入空间条件(深度图、边缘图、姿态、语义分割图)。核心结构:
# ControlNet 模块(每个 resolution level 两个 conv)
hint = HintBlock(conditional_image) # 4×64×64 → 320×64×64
control = ZeroConv(hint) # 零初始化卷积
unet_input += control # 加到 U-Net 输入
unet_feat += ZeroConv(control) # 加到 U-Net 中间特征
5. 训练工程要点
噪声调度:Linear 调度简单高效,Cosine 调度(Nichol & Dhariwal 2021)在低步数采样时更优。
混合精度:U-Net 前向用 float16,loss scaling 防下溢。
梯度累积:由于 batch size 受显存限制(U-Net ~3GB),常采用梯度累积模拟大 batch。
EMA:对训练参数应用指数移动平均(decay 0.9999),提升采样质量。
6. 应用生态
基于 Stable Diffusion 的开源生态已相当成熟:
- SD WebUI (AUTOMATIC1111):功能最全的推理界面
- ComfyUI:节点式工作流编辑器
- Diffusers (Hugging Face):标准化 Python 推理库
- LoRA:低秩适配器实现高效微调(可训练参数 <1%)
总结
扩散模型的成功源于其训练目标的简洁性(去噪得分匹配的等价形式)和 Scaling 的可靠性。从 DDPM 到 Stable Diffusion,研究者们通过潜在空间压缩、条件引导和采样加速的三重优化,将扩散模型从学术实验室推到了大规模工程应用的前沿。

发表评论 取消回复