Stable diffusion中Sampler(采样器)简明介绍

2023-07-10 14:36:09
来源:哔哩哔哩

本文目标人群:


(资料图)

希望了解webUI中提供的诸多Sampler(采样器)究竟有什么不同,并想知道如何选用合适采样器以进一步提高出图水平的人群。

缺乏AI基础知识,但想要进一步了解AI绘图基本原理的人群。

对stable diffusionAI绘图感兴趣的人群。

太长不看的总结与推荐:

兼顾生成耗时、重现性、图片质量:DPM++ 2M Karras,20-30步;UniPC,20-30步;

注重质量,且不关心重现性:DPM++SDE Karras,10-15步;DDIM,10-15步;

注重重现性:不要使用任何ancestral采样器(名字里面带a或SDE)

简单、快速、直接:Euler,或Heun,缩短步数。

正文内容:

intro:

本文内容直接来自于/samplers/。该文章很好地介绍了stable diffusion中sampler的作用、分类、原理、区别等等,解释了我在sampler方面的疑惑,因此结合个人使用体会加以翻译,以飨读者。

之前看到过几篇中文的sampler介绍,但没有一个这么深入浅出,看到这种好东西真的很难忍住分享。

如有看到类似的优秀文章,可以在评论区告诉我一声,我会酌情进行翻译整理等工作。

本人非AI行业从业人士,全凭爱好翻译,因此可能存在专有名词的直译等情况,如有专业知识的谬误,还请指正。

1.原理概述:

采样与噪声。

在生成图像的过程中,SD会先在潜空间生成完全随机的噪声。随后,噪声预测器会估计图像中的噪声,然后将预测出的噪声从图像中减去。重复该过程即可获得越来越清晰的图像。过程如下图所示。

去噪的整个过程,被称为采样(因为每经历一次去噪都会生成新的样本图像)。采样过程仅仅是整个SD模型的一部分,采样过程中采用的方法,就叫做**sampler,采样器。**具体的采样方法多种多样,通常只是速度和准确性各有不同。

噪声时间表Noise schedule

在采样过程中,采样器并不是在每一步都以均匀的“力度”(噪声水平)来改变整个图像的。在初期的时候,预测的噪声强度较大,以较大的方式改变画面。在后期,噪声强度较低,仅对画面做出微调。如下图所示。

在每一步,采样器都负责产生一个与时间表所预期的噪声水平匹配的噪声图像

采样步数会影响每一步间需要降低的噪声强度。较高的步数有助于减小采样用力过猛导致的截断误差。下图是一个30步的噪声时间表。

概述

下面将分不同的部分,简单叙述下几类不同的sampler。

经典的常微分方程求解方法命名的sampler

不要害怕这个小标题,sampler实际上要做的就是求解常微分方程(ODE),以下是几个可能比你我年纪都大的经典求解方法。

Euler-可能是最简单的求解方法,用欧拉法求解常微分方程

Heun-比Euler更精确但更慢

LMS(Linear multi-step method,线性多步求解)-速度与Euler相同,可能会更准确

Ancestral系列

有些sampler的名字里会带一个a,这就代表他们是Ancestral sampler祖先采样器,祖先采样器会在每一步之间向图片添加随机的噪声,因而采样结果具有一定的随机性,难以稳定复现结果

有些采样器名字里没有带a,但是也会添加随机噪声(例如DDIM)。

采用祖先采样器生成的过程中,即便到了最后几个采样步骤,图像也在发生一定的变化(因为有新的噪声添加进来)。(即结果不收敛)

如果想在图片里引入一定的变化,更可控的方式是采用variation seed。

Karras系列

名字中带有karras的sampler是采用了karras论文中的噪声时间表(noise schedule)。它在前期噪声强度更高,而在末期噪声强度更低,如下图所示。这一定程度上有利于提高出图质量。

DDIM (Denoising Diffusion Implicit Model,去噪扩散隐式模型)和PLMS (Pseudo Linear Multi-Step method,伪线性多步法)是初始的版本SD自带的采样器。

一般被认为是过时的而不再使用。

DPM系列

DPM (Diffusion probabilistic model solver,扩散概率模型求解器)是2022年发布的为扩散模型而设计的一系列采样器。

DPM++是DPM的改进版。

DPM2是二阶版本的DPM,更准确,但更慢。

DPM++SDE和DPM++SDE Karras有与祖先采样器相同的缺点,不会收敛,而且采样步数会显著影响图像内容。

DPM adaptive会自适应地改变采样步长,因而它不能保证在你所设定的步骤内完成采样任务,可能会很慢。

UniPC

UniPC (Unified Predictor-Corrector,统一预测-校正器)是2023年新发布的采样器,受到同名的常微分方程求解法思路的影响。可以在5-10个步骤中实现高质量图像生成。

k-diffusion

这个词并不指某一个采样器,它指的是Katherine Crowson的k-diffusion Github库和与之相关的采样器,正是这个库实现了karras2022年论文中的采样方法,基本上除了DDIM、PLMS、UniPC的其他采样器都部分衍生自k-diffusion。

3.收敛性、渲染时间、出图质量

关于收敛性,图表较多且专业性较强,感兴趣的可以顺着文首链接去看原文,不感兴趣的可以看一句话总结:除了名字里带a的和带SDE的,其他的在一定步数后基本都能正常收敛,区别不算特别大。

渲染时间见下图

以Euler为标杆,基本而言可以分为三组:

与Euler类似的一阶采样器(时间与Euler相同)

需要对去噪U-Net进行两次评估的二阶采样器(时间是Euler的两倍)

DPM adaptive(会自适应改变采样步数因而格外慢,但他在收敛性方面也表现更好)

出图质量

在各种参数都一致的情况下,结果也能分成大概三组:

不带a或SDE的出图结果差异极小。

带了a或SDE的差异明显要大得多。

DPM++ fast就是bullshit。

此外,各位也可以自己试着用xyplot跑一下不同sampler的图像,这是直观、综合地比较不同sampler的最简单方式之一。

4.其他

在原网页的后文中,还有更深奥的讨论与介绍,其中详细介绍了采样步骤、如何用确定性抽样的常微分方程求解随机的采样问题等专业内容,受限于本人相关专业知识,暂不搬运。

[责任编辑:]

为您推荐

相关推荐

内容举报联系邮箱:58 55 97 3 @qq.com

沪ICP备2022005074号-27 营业执照公示信息

Copyright © 2010-2020  看点时报 版权所有,未经许可不得转载使用,违者必究。