今天给大家分享的是comfyUI中最关键的节点之一:K采样器(KSampler)。
为什么要介绍这个节点,是因为所有的出图都必须经过这个节点,如果是模型是 comfyui的DNA,那么K采样器就是心脏,没有K采样器,很多出图的工作流都无法搭建。
但是跟大家一样,刚接触comfyui的我,对采样器里面的一系列参数是一窍不通的,所以会感觉无从下手,基本会面临以下几个问题:
等等,都存在疑惑,所以今天就想借这个机会,帮助大家搞懂采样器中的各种设置,希望大家在看完文章之后,能够更加游刃有余地使用软件。
另外,如果大家对AI绘画的底层原理还不太熟悉的,可以查看我往期的教程哈。
这就要从AI绘图的底层原理说起,大家感兴趣的可以看我之前写的一篇文章:
当我们使用comfyui出图时,首先会创建一张充满噪声的图像,常见的就是“空Latent”,我们可以理解为一张白纸,然后,在这张白纸上不停的去除里面的噪声(反向扩散过程),就像下图中的沙画,把多余的沙子用手全部拿走,不停地做减法,直至最后生成的图片。
这个过程,我起了一个比较高雅的名字“去其糟粕,取其精华”。下图是一个采样器的实际采样过程。
理解了这个之后,那采样器中的一系列参数又是什么意思呢?为了帮助大家更好地理解,我结合了画素描的过程,我拿木雕的雕刻过程的每一步来类比采样器中的参数,帮助大家有一个更加直观的理解。
其实采样的整个过程就好比下图中的雕刻,空latent就好比一块原料,不断去噪的过程就好比拿刀不断地去除多余的部分,直至觉得没有什么可以再去了,作品也就完成了。
因此,在整个雕刻的过程中,我理解是一个逐步细化的过程,这个过程需要雕刻师(工匠师傅)的不断修正和打磨,在整个过程中,每个人的雕刻手法都不一样,所以带来的结果也不一样。这就好比命题作文,让10位工匠师傅,一起雕刻关二爷的雕像。
需求是:画一个卧蚕眉,一脸正气,眼睛微微睁开,带着帽子,胡须自然垂落的关二爷。
时间越长,雕刻的步数越多,画面整体细节肯定是越丰富的,作品也肯定越来越耐看;
同一块区域,雕刻中去除的废料越多,画面肯定越清晰;
严格按照需求雕刻,创作自由度会受限,相反,创作自由度越高,结果越会有出乎意料的佳作;
所以,整个过程其实是时间、空间和信息三者的共同作用。
理解了这个之后,接下来我们就可以开始逐一介绍采样器中的各个参数了,虽然内容有点长,但都是本人不断试验出来的,希望大家喜欢。
【随机种】意思是每次出图是否跟之前一样,如果我们把【运行后操作】设置为【固定】,【随机种】的数字就会保持不变,只要提示词不变,那么我们每次出的图都是一样的,如果改为【随机】,那每次出图都会有变化,【随机种】的数字也会随机产生,【固定】和【增加】是在上次【随机种】之后+1或者-1。
接下来是一个比较重要的参数【步数】,步数就是画面的细节,步数越大,细节越多,画面就越有看头,越细腻。
从下图中可以看出,当降噪都是1.0,其余参数都保持不变的情况下,步数越高,画面的细节就越丰富,但整体角色形象是不会变化的。
但要注意的是,步数不是越高越好,当画面细节已经很丰富的时候,再多的步数也没有多大意义了,反而会花费太长的时间,下图步数分别是20、40、80。
CFG可以理解为模型对提示词的契合度,还是拿上面的雕刻举例,CFG越低,工匠们就会不那么按照需求进行雕刻,偏向自由发挥,CFG越高,就会按照100%按照需求进行刻画,再高,就会刻画过度。
看下图,提示词是:lion,forest,run,river
当CFG=1的时候,生成的图像对提示词关系并不是很大,甚至连run(奔跑)都没有体现;
当CFG=20的时候,生成的图像跟提示词关系就很密切,基本是100%还原了。
但是,CFG再高,画面就会对比度过于强烈,反而会起反作用,看下图,
CFG分别为:20、30、40,随着CFG增高,对比越来越重,直至起反作用。
接下来就是最重要的采样器了,首先大家有一个共识,就是不同的采样器最后出图的差别不会太大,只是有的采样器出图偏效率,有的采样器出图偏质量等的区别,所以大家在这里不需要太纠结用哪个采样器,我现在把采样器分成了6类:
在了解采样器之前,我们需要知道一个名字 叫做“收敛”。收敛在采样器中十分重要,他的意思是当采样到达一个阶段之后,画面是在其基础上继续微调,还是会”推翻“之前的画面,生成其他类似的,但是更具创新性的画面。
这就好比画素描,有的同学在画到一半的时候,之后会选择继续深入细节,而有的同学觉得还会有更好地表现方式,画面整体,比如姿势,表情等就直接变掉了,我做了个实验,如下图:
我们选择了“euler”和“euler_ancestral”进行对比。
发现,随着步数的增加,euler的图片基本保持不变,但是 euler_ancestral 却每一次都在变,我们把不变的叫做“收敛”,把变化的叫做“随机”。
了解了这个之后,我们怎么区分哪些采样器是“收敛”的,哪些采样器是“随机”的呢?这个告诉大家一个办法,凡是后缀带_ancestral 或者_sde 的,这样采样机出图更随机,更具创意性。
因为采样器太多了,有的采样器不常用,我这里就挑一些常见常用的采样器做个简单的介绍 。
eluer:
最简单最直接的采样器,在采样过程中不添加随机噪声,简单快速,但质量可能不如其他复杂采样器,适合快速预览或草图生成;
eluer_ancestral:
跟eluer差不多,不过添加了随机噪声,所以每一步得到的图像都具有随机性;
heun:
eluer升级版,比Euler更精确,但计算时间更长,可以产生更细腻的细节和更好的整体质量;
dpmpp_2m:
模型结合了预测器和校正器,能实现质量更好、更稳定的图片;
dpmpp_2m_sde:
跟eluer一样,过程中会添加随机噪声,更适合创意性的图片生成;
uni_pic:
可以在10步之内产生高质量结果,也是目前最新的采样方法;
我测试了uni_pic 和dpmpp_2m, 以及 eluer,发现uni_pic确实能在尽可能少的步数中达到高的出图效果。
说了这么多,那应该选择什么采样器呢?这里我从三个维度 给大家做了梳理:
图像质量要求:
dpmpp_2m、ddim、heun、heunpp2
生成速度需求:
eluer、uni_pc、uni_pic_ph2
灵活随机性:后缀带
_ancestral、 _sde
采样器没有标准答案,我这里也只能算是建议,希望大家自己多多尝试,总结规律才是最好的。
如果说采样器是不同雕刻师的不同的雕刻手法,那采样器就是在雕刻过程中具体的“下刀”过程了。调度器负责控制去噪点的程度,决定每一步去除多少噪声,也就是每一步“去多少料”了。有的调度器前期去料多,后期去料少(控制细节,精雕细琢),有的调度器前期、后期去料一样多 。
经过我测试之后,发现前6种类型对出图的影响差不多,但是我身边的同学大多数都在用“normal”和“karras”。
另外值得注意的是,采样器和调度器是相互配合工作来出图的,采样器负责从噪声中去噪进行图像生成,调度器负责控制去噪的速度,大家在实际使用中需要搭配使用,通过webui中的搭配,我找到了常见的几种搭配类型,供大家参考。
降噪(denoise)在我之前的文章中有详细的提到,简单点理解就是在雕刻的过程中,总共要“去料”的多少,去料少,画面就不清晰,去料多,自然就清晰了。
我做了以下实验,在别的参数都保持不变的情况下,只改变降噪数值的出图效果
今天的分享到这里就结束了,本章内容主要是帮助大家更好地理解采样器以及其中各个参数的含义,尤其是采样器和步数、CFG,对生成图像的影响还是比较大的,所以大家在自己生图的过程中,建议多多尝试,总结经验,这样才能摸索出属于自己的配置经验。