AUTOMATIC1111中的采样器(sampler)有很多,包括Euler a、Heun和DDIM等。我们首先解释什么是采样器,然后比较不同采样器之间的区别,最后提供选择采样器的建议。

稳定扩散模型中采样器对比

采样器是什么

Stable Diffusion使用采样方法去除图像噪声,生成随机图像并重复几次这个过程得到干净的图像。去噪的方法有很多种。通常需要在速度和准确性之间做出权衡。

采样器概览

传统的常微分方程求解器(ODE solvers),包括Euler、Heun和LMS。这些方法已经存在超过100年,并且被认为是简单但不太准确的求解器。其中,Euler是最简单的求解器,而Heun则比Euler更准确但速度较慢。LMS与Euler速度相同,但据说更准确。

一些采样器的名称中有一个字母“a”,它们是祖先采样器,会在每个采样步骤中向图像添加噪声。这些是随机采样器,因为采样结果具有一定的随机性。但使用祖先采样器的缺点是图像不会收敛。

DDIM和PLMS是最初随Stable Diffusion v1一起发布的采样器。DDIM是为扩散模型设计的第一个采样器之一,而PLMS则是DDIM的新型且更快速的替代品。它们通常被认为已过时并不再广泛使用。

DPM和DPM++是2022年发布的用于扩散模型的新采样器。它们具有相似的结构,但DPM2比DPM更准确但速度较慢。DPM++是对DPM的改进,可以自适应地调整步长,但可能会很慢且不能保证在规定数量的采样步骤内完成。

UniPC是2023年发布的新采样器,受ODE求解器中预测校正方法启发,可在5-10步内实现高质量图像生成。

k-diffusion是Katherine Crowson的GitHub存储库,其中包含与之相关的采样器。该存储库实现了Karras 2022文章中研究过的采样器。除DDIM、PLMS和UniPC外,AUTOMATIC1111中所有采样器都来自k-diffusion。

带有Karras字样的采样器使用了噪声时间表(noise schedule),噪声时间表控制每个采样步骤中的噪声水平,并且随着采样步骤的增加,减少了截断误差。

如何选择合适的采样器

如果你想要生成图片又好又快,可以选择DPM++ 2M Karras(20-30步)和UniPC(20-30步)。如果你想要高质量的图像而不在乎速度,可以选择DPM++ SDE Karras(8-12步)和DDIM(10-15步)。如果你喜欢稳定可复现的图像,请避免使用任何祖先采样器,Euler和Heun是比较好的选择。如果你想要省时间,可以减少Heun的步数。

采样器详解

Euler是最简单的采样器,与欧拉方法求解常微分方程数学上相同。它完全确定性,即在采样过程中不添加随机噪声。通过噪声计划告诉采样器每个步骤中应该有多少噪声,并使用欧拉方法减少恰当数量的噪声以匹配噪声计划直到最后一步为零。

Euler a是一种祖先采样器,类似于Euler的采样器。但在每个步骤中,它会减去比应该更多的噪声,并添加一些随机噪声以匹配噪声计划。去噪图像取决于前面步骤中添加的特定噪声。因此,在某种意义上,它是一个祖先采样器,即图像去噪路径取决于每个步骤中添加的具体随机噪声。如果再次进行,则结果将不同。

DDIM是解决扩散模型的第一个采样器之一,它基于以下三个组成部分来近似每个步骤中的图像:最终图像、指向当前步骤中图像的图像方向和随机噪声。DDIM采样器使用去噪后的图像来近似最终图像,并使用噪声预测器估计的噪声来近似图像方向。

LMS和LMS Karras是解决常微分方程的标准方法,通过利用前几个时间步骤的值来提高精度。AUTOMATIC1111默认使用最多4个上一个值。LMS Karras使用Karras噪声计划。

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

DPM采样器是一类新开发的扩散模型求解器,包括DPM2、DPM2 Karras、DPM2 a、DPM2 a Karras、DPM Fast和DPM adaptive等。它们在AUTOMATIC1111中可用,并且具有不同的噪声调度程序和精度级别。同时,还有改进版本的DPM++采样器。

UniPC是一种2023年新开发的扩散采样器,由两部分组成:统一预测器(UniP)和统一校正器(UniC)。它支持任何求解器和噪声预测器。

相关阅读  6种常用的构图法 | AI绘画提示词技巧 | Midjourney

Categorized in: