J.D.'s Studio.

关于 Stable Diffusion 里的采样器

2025/04/05
loading

在 ComfyUI 里有一个“K 采样器”节点,其中有一个属性是“采样器名称”,我在看一些教程的时候,有些工作流需要去调整这个属性,里面有很多的选项,本篇对这部分的内容做一下整理。

这是在我当前的 ComfyUI 里的一些分类器名称:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
euler
euler_cfg_pp
euler_ancestral
euler_ancestral_cfg_pp
heun
heunpp2
dpm_2
dpm_2_ancestral
Ims
dpm_fast
dpm_adaptive
dpmpp_2s_ancestral
dpmpp_2s_ancestral_cfg_pp
dpmpp_sde
dpmpp_sde_gpu
dpmpp_2m
dpmpp_2m_cfg_pp
dpmpp_2m_sde
dpmpp_2m_sde_gpu
dpmpp_3m_sde
dpmpp_3m_sde_gpu
ddpm
Icm
ipndm
ipndm_v
deis
res_multistep
res_multistep_cfg_pp
res_multistep_ancestral
res_multistep_ancestral_cfg_pp
gradient_estimation
er_sde
ddim
uni_pc

我们先给它分成几个大类:

graph LR
  A[采样器分类体系] --> B[经典ODE求解器]
  A --> C[祖先采样器]
  A --> D[DPM系列]
  A --> E[新派采样器]
  A --> F[其他特殊类]

  B --> B1["Euler"]
  B1 --> B11("euler")
  B1 --> B12("euler_cfg_pp")
  B --> B2["Heun"]
  B2 --> B21("heun")
  B2 --> B22("heunpp2")

  C --> C1["基础祖先型"]
  C1 --> C11("euler_ancestral")
  C1 --> C12("euler_ancestral_cfg_pp")
  C --> C2["DPM祖先型"]
  C2 --> C21("dpm_2_ancestral")
  C2 --> C22("dpmpp_2s_ancestral")

  D --> D1["DPM标准型"]
  D1 --> D11("dpm_2")
  D --> D2["DPM++多步求解器"]
  D2 --> D21("dpmpp_2m")
  D2 --> D22("dpmpp_2m_cfg_pp")
  D --> D3["DPM-SDE类"]
  D3 --> D31("dpmpp_sde")
  D3 --> D32("dpmpp_sde_gpu")
  D3 --> D33("dpmpp_3m_sde")

  E --> E1["快速采样器"]
  E1 --> E11("uni_pc")
  E --> E2["改进收敛型"]
  E2 --> E21("ddim")
  E2 --> E22("ipndm")

  F --> F1["自适应算法"]
  F1 --> F11("dpm_adaptive")
  F --> F2["残差网络型"]
  F2 --> F21("res_multistep")

以下是各主要采样器分类的简要说明:

经典ODE求解器

  • 核心特点:基于常微分方程的确定性算法,生成结果稳定可复现
  • 代表采样器EulerHeunLMS
  • 适用场景:快速验证创意、商业级稳定输出
  • 优势:计算效率高,显存占用低
  • 局限性:高步数下细节表现弱于DPM系列

祖先采样器

名字里带有 a,或者是 ancestral 字样的

  • 核心特点:通过噪声重采样实现非收敛生成,结果不可预测
  • 代表采样器Euler aDPM++ 2S a
  • 适用场景:艺术创作、角色设计变体生成
  • 优势:输出多样性高,避免模式固化
  • 注意事项:需配合CFG值调节(建议5-7)防止噪点

DPM系列

DPM标准型

  • 基础架构:早期DPM算法的直接实现
  • 代表采样器dpm_2
  • 现状:逐步被DPM++取代

DPM++多步求解器

  • 技术突破:二阶多步预测-校正架构
  • 代表采样器dpmpp_2m(写实首选)
  • 参数建议:20-30步 + Karras调度器

DPM-SDE类

  • 核心价值:在确定性框架中引入可控随机性(即带有 SDE 字样)
  • 代表采样器dpmpp_sde(创意平衡型)
  • 硬件需求:建议≥12GB显存

新派采样器

  • 创新方向:低步数高效率生成
  • 典型代表
    • UniPC:10步内完成基础构图
    • LCM:Latent Consistency Model的极速生成
  • 适用场景:移动端部署、批量生成测试

其他特殊类

  • 自适应算法dpm_adaptive(自动调节步长)
  • 残差网络型res_multistep(结合残差连接)
  • 历史遗留型DDPM(原始扩散模型算法)
  • 使用建议:仅建议在特定研究场景使用

选择决策树

结合上面的内容,我们对这些采样器的选择可以有个大概的思路:

graph TD
    A[需求类型] --> B{要稳定结果?}
    B -->|是| C[经典ODE/DPM++]
    B -->|否| D[祖先-SDE类]
    C --> E{要最高质量?}
    E -->|是| F[DPM++ 2M]
    E -->|否| G[Euler/Heun]
    D --> H{要可控随机?}
    H -->|是| I[DPM++ SDE]
    H -->|否| J[Euler a]
CATALOG
  1. 1. 经典ODE求解器
  2. 2. 祖先采样器
  3. 3. DPM系列
    1. 3.1. DPM标准型
    2. 3.2. DPM++多步求解器
    3. 3.3. DPM-SDE类
  4. 4. 新派采样器
  5. 5. 其他特殊类
  6. 6. 选择决策树