赞
踩
英文原文:https://stable-diffusion-art.com/samplers/
先说建议:
- 如果你想使用快速、融合、新颖且质量不错的东西,那么最好的选择是:
- DPM++ 2M Karras,20 – 30 个步骤
- UniPC 有 20-30 个步骤。- 如果您想要高质量的图像并且不关心收敛,那么不错的选择是:
- DPM++ SDE Karras 具有 10-15 个步骤(注意:这是一个较慢的采样器)
- DDIM 10-15 个步骤。- 如果您喜欢稳定、可重复的图像,请避免使用任何祖先采样器。
- 如果您喜欢简单的东西,Euler 和 Heun 是不错的选择。减少 Heun 的步骤以节省时间。
AUTOMATIC1111 中提供了多种采样方法。 Euler a、Heun、DDIM……什么是采样器?它们如何工作?它们之间有什么区别?您应该使用哪一个?您将在本文中找到答案。
我们将讨论 AUTOMATIC1111 稳定扩散 GUI 中提供的采样器。您可以在 Windows、Mac 或 Google Colab 上使用此 GUI。
采样器负责执行去噪步骤。
为了生成图像,Stable Diffusion 首先在潜在空间中生成完全随机的图像。然后噪声预测器估计图像的噪声。从图像中减去预测的噪声。这个过程重复十几次。最后,你会得到一个干净的图像。
这个去噪过程称为采样,因为稳定扩散技术每一步都会生成一个新的样本图像。采样中使用的方法称为采样器或采样方法。
采样只是稳定扩散模型的一部分。阅读文章“稳定扩散如何工作?”如果你想了解整个模型。
下面是一个正在运行的采样过程。采样器逐渐产生越来越清晰的图像。
虽然框架是相同的,但有许多不同的方法可以执行此去噪过程。这通常是速度和准确性之间的权衡。
您一定已经注意到,嘈杂的图像逐渐变成清晰的图像。噪声表控制每个采样步骤的噪声水平。噪声在第一步最高,在最后一步逐渐降至零。
在每个步骤中,采样器的工作是生成噪声水平与噪声表相匹配的图像。
15 个采样步骤的噪声表。
增加采样步数有什么影响?每个步骤之间的噪音降低幅度较小。这有助于减少采样的截断误差。
比较下面 15 步和 30 步的噪声表。
截至撰写本文时,AUTOMATIC1111 中有 19 个采样器可用。随着时间的推移,这个数字似乎在增长。有什么区别?
AUTOMATIC1111 中的采样器。
您将在本文的后面部分了解它们是什么。技术细节可能令人难以承受。所以我在本节中包含了鸟瞰图。这应该可以帮助您大致了解它们是什么。
让我们先剔除简单的。列表中的一些采样器是一百多年前发明的。它们是常微分方程 ordinary differential equations (ODE) 的老式求解器。
您是否注意到某些采样器的名字有一个字母“a”?
他们是祖传的采样者。祖传采样器在每个采样步骤向图像添加噪声。它们是随机采样器,因为采样结果具有一定的随机性。
请注意,许多其他采样器也是随机采样器,尽管他们的名字中没有“a”。
使用祖传采样器的缺点是图像不会收敛。比较使用 Euler a 和下面的 Euler 生成的图像。
Euler a 不收敛
Euler 收敛
使用 Euler a 生成的图像在高采样步长时不会收敛。相比之下,欧拉的图像收敛得很好。
为了再现性,希望图像会收敛。如果你想产生轻微的变化,你应该使用变分种子。
带有“Karras”标签的采样器使用 Karras 文章中推荐的噪声表。如果仔细观察,您会发现噪声步长在接近末尾时较小。他们发现这提高了图像质量。
默认噪声表和 Karras 噪声表之间的比较。
DDIM(Denoising Diffusion Implicit Model 去噪扩散隐式模型)和 PLMS(Pseudo Linear Multi-Step伪线性多步方法)是原始稳定扩散 v1 附带的采样器。 DDIM 是最早为扩散模型设计的采样器之一。 PLMS 是 DDIM 更新、更快的替代方案。
它们通常被认为已经过时并且不再广泛使用。
DPM(扩散概率模型求解器)和 DPM++ 是为 2022 年发布的扩散模型设计的新采样器。它们代表了一系列具有相似架构的求解器。
DPM 和 DPM2 类似,只是 DPM2 是二阶(更准确但速度更慢)。
DPM++ 是对 DPM 的改进。
DPM自适应自适应调整步长。它可能会很慢,因为它不能保证在采样步骤数内完成。
UniPC(Unified Predictor-Corrector)是2023年发布的新采样器。受到ODE求解器中的预测器-校正器方法的启发,它可以在5-10步内实现高质量图像生成。
最后,您可能听说过 k-diffusion 这个术语并想知道它的含义。它只是指 Katherine Crowson 的 k-diffusion GitHub 存储库以及与其关联的采样器。
该存储库实现了 Karras 2022 文章中研究的采样器。
基本上,AUTOMATIC1111 中除 DDIM、PLMS 和 UniPC 之外的所有采样器都是从 k-diffusion 借用的。
如何选择采样器?您将在本节中看到一些客观的比较来帮助您做出决定。
在本节中,我将使用不同的采样器(最多 40 个采样步骤)生成相同的图像。第 40 步的最后一个图像用作评估采样收敛速度的参考。Euler 方法将被用作参考。
首先,让我们将 Euler、DDIM、PLMS、LMS Karras 和 Heun 作为一组来看看,因为它们代表了老式的 ODE 求解器或原始扩散求解器。 DDIM 收敛于欧拉的步长,但有更多变化。这是因为它在采样步骤中注入了随机噪声。
Euler、DDIM、PLMS、LMS Karras 和 Heun 的图像收敛(越低越好)。
PLMS 在这次测试中表现不佳。
LMS Karras 似乎很难收敛,并稳定在较高的基线上。
Heun 收敛速度更快,但速度慢两倍,因为它是二阶方法。例如,我们应该将 30 步的 Heun 与 15 步的 Euler 进行比较。
如果稳定、可重复的图像是您的目标,则不应使用祖先采样器。所有祖先采样器并不收敛。
祖先采样器不能很好地收敛(越低越好)。
DPM fast 收敛得不好。 DPM2 和 DPM2 Karras 的表现优于 Euler,但代价是速度慢了两倍。
DPM adaptive表现看似良好,因为它使用自己的自适应采样步骤。它可能会非常慢。
DPM 采样器的收敛性(越低越好)。
DPM++ SDE 和 DPM++ SDE Karras 具有与祖先采样器相同的缺点。它们不仅不收敛,而且图像还会随着步数的变化而大幅波动。
DPM++ 2M 和 DPM++ 2M Karras 表现良好。当步数足够多时,Karras 变体收敛得更快。
DPM++ 采样器的收敛性(越低越好)。
UniPC 的收敛速度比 Euler 慢一点,但也不算太差。
每种方法的相对渲染时间(越低越好)
尽管DPM自适应在收敛方面表现良好,但它也是最慢的。
您可能已经注意到其余的渲染时间分为两组,第一组花费大约相同的时间(约 1 倍),另一组花费大约两倍的时间(约 2 倍)。这反映了求解器的顺序。二阶求解器虽然更准确,但需要对去噪 U-Net 进行两次评估。所以它们的速度慢两倍。
当然,如果图像看起来很糟糕,那么速度和收敛就毫无意义。
我们首先看一下图像样本。
DPM++ fast 非常失败。祖先样本没有收敛到其他采样器收敛到的图像。
祖先采样器倾向于收敛到小猫的图像,而确定性采样器倾向于收敛到猫的图像。没有正确的答案,只要它们对你来说看起来不错即可。
即使图像没有收敛,图像看起来仍然不错。让我们看看每个采样器生成高质量图像的速度有多快。
您将看到使用 BRISQUE(盲/无参考图像空间质量评估器)测量的感知质量。它衡量自然图像的质量。
DDIM 在这方面的表现出人意料地好,能够在短短 8 个步骤内生成组内最高质量的图像。
DDIM、PLMS、Heun 和 LMS Karras 的图像质量(越低越好)。
除了一两个例外,所有祖先采样器在生成高质量图像方面都与 Euler 相似。
DPM2 采样器的表现优于 Euler。
DPM 采样器的图像质量(越低越好)。
DPM++ SDE 和 DPM++ SDE Karras 在本次质量测试中表现最好。
DPM++ 采样器的图像质量(越低越好)。
UniPC 在低步长上比 Euler 稍差,但在高步长上与 Euler 相当。
以下是我的建议:
您可以在 AUTOMATIC1111 中找到有关可用采样器的信息。这些采样器的内部工作本质上是非常数学化的。我只详细解释一下欧拉(最简单的)。其中许多都具有欧拉的元素。
Euler 是最简单的采样器。它在数学上与求解常微分方程的欧拉方法相同。它是完全确定性的,这意味着采样期间不会添加随机噪声。
下面是逐步采样。
步骤 1:噪声预测器根据潜在图像估计噪声图像。
步骤2:根据噪声表计算需要减去的噪声量。这就是当前步骤和下一步之间的噪声差异。
步骤 3:将潜在图像减去归一化噪声图像(来自步骤 1)乘以要减少的噪声量(来自步骤 2)。
重复步骤 1 至 3,直到噪声计划结束。
但是你怎么知道每一步的噪音量呢?实际上,这是您告诉采样器的事情。
噪声表告诉采样器每一步应该有多少噪声。为什么模型需要这些信息?噪声预测器根据应该存在的噪声总量来估计潜在图像中的噪声。 (这就是它的训练方式。)
15 个采样步骤的噪声表。
第一步的噪音最大。噪音逐渐减小,并在最后一步降至零。
改变采样步数会改变噪声表。实际上,噪音时间表变得更加平滑。采样步数越多,任何两个步之间的噪声降低越小。这有助于减少截断错误。
您是否想知道为什么可以使用确定性 ODE 求解器来解决随机采样问题?这称为概率流公式。您不是解决样本如何演变,而是解决其概率分布的演变。这与在随机过程中求解概率分布而不是样本轨迹相同。
与漂移过程相比,这些 ODE 求解器使用以下映射。
下面是使用欧拉方法的文本到图像的示例。噪声表规定了每个步骤的噪声水平。采样器的工作是在每个步骤中将噪声减少适量,以匹配噪声计划,直到最后一步为零。
使用欧拉方法和 15 个采样步骤进行去噪。
欧拉祖先(Euler a)采样器与欧拉采样器类似。但在每一步中,它都会减去比应有的更多的噪声,并添加一些随机噪声以匹配噪声计划。去噪图像取决于前面步骤中添加的特定噪声。因此,它是一个祖先采样器,从某种意义上说,图像去噪的路径取决于每个步骤中添加的特定随机噪声。如果再做一次,结果就会不一样。
Denoising Diffusion Implicit Models 去噪扩散隐式模型 (DDIM) 是最早用于求解扩散模型的采样器之一。它基于这样的思想:每个步骤的图像可以通过添加以下三个分量来近似。
在进行最后一步之前我们如何知道最终图像? DDIM 采样器使用去噪图像对其进行近似。类似地,图像方向由噪声预测器估计的噪声来近似。
与欧拉方法非常相似,线性多步法 (LMS) 是求解常微分方程的标准方法。它的目的是通过巧妙地使用先前时间步骤的值来提高准确性。 AUTOMATIC1111 默认使用最多 4 个最后值。
LMS Karras 使用 Karras 噪声表。
Heun 方法是对 Euler 方法更精确的改进。但它每一步需要预测噪声两次,因此比欧拉慢两倍。
Diffusion Probabilistic Model Solvers 扩散概率模型求解器 (DPM-Solvers) 属于新开发的扩散模型求解器系列。它们是 AUTOMATIC1111 中的以下求解器。
DPM2 是 DPM-Solver 文章的 DPM-Solver-2(算法 1)。求解器精确到二阶。
DPM2 Karras 除了使用 Karras 噪声调度程序外,与 DPM2 完全相同。
DPM2 a 几乎与 DPM2 相同,只是每个采样步骤都添加了噪声。这使其成为祖先采样器。
DPM2 a Karras 几乎与 DPM2 a 相同,只是使用了 Karras 噪声表。
DPM Fast 是具有统一噪声表的 DPM 求解器的变体。直到第一个订单为止都是准确的。因此它的速度是 DPM2 的两倍。
DPM Adaptive 是具有自适应噪声调度的一阶 DPM 求解器。它会忽略您设置的步数并自适应地确定自己的步数。
DPM++ 采样器是 DPM 的改进版本。
UniPC(Unified Predictor Corrector方法)是2023年新开发的扩散采样器,由两部分组成
它支持任何求解器和噪声预测器。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。