外观
扩散模型与生成式 AI
扩散模型(diffusion model)是一类通过「前向逐步加噪、反向逐步去噪」来学习数据分布并生成新样本的生成式模型,是当下文生图与文生视频的绝对主流技术。2022 年 8 月开源的 Stable Diffusion 让"输入一句话、生成一张图"成为普通人的日常;2024 年 OpenAI 的 Sora 又把这种能力延伸到"输入一句话、生成一段视频"。从 Midjourney 到 DALL·E 3,从 Imagen 到可灵,几乎所有一线图像/视频生成模型都跑在这套机制之上。
为什么扩散模型能击败此前的霸主 GAN?一句话:训练更稳定、质量更高、可控性更强。它不依赖两个网络互相博弈的对抗训练,而是把"生成"化成一个朴素的回归问题——预测噪声;它的采样过程天然接受各种条件注入(文本、图像、姿态、深度),让"可控生成"成为可能。本文从核心原理讲起,沿"像素空间 → 潜空间 → 条件生成 → 应用与风险"的路径把它拆解透彻。想先建立生成式 AI 的整体图景,可读什么是 AI 热门概念;想了解它在整套技术栈中的位置,可看总体架构解剖。
一、核心思想:把"破坏"倒放
扩散模型的想法来自统计物理,最早由 Sohl-Dickstein 等人于 2015 年提出,2020 年 Ho 等人的 去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM) 让它一跃成为能碾压 GAN 的实用工具。
它的核心洞察可以用一个比喻讲清:把一张照片逐步加噪到面目全非是容易的,那么能不能训练一个网络,学会把这个过程倒放?
前向过程(破坏,训练时完成,成本极低)
真实图像 x₀ ──加噪──▶ x₁ ──加噪──▶ … ──加噪──▶ x_T ≈ 纯高斯噪声
反向过程(重建,模型要学的)
纯噪声 x_T ──去噪──▶ x_{T-1} ──去噪──▶ … ──去噪──▶ 全新图像 x₀三个关键性质让这个想法成立:
- 前向破坏"易得":任意时刻的带噪图都可以从原图一步闭式采样得到(见第二节),训练时不需要真的逐步迭代;
- 前向破坏"易逆":虽然单步加噪的逆过程未知,但可以训练一个神经网络去预测"混入了什么噪声",从而把破坏倒放;
- 生成即去噪:从纯噪声出发逐步去噪,得到的图像天然符合训练数据的分布 P(x)——这就是"学会了数据分布,就能生成新样本"。
这里的数学根基是"得分匹配(score matching)"视角:去噪网络学到的其实是数据对数密度梯度 ∇_x log p(x),从任意噪声出发沿该梯度走,最终都会落到数据流形上。三种主流生成路线(VAE/GAN/扩散)的本质差异,见第五节。
二、核心原理:DDPM 的数学骨架
1. 前向加噪:有闭式解
设 x₀ 是真实图像,噪声调度(noise schedule)给出每步的方差 β₁, β₂, …, β_T(DDPM 取 T=1000,β 从 1e-4 线性升到 0.02)。前向过程是一个马尔可夫链:
q(x_t | x_{t-1}) = N( x_t ; √(1−β_t)·x_{t-1}, β_t·I )由于高斯分布的可加性,第 t 步的状态无需逐次迭代,可以直接从 x₀ 一步写出:
x_t = √(ᾱ_t)·x₀ + √(1−ᾱ_t)·ε, ε ~ N(0, I)其中 α_t = 1 − β_t,ᾱ_t = ∏_{s=1}^{t} α_s。把上式画出来:
x_t = √(ᾱ_t) · x₀ + √(1−ᾱ_t) · ε
└─原图成分─┘ └────噪声成分────┘
t=0:纯原图 t=T:纯噪声(ᾱ_T→0)√(ᾱ_t) 控制"还剩多少原图",√(1−ᾱ_t) 控制"已混入多少噪声"。当 T 足够大时 ᾱ_T → 0,x_T 收敛为标准高斯噪声 N(0, I)。训练时对每个样本随机抽一个 t,套公式瞬间得到带噪图——这是扩散模型训练"便宜"的原因之一。
2. 反向去噪:训练目标就是"预测噪声"
我们训练一个神经网络 ε_θ(骨干是 UNet 或 DiT,见第三节)来预测 x_t 里混入的噪声 ε。DDPM 的简化训练目标是一个简单的均方误差(MSE):
L = E_{t, x₀, ε} [ ‖ ε − ε_θ( √(ᾱ_t)·x₀ + √(1−ᾱ_t)·ε , t ) ‖² ]翻译成人话:随机挑一个时刻 t,加好噪声,让网络从"带噪图 + 时刻 t"预测"混入的噪声",用均方误差衡量误差。网络同时接收时刻 t(时间步嵌入)作为输入,因为"去噪力度"随时间变化——t 越大噪声越多,越要大胆去噪。
为什么"预测噪声"而不是"直接预测图像"?
两者在数学上等价:知道 x_t 和 ε 就能反推出 x₀。但实验发现"预测噪声"的训练信号更稳定、方差更小——这是 DDPM 相对早期扩散模型的关键工程改进。想从更深的得分匹配 / SDE 视角理解,可读 Song 等人的统一框架(arXiv:2011.13456),见文末参考资料。
3. 采样:DDPM 逐步采样与 DDIM 加速
训练完成后,生成就是从 x_T ~ N(0,I) 出发反复执行反向步:
x_{t-1} = (1/√α_t)·( x_t − (β_t/√(1−ᾱ_t))·ε_θ(x_t, t) ) + σ_t·z, z ~ N(0, I)
└─────── 去掉预测出的噪声,还原更干净的状态 ───────┘ └─随机扰动─┘σ_t 是每步的随机抖动,保证反向过程是真正扩散的逆过程。肉眼观察采样过程:前几十步从混沌噪声里浮现轮廓,后几十步在精修纹理——所以 num_inference_steps(采样步数)直接决定生成质量与耗时。
DDIM(去噪扩散隐式模型,Denoising Diffusion Implicit Models,2021) 改写了采样轨迹:构造一个非马尔可夫的反向过程,支持两件事:
- 确定性采样:把随机扰动系数置零后,同样的噪声种子永远得到同样的图——这是"图生图""图像修复"等功能的基石;
- 大步跳跃:只在 20–50 个选定的时间步上采样,质量损失很小。
一句话判断:DDPM 是理论基座,DDIM 是把文生图从"一分钟一张"推到"几秒一张"的第一个量产加速器。 训练与采样的完整骨架,用伪代码写出来不到二十行:
python
# 训练(伪代码)
for x₀ in train_batch: # 取一张真实图像
t ~ Uniform({1, ..., T}) # 随机采样时刻(T=1000)
ε ~ N(0, I) # 采样随机噪声
x_t = √ᾱ_t * x₀ + √(1−ᾱ_t) * ε # 前向闭式加噪
loss = MSE(ε_θ(x_t, t), ε) # 让网络预测噪声
optimizer.step(loss)
# 采样(伪代码)
x_T ~ N(0, I) # 从纯高斯噪声出发
for t in reversed(时间步序列): # DDPM 为 T→1;DDIM 可只取 20~50 步
ε_pred = ε_θ(x_t, t) # 网络预测当前噪声
x_{t-1} = 去噪更新(x_t, ε_pred, t) # 去噪 + 随机扰动(DDIM 可置零)
return x₀ # 生成的图像三、从像素空间到潜空间:Latent Diffusion 与 Stable Diffusion
DDPM 有一个致命缺点:慢。在 512×512×3 的像素空间里迭代 1000 步,训练和推理都贵得无法商用。潜空间扩散模型(Latent Diffusion Model, LDM,2022) 用一招化解:不在像素空间扩散,而是先在 VAE 潜空间里扩散——这正是 Stable Diffusion 的直接前身。
1. 为什么是潜空间
图像高度冗余:相邻像素高度相关,真正的语义信息远少于像素数。先用变分自编码器(Variational Autoencoder, VAE) 把图像压进低维潜空间再扩散,计算量直接降一个数量级:
| 像素空间扩散(DDPM) | 潜空间扩散(LDM/SD) | |
|---|---|---|
| 操作维度 | 512×512×3 ≈ 78 万维 | 64×64×4 ≈ 1.6 万维 |
| 相对计算量 | ~1 | 约 1/50 |
| 生成分辨率 | 难以突破 128×128 | 轻松 512×512、1024×1024 |
更妙的是,VAE 的潜空间是有语义的连续空间:在潜空间里插值、混合、编辑,对应到图像上就是平滑自然的变化——它为第四节的所有条件控制技术提供了舞台。
2. 架构:文本编码器 + UNet/DiT + VAE
Stable Diffusion 的生成管线由三大模块协作完成,文字图画出来是这样的:
┌──────────────────────────────────────────┐
文字提示 ──▶ CLIP 文本编码器 ──▶ 文本嵌入(77 token × 768 维)
"a red fox..." │
▼
随机噪声 z_T ──▶ UNet/DiT(潜空间去噪)──▶ 潜变量 z₀ ──▶ VAE 解码器 ──▶ 图像
▲ ▲ │
│ └── cross-attention 注入文本条件 │
└────── timestep 嵌入(当前时刻 t) ┘各组件分工:
| 组件 | 作用 | 备注 |
|---|---|---|
| VAE 编码器 | 图像 → 潜空间(压缩 8 倍) | 训练时造训练样本用 |
| VAE 解码器 | 潜变量 → 像素图像 | 生成流程的最后一步 |
| UNet / DiT | 在潜空间预测噪声(逐步去噪) | 模型的"大脑",SD 1.5 的 UNet 约 8.6 亿参数 |
| CLIP 文本编码器 | 提示词 → 文本嵌入 | SD 1.x 用 CLIP ViT-L/14,SDXL 用双编码器 |
| Cross-Attention | 把文本条件注入去噪网络各层 | 文生图能力的核心机制 |
UNet 是带跳跃连接(skip connection)的编码器-解码器卷积网络:编码器逐层下采样提取多尺度特征,解码器逐层上采样还原,跳跃连接保住细节。它先在医学图像分割领域被验证,随后被扩散模型改造:每层加入时间步嵌入,并在中间层加入文本的交叉注意力。
交叉注意力(Cross-Attention) 是文生图的魔法所在:把 UNet 的中间特征作为查询(Query),文本嵌入作为键值(Key/Value),让"图像的每个位置去关注它相关的文字"——这正是Transformer 与注意力机制的思想被移植到图像生成中,图像与文本第一次在特征级深度耦合。
骨干正在向 Transformer 收敛
扩散模型的骨干最初是 CNN 的 UNet,但最新一代(SD3、SD3.5、Sora、FLUX)越来越多地采用 DiT(Diffusion Transformer):把图像切成 patch 序列,直接用 Transformer 处理。生成式 AI 的骨架正在收敛到同一个架构——Transformer。这也是大语言模型与图像生成殊途同归的技术注脚。
四、条件生成:让生成可控
无条件扩散只能"随机画一张图",真正可用的是条件生成(conditional generation)——给定提示词、参考图或结构约束,生成符合意图的内容。三个层次由浅入深:
1. 文本条件:CLIP 与文本编码器
最基础的条件是文本。CLIP(Contrastive Language-Image Pre-training,对比语言-图像预训练) 通过对比学习把图像与文本嵌入到同一语义空间,让文本嵌入与图像内容可对齐;SD 用 CLIP 的文本编码器把提示词转成嵌入向量,再经交叉注意力注入去噪网络。条件与无条件之间的权衡由无分类器引导(Classifier-Free Guidance, CFG) 控制:
ε_θ = ε_θ_uncond + guidance_scale · (ε_θ_cond − ε_θ_uncond)guidance_scale 越大输出越贴提示词,但多样性越低(典型取值 7~8)。文本-图像对齐的完整机制,见多模态模型。
2. ControlNet:结构控制
文本只能描述"是什么",难以描述"在哪里、什么姿势"。ControlNet(2023) 把边缘图、深度图、骨架姿态、线稿等条件图直接注入去噪网络:
输入图 ─▶ 边缘/深度/姿态提取 ─▶ 条件图
│
ControlNet(主干的可训练副本)
│
提示词 ─▶ 文本编码 ─▶ 主干 UNet(权重冻结)◀── 条件特征注入ControlNet 的思路是在冻结主干旁边加一个可训练的分支,让条件信号"零成本"接入既有的强大模型。实际效果:给定一张人物骨架,就能在保持姿态不变的前提下换装、换背景——构图控制从此成为设计师的日常工具。
3. LoRA:风格与角色的低成本定制
想生成"特定画师风格"或"特定角色",不必重新训练整个模型。LoRA(Low-Rank Adaptation,低秩适配) 只训练插入到主干里的低秩矩阵,用几十张图片、单张消费级显卡就能完成风格定制,推理时几十 MB 的权重文件随插随卸:
| 维度 | 全量微调 | LoRA 适配 |
|---|---|---|
| 需调整参数 | 十亿级 | 百万级(约 1/1000) |
| 训练显存 | 多卡 A100 | 单卡 12~24GB |
| 训练数据需求 | 数万张 | 20~100 张 |
| 可组合性 | 每模型一个 | 多个 LoRA 可叠加混用 |
LoRA 已从 LLM 微调范式演化为扩散生态的"风格插件"标准。想深入微调方法论,见微调与 PEFT(LoRA);想了解它的工程落地,可读从零微调你自己的 LLM。
五、与 GAN / VAE / 自回归的路线对比
扩散模型不是凭空出现的,它站在 VAE 与 GAN 的肩膀上,又与自回归路线各司其职。放在一张表里看:
| 维度 | GAN | VAE | 扩散模型 | 自回归 |
|---|---|---|---|---|
| 核心思想 | 生成器骗判别器 | 压缩-重建 | 加噪-去噪 | 逐个预测下一个 token/patch |
| 生成质量 | 好,易崩 | 偏模糊 | 当前最佳 | 文本最佳,图像慢 |
| 多样性 | 差(模式崩塌) | 好 | 好 | 好 |
| 训练稳定性 | 差(对抗不稳定) | 稳定 | 稳定 | 稳定 |
| 可控性(条件注入) | 中 | 中 | 强(文本/结构/图) | 强(指令式) |
| 采样速度 | 快 | 快 | 慢(需加速) | 中(逐 token 长) |
一句话判断:要图像/音频/视频的"高保真生成",扩散是当前事实标准;要文本的"灵活生成",自回归是霸主;VAE 是理论基石与潜空间基础设施;GAN 在实时小模型与部分科学任务中仍有存在感。 各路线在技术演进中的位置,还可参考演进简史。
六、应用版图:从文生图到世界模拟器
扩散模型已经渗透到几乎每一种内容模态:
- 文生图(text-to-image):Midjourney、Stable Diffusion、DALL·E 3、FLUX 等。Midjourney 以美学风格见长,SD 以开源生态见长,详见Midjourney 与图像生成;
- 文生视频(text-to-video):Sora、Runway Gen-3、可灵、Veo、Luma 等。视频是"空间+时间"双重任务,对一致性与算力的要求高一个量级。Sora 用时空 patch + DiT 在视频上做扩散,其技术报告直接称视频生成模型为"世界模拟器(world simulators)",详见Sora 与视频生成;
- 音频生成:文生音乐(Stable Audio、AudioLDM)、TTS 中的扩散模型(DiffWave 等)、音效与声音克隆;
- 3D 生成:DreamFusion、Point-E、TripoSR、TRELLIS 等,从"文生 3D 模型"到"图生 3D 资产",正在改写游戏与影视资产管线;
- 图像编辑与修复:图生图、局部重绘(inpainting)、超分辨率——全部依赖 DDIM 的确定性采样与条件注入;
- 科学生成:分子构象生成、蛋白质结构生成、材料设计——扩散在连续空间建模上的优势被逐步迁移到科学领域。
| 模态 | 代表系统 | 骨干 | 成熟度 |
|---|---|---|---|
| 图像 | Midjourney / SD / DALL·E 3 | UNet → DiT | 商用成熟 |
| 视频 | Sora / Veo / 可灵 | DiT + 时空 patch | 快速追赶中 |
| 音频 | Stable Audio / AudioLDM | UNet/DiT | 商用起步 |
| 3D | DreamFusion / TRELLIS | 3D 表示 + 扩散 | 研究→落地 |
七、局限与争议
扩散模型并非银弹,五个问题绕不开:
- 算力成本高:训练要在潜空间迭代数千步,推理也要数十步去噪,视频生成的单次推理成本更是远超文本模型。这让"少步采样 + 蒸馏"(LCM、SDXL Turbo、ADD)成为工业界竞相攻关的方向;
- 版权与数据合规:Stable Diffusion 训练自 LAION-5B——一个从互联网抓取的海量图文对数据集,其中包含大量受版权保护的图片,由此引发 Getty Images 诉 Stability AI、艺术家集体诉讼等标志性案件。核心争议至今未定:训练行为是否构成侵权?模型输出是否算"衍生作品"?行业回应是"授权数据"路线(Adobe Firefly 只用授权图训练),而机制层面"模型到底记住了什么"仍是开放问题。合规框架见AI 安全与治理;
- "手部/文字渲染"等高频细节难题:早期 SD 画手指、画文字经常翻车。原因包括:潜空间压缩会丢弃高频细节、UNet 的注意力对局部小结构建模不足、训练数据中特定姿态与字体的样本稀少。改善靠更大更强的模型(SDXL 手部明显进步)、更强的 VAE、DiT 的全局建模以及针对性数据清洗;
- 评估难:生成没有"标准答案"。FID(Fréchet Inception Distance) 衡量生成分布与真实分布的特征距离,却可被"记忆训练图"作弊;CLIP Score 衡量图文对齐度,却与美学无关;最终仍要靠人工双盲对比。评估体系见评估与验证;
- 深度伪造与真实性危机:换脸、伪造视频让"眼见为实"失效,C2PA、SynthID 等水印方案与检测技术持续博弈。从业者需要在部署层加内容过滤与标注规范。
生成 ≠ 真实
扩散模型的优化目标是"分布相似",不是"事实正确"。AI 生成的图像/视频既可能是创作工具,也可能是误导与侵权工具。工程定位上请始终把它当作"需要验证与治理的创造性产物"。
八、与 LLM 的关系:像素归扩散,语言归 LLM
一个常见误区是把"生成式 AI"等同于"大语言模型"。实际上在主流多模态系统里,二者分工明确:
- 扩散模型管"生成像素":把语义条件翻译成高保真的图像、视频、音频;
- LLM 管"语言理解与指令":解析用户意图、改写/优化提示词、规划生成任务,是"调度大脑";
- 文本编码器是桥梁:CLIP、T5 等把语言侧的表示转成扩散侧可注入的条件向量。
几个真实协作案例:
- Sora:用 DALL·E 3 同款的重描述(recaptioning)技术把视频数据"翻译"成高质量文本标注,再以文本为条件做视频扩散;
- Stable Diffusion 3 / FLUX:改用 T5 等更强的文本编码器,显著提升复杂提示词(多物体、多关系)的遵循能力;
- Agent 化的工作流:LLM 规划"先画什么、用什么风格、迭代几次",扩散模型执行生成,二者通过工具调用组合成完整的AI 智能体(Agent)系统。
架构上的殊途同归
图像侧骨干从 UNet 走向 DiT,文本侧本就是 Transformer;训练范式上,扩散的"预测噪声"与 LLM 的"预测下一个 token"都指向"从扰动中恢复结构"。两者正在同一个 Transformer 基座上汇合——理解Transformer 与注意力机制与大语言模型,就掌握了多模态生成时代的共同底座。
九、权衡与取舍
实践者常在这四组张力中做选择:
- 速度 vs 质量:采样步数、模型规模、蒸馏程度构成一个三角。LCM/Turbo 换来实时性,代价是细节与多样性;要"又快又好"只能加算力;
- 可控性 vs 多样性:CFG 引导越强、ControlNet 约束越紧,输出越贴意图但越趋同。艺术创作要多样性,产品落地要一致性——参数按场景调;
- 开源自部署 vs 闭源 API:SD 系列可控、可定制、无按量计费,但要自己管 GPU、显存与安全过滤;Midjourney、DALL·E 3 开箱即用,但缺乏底层控制。这是成本结构问题,不是技术偏好问题;
- 基础模型 vs 微调生态:通用底座覆盖面广但专项不精;社区微调模型(DreamShaper、写实系)在某类内容上更优但泛化变窄。生产环境常见组合是"一个底座 + 若干 LoRA"。
十、延伸阅读
- 多模态模型——文本、图像、视频的统一表示与条件生成
- 微调与 PEFT(LoRA)——扩散生态的 LoRA 风格定制方法论
- 大语言模型——负责"语言理解与指令"的那一半
- Transformer 与注意力机制——cross-attention 与 DiT 的架构源头
- Midjourney 与图像生成——文生图的代表案例
- Sora 与视频生成——文生视频与世界模拟器
- 评估与验证——生成质量评估的完整框架
- AI 安全与治理——版权、深度伪造与合规治理
- AI 智能体(Agent)——LLM 规划 + 扩散生成的组合系统
- 演进简史——从统计物理到文生视频的扩散模型时间线
- 模型与榜单速查、术语表——追新模型与查术语
- 论文精读——DDPM、LDM、DiT 等论文的逐篇拆解
参考资料
- Sohl-Dickstein et al. Deep Unsupervised Learning using Nonequilibrium Thermodynamics(ICML 2015) —— 扩散模型思想的源头
- Ho, Jain, Abbeel. Denoising Diffusion Probabilistic Models(DDPM, NeurIPS 2020) —— 扩散模型成为实用生成工具的标志性论文
- Song, Meng, Ermon. Denoising Diffusion Implicit Models(DDIM, ICLR 2021) —— 确定性加速采样
- Song et al. Score-Based Generative Modeling through Stochastic Differential Equations(ICLR 2021) —— 扩散/得分模型的 SDE 统一框架
- Rombach et al. High-Resolution Image Synthesis with Latent Diffusion Models(LDM, CVPR 2022) —— Latent Diffusion,Stable Diffusion 的直接前身
- Radford et al. Learning Transferable Visual Models From Natural Language Supervision(CLIP, 2021) —— 图文对齐的文本编码器
- Zhang, Rao, Agrawala. Adding Conditional Control to Text-to-Image Diffusion Models(ControlNet, ICCV 2023) —— 结构条件注入
- Hu et al. LoRA: Low-Rank Adaptation of Large Language Models(ICLR 2022) —— LoRA 原始论文,后被扩散生态广泛采用
- Peebles, Xie. Scalable Diffusion Models with Transformers(DiT, ICCV 2023) —— 扩散模型 Transformer 化
- Brooks et al. Video generation models as world simulators(OpenAI 技术报告, 2024) —— Sora 技术报告
- Lilian Weng. What are Diffusion Models?(博客) —— 公式推导完整的中级综述
- Jay Alammar. The Illustrated Stable Diffusion(博客) —— SD 架构的可视化讲解
- Hugging Face. Diffusers 官方文档 —— 采样器、pipeline 与训练脚本一站式手册