Stable Diffusion 学习导航➡️:rchub.rainchapter.com/#/index?art…
采样与步数详解
1.什么是采样?
- Stable Diffusion 生图会先生成一个完全随机的噪声
- 通过噪声预测器估算图像噪声,通过噪声预测进行去噪
- 去噪过程不断的重复,最后会得到一张干净的图像
2.采样步数
采样步数越多,图像质量越好越精细但所需的算力成倍增加,出图越慢。 采样步数 50 以上就没必要了。
- 推荐采样步数: 20-30
兼具速度与质量,出图比较稳定
3.采样器说明
- 采样器推荐
- Euler a
- DDIM
- UniPc
- DPM++ 2M Karras
- DPM++ SDE Karras
- 采样器分类说明
2.1 老式ODE采样器(Old-School ODE solvers)分为以下几种:
- Euler: 最直接简单稳定的采样器
- Heun:比 Euler 更准确一点但更慢,Eluer 双倍时间
- LMS:线性移步法,与 Euler 差不多速度,但(据说)更准确一点
- PLMS:元老级采样器,不推荐,质量不好
2.2 传统采样器(Ancestral solvers)
一般来讲,:采样器名字中带字母“a”或“SDE”的采样器都是这类
Euler a
DPM2 a
DPM++ 2S a
DPM++ 2S a Karras
DPM++ SDE
DPM++ SDE Karras
这些采样器采样过程中不会收敛,每个采样步骤都会向图形添加新的噪声,所以是随机采样器生成的图也往往具有随机性
所以要想得到稳定可细化的图片,就不要采用传统采样器类型。
4.Karras
带有 karras 标签的采样器,使用了泰罗·卡拉斯 (Tero Karras) 论文中的噪声处理方法 Karras noise schedule
这种算法在采样接近尾声噪波闯值越小,更稳定。
所以带 Karras 标签的采样器,生图质量往往更好。
5.DPM、DPM++
带这俩标签的是 2022 年为扩散模型设计的新采样器。
- DPM: 2022 新采样器
- DPM2: 更准确,但比 DPM 更慢
- DPM++: DPM 的改进版
- DPM adaptive: 自适应调整步数,步数会失效很慢慢但效果好
6.DDIM、PLMS
Stable Diffusion 原始自带的采样器。
DDIM 是首批为扩散模型设计的采样器之一,PLMS 可看作是 DDIM 的升级版。
这俩也不会进行噪声收敛,在他的采样步骤中会随机注入噪声。
翻译成人话就是跟传统采样器差不多,不管设置多少步数,都稳定不下来
7.UnipC
2023 年新发布的采样器更快更强大!可以在 5-10 步中实现高质量图像的生成。
如果没有这个采样器,请在升级软件为新版本
需要在设置->采样器参数,中另外使用 UniPC 采样器将 UniPC 变体改为 bh2
8.采样器速度对比
越低越好,可以看看哪些采样器比较快哟!
只看速度,不看质量可不行,所以下面再对比一下质量。
9.采样器质量对比
把所有的采样器都拉出来,分别取 10 步 16 步25 步,来对比一下,下图是我单独传的,并没有在长图中,大家可以点看放大对比下。
综合速度与质量来看的话,还是咱们一开始推荐的这几个比较好! 出图快,效果又棒!
- Euler a
- DDIM
- UniPc
- DPM++ 2M Karras
- DPM++ SDE Karras
10.采样器收敛对比
采样器收敛,其实就是在更高的步数下,能不能稳定细化较低步数下生成的图片。
同样这里我放 3 张无损的大图,可以对比一下, 因为都是 512*512 的图,所以在全身或者脸比较小的情况下,脸会扭曲,忽略即可~重点看哪些采样器在更高步数下能稳定生成低步数下的图片
可以看到,Euler, UniPC,DPM++ 2M Karras 出图是比较稳定的,在更高的步数下得出的结果跟低步数差别不大,只是更精细。
而其他几个,每步都会随机添加噪声,步数不同结果也会不同,相对来说更有创造力。
DPM++SDE Karras 对真实人像有更好的支持,见第三张图,其他几个因为眼睛的问题,把美女变成了卧龙凤雏,哈哈哈 ~
结论:
如果想要出图快,质量好,对结果是否稳定可重现无要求,可以选择:
- Euler a: 15-30 步,我一般默认用这个20 步
- DDIM--- 15-30 步
想要高质量的图并且不在乎结果是否稳定可重现,可以选择:
- DPM++ SDE Karras --- 20-30 步 这个采样器比较慢,步数可以适当设少,越多当然会越精细
如果想要出图快、结果稳定重现,质量好且喜欢新一代采样器,可以选择:
- DPM++ 2M Karras --- 20-30 步
- UniPC--- 20-30 步
- Euler--- 对新旧没要求可选择,20-40 步