一句话定义
KSampler 是把"模型 + 正负条件 + 起始潜空间"变成"成品潜空间"的执行节点,六个参数(seed、steps、cfg、sampler_name、scheduler、denoise)完整定义了一次生成——本页逐个给出物理意义、推荐区间与联动关系。
为什么重要
这 6 个参数是 ComfyUI 的"驾驶舱"。90% 的效果调整、90% 的玄学困惑、90% 的可复现问题都发生在这里。
前置知识
扩散模型直觉:从噪声到图像的迭代雕刻(去噪循环)、CLIP 与条件编码:文字如何变成方向(条件)、第一个文生图工作流解剖(节点位置)。
核心概念(逐参数)
| 参数 | 作用 | 推荐区间(基线模型) | 说明 |
|---|---|---|---|
| seed | 决定初始噪声,控制随机性 | 任意 | 配合 control_after_generate(见 队列、种子与可复现性) |
| steps | 去噪迭代次数 | SD1.5: 20-30;SDXL: 25-40 | 收益递减,详见 扩散模型直觉:从噪声到图像的迭代雕刻 |
| cfg | 正负条件引导强度 | SD1.5: 6-8;SDXL: 4-7 | 过高炸图,机制见 CFG 与负面引导:引导强度的数学 |
| sampler_name | 去噪算法 | euler / dpmpp_2m 起步 | 选型学见 采样器与调度器选型指南 |
| scheduler | 噪声日程表 | karras / normal | 同见 采样器与调度器选型指南 |
| denoise | 重绘强度 0-1 | 文生图 1.0;图生图 0.3-0.7 | 见 图生图与重绘幅度(denoise) |
原理与机制
- seed → noise:以 seed 播种的高斯噪声即"大理石"。文生图 denoise=1.0 时起始 latent=纯噪声;图生图时噪声与输入 latent 混合,比例即 denoise。
- steps 的真实含义:循环次数;但注意图生图时实际步数 = steps × denoise(只走反向过程末段,见 扩散模型直觉:从噪声到图像的迭代雕刻)。
- cfg 的位置:每一步中,引导向量按
ε(c−)+cfg·(ε(c+)−ε(c−))合成(数学见 CFG 与负面引导:引导强度的数学),因此 cfg 是"每一步都在生效"的持续拉力,不是最后滤镜。 - KSampler (Advanced) 版本多出:add_noise、start_at_step/end_at_step(把 steps 换算成绝对步号)、return_with_leftover_noise。价值:把一次采样拆成两段接力(如 Base 走 0-80% 步 → Refiner 续 80-100%,见 SDXL 与多编码器家族:换模型换什么),以及分段注入修改。
公式 / 模型 / 图示
文生图: x_start = randn(seed) # denoise=1
图生图: x_start = mix(noise(seed), VAE_Encode(img), denoise)
循环 steps 次(图生图时实际 steps×denoise 次):
ε = cfg融合( MODEL(x, t, c+), MODEL(x, t, c−) )
x = scheduler.step(x, ε)
输出 → VAE Decode直观类比
- seed:骰子点数(起点随机性)
- steps:锤击次数(雕刻工时)
- cfg:甲方监工的强势程度(过高把雕塑掰变形)
- denoise:动工范围(整块重雕 vs 只抛光表面)
- sampler/scheduler:雕刻手法与工序表
实例与案例
- 换构图不改风格:seed 固定,只改 prompt → 构图随文字变,风格稳定。
- 二段接力:Advanced 版 start_at=0/end_at=20(20 步)接第二支 KSampler start_at=20/end_at=40 并换模型,实现 Base→Refiner。
- 快速废图筛:steps=10、sampler=euler 先出草稿选构图,选中的再上 30 步精修,省一半时间。
常见误区
- 把 cfg 当"清晰度"拉满:cfg>10 常出现色块炸裂、对比度失真;清晰度不足请提高 steps 或换 sampler。
- 图生图 steps=30、denoise=0.3 以为跑了 30 步:实际 9 步;想要更多细节要么提 steps 要么提 denoise。
- 以为 seed 可以补偿参数:任何参数变化都会改变结果路径,seed 只保证"同一套参数下的重复性"。
- Advanced 与普通 KSampler 混用不查 step 号:两段接力的 step 区间必须无缝衔接,否则中间丢步或重复步。
自测题
- denoise=0.6、steps=25 的图生图,实际执行多少步?
- cfg=25 的图通常长什么样?为什么?
- 想把 Base 模型的前 24 步交给 Refiner 模型完成剩余 8 步,需要哪个节点、怎么设?
- 为什么换 sampler 后同 seed 结果不同?
参考答案
- 25×0.6=15 步。
- 过饱和、高对比、塑料感/撕裂感;因为差值放大过度,引导向量超出模型分布。
- KSampler (Advanced) ×2:第一支 start 0/end 24(return_with_leftover_noise 开),第二支 start 24/end 32。
- sampler 决定每一步"如何减噪"的路径,路径不同终点不同;seed 只固定起点噪声。
与其他知识点的关系
- 采样器与调度器选型指南 展开 sampler/scheduler 两个参数的完整选型学。
- CFG 与负面引导:引导强度的数学 展开 cfg 的数学。
- SDXL 与多编码器家族:换模型换什么 用 Advanced 版实现 Base+Refiner 接力。
延伸阅读
- ComfyUI 官方 Sampling 文档:docs.comfy.org
- 采样器对比实验帖:r/StableDiffusion 社区历年评测
前置知识
扩散模型直觉:从噪声到图像的迭代雕刻CLIP 与条件编码:文字如何变成方向