Chapter 04

采样器与调度器

KSampler 节点上那一堆 sampler_namescheduler,是 ComfyUI 初学者最容易"随便选一个"的地方。这一章把它们讲透——每种背后在干嘛、适合谁、组合成什么"甜点"。

一、先分清两个概念

Sampler(采样器)
决定"每一步怎么把预测的噪声应用到 latent 上"的算法。Euler / DPM++ / UniPC / LCM 等都是算法名。本质是求解扩散 SDE/ODE 的数值方法。
Scheduler(调度器)
决定"N 步里每一步去掉多大比例的噪声"——即噪声强度在时间轴上的分布。Karras / Exponential / Normal 是不同的分布形状。

一个比喻:Sampler 是"怎么走",Scheduler 是"路怎么铺"——两者组合决定你从纯噪声到清晰图的路径。

二、Sampler 家族速览

采样器速度质量典型步数备注
euler⚡⚡⚡★★★20-30经典一阶,快但细节弱
euler_ancestral⚡⚡⚡★★★20-30"a" = ancestral,随机性大,多样性好
heun⚡⚡★★★★20-30Euler 二阶改进,质量好但慢 2×
dpm_2 / dpm_2_ancestral⚡⚡★★★★20-25DPM 二阶
dpmpp_2m⚡⚡⚡★★★★★20-30通用默认,DPM++ 二阶多步法
dpmpp_2m_sde⚡⚡★★★★★25-35加了随机性的 DPM++,更稳定
dpmpp_3m_sde★★★★★25-40三阶版,质量顶但慢
uni_pc⚡⚡⚡⚡★★★★10-20少步数下最优,Flux/SDXL 通吃
lcm⚡⚡⚡⚡⚡★★★4-8蒸馏模型专用,实时出图
ddim⚡⚡⚡★★★20-50老牌确定性采样,Inpaint 常用

怎么记这张表

  1. 默认就选 dpmpp_2m——80% 场景最佳折衷
  2. 想要更稳、细节更好:换 dpmpp_2m_sde(+5-10 步)
  3. 少步数(< 15):用 uni_pceuler
  4. LCM/Turbo/Lightning 蒸馏模型:sampler 必须跟模型匹配——LCM 选 lcm,Lightning 选 euler,Turbo 选 dpmpp_sde
  5. img2img / Inpaint:ddim 更稳,但 dpmpp_2m 也行
_ancestral / _sde 后缀是啥
——后缀表示这是随机采样(SDE)。普通 Euler/DPM++ 是确定性(ODE),同 seed 跑两次像素级一致;ancestral/sde 每步注入随机噪声,同 seed 结果会略有不同但画面更有活力。出大图商用选确定版,做多样化探索选 ancestral。

三、Scheduler 家族

调度器噪声曲线适合
karras前段慢后段快SDXL 默认王,85% 场景选它
exponential指数下降细节导向,长 prompt
normal均匀线性SD1.5 默认,保守选择
simple简单 cosineFlux 官方推荐
sgm_uniformSGM 均匀视频模型(AnimateDiff)常用
ddim_uniformDDIM 均匀跟 ddim sampler 配对
betaBeta 分布实验性,偶尔比 karras 好

实战 Scheduler 选择

四、Steps:多少步够?

直觉:步数越多,画面越精细。实际上:过了"饱和点"再加步数,肉眼几乎看不出差异,但推理时间线性增加

模型类步数甜点过了也白搭
SDXL 社区微调25-3040+ 无收益
Flux.1 dev20-3030+ 略升但成本高
Flux.1 schnell / SDXL Turbo4-8蒸馏模型,超过 8 反而画面噪
SDXL Lightning4 或 8(模型两版)对应用对应,别混
LCM4-8同上
Hi-Res Fix(第二阶段)10-15(denoise 0.4-0.6)看 denoise 值定
蒸馏模型跟普通模型的步数天差地别
——Turbo/Lightning/LCM 训练时就教"4 步出图",你给 30 步反而乱。一定要按模型文档的 steps 来。

五、CFG(Classifier-Free Guidance Scale)

CFG 控制"文字 prompt 的权重"——越高模型越"听话",越低越自由发挥。但高 CFG 有副作用:过饱和、焦糊、手部畸形

模型CFG 甜点超出会怎样
SDXL5-7> 9 过饱和、灼伤
SDXL Turbo1-2> 3 乱
SDXL Lightning1-1.5同上
Flux.1 devcfg=1(真 CFG 是在 FluxGuidance 节点设 3.5)> 4 画面灼伤
Flux.1 schnellcfg=1 不用 FluxGuidance
SD1.57-12> 15 噪点多
Pony V66-8> 10 过饱和

六、Denoise:img2img / Inpaint 的灵魂参数

在 KSampler 里,denoise 参数决定"多大程度重画"。文生图永远是 1.0;img2img 时才有意义:

一个反直觉的公式:实际执行步数 = steps × denoise。设 steps=30,denoise=0.5,实际只跑 15 步——但起点不是纯噪声而是原图加 50% 噪声。

七、Seed:可复现的核心

Seed 是随机种子——同 seed + 同参数 + 同模型 = 同一张图(确定性 sampler 下)。

seed + batch 技巧
Empty Latent Imagebatch_size 设成 4,配合 seed randomize——ComfyUI 一次生成 4 张同 prompt 不同种子的图,便于挑选。SDXL 下 VRAM 够的话 batch=4 只比 batch=1 慢 3-3.5 倍,不是线性。

八、ComfyUI 高级节点:SamplerCustom / SamplerCustomAdvanced

默认 KSampler 把 sampler 和 scheduler 绑死;想做更细的控制用 SamplerCustom,把 sampler 和 sigmas 拆成两个节点:

模型 ─▶ KSamplerSelect(选 dpmpp_2m) ───┐ ├──▶ SamplerCustomAdvanced ──▶ Latent 模型 ─▶ BasicScheduler(karras, steps=25)─┤ │ noise ───┤ guider ────┤ latent ────┘

用法场景:

九、各家"甜点配方"速查

SDXL(社区微调,如 Juggernaut)

sampler:   dpmpp_2m
scheduler: karras
steps:     28
cfg:       6.5
denoise:   1.0
分辨率:    1024×1024 / 1216×832 / 832×1216

Flux.1 dev

sampler:       euler          (Flux 官方推荐)
scheduler:     simple / beta
steps:         20-25
cfg:           1.0            (KSampler 上的)
FluxGuidance:  3.5            (实际文字引导强度)
denoise:       1.0
分辨率:        1024×1024 / 1440×720 等,Flux 支持非标准比例

SDXL Lightning 8-step

sampler:   euler
scheduler: sgm_uniform
steps:     8
cfg:       1.5
denoise:   1.0

Pony V6

sampler:   euler_ancestral / dpmpp_2m_sde
scheduler: karras
steps:     25-30
cfg:       7
正向必加:  score_9, score_8_up, score_7_up, source_anime

Hi-Res Fix(SDXL 二阶段放大)

一阶段 KSampler: 1024 出图,steps=25,denoise=1.0
放大节点: Upscale Latent by 1.5 (或先用 ESRGAN/4x-UltraSharp 放大)
二阶段 KSampler: steps=15, denoise=0.4-0.5, 同 sampler

十、调参的"科学"方法

改 prompt 都用随机 seed → 看到好图固定 seed → 再微调参数——这才是正确顺序:

  1. Prompt 探索:固定 sampler/steps/cfg,只改 prompt,seed 随机
  2. 挑到好构图:记下那张图的 seed(ComfyUI 输出 metadata 里有)
  3. 固定 seed 调参:固定那个 seed,对比 cfg=5 vs 6 vs 7、steps=20 vs 30——这时画面只因参数变化
  4. 批量出图:参数调定后,seed 随机,batch_size=4,挑最好的
  5. Hi-Res:把挑中的那张送入 upscale pipeline

十一、反模式

  1. CFG 设 15 逼模型听话:反而画面崩。低 CFG + 更好的 prompt 才是正道。
  2. 蒸馏模型配高步数:Turbo/Lightning 设 30 步会出奇怪噪点——跟模型文档的 step 来。
  3. 调参不固定 seed:永远分不清是参数影响还是 seed 影响,白折腾。
  4. Scheduler 无脑用 normal:SDXL 上 normal 质量不如 karras,但新手 KSampler 默认是 normal——记得手动改。
  5. Flux 忘了 FluxGuidance:直接 cfg=1 画面没引导,模型"摆烂";必须用 FluxGuidance 节点设 3.5。
  6. 一直 steps 50:浪费时间。25-30 已足够,省下的时间多跑几张 seed。

十二、本章小结

记住:
① 默认配方:dpmpp_2m + karras + 25 步 + cfg 6——SDXL 上这组 80% 场景最优。
② 蒸馏模型(Turbo/Lightning/LCM)的 sampler/steps/cfg 跟模型绑死,看文档别自作聪明。
③ Flux 的 CFG=1 要配合 FluxGuidance=3.5,缺一不可;不用负向 prompt。
④ 调参秘诀:prompt 探索用随机 seed,参数调优用固定 seed,batch 出品用随机 seed。