⬡ 节点流学园

⚙️ 02-核心机制

采样器与调度器选型指南

核心samplerschedulerkarras选型

一句话定义

sampler(采样器)决定"每一步如何减噪"的算法,scheduler(调度器)决定"噪声日程表"(每步减多少)——两者组合定义了从噪声到图像的完整路径,选型不同,同 seed 同参数的图也完全不同。

为什么重要

社区新模型发布时总附"推荐 sampler+scheduler";能读懂选型理由,你就能在新模型上不靠抄参数地调出好结果,也能解释"为什么我的图总差一口气"。

前置知识

KSampler 全参数解剖:seed/steps/cfg/denoise(KSampler 参数全貌)、扩散模型直觉:从噪声到图像的迭代雕刻(去噪循环)。

核心概念

常用 sampler 速览(名称均为 ComfyUI 中的下拉值):

sampler特点典型用途
euler最简单稳定,步数敏感度低快速草稿、新模型试跑
euler_ancestral(euler_a)每步注入随机性,变化丰富二次元/风格化,多样性优先
dpmpp_2m多步法,同步数质量高,确定性通用首选(配 karras)
dpmpp_2m_sdeSDE 变体,细节纹理好但有随机性写实细节
dpmpp_3m_sde更高阶,低步数表现好15-25 步出好图
uni_pc统一预测-校正,低步数友好快速出图
lcm配合 LCM 蒸馏模型,1-8 步实时/低算力
ddim老牌,行为可预测复现老工作流

常用 scheduler 速览:

scheduler日程特点典型搭配
normal线性默认通用
karras后期步长更细,细节更佳SD1.5/SDXL 主力
simple简单分段Flux 常用
beta较新的分布Flux/视频模型常用
sgm_uniform均匀步长新家族(flow-matching)常用
exponential指数衰减实验向

原理与机制

  • ancestral(_a)与 _sde 的"随机性":每步额外采样噪声,序列不可复现于不同实现,但同环境同 seed 仍可复现;换来的是纹理多样、不重复。
  • 确定性 vs 随机:euler、dpmpp_2m 等确定性采样器同 seed 严格同图;带 a/sde 的会有细微差异面。
  • karras 的直觉:前期大步快速定形,后期小步精修——与"先轮廓后细节"的雕刻过程匹配,所以几乎总比 normal 强。
  • 新家族(flow matching,如 Flux):噪声调度是"线性流",选 simple/beta/sgm_uniform 更符合其训练分布;沿用 karras 反而不佳(见 Flux 架构与工作流:cfg=1 的新物种)。

公式 / 模型 / 图示

x_T ──▶ step(x_T) ──▶ … ──▶ x_0
        ▲每步减噪量由 scheduler 的 σ_t 序列决定
        ▲减噪算法由 sampler 决定(单步/多步/预测-校正/随机)
组合空间 = sampler × scheduler → 推荐组合而非自由恋爱:
  SD1.5:  dpmpp_2m + karras(20-30步)
  SDXL:   dpmpp_2m + karras(25-40步)
  Flux:   euler + simple/beta(20-30步, cfg=1)
  LCM/Turbo: lcm 或 euler + sgm_uniform(1-8步)

直观类比

scheduler 是登山路线图(哪段陡走小步、哪段缓走大步),sampler 是登山姿势(稳扎稳打 euler vs 连滚带爬但刺激的 ancestral)。好路线配稳姿势=dpmpp_2m+karras;蒸馏模型则是"缆车直达"(步数极少)。

实例与案例

  • 用 X/Y/Z Plot:把调参变成实验 的 X/Y/Z Plot 做矩阵实验:行=sampler,列=scheduler,固定 seed 与 steps,一张网格看清组合差异——这是选型 fastest path。
  • 新下载的二次元模型页面上写"euler_a, normal" → 尊重作者训练时用的组合,先抄再改。
  • 低显存出图:uni_pc + normal,16 步快速预览构图。

常见误区

  • "采样器有绝对高下":只有"与模型的匹配度";Flux 上强行 dpmpp_2m+karras 效果往往不如 euler+simple。
  • "ancestral 不可复现":同机同版同 seed 仍可复现;只是跨软件/跨实现不可对齐。
  • "步数翻倍必更好":karras 日程 20 步后的步数大多消耗在冗余精修;先看 X/Y/Z Plot:把调参变成实验 实验再决定。
  • 忽视蒸馏模型专用参数:Turbo/LCM 类要 cfg=1-2、低步数,按普通模型参数跑会出灰图。

自测题

  1. dpmpp_2m 与 dpmpp_2m_sde 的核心差异?
  2. 为什么新 flow-matching 家族推荐 simple/beta 而不是 karras?
  3. 想快速对比 8 种采样器,最高效的方法是什么?
  4. LCM 模型用 30 步 + cfg 7 会发生什么?
参考答案
  1. 前者确定性(每步纯计算),后者每步注入随机噪声,纹理更丰富但路径有随机性。
  2. 其训练时的噪声调度是线性/均匀流,日程表应贴近训练分布;karras 的对数式日程与其不匹配。
  3. X/Y/Z Plot 网格实验,固定其余参数一次出对比图。
  4. 大概率灰图/过曝——蒸馏模型需要 cfg=1-2、低步数的专用区间。

与其他知识点的关系

延伸阅读

  • ComfyUI 采样器/调度器命名与实现:samplers 源码目录(读懂一个即可举一反三)
  • karras 调度论文(Elucidating the Design Space of Diffusion Models):arxiv.org/abs/2206.00364

前置知识

KSampler 全参数解剖:seed/steps/cfg/denoise

关联知识点

X/Y/Z Plot:把调参变成实验Flux 架构与工作流:cfg=1 的新物种SDXL 与多编码器家族:换模型换什么