AI绘画基础-迭代步数和采样方法
迭代步数(Steps)
迭代步数可以理解为控制生成图像精细程度的参数,增加迭代步数可以使生成的图像更加精细,但同时也会增加生成时间,而减少迭代步数则可以加快生成速度,但可能会影响图像的质量。
推荐的迭代步数通常建议在20到30步之间,这个范围提供了一个较好的平衡,既能保证生成的图像质量,又不会过度消耗资源或降低生成速度。
采样方法(Sampler)
以下内容转载自:https://zhuanlan.zhihu.com/p/690319301
Stable Diffusion 在生成图像前,会先生成一张完全随机的图像,然后噪声预测器会在图像中减去预测的噪声,随着这个步骤的不断重复最终会生成一张清晰的图像。整个去噪过程叫做采样,使用到的方法叫做采样方法或采样器。
Stable Diffusion 中的采样方法目前可以可以分为老式采样器、DPM采样器、新式采样器。
老式采样器
DDIM:已过时
PLMS:已过时
Euler:欧拉采样方法,最简单的采样器,用于得到一些简单的结果,它是完全确定性的,这意味着采样期间不会添加随机噪声。
Euler a:Euler的祖先采样器,在每个采样步骤向图像添加噪声,并且作为随机采样器,使得采样结果具有一定的随机性。
Heun:Euler 的改进版本,更准确但速度慢了一倍左右,因为它每一步需要预测噪声两次。
LMS:线性多步法,与 Euler 速度相仿,它的目的是通过巧妙地使用先前时间步骤的值来提高准确性。
LMS Karras:LMS 的 Karras 算法。
DPM采样器
DPM fast:DPM快速算法,速度和 Euler 相仿,但是生成的效果极差。
DPM adaptive:不考虑采样步数,使用自己的自适应采样步骤,且生成时间极长。
DPM2:DPM的二代算法,但是速度比 Euler 慢了一倍左右。
DPM2 a:DPM2的祖先采样器。
DPM2 Karras:DPM2 的 Karras 算法。
DPM2 a Karras:DPM2 a 的 Karras 算法。
DPM++ 2S a:DPM二阶多步算法,相当于 2S 的升级,速度和Euler差不多。
DPM++ 2M Karras:DPM++ 2M 的 Karras 算法。
DPM++ SDE:使用了祖先采样,速度比 Euler 慢了一倍左右,图像不会收敛且随着迭代步数的变化而波动。
DPM++ SDE Karras:SDE 的 Karras 算法。
DPM++ 2M SDE:2M 和 SDE 的结合,速度和 2M 一致。
DPM++ 2M SDE Karras:2M SDE 的 Karras 算法。
DPM++ 2M SDE Exponential:2M SDE 的 Exponential 算法,画面柔和,背景更干净,但是细节会少些。
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 算法,画面柔和,背景更干净,但是细节会少些。
DPM++ 3M SDE:3M SDE 算法,速度和2M一致,但需要更多的迭代步数 (>30),CFG小一些效果更好。
DPM++ 3M SDE Karras:3M SDE 的 Karras 算法。
DPM++ 3M SDE Exponential:3M SDE 的 Exponential 算法,画面柔和,背景更干净,但是细节会少些。
新式采样器
UniPC:2023 年发布的新采样器,可以在 5-10 个步骤内实现高质量的图像生成。
Restart:Stable Diffusion WebUI 1.6 新增的采样器,可以用比UniPC更少的步数生成图像。
LCM:Stable Diffusion WebUI 1.8.0 新增的采样器,需要配合专门的 LCM 大模型,可以在 6-10 个步骤内实现质量不错的图像生成,CFG 一般在 1~2 之间
总结
祖先采样器
名字中带 a 的采样器表示这类采样器为祖先采样器。这一类采样器会在每一个采样步骤中向图像添加噪声,因此采样结果具有随机性。
使用祖先采样器的缺点是图像不会收敛,因此为了保证可重复性,例如在通过多帧图像实现动画时,避免使用随机采样器。
需要注意,部分采样器的名字中虽然没有 a,但也属于随机采样器。比如名称中带有 SDE 的采样器,也使用了祖先采样,生成图像也是不收敛的。
Karras采样器
名字中带有 Karras 的采样器使用 Karras 文章中推荐的噪声计划。主要表现在噪声步长接近尾声时会更小,有助于提高图像的质量。
最终结论
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 之间