彻底搞定ComfyUI中的采样器和调度器

彻底搞定ComfyUI中的采样器和调度器

什么是采样器

众所周知,当我们使用Stable Diffusion时,它首先会创建一张充满噪声的原始图像,之后逐渐去除图像中的噪声。这个过程就像是雕刻:原始噪声图就像是雕刻的原料,去噪的过程就像是用雕刻刀去除废料,最后生成的图片就像是雕刻成型的作品。这个去噪的过程,就被称为采样。

选择何种采样器进行去噪,就好比是选择何种雕刻刀进行雕刻。采样器就是用来负责控制去噪的具体操作。

采样器的一个重要指标是收敛性。当采样器达到一个阶段,继续进行更多步骤不会再改善结果时,我们就认为图像已经达到了收敛状态。

有些采样器能够迅速收敛,非常适用于快速验证创意和想法。而其他一些采样器可能需要更长的时间或更多的步骤才能收敛,但它们通常能够提供更高质量的结果。还有一些采样器由于没有设定极限,因此永远不会收敛,这样就为创新和创造性提供了更多空间。

什么是调度器

如果说采样器是用来负责控制去噪的具体操作,那么调度器则是负责调控去噪的程度,决定每一步去除多少噪声,以确保整个过程既高效又精准。

继续沿用雕刻的比喻,在雕刻的初期,使用较大的力度快速敲掉大块的部分是有益的,这样可以加快雕刻的整体进展。而在雕刻的最后阶段,我们需要极其细致和谨慎地处理,以便精确雕琢出细节,防止雕塑出现破损。所以选择合适的调度器也至关重要。

采样器详解

接下来我们根据ComfyUI中采样器的顺序,对常用的采样器进行详细介绍:

euler

最简单的采样器,在采样过程中不添加随机噪声,通过噪声计划告诉采样器,每个步骤中应该有多少噪声。并使用欧拉方法减少恰当数量的噪声。以匹配噪声计划,直到最后一步为0 为止。

euler_ancestral (简写成euler a)

祖先采样器的一种,类似于euler。其特点是在每一个新的处理步骤中,它们会添加之前步骤中产生的随机变量。可以想象成在每个步骤清除噪声之后,又会有一部分先前的噪声被重新引入。由于每一步都会增加新的随机噪声,带有这一特性的采样器永远不会达到收敛状态。

heum

heum是对euler更精确的改进,但是需要在每个步骤中预测两次噪声,因此速度比euler慢2倍。

dpm_2

dpm_2可以被视为dpm的升级版,相当于"版本2"。它在原有模型的基础上做了进一步的改良和优化。

dpm_2_ancestral (简写成dpm_2 a)

祖先采样器的一种,使用dpm_2方法,此采样器永远不会达到收敛状态。

lms

lms采样速度与euler相同。

dpmpp_2s_ancestral(简写成dpm++ 2s a)

dpm++是dpm的另一个升级版。dpm++使用结合确定性和概率方法的混合方法进行采样和后续的降噪。"2"表示它们是二阶模型,"s"代表单步骤,"a"表示是祖先采样器的一种,此采样器永远不会收敛。

dpmpp_sde(简写成dpm++ sde)

dpm++的SDE变体,它永远不会收敛,因此即便步数增大,它也不能提供更高的质量,而是提供更多的变化,就像祖先的采样器一样。

dpmpp_2m(简写成dpm++ 2m)

类似于dpm++ 2s,"m"代表多步骤(Multi step)。这种方法在每一步进行多次计算,并且会考虑到之前步骤中获取的信息,从而实现更精确、更高质量的收敛,但相应地也需要更长的时间。

dpmpp_2m_sde(简写成dpm++ 2m sde)

dpmpp_2m的SDE变体,它永远不会收敛,因此即便步数增大,它也不能提供更高的质量,而是提供更多的变化,就像祖先的采样器一样。

ddim

ddim是最先被提出的扩散模型采样器之一。它的核心想法是每一步的图片可以通过添加以下三个东西来近似:最终的图片,图像方向指向当前步骤的图像和随机噪声。可是在抵达最后一步之前我们怎么知道最终的图片呢?ddim采样器是使用去噪图片来对最终图片进行估计。

uni_pc

最新添加的采样器,应该是目前最快最新的采样方法,10步内实现高质量图像。

如何选择采样器

没有最好的采样器,只有最适合的采样器。

  • 如果想要稳定可重现的图像,请避免选择任何祖先采样器(名字以a或sde结尾的)

  • 如果想要简单的图,建议选择euler,heun(可以减少步骤以节省时间)

  • 如果想快速生成质量不错的图片,建议选择dpmpp_2m (20 -30步) 、uni_pc(15-25步)

  • 如果想要每次生成不一样的图像,可以选择不收敛的祖先采样器(名字里面带a或sde)

对比测试

建立一个XY图表,横坐标是步数,从第5步开始,间隔四步,总共8个数值;纵坐标是上面介绍的各种采样器。

从上图中不难发现如下规律:

  • 名字以a或sde结尾的,确实不会收敛,每一步迭代图像都会发生变化
  • euler,heun和ddim采样器在第9步就已经出图,对于简单图来说,确实是又好又快。
  • dpmpp_2m和uni_pc采样器在第14步出图,其中dpmpp_2m在第18步开始收敛,效果很好。
  • 不要被dpm_adaptive采样器骗了,虽然第5步就已经收敛,但是该采样器速度特别慢。后续我又单独进行了测试,实际第2步就已经收敛,但是速度很慢。
  • lms采样器表现最差。
相关推荐
martian6653 分钟前
【人工智能离散数学基础】——深入详解数理逻辑:理解基础逻辑概念,支持推理和决策系统
人工智能·数理逻辑·推理·决策系统
Schwertlilien4 分钟前
图像处理-Ch7-图像金字塔和其他变换
图像处理·人工智能
凡人的AI工具箱10 分钟前
每天40分玩转Django:Django类视图
数据库·人工智能·后端·python·django·sqlite
千天夜16 分钟前
深度学习中的残差网络、加权残差连接(WRC)与跨阶段部分连接(CSP)详解
网络·人工智能·深度学习·神经网络·yolo·机器学习
凡人的AI工具箱20 分钟前
每天40分玩转Django:实操图片分享社区
数据库·人工智能·后端·python·django
小军军军军军军24 分钟前
MLU运行Stable Diffusion WebUI Forge【flux】
人工智能·python·语言模型·stable diffusion
诚威_lol_中大努力中1 小时前
关于VQ-GAN利用滑动窗口生成 高清图像
人工智能·神经网络·生成对抗网络
中关村科金1 小时前
中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?
人工智能·机器人·在线客服·智能客服机器人·中关村科金
逸_1 小时前
Product Hunt 今日热榜 | 2024-12-25
人工智能
Luke Ewin1 小时前
基于3D-Speaker进行区分说话人项目搭建过程报错记录 | 通话录音说话人区分以及语音识别 | 声纹识别以及语音识别 | pyannote-audio
人工智能·语音识别·声纹识别·通话录音区分说话人