Stable diffusion采样器详解
在我们使用SD web UI的过程中,有很多采样器可以选择,那么什么是采样器?它们是如何工作的?它们之间有什么区别?你应该使用哪一个?这篇文章将会给你想要的答案。
什么是采样?
Stable Diffusion模型通过一种称为“去噪”的过程来生成图像,这个过程涉及到在潜在空间中逐步从随机噪声中提取出有意义的图像特征。
- 模型首先在潜在空间中生成一个完全随机的噪声图像。这个图像是随机的,不包含任何有意义的信息。
- 噪声预测器(也称为去噪函数)估计这个随机图像中的噪声。这个预测器是模型的一部分,它学习如何从噪声中恢复出清晰的图像。
- 模型从初始的随机噪声图像中减去预测的噪声,以便逐步揭示出隐藏在噪声下的图像内容。
- 这个过程会重复多次(通常是十几次),每一步都会生成一个新的采样图像。这些采样图像逐渐从随机噪声转变为越来越清晰的图像。
- 经过多次迭代后,最终得到的图像是一个干净的、去噪后的图像,它反映了文本提示中描述的内容。
下面是一个实际的采样过程。采样器逐渐产生越来越干净的图像。
Noise schedule
在Stable Diffusion模型的去噪过程中,噪声表(noise schedule)扮演着至关重要的角色。
噪声表是一个预先定义的计划,它决定了在每一步采样过程中应用的噪声水平。
- 在去噪过程的第一步,图像充满了高噪声,这是因为初始图像是完全随机的噪声图像。在这个阶段,噪声水平最高,图像看起来是不连贯和随机的。
- 随着去噪过程的进行,噪声表会逐步降低每个采样步骤中的噪声水平。这种降低是按照预定的计划进行的,旨在逐渐从噪声中提取出有意义的图像特征。
- 在去噪过程的最后一步,噪声水平降低到零,此时图像应该是清晰且与文本提示相匹配的。理想情况下,最终图像应该几乎没有噪声,且细节丰富,准确地反映了文本描述的内容。
下面是一个Noise schedule的基本工作原理:
如果我们增加采样步骤数,那么每个步骤之间的降噪幅将会变小。这有助于减少采样的截断误差。
可以比较一下 15 个步骤和 30 个步骤的噪音时间表。
不同的采样器
webUI自带了很多不同的采样器,并且这个采样器的个数还在不停的增加,那么这些采样器都有些什么不同呢?
老式ODE solvers
让我们看一下最简单采样器。这些采样器算法已经被发明很久很久了。它们是常微分方程 (ODE) 的老式采样器。
Euler– 最简单的采样器。
Heun– 更准确但更慢的 Euler 版本。
LMS(线性多步法) – 与 Euler 的速度相同,但(据说)更准确。