在 Stable Diffusion 里,sampling 方法通常也叫 sampler / scheduler,本质是:模型从随机噪声开始,按某种反向去噪策略一步步生成图像。Diffusers 官方说明里,scheduler 会根据模型输出和 timestep 返回去噪后的 sample;训练时它定义加噪方式,推理时它定义如何更新 sample。([Hugging Face][1])
1. 常见 Stable Diffusion Sampling 方法
| 类别 | 常见 sampler / scheduler | 特点 | 适合场景 |
|---|---|---|---|
| 原始扩散采样 | DDPM | 最经典,随机性强,步数多,速度慢 | 论文 baseline、研究原理 |
| 确定性采样 | DDIM | 可用较少步数生成,结果更稳定,便于复现 | img2img、可控生成、数据集复现 |
| Pseudo Numerical | PNDM / PLMS | Stable Diffusion 早期常用默认采样器,质量稳定 | 通用生成、默认 baseline |
| Linear Multistep | LMS / K-LMS | 多步数值解法,平滑稳定 | 通用图像生成 |
| Euler 系列 | Euler / Euler a | Euler 稳定;Euler a 带 ancestral 随机性,多样性更强 | 批量生成、多样化数据 |
| Heun 系列 | Heun | 类似改进 Euler,质量较稳但略慢 | 高质量生成 |
| DPM2 系列 | DPM2 / DPM2 a / KDPM2 / KDPM2 a | 二阶 DPM 采样,a 版本随机性更强 | 质量与多样性平衡 |
| DPM-Solver 系列 | DPM-Solver / DPM-Solver++ / DPM++ 2M / DPM++ SDE | 高阶 ODE/SDE 求解器,少步数高质量 | 当前最常用的数据生成采样器 |
| Karras 噪声调度 | DPM++ 2M Karras / Euler Karras / LMS Karras | 改进 sigma/noise schedule,常提升稳定性和细节 | 高质量批量合成数据 |
| UniPC | UniPCMultistepScheduler | 训练无关的快速 predictor-corrector 采样框架 | 少步数快速生成 |
| DEIS | DEISMultistepScheduler | 高效多步采样器 | 快速高质量生成 |
| LCM / Turbo 类 | LCMScheduler / SDXL-Turbo | 极少步数,LCM 常见 2--4 步,SDXL Turbo 可 1 步推理 | 快速预览、大规模粗生成 |
Diffusers 官方的 scheduler 映射表中明确列出了 A1111/k-diffusion 中常见的 DPM++ 2M、DPM++ 2M Karras、DPM++ SDE、DPM2、Euler、Euler a、Heun、LMS、UniPC、DEIS 等采样器及其在 Diffusers 中的对应 scheduler。([Hugging Face][1])
2. 重点采样器说明
DDPM
DDPM 是最原始的扩散概率模型采样方式,理论基础清晰,但推理步数通常较多,速度较慢。适合做算法理解、论文复现和 baseline,不太适合高吞吐数据生成。([Hugging Face][2])
DDIM
DDIM 是对 DDPM 去噪过程的非马尔可夫扩展,常用于更少步数、更稳定的生成流程。它适合需要固定 seed、可重复生成、img2img 或自动标注数据构造的场景。([Hugging Face][3])
DPM-Solver / DPM++
DPM-Solver 和 DPM-Solver++ 是专门面向 diffusion ODE 的快速高阶求解器。Diffusers 文档说明,DPM-Solver 在 20 步时通常能生成高质量样本,10 步也能得到不错结果。([Hugging Face][4])
实际批量生成数据时,常用:
text
DPM++ 2M Karras
DPM++ SDE Karras
DPM++ 2M
DPM++ 2S a Karras
其中 DPM++ 2M Karras 是很多 Stable Diffusion WebUI / ComfyUI 工作流中的通用高质量默认选择。
Euler / Euler a
Euler 系列简单、速度快。Euler 更稳定,Euler a 带 ancestral 随机性,生成结果变化更大。做合成数据增强时,如果你希望同一 prompt 生成更多风格变化,Euler a 比较有价值。Diffusers 官方映射中,Euler 对应 EulerDiscreteScheduler,Euler a 对应 EulerAncestralDiscreteScheduler。([Hugging Face][1])
UniPC
UniPC 是一种训练无关的快速采样框架,由 predictor 和 corrector 组成,支持多种 diffusion 模型和不同阶数,目标是少步数下提升采样质量。([Hugging Face][5])
LCM / SDXL Turbo
LCM 属于极少步数生成路线。Diffusers 文档说明,LCM 可以在 2--4 步 生成高质量图像,而不是传统 diffusion 常见的 20--30 步;LCMScheduler 通常用于 1--8 步生成。([Hugging Face][6])
SDXL Turbo 是时间蒸馏后的 SDXL 模型,Diffusers 文档称其可以低至 1 step 推理。([Hugging Face][7])
3. 做"生成数据集"时的推荐选择
高质量、稳定、通用
text
DPM++ 2M Karras
Steps: 20--30
CFG Scale: 5--8
适合生成商品图、目标检测训练图、风格较稳定的合成数据。
更高多样性
text
Euler a
DPM++ 2S a Karras
DPM2 a Karras
Steps: 25--40
适合做数据增强,让姿态、背景、光照、纹理变化更丰富。
快速大规模粗生成
text
LCM
LCM-LoRA
SDXL Turbo
Steps: 1--8
适合先快速生成大量候选图,再用 CLIP / 分类器 / 检测器过滤。
可复现、可控生成
text
DDIM
PNDM
DPM++ 2M
适合固定 seed、prompt 模板、类别标签,构建可追溯的数据生成 pipeline。
4. 结论
做 Stable Diffusion 数据生成,优先推荐:
text
首选:DPM++ 2M Karras
多样性:Euler a / DPM++ 2S a Karras
快速:LCM / SDXL Turbo
可复现:DDIM
研究 baseline:DDPM / PNDM
对于自动标注或训练集扩充,比较实用的组合是:
text
DPM++ 2M Karras 生成高质量主数据
Euler a 生成多样化增强数据
LCM / Turbo 生成大规模候选数据
CLIP / 检测器 / 人工审核做过滤
参考链接:
1\]: https://huggingface.co/docs/diffusers/en/api/schedulers/overview "Schedulers · Hugging Face" \[2\]: https://huggingface.co/docs/diffusers/api/schedulers/ddpm "DDPMScheduler · Hugging Face" \[3\]: https://huggingface.co/docs/diffusers/api/schedulers/ddim "DDIMScheduler · Hugging Face" \[4\]: https://huggingface.co/docs/diffusers/en/api/schedulers/multistep_dpm_solver "DPMSolverMultistepScheduler · Hugging Face" \[5\]: https://huggingface.co/docs/diffusers/en/api/schedulers/unipc "UniPCMultistepScheduler · Hugging Face" \[6\]: https://huggingface.co/docs/diffusers/using-diffusers/inference_with_lcm?utm_source=chatgpt.com "Latent Consistency Model" \[7\]: https://huggingface.co/docs/diffusers/using-diffusers/sdxl_turbo?utm_source=chatgpt.com "Stable Diffusion XL Turbo"