ComfyUI中K采样器各参数详细分析比对进阶教程
恭喜你,在你看以这段文字的时候,那就代表你已经消耗了10MB的流量,因为此文的图片非常多!
之前我们已经学过关于生成图片的基础方法啦,而下面的内容就稍微难一些了,但也没有你想的那么难。
实在不理解也没关系,边玩边学,以后用到的时候再回来看这篇文章,你将会收获更大,记得更深。
推荐教程
如果您想了解更多关于ComfyUI绘画的工作流等使用技巧,可以访问下面这篇文章。
如果您对Stable Diffusion WebUI也比较感兴趣,可以查看下面这篇文章。
互帮互助
如果您在使用过程中有任何疑问,可以【点击此处】前往本站的【问答模块】发帖求助,会有大佬在此回帖。
K采样器
我们来回顾一下采样器,这其中还有几个参数没讲呢。

种子
什么是种子?种子可以理解为每一张图片的身份证号码,无论是通过什么样的方式来生成图像,都会有一个种子编号,这就是图像的唯一标识。
如果我们想要生成与上一次生成的图像完全一致的新图像,那么我们就需要当前设置内的所有参数和种子号码与之前一致,种子的影响是所有参数中影响最大的。
总而言之,言而总之,如果你想重复对同一张图片高度,看一下各参数对这张图片的影响,那请一定要固定种子的ID。
然而讲种子并不能只讲种子,它还有一个配套的选项,那就是control_after_generate
参数。
种子控制
control_after_generate
翻译成中文就是运行后操作
,也就是你每执行一次图片生成之后,种子参数要产生什么样的变化。
如果按照顺序来翻译,是以下这几种情况。
- 固定:无论怎么操作,种子都是不变的。
- 增加:每次生成图片之后,在之前的种子数值基础上加1。
- 减少:每次生成图片之后,在之前的种子数值基础上减1。
- 随机:不固定的随机生成一个种子ID。
注意:假如原本的种值是1234
,现在你修改为1235
,种子值只加了1
,你可能觉得新旧图片的差别应该只有一点点,其实并不是的,哪怕非常临近的种子,生成后的图片也是天差地别的。

步数
简而言之,你可以理解为要把这道菜在微波炉里面热多久?时间越长越好,但也可能会糊,所以需要自行尝试。
专业点来讲,就是指在生成每张图像时,应该绘制扩散多少次计算。一般来说数值在20-50次之间即可。
采样步骤与采样方法息息相关,每次采样相当于对原始图像(噪声)进行了一次去噪。
最初的DDPM采样步数需要上千步才能获得高质量的图片,其消耗的算力和时间成本不可接受。在牺牲准确和多样性的情况下,我们选用了效率更高的采样方式DDIM,获得高质量的图片只需要50到100步。后来如DPM++ 2M之类的采样算法更是将采样步骤缩进至20步,UniPC更是只需要10步左右就能获取高质量的图片,与之带来的是采样的时间和算力消耗大幅下降,同样的时间内同样的设备能生成出的作品能够更多。
各种采样器生成出来的图片差距还是比较大的,请魔法师自行权衡。
下面是在同一个采样器模式下,不同步数的多样性绘制次结果比图表。我们可以清晰看每一步的变化过程,在第8步的时候就已经基本能看了,40步之后就显得不太真实了,过度绘制。




















CFG
举例:你希望厨师自由发挥的幅度是多少?如果你希望厨师严格按照菜谱(正面条件)烹饪,那就将CFG值调大。
CFG参数是指对Prompt提示词的权重影响,指定AI自由发挥的程度是多少。
- CFG的数值越大,则越按提示词引导生成的权重越大,AI自由发挥程度越小。
- CFG的数值越小,则越按提示词引导生成的权重越小,AI自由发挥程度越大。
CFG指数/CFG Scale是一个重要的概念,用于描述条件生成过程中文本提示对图像生成的引导程度。在扩散模型中,我们使用随机微分方程来描述前向扩散和反向去噪过程,其中反向去噪过程使用神经网络来拟合关于原始数据分布的梯度,以进行噪声预测。然而,这种噪声预测适用于随机生成图像,无法进行条件生成。
通过数学推论,我们可以使用分类器来进行条件生成。我们可以通过将原始数据的梯度方向与分类器的梯度方向相结合来在条件约束下生成数据点。然而,构建显式分类器存在一些问题,例如需要额外训练分类器,分类器的质量将决定生成效果等。
为了避免这些问题,我们提出了classifier-free(无分类器)的方法,该方法通过对无条件生成的网络以有分类器引导的方式进行扩散生成,相当于对有条件生成的网络以相同的方式进行引导,因此我们可以在diffusion中构造一个隐式的分类器梯度。使用无分类器引导的最终解析式只需要训练两个梯度预估模型,一个是无条件生成的模型,另一个是基于条件的模型。
CFG用来调节文本提示对生成过程的引导程度,当数值为0时,图像生成是无条件的,数值越高,生成过程会越受到文本提示的影响。CFG指数的引入使得文本生成图像更加高效和自然。
我们通常认为CFG的数值选为7-10是一个非常平衡的区间,既有创意也有能遵循我们的文本提示:
- CFG处于2-6时会创意力(不可控性)提高。
- CFG处于10-15时,你的作品受到你的提示的良性影响。
- CFG处于16-20时,你得确定你的提示真的是你想要的,否则效果不会太好。
- CFG高于20时,可能会产生一些奇怪的现象。






采样器名称
目前主流使用的基本都是DPMPP 2M
和DPMPP 2M SDE
,其实本名应该是DPM++ 2M
和DPM++ 2M SDE
,但是估计ComfUI中的代码显示这一块,对+这个符号的兼容不太好,所以作者给变成了P,也就是代表Plus,Plus等于+的意思。(学过C++吗?有些老师也叫C Plus Plus,源代码后缀也是CPP)
下面使用一下我之前写SD教程中的内容吧,远离都差不多,只不过现在的可用采样器更多了,也出现了很多更优化的算法,下面是一张不完全的采样器详细表格。
名称 | 描述 |
---|---|
Euler | 基于Karras论文,在K-diffusion实现,20-30steps就能生成效果不错的图片,采样器设置页面中的sigma noise、sigma tmin和sigma churn这三个属性会影响到它(后面会提这三个参数的作用); |
Euler a | 使用了祖先采样(Ancestral sampling)的Euler方法,受采样器设置中的eta参数影响(后面详细介绍eta); |
LMS | 线性多步调度器(Linear multistep scheduler)源于K-diffusion的项目实现; |
heun | 基于Karras论文,在K-diffusion实现,受采样器设置页面中的 sigma参数影响; |
DPM2 | 这个是Katherine Crowson在K-diffusion项目中自创的,灵感来源Karras论文中的DPM-Solver-2和算法2,受采样器设置页面中的 sigma参数影响; |
DPM2 a | 使用了祖先采样(Ancestral sampling)的DPM2方法,受采样器设置中的ETA参数影响; |
DPM++ 2S a | 在K-diffusion实现的2阶单步并使用了祖先采样(Ancestral sampling)的方法,受采样器设置中的eta参数影响;Cheng Lu的github中也提供已经实现的代码,并且可以自定义,1、2、3阶,和单步多步的选择,webui使用的是K-diffusion中已经固定好的版本。对细节感兴趣的小伙伴可以参考Cheng Lu的github和原论文。 |
DPM++ 2M | 基于Cheng Lu等人的论文(改进后的版本),在K-diffusion实现的2阶多步采样方法,在Hagging face中Diffusers中被称作已知最强调度器,在速度和质量的平衡最好。这个代表M的多步比上面的S单步在采样时会参考更多步,而非当前步,所以能提供更好的质量。但也更复杂。 |
DPM++ SDE | DPM++的SDE版本,即随机微分方程(stochastic differential equations),而DPM++原本是ODE的求解器即常微分方程(ordinary differential equations),在K-diffusion实现的版本,代码中调用了祖先采样(Ancestral sampling)方法,所以受采样器设置中的ETA参数影响; |
DPM fast | 在K-diffusion实现的固定步长采样方法,用于steps小于20的情况,受采样器设置中的ETA参数影响; |
DPM adaptive | 基于Cheng Lu等人的论文,在K-diffusion实现的自适应步长采样方法,DPM-Solver-12 和 23,受采样器设置中的ETA参数影响; |
Karras后缀 | LMS Karras 基于Karras论文,运用了相关Karras的noise schedule的方法,可以算作是LMS使用Karras noise schedule的版本; |
DPM2 Karras,DPM2 a Karras,DPM++ 2S a Karras,DPM++ 2M Karras,DPM++ SDE Karras这些含有Karras名字的采样方法和上面LMS Karras意思相同,都是相当于使用Karras noise schedule的版本; | |
DDIM | “官方采样器”随latent diffusion的最初repository一起出现, 基于Jiaming Song等人的论文,也是目前最容易被当作对比对象的采样方法,它在采样器设置界面有自己的ETA; |
PLMS | 同样是元老,随latent diffusion的最初repository一起出现; |
UniPC | 最新被添加到webui中的采样器,应该是目前最快最新的采样方法,10步就可以生成高质量结果;在采样器设置界面可以自定义的参数目前也比较多。 |
以下是任何设置全部都相同的情况下,仅更改采样器得到的对比结果图,以及所用的各项参数预设如下。
A girl, dancing, red dress,best quality, ultra-detailed, masterpiece, finely detail, highres, 8k wallpaper Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry Steps: 20, Sampler: DPM++ 2S a Karras, CFG scale: 7, Seed: 3657492522, Size: 512x512, Model hash: 7234b76e42, Model: chilloutmix_Ni







调度器
有很多老师都不讲这个,因为他们也不明白这个玩意的作用是什么,可能因为他们在使用过程当中感觉差别也不是很大。
在 ComfUI 的 K采样器(K-Sampler) 中,调度器(Scheduler) 是一个关键参数,主要用于控制 扩散模型(如 Stable Diffusion)生成图像时的去噪过程。它的核心功能是决定 如何调整噪声水平(或步长) 随时间(或迭代步骤)的变化方式,从而影响生成图像的质量、细节和速度。
- 噪声衰减策略:
- 扩散模型通过逐步去除噪声生成图像。调度器定义了每一步的噪声减少幅度(如从高噪声到低噪声的变化节奏)。
- 例如,线性调度器可能均匀减少噪声,而其他调度器可能在早期大幅降噪、后期微调细节。
- 速度与质量的平衡:
- 激进型调度器(如
DDIM
):用较少的步骤完成生成,可能牺牲部分细节,适合快速生成。 - 保守型调度器(如
Karras
):用更多步骤精细调整,生成质量更高但耗时更长。
- 激进型调度器(如
- 稳定性和收敛性:
- 某些调度器能避免采样过程中的数值不稳定问题(如梯度爆炸),确保生成过程平稳。
- 控制生成多样性:
- 不同调度器可能影响结果的随机性。例如,
Euler
调度器确定性较强,而DPM++
系列可能引入更多变化。
- 不同调度器可能影响结果的随机性。例如,
常见调度器类型举例:
- 线性调度器(Linear):噪声均匀减少,简单但可能不够高效。
- Karras 调度器:根据论文设计,在迭代后期减小步长,提升细节。
- DDIM:基于确定性过程,适合快速生成。
- DPM-Solver:针对扩散模型优化,平衡速度与质量。
- Euler、Heun:经典数值方法,前者快,后者更精确。
实际使用建议:
- 追求速度:选择
DDIM
或Euler
,减少采样步数(如 20 步)。 - 追求质量:使用
DPM++ 2M Karras
或UniPC
,增加步数(如 30-50 步)。 - 实验调整:不同调度器对提示词(prompt)的响应可能不同,需结合具体场景测试。
通过调整调度器,用户可以灵活控制生成过程的效率与效果,是优化图像生成的重要参数之一。
降噪
这个参数过于复杂,上AI来解答一下吧,有点长,如果不感兴趣可以略过。
在图像生成模型(如 Stable Diffusion 的扩散过程)中,降噪是一个关键控制参数,它直接影响生成过程中噪声的去除程度和图像生成的自由度。以下是它的核心作用:
- 控制噪声去除的强度:
- 扩散模型通过逐步去除初始噪声(或输入图像的噪声)来生成图像。降噪参数决定了每一步去噪的强度,即模型在每一步多大程度上“信任”预测的去噪结果。
- 值越高:去噪越激进,生成的图像与初始噪声(或输入)的关联性越低,自由度更高,但可能导致细节丢失或结构失真。
- 值越低:去噪更保守,生成的图像会更接近初始噪声(或输入),保留更多原始信息,但可能残留噪声或缺乏创意性变化。
- 平衡“生成自由度”与“稳定性”:
- 当降噪参数接近
1.0
时,模型几乎完全重新生成内容(适合完全从头创作)。 - 当降噪参数接近
0
时,模型严格遵循输入内容(适合微调或修复现有图像)。
- 当降噪参数接近
- 影响图像生成的“可控性”:
- 在 图生图(img2img) 任务中,降噪参数决定了输入图像对生成结果的约束力:
- 低值(如 0.2-0.5):输出与输入高度相似,适合局部修复或风格迁移。
- 高值(如 0.7-1.0):输出可能完全脱离输入,生成全新内容。
- 在 图生图(img2img) 任务中,降噪参数决定了输入图像对生成结果的约束力:
实际应用场景
- 文生图(text2img):
- 降噪参数通常固定为
1.0
(完全自由生成),模型从纯噪声开始逐步生成图像。
- 降噪参数通常固定为
- 图生图(img2img):
- 修复/增强图像:降噪参数设为
0.3-0.6
,模型在保留原图结构的基础上优化细节。 - 风格迁移/重绘:设为
0.5-0.8
,在保留大致构图的同时改变风格或内容。 - 完全重新生成:设为
0.8-1.0
,忽略原图内容,仅根据提示词生成新图像。
- 修复/增强图像:降噪参数设为
- ControlNet 等控制工具:
- 降噪参数与 ControlNet 的权重配合,控制生成结果在遵循输入条件(如边缘、姿态)和自由发挥之间的平衡。
与其他参数的关系
- 采样步数(Steps):
- 降噪参数高时,可能需要更多采样步数来保证生成稳定性。
- 提示词权重(Prompt Strength):
- 高降噪参数下,提示词对生成结果的影响更显著。
- 调度器(Scheduler):
- 不同调度器的噪声衰减策略会影响降噪参数的效果(例如,Karras 调度器可能在后期微调时更敏感)。
调参建议
- 默认值:图生图任务通常从
0.75
开始尝试。 - 低噪图像修复:设为
0.3-0.5
,避免过度修改原图。 - 创意性生成:设为
0.7-0.95
,结合高权重提示词。 - 避免极端值:
- 高于
1.0
:可能导致图像崩坏。 - 低于
0.2
:可能无法有效去噪,生成模糊或残留噪声。
- 高于
示例
- 输入一张模糊的风景照片,设置降噪参数为
0.4
:模型会轻微锐化细节,保留原图构图。 - 同一张照片,降噪参数设为
0.8
:可能将风景彻底重绘为动漫风格,甚至改变季节或时间。
降噪参数本质是控制生成过程的“创造力阀门”,需根据任务目标(修复、重构、创新)动态调整。
总结
看不懂的部分,就跳过,图片生成只是玩,别太在意追求理解每一个参数,有些参数时间长了自然就知道它的作用,不用死记硬背。
此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/comfyui-k-sampler-tutorial.html