扩散模型:扩散方法对照表
这一页不是把方法名字罗列一遍,而是回答一个更实际的问题:当你已经知道 DDPM、DDIM、Euler、Heun、DPM-Solver、DMD、DMD2、Phased DMD、Rectified Flow / Rectified Diffusion 这些名字时,怎样在训练、采样、蒸馏和部署四个层面上判断差异;当项目约束变成“不能重训”“只能给 8 步”“想做一步出图”“必须兼容 CFG”“对边缘纹理很敏感”时,又应该优先看哪一类方法。
如果把扩散方法的演化高度压缩,可以写成下面这条链:
1 | 基础扩散建模 |
这页的作用,是把这条链拆开到可以用于工程判断的粒度。
对照扩散方法时,先判断它改的是哪一层:训练目标、采样路径、数值求解器、蒸馏学生,还是整条生成轨迹。名字相近的方法可能解决完全不同的误差来源,不能只按“几步出图”排序。
少步采样可能失败在积分误差,也可能失败在学生模型分布匹配不稳,还可能失败在条件 guidance 被放大后过冲。看方法表时要把“快”拆成速度、稳定性、保真、多样性和训练成本几项分别评估。
1. 先用四个问题给方法定位
比较扩散方法时,最稳的做法不是先问“它更新不更新论文榜单”,而是先确认它改的是训练目标、采样路径、数值求解器还是学生模型;是否需要重训;省下的是网络评估次数、单步误差还是整条采样轨迹;副作用更容易表现为模糊、颜色漂移、细节伪影、多样性下降还是训练不稳定。很多“方法很像”的错觉,都来自没有先把这四件事拆开。
2. 总表:方法按修改层级来对照
| 方法 | 是否重训 | 主要改动层 | 直接目标 | 代表优点 | 主要代价 | 更适合的情形 |
|---|---|---|---|---|---|---|
| DDPM | 是 | 基础生成建模 | 稳定学习反向去噪 | 训练清晰、质量高、理论基础强 | 采样极慢 | 做高质量教师模型、研究基线 |
| DDIM | 否 | 采样路径 | 在不重训的前提下减少步数 | 兼容已有模型、少步可用 | 极少步时误差仍较大 | 已有教师模型,需要快速加速 |
| Euler | 否 | ODE 离散化 | 低成本少步采样 | 实现简单、速度高、社区常用 | 一阶误差大,低步数细节易抖 | 预算紧、追求可控性和简单性 |
| Heun | 否 | 二阶校正离散化 | 提升低步数稳定性 | 同步数下更平滑、更稳 | 每步计算更高 | 追求 10 到 30 步内较稳的质量 |
| DPM-Solver | 否 | 专用高阶求解器 | 少步仍保留较好保真 | 充分利用 diffusion ODE 结构 | 实现复杂、调参理解门槛高 | 10 到 20 步高质量采样 |
| DPM-Solver++ | 否 | guided solver | 兼顾 CFG 稳定性和速度 | 工业界采用广、guided 采样稳 | 仍属于推理侧优化 | Stable Diffusion 等 CFG 场景 |
| Progressive Distillation | 是 | 学生模型蒸馏 | 逐级减半采样步数 | 少步质量往往比直接一步更稳 | 蒸馏链长、教师成本高 | 从 64 步压到 32/16/8/4 步 |
| Consistency / LCM | 是 | 一致性映射 | 直接学习 1 到几步映射 | 推理很快、生态成熟 | 高频细节与多样性受训练影响大 | 交互式出图、快速预览 |
| DMD | 是 | 分布匹配蒸馏 | 一步生成 | 不只模仿轨迹而是逼近数据分布 | 训练不稳、容易模糊 | 追求一步出图的研究与探索 |
| DMD2 | 是 | 改良分布匹配 | 更稳的一步生成 | 质量和清晰度明显提高 | 训练链更复杂 | 一步生成但仍要求教师级外观 |
| Phased DMD | 是 | 分阶段蒸馏 | 兼顾结构和纹理的一步/少步生成 | 逐阶段控制学习难度 | 管线复杂、阶段设计敏感 | 大规模或复杂条件生成 |
| Flow Matching | 是 | 速度场训练目标 | 直接拟合噪声到数据路径上的 vector field | 训练目标直连 ODE 采样,适合视频/latent flow | 路径、time sampling、loss weighting 都要重新设计 | 新训练视频 DiT、latent flow 或多模态生成底座 |
| Rectified Flow / Rectified Diffusion | 是 | 轨迹形状重塑 | 学更“直”的生成路径 | 粗步积分更自然、少步友好 | 仍需重训和调 schedule | 从轨迹本身优化一步或少步生成 |
3. 方法之间真正不同的不是“快慢”,而是误差来源
许多扩散方法都在说“减少步数”,但它们消除的误差不一样。
3.1 DDIM 解决的是路径构造问题
DDIM 的关键价值不是把单步预测做得更准,而是让你能在同一个训练模型上重新选一条更适合稀疏离散的路径。
它本质上是在问:DDPM 的随机反向链是否唯一,以及能否换成一条更平滑、可控、适合少步采样的确定轨迹。
所以 DDIM 的贡献点是“路径”,不是“单步预测能力”。
3.2 Euler、Heun、DPM-Solver 解决的是积分误差问题
进入 ODE/SDE 视角后,采样误差可以简化理解成数值积分误差。
设概率流 ODE 写成
若步长为 ,一阶 Euler 的局部截断误差通常是 ,累计全局误差是 。
Heun 这类二阶方法能把全局误差推到 。
专用高阶方法如 DPM-Solver 则利用扩散 ODE 的结构,把线性部分解析化处理,从而在同样网络调用次数下获得更小误差。
直观上可以这样想:Euler 是拿直尺连一小段弯路;Heun 是先猜方向再回头修正;DPM-Solver 则利用扩散 ODE 的部分解析结构,更聪明地沿着路径前进。
3.3 DMD、DMD2、Phased DMD 解决的是“整条轨迹都不要了”
一步生成路线真正激进的地方在于,它不再满足于“把 50 步采样压成 10 步”,而是试图直接学习:
的强映射。
这时问题从“怎么更准地做 10 次积分”变成“怎么保证一步映射出来的整体分布和真实数据分布足够接近”。
所以 DMD 系列的核心挑战不是积分误差,而是分布匹配是否稳定、学生是否会坍塌到安全但单调的样本、以及构图、语义和局部纹理能否在极少更新中同时保住。
3.4 Flow Matching 解决的是“直接学速度场”
传统扩散常先预测 、 或 ,再由采样器换算成更新方向。Flow Matching 更直接:先定义一条从噪声分布到数据分布的连续路径,再让模型回归这条路径上的速度。
如果路径是
目标速度就是
这类方法的关键问题不只是“速度场能不能学准”,还包括路径是否适合数据几何、时间采样是否覆盖高难区间、CFG 放大后 ODE 是否仍稳定。现代视频模型常采用 velocity / flow 风格目标,是因为视频 latent 的采样成本高,直接学习可积分的生成方向更有利于少步和蒸馏。
3.5 Rectified Flow / Diffusion 解决的是“轨迹本来就该更直”
如果从高斯噪声到数据样本的理想路径是一条非常弯的曲线,那么再好的数值求解器也要付出很多步数。
整流类方法的直觉是:与其反复提高积分器阶数,不如把路径本身改直一些。
这在几何上很容易理解。设路径为 ,曲率越大,粗步长积分造成的偏离越明显。
如果通过训练把路径改得更接近线性插值,则少步乃至一步近似自然会更好。
4. 一张“误差来源”对照表
| 方法类 | 主要误差来源 | 典型补救办法 | 常见失败外观 |
|---|---|---|---|
| DDPM 原始多步 | 步数太多带来的时延,不是质量本身 | 改成稀疏时间步或更快求解器 | 太慢,不一定难看 |
| DDIM | 路径稀疏后时间离散误差上升 | 更合理 time schedule,配合 solver | 构图尚可但纹理偏软 |
| Euler | 一阶近似偏差大 | 增加步数、缩小步长、换二阶方法 | 边缘毛刺、层次感不稳 |
| Heun | 低步数下仍可能受模型误差支配 | 改噪声 schedule、保留足够步数 | 稳一些但仍可能出现局部漂移 |
| DPM-Solver 系列 | 高阶近似假设与实际网络误差 | 选合适 solver 阶数和 schedule | guidance 高时颜色或对比度异常 |
| Progressive Distillation | 学生模仿教师轨迹时丢失细节 | 多阶段蒸馏、强教师、加正则 | 细节被均值化 |
| LCM / Consistency | 一致性目标下高频纹理难保 | 增大训练覆盖、改善 teacher trajectory | 速度快但“像”而不“锐” |
| DMD / DMD2 / Phased DMD | 分布匹配不稳,梯度噪声大 | 更好的判别信号、阶段设计、强先验 | 平滑、假细节、模式坍塌 |
| Flow Matching | 路径选择、时间采样和速度场误差 | 调整插值路径、loss weighting、solver 和条件注入 | 大结构可行但局部细节或控制不足 |
| Rectified 路线 | 路径重塑不充分或与条件控制冲突 | 改流匹配目标、强化条件训练 | 大轮廓好但局部控制偏弱 |
5. 如果从训练成本看,方法差异会非常明显
用户常说“我要更快的方法”,但在研究和工程里至少有三种完全不同的“快”:
5.1 推理快,但训练不变
这一类包括改变采样路径的 DDIM、低成本一阶离散化的 Euler、带校正的二阶 Heun,以及利用扩散 ODE 结构的 DPM-Solver / DPM-Solver++。它们的共同点是现成模型可用、切换成本低、上线前能快速试质量和速度,效果不佳时也容易回退。
它们更像“编译优化”或者“求解器优化”。
5.2 推理快,但训练成本上升
这一类包括逐级压缩教师步数的 Progressive Distillation、学习少步一致性映射的 Consistency / LCM、追求一步分布匹配的 DMD 系列,以及通过更直路径降低少步积分难度的 Rectified Flow / Diffusion。它们本质上是在用离线训练成本换线上网络评估次数,教师质量、蒸馏目标和数据覆盖范围会共同决定上限。
5.3 训练和推理都更复杂
某些复杂条件生成或视频生成场景下,方法虽然理论上更快,但整个系统会变复杂:CFG 变种改变采样轨迹和数值稳定性,ControlNet / adapter 增加前向开销和显存压力,多尺度 latent 级联需要协调阶段接口,视频时空注意力还会显著增加 token 数和 cache 成本。此时“采样步数减少”未必能直接换来端到端吞吐提升,瓶颈可能转移到 UNet / DiT 单次前向、条件网络、显存带宽或视频缓存。
6. 用三个场景理解怎么选方法
场景 A:你已经有一个高质量 Stable Diffusion 模型,但产品要求延迟从 2.8 秒降到 1 秒
第一优先级通常不是一步蒸馏,而是先试 DPM-Solver++、Euler a 或 Heun,再试更稀疏的步数 schedule,最后才考虑 LCM 或 consistency distillation。这样能最快落地,也更容易保持与已有 LoRA、ControlNet 和 prompt 工具链的兼容。
场景 B:你要做移动端草图预览,希望用户拖动 slider 时实时看到构图变化
这里目标不是最终极致质量,而是交互速度。
更适合的往往是 LCM、consistency models 或少步 rectified 路线,因为它们在 1 到 4 步内就能输出足够有用的预览图。
场景 C:你在研究一步高质量生成,并且愿意投入较重训练预算
这时才应该重点考虑 DMD、DMD2、Phased DMD 或 Rectified Diffusion / Flow,因为它们解决的是“把整个生成映射压成一步”的问题,而不是只优化原有采样器。
7. 一张“需求到方法”的对照表
| 需求 | 优先方法 | 原因 | 不建议直接上的方案 |
|---|---|---|---|
| 不重训、立刻提速 | DDIM / Euler / Heun / DPM-Solver++ | 切换成本低 | 一步蒸馏 |
| 10 步左右尽量逼近教师 | DPM-Solver++ / 高质量 Heun schedule | 少步质量稳定 | 直接 1 步 |
| 4 步内交互式预览 | LCM / Consistency / 少步 Rectified | 推理极快 | 继续用原始 DDPM |
| 一步出图研究 | DMD2 / Phased DMD / Rectified Diffusion | 重点解决分布匹配 | 仅靠 solver 优化 |
| 条件控制很多,生态要求高 | DPM-Solver++ + 蒸馏增量尝试 | CFG 和 adapter 兼容性更重要 | 完全重构生成路径 |
8. 评价一个方法时,至少看五类指标
扩散论文经常只给出 FID、CLIP score 或用户主观图例,但工程上更应该把指标拆成五类:
8.1 分布质量
这一类指标包括 FID、precision / recall、density / coverage,回答的是结果是否“像真数据”。
8.2 语义对齐
这一类指标包括 prompt alignment、CLIP score 和条件一致性,回答的是结果是否“像你要的东西”。
8.3 局部视觉质量
这里要看边缘锐度、纹理稳定性、重复纹理伪影和高频细节保真。很多一步方法的大问题不在大轮廓,而在头发、手指、布料纹理、文字边缘等局部区域。
8.4 多样性
一步蒸馏最容易牺牲这一点。
如果只看最优样本图,很容易误判方法已经“追平教师”。
8.5 系统可用性
系统侧要同时看推理时延、显存、CFG 稳定性、与 LoRA / ControlNet / adapter 的兼容以及部署复杂度。研究上强,不代表产品上合适。
9. 公式角度看:为什么一步生成难得多
多步扩散实际上把复杂映射拆成了很多个局部简单子问题。
设从噪声到数据的目标映射为 ,多步采样相当于把它分解成:
每个 只需要完成一次小规模局部修正。
而一步生成要求学生模型 直接逼近整体映射:
如果把每一步误差记作 ,多步情形中误差虽然会累积,但每一步学习任务简单;一步情形中虽然只有一次前向,但需要把所有结构、语义、纹理和条件控制一次性放进单个网络里。
这就解释了为什么一步方法经常出现“大结构对了但细节糊”“颜色对了但材质假”“人脸大致像了但眼睛和手不稳定”之类的问题。
10. 把 CFG 放进比较里,会看到另一层差异
很多扩散方法在无条件或弱条件下表现不错,但一旦引入 classifier-free guidance:
问题就会变复杂。
当 guidance scale 很大时,分布会被强行拉向条件方向,数值积分更容易不稳定,颜色过饱和、局部过锐、结构断裂等问题也更常见。
这也是为什么 DPM-Solver++ 在实际工具链里地位很高,因为它更关注 guided 采样下的稳定性。
同样地,评估少步或一步方法时,如果完全不讨论 CFG,只展示无条件采样质量,结论常常不够有用。
11. 从研究阅读顺序看,这些方法最好这样串起来
建议把扩散采样与蒸馏路线分成四层读:
第一层:基础建模
先读 DDPM 和 Score Matching / Score SDE,目标是理解为什么扩散可以通过噪声预测转成监督学习。
第二层:路径与求解器
再读 DDIM、Euler / Heun、DPM-Solver / DPM-Solver++,目标是理解为什么同一个模型可以通过改离散化方法变快。
第三层:少步蒸馏
随后读 Progressive Distillation、Consistency Models 和 LCM,目标是理解为什么要把求解器优化升级为学生模型蒸馏。
第四层:一步与路径整流
最后读 DMD、DMD2、Phased DMD 和 Rectified Flow / Rectified Diffusion,目标是理解为什么研究重心会从“更好的积分器”进一步转向“更好的目标映射”。
12. 常见误判
误判 1:步数少就是更先进
不对。
如果一个 1 步模型只能在非常窄的数据分布上工作,而一个 8 步模型在真实 prompt 和复杂条件下更稳,那么后者在工程上反而更先进。
误判 2:DMD 就是把 DDIM 压到一步
不对。
DMD 系列不是单纯做轨迹压缩,而是直接围绕分布匹配和学生映射来设计目标。
误判 3:Rectified Flow 只是换个名字
也不对。
它的关键在于把“路径几何形状”作为优化对象,这和单纯替换 solver 不属于同一层问题。
误判 4:求解器比较只看 FID
远远不够。
同样 FID 下,不同步数和 solver 在 CFG 稳定性、边缘锐度、条件响应、人像手部细节和特殊 prompt 敏感性上都可能差很多。
13. 一份实践化的选择建议
如果你在真实项目中选路线,先问能不能不重训:如果能,用 DPM-Solver++、Heun、DDIM 先榨干现有模型。再问业务是否真的需要 1 到 4 步;如果只是从 50 步降到 12 步,solver 往往已够。只有必须做交互式生成时,才优先考虑 consistency、LCM、Rectified 少步路线;明确研究一步高质量生成时,再投入 DMD2、Phased DMD 这类复杂蒸馏。每次比较都要同时报告 CFG、prompt 分布、局部视觉质量和多样性。
14. 这页的一个总判断
扩散方法对比时,最容易犯的错是把所有工作都看成“减少步数”。更准确的看法是:DDIM 改路径,Euler、Heun、DPM-Solver 改数值积分,Progressive Distillation、Consistency、LCM 改学生模型的步数预算,DMD、DMD2、Phased DMD 改整体分布匹配方式,Rectified Flow / Diffusion 则改路径几何本身。只有先分清这些层次,后面的论文、实验和部署选择才会真正有条理。
15. 推荐跳转
- 想看完整叙事主线:扩散模型发展脉络
- 想看训练目标与参数化:扩散训练与表示
- 想看求解器与采样端细节:采样与推理加速
- 想看少步和一步路线:一步生成、蒸馏与整流
- Title: 扩散模型:扩散方法对照表
- Author: Charles
- Created at : 2025-05-01 09:00:00
- Updated at : 2025-05-01 09:00:00
- Link: https://charles2530.github.io/2025/05/01/ai-files-diffusion-comparison-table/
- License: This work is licensed under CC BY-NC-SA 4.0.