stablediffusion采样方法有什么区别?(含:采样器详细介绍)

共计 2001 个字符,预计需要花费 6 分钟才能阅读完成。

大家好,我是 Stable Diffusion 中文网的小编,今天我们将深入了解 Stable Diffusion 采样方法的区别,以及详细介绍这些采样器的功能。Stable Diffusion 是一个强大的图像生成工具,为 AI 艺术家们提供了丰富的选择,让他们能够创作出惊艳的作品。

采样方法(SD-Webui)

首先,我们要介绍 Stable Diffusion 的 Web 用户界面(Webui),这是 Stable Diffusion 的图形用户操作界面,它使 Stable Diffusion 可视化,而且还集成了众多有用的扩展脚本。在 Webui 中,你可以找到许多不同的采样方法,这也是目前 AI 艺术家们热衷讨论的话题。接下来,让我们一起来看看这些采样方法的区别。

stablediffusion 采样方法有什么区别?(含:采样器详细介绍)

Euler

Euler 采样方法基于 Karras 的论文,在 K-diffusion 项目中实现。它通常只需 20-30 步就能生成效果出色的图像。在采样器设置页面,你可以调整 sigma noise、sigma tmin 和 sigma churn 这三个属性,它们会影响到采样结果。

Euler a

Euler a 方法采用了祖先采样(Ancestral sampling)的方式,其性能会受到采样器设置中的 eta 参数的影响,关于 eta 我们稍后会详细介绍。

LMS

LMS(线性多步调度器)源自 K-diffusion 项目,是一种多步采样方法,也受到采样器设置的影响。

heun

和 Euler 一样,heun 也基于 Karras 的论文,在 K-diffusion 中实现,其性能受 sigma 参数的调整影响。

DPM2

DPM2 是 Katherine Crowson 在 K-diffusion 项目中创造的采样方法,灵感来源于 Karras 论文中的 DPM-Solver-2 和算法 2。它也受到 sigma 参数的调整影响。

DPM2 a

DPM2 a 方法采用了祖先采样,受 eta 参数的影响。

DPM++ 2S a

DPM++ 2S a 是基于 Cheng Lu 等人的论文的改进版本,在 K-diffusion 中实现。它使用了 2 阶单步采样并采用了祖先采样的方法,同样受 eta 参数的调整影响。

DPM++ 2M

DPM++ 2M 也是基于 Cheng Lu 等人的论文的改进版本,在 Hagging Face 的 Diffusers 中被称作已知最强调度器。它适用于速度和质量的平衡,相对于 2S 采样,2M 采样会参考更多步,提供更好的图像质量,但也更复杂。

DPM++ SDE

DPM++ SDE 是基于 Cheng Lu 等人的论文的版本,它采用了随机微分方程(stochastic differential equations),而 DPM++ 原本是 ODE 的求解器(ordinary differential equations)。它也使用了祖先采样的方法,受 eta 参数的影响。

DPM fast

DPM fast 是基于 Cheng Lu 等人的论文实现的固定步长采样方法,适用于步数小于 20 的情况,同样受 eta 参数的影响。

DPM adaptive

DPM adaptive 是基于 Cheng Lu 等人的论文实现的自适应步长采样方法,它使用了 DPM-Solver-12 和 23,同样受 eta 参数的影响。

Karras 后缀

LMS Karras、DPM2 Karras、DPM2 a Karras、DPM++ 2S a Karras、DPM++ 2M Karras、DPM++ SDE Karras 这些带有 Karras 后缀的采样方法都是使用了 Karras noise schedule 的版本。

DDIM

DDIM 是官方采样器,基于 Jiaming Song 等人的论文。它通常被用作比较的基准采样方法,在采样器设置中有自己的 ETA 参数。

PLMS

PLMS 也是一个经典的采样方法,一直伴随着 Stable Diffusion 的发展。

UniPC

UniPC 是最新添加到 Webui 中的采样器,基于 Wenliang Zhao 等人的论文。它通常可以在 10 步以内生成高质量的结果,而在采样器设置中,你可以自定义参数。

UniPC variant

UniPC 还有三种变体,分别是 bh1、bh2 和 vary_coeff。根据 Hugging Face 团队的建议,bh1 适合在无条件的情况下,且步数小于 10 的情况下使用,其余情况可以使用 bh2。至于 vary_coeff,它在无条件的情况下在 7、8 或 9 步时表现最好,对于步数在 10 以上的情况,推荐使用 bh2。

UniPC skip type

如果你生成的图片尺寸为 512 x 512 或更大,建议选择 uniform。它更适合高分辨率图像,而 logSNR 则适合低分辨率图像。

采样方法小结

总结一下,你可以根据你的需求和关注的参数使用脚本来运行网格图,然后选择最符合你预期的结果。如果你不想费心比较,可以选择 DPM++ 2M、DPM++ 2M Karras 或 UniPC。如果你追求多样性和想象力,可以尝试 Euler a、DPM++ SDE、DPM++ SDE Karras 和 DPM2 a Karras(注意要调整对应的 eta 值)。

正文完