转载自:知乎:救老命了!Stable Diffusion 入门之30 采样方法 (Sampler)详解

1 采样方法是什么

Stable Diffusion 在生成图像前,会先生成一张完全随机的图像,然后噪声预测器会在图像中减去预测的噪声,随着这个步骤的不断重复最终会生成一张清晰的图像。整个去噪过程叫做采样,使用到的方法叫做采样方法或采样器。

采样过程中噪声计划控制每个采样步骤的噪声水平。第一步噪声最高,最后一步逐渐降低到零。更高的采样步数导致每个步骤之间的降噪幅较小。这有助于减少采样的截断误差。

在Stable Diffusion 中的采样方法多达30余种,让人眼花缭乱,尤其是刚接触的的新手小白,可以说根本不知道怎么选好吧。
此外,在这些采样方法中有很多是已经过时了,或者效果不怎么好的,那么到底该如何选择采样方法呢?
Stable Diffusion 中的采样方法目前可以分为老式采样器DPM采样器新式采样器
后续的跑图测试 CFG 默认为 7。

2 老式采样器

DDIM 最早的采样器,已过时
PLMS 最早的采样器,已过时
Euler 经典ODE算法,欧拉采样方法,用于得到一些简单的结果
Euler a Euler的祖先采样器
Heun Euler 的改进版本,更准确但速度慢了一倍左右
LMS 线性多步法,与 Euler 速度相仿,但(据说)更准确。
LMS Karras LMS 的 Karras 算法

3 DPM采样器

DPM fast DPM快速算法,速度和 Euler 相仿,但是生成的效果极差
DPM adaptive 不考虑采样步数,使用自己的自适应采样步骤,且生成时间极长

DPM2

DPM2 DPM的二代算法,但是速度比 Euler 慢了一倍左右
DPM2 a DPM2的祖先采样器
DPM2 Karras DPM2 的 Karras 算法
DPM2 a Karras DPM2 a 的 Karras 算法

2S

DPM 2S a DPM单步算法,速度比 DPM2 快一点
DPM 2S a Karras 2S a 的 Karras 算法

2M

DPM 2M DPM二阶多步算法,相当于 2S 的升级,速度和Euler差不多
DPM 2M Karras DPM 2M 的 Karras 算法

SDE

DPM SDE 使用了祖先采样,速度比 Euler 慢了一倍左右,图像不会收敛且随着迭代步数的变化而波动
DPM SDE Karras SDE 的 Karras 算法

2M SDE

DPM 2M SDE 2M 和 SDE 的结合,速度和 2M 一致
DPM 2M SDE Karras 2M SDE 的 Karras 算法
DPM 2M SDE Exponential 2M SDE 的 Exponential 算法,画面柔和,背景更干净,但是细节会少些

2M SDE Heun

DPM 2M SDE Heun 2M SDE Heun 算法,速度慢
DPM 2M SDE Heun Karras 2M SDE Heun 的 Karras 算法
DPM 2M SDE Heun Exponential 2M SDE Heun 的 Exponential 算法,画面柔和,背景更干净,但是细节会少些

3M SDE

DPM 3M SDE 3M SDE 算法,速度和2M一致,但需要更多的迭代步数 (>30),CFG小一些效果更好
DPM 3M SDE Karras 3M SDE 的 Karras 算法
DPM 3M SDE Exponential 3M SDE 的 Exponential 算法,画面柔和,背景更干净,但是细节会少些
步数20 CFG7
步数40 CFG5

3 新式采样器

UniPC 2023 年发布的新采样器,可以在 5-10 个步骤内实现高质量的图像生成
Restart Stable Diffusion WebUI 1.6 新增的采样器,可以用比UniPC更少的步数生成图像
LCM Stable Diffusion WebUI 1.8.0 新增的采样器,需要配合专门的 LCM 大模型,可以在 6-10 个步骤内实现质量不错的图像生成,CFG 一般在 1~2 之间

4 总结

4.1 祖先采样器

名字中带 a 的采样器表示这类采样器为祖先采样器。这一类采样器会在每一个采样步骤中向图像添加噪声,因此采样结果具有随机性。
使用祖先采样器的缺点是图像不会收敛,因此为了保证可重复性,例如在通过多帧图像实现动画时,避免使用随机采样器。
需要注意,部分采样器的名字中虽然没有 a,但也属于随机采样器。比如名称中带有 SDE 的采样器,也使用了祖先采样,生成图像也是不收敛的。
下面是 Euler 和 Euler a 生成的比较

动图封面

动图封面

4.2 Karras采样器

名字中带有 Karras 的采样器使用 Karras 文章中推荐的噪声计划。主要表现在噪声步长接近尾声时会更小,有助于提高图像的质量。

4.3 最终结论

Euler、Euler

快速获得简单的结果

DPM 2M Karras

推荐的算法,速度快,质量好,推荐步数 20~30 

DPM SDE Karras

图像质量好但是不收敛,速度慢,推荐步数 10~15 

DPM 2M SDE Karras

2M和SDE的结合算法,速度和2M相仿,推荐步数 20~30 

DPM 2M SDE Exponential

画面柔和,细节更少一些,推荐步数 20~30 

DPM 3M SDE Karras、DPM 3M SDE Exponential

3M 系列。步数需要 30 步以上,且 CFG 要低一些。

UniPC、Restart

更少的步数就能获得好的结果

LCM

配合专门的大模型使用,步数 6 ~10 步就可以有好的结果,CGF 1~2 之间

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注