【DDPM 扩散模型】Part 6:DDIM / LDM / Stable Diffusion / ControlNet —— 全面对比(最重要的升级篇)
🚀 Part 6:DDIM / LDM / Stable Diffusion / ControlNet —— 全面对比(最重要的升级篇)
这是整个扩散模型体系从「基础 → 产品级」的关键升级篇。
看懂本章,你就能真正理解:为什么 Stable Diffusion 能跑在消费级显卡上、为什么 DDIM 可以极快采样、为什么 ControlNet 让生成“可控”。
6.1 扩散模型发展脉络(关键版本演化)
下面是一条非常核心的演化路径(建议用于放入总览流程图):
DDPM → DDIM → LDM → Stable Diffusion → ControlNet 每一步解决一个关键痛点:
| 模型 | 解决的问题 | 关键突破 |
|---|---|---|
| DDPM | 扩散模型最初版本,能生成高质量图像,但太慢 | 噪声预测模型(εθ)提出 |
| DDIM | DDPM 太慢,采样百步起步 | 确定性采样 + 可控时间步 |
| LDM | 图像分辨率高 → 直接扩散计算量爆炸 | 在 潜空间(latent)做扩散 |
| Stable Diffusion | 扩散模型真正落地应用 | 文生图全流程可训练、可部署 |
| ControlNet | SD 无法真正“按结构生成” | 可控生成结构化条件 |
6.2 DDIM:更快的扩散(Deterministic Diffusion Implicit Models)
DDIM 的核心作用:
👉 让扩散模型“不用随机走”,而是快速走直线。
6.2.1 DDPM 的痛点
DDPM 的反向采样:
- 本质是马尔科夫链
- 每一步带随机性
- 步数必须接近训练步数(如 1000)
因此 采样很慢。
6.2.2 DDIM 的核心思想:去随机化
DDIM 引入了 非马尔可夫链、确定性采样:
公式(文字版)
DDPM 的反向过程:
x_{t-1} = μθ(x_t,t) + σ_t * z DDIM:
x_{t-1} = sqrt(ᾱ_{t-1}) * x_0 + sqrt(1-ᾱ_{t-1}) * εθ(x_t,t) 特点:
- ❌ 无需随机噪声 z
- ✔ 固定输入 → 固定输出
- ✔ 可以跳步(如使用 50 步或 20 步)
6.2.3 DDIM 的意义
- 采样速度提升 10–50 倍
- 可分布式重建一致图像
- 可以做 inversion(图像 → latent)
DDIM 是后续 Stable Diffusion 的快速采样基石。
6.3 LDM:潜空间扩散(Latent Diffusion Models)
DDIM 虽快,但还有一个更致命瓶颈:
❗ 原图 512×512×3 → U-Net 输入是百万级像素
训练 + 推理 = 极度昂贵
6.3.1 LDM 如何解决:把扩散迁到 latent 空间
关键模块:VAE编码器(Autoencoder KL)
Image → VAE Encoder → Latent z (尺寸压缩 8× 或 16×) Latent z 在 U-Net 中扩散 例:
- 原图:512×512×3
- 潜空间:64×64×4
计算量减少:
→ 下降 16 倍至 32 倍
→ 普通显卡也能运行
6.3.2 LDM 的训练模块
- VAE(Encoder + Decoder)
- U-Net(扩散核心)
- CLIP(文本编码器)
因此 LDM 成为能够:
- 文生图
- 图生图
- 条件可控(ControlNet)
- 可微调、可学 LoRA
的统一框架。
Stable Diffusion = LDM + 大规模训练。
6.4 Stable Diffusion:真正落地的扩散模型
6.4.1 为什么 SD 是扩散模型真正的“实用版本”
三个理由:
① 在 latent 做扩散:高效
大幅降低计算量,使得:
- 消费级显卡可跑
- 批量训练可能
- LoRA / DreamBooth 微调可行
② 文本条件(CLIP)融入扩散:可控生成
SD 使用 cross-attention:
U-Net 的 attention Query ← 特征图 U-Net 的 attention Key/Value ← 文本向量 这就是为什么 SD 能“听懂 prompt”。
③ 模块化可扩展(ControlNet 的基础)
Stable Diffusion 的结构允许:
- 加 LoRA
- 加 ControlNet
- 加 T2I Adapter
- 训练新的 VAE
- 替换文本编码器
导致生态爆发。
6.4.2 SD 最终实现的能力
- 文生图
- 图生图(inpainting / outpainting)
- 可控生成(ControlNet)
- 风格可学(LoRA)
- 模型可组合(merge)
SD = 一整套开放、可训练、可部署的生成系统。
6.5 ControlNet:可控生成的革命
Stable Diffusion 最大的短板:无法真正“听话”。
比如你想指定:
- 姿态
- 结构
- 边缘
- 深度
- 草图
- 布局
SD 本身都无法做到。
6.5.1 ControlNet 的核心思想:复制一份 U-Net 并加“控制条件”
结构图(文字示意):
Text ↓ +----------+ | U-Net 原模型 | +----------+ 输入图 → 条件提取器 → ControlNet → 影响原 U-Net 的残差模块 ControlNet 为每一层 U-Net 添加一个“控制分支”,并通过:
- 零卷积(zero convolution)
- 可训练残差路径
确保:
- 原 SD 能力不被破坏
- 控制信号被精准注入
6.5.2 ControlNet 能带来的能力
✔ 结构控制
如:
- Canny 边缘
- OpenPose 骨架
- LineArt
- Scribble 草图
✔ 深度 / 法线控制
如:
- depth
- normal
✔ 语义控制
如:
- segmentation mask
✔ 图像条件
如:
- reference-only
- style align
让 SD 从“听不清”变成“照着画”。
6.6 四大模型体系的总对比(表格)
| 模型 | 核心理念 | 优点 | 缺点 | 应用场景 | 是否产品可用 |
|---|---|---|---|---|---|
| DDPM | 噪声预测 + 随机采样 | 稳定但慢 | 极慢、不易部署 | 学术研究 | ❌ |
| DDIM | 去随机、确定性采样 | 快、可 inversion | 仍在图像空间 | 研究、部分应用 | ✔ 部分 |
| LDM | 潜空间扩散 | 计算量小、可训练 | 需要 VAE | 文生图基础框架 | ✔ |
| Stable Diffusion | 多模态扩散系统 | 开源、可调、可部署 | 原版控制差 | 文生图/图生图 | ✔✔✔ |
| ControlNet | 可控生成结构支撑 | 强控制、高自由度 | 增加显存开销 | 产品级可控生成 | ⭐ 完整可用 |
6.7 整体架构进化一图(文本示意)
DDPM(随机扩散) | v DDIM(确定性 + 快速采样) | v LDM(潜空间扩散,大幅减算力) | v Stable Diffusion(系统化落地,可训练) | v ControlNet(结构可控,产品可用) 🎉祝你天天开心,我将更新更多有意思的内容,欢迎关注!
最后更新:2025年11月
作者:Echo