C10:掌握扩散模型的采样器与调度器:全面指南

在使用扩散模型时,理解采样器和调度器的机制对于获得最佳结果至关重要。这些组件会影响如何从潜在空间中去除噪声,从而塑造最终输出的质量和特征。本指南将深入探讨采样器的工作原理,解释它们的重要性,并提供可操作的步骤,帮助您为工作流选择最佳的采样器-调度器组合。



什么是采样器?

采样器是引导扩散过程的算法,而扩散过程是扩散模型中图像生成的基础。从宏观上看,扩散模型从一片随机噪声开始,逐步细化以生成连贯的图像。采样器通过控制每一步的噪声去除过程来决定细化的方式。

采样器的工作原理

  1. 潜在空间表示:
    扩散模型在潜在空间中运行——这是图像的高维表示。最初,潜在空间中充满了随机噪声。
  2. 迭代细化:
    采样器通过一系列数学运算迭代地从潜在空间中去除噪声。这些运算由采样算法定义,决定了噪声去除的速度和方式。
  3. 噪声注入(可选):
    某些采样器(例如祖先采样器)会在每一步注入额外的噪声。这种随机方法引入了随机性,使模型能够探索更多样化的可能性并解析更精细的细节。
  4. 收敛与发散:
    • 收敛型采样器:逐步细化潜在空间,使后面的步骤与前面的步骤非常接近,从而产生更平滑、更可预测的结果。
    • 发散型采样器:引入随机性,使后面的步骤可以偏离前面的步骤,从而产生更自然或更详细的输出。
  5. 最终解码:
    细化过程完成后,使用特定于模型的解码器(例如 DAE 解码器)对潜在空间进行解码,以生成最终图像。

为什么采样器很重要

采样器至关重要,因为它们直接影响:

  • 图像质量:平滑度、细节解析度和伪影的有无取决于所使用的采样器。
  • 模型兼容性:并非所有采样器都适用于每个扩散模型。选择不兼容的采样器可能导致结果不佳,甚至输出无法使用。
  • 处理时间:某些采样器的计算量比其他采样器更大,会影响图像生成所需的时间。

ComfyUI 工作流中的采样器
采样器名称描述用例优点缺点
Euler一种简单快速的采样器,使用欧拉方法去除噪声。基本工作流、快速测试和低复杂度模型。速度快,计算效率高。可能产生细节较少或质量较低的结果。
Euler_Cfg_PP将 Euler 采样器与 CFG(无分类器引导)配对,以实现更好的控制。需要对图像生成进行精确引导的场景。对最终输出提供更好的控制。比基本的 Euler 采样器稍慢。
Euler_AncestralEuler 的一个变体,引入随机性以产生更多样化的输出。需要输出变化的创意工作流。产生多样化且独特的结果。可能在输出中引入噪声或不一致。
Euler_Ancestral_Cfg_PP将 Euler Ancestral 与 CFG 相结合,产生有引导但多样化的输出。具有受控随机性的创意工作流。有效平衡多样性与控制。可能更慢,计算强度也更大。
Heun一种使用 Heun 方法的采样器,可提高噪声去除的准确性。需要比 Euler 更高准确性的场景。产生更平滑、更精细的结果。由于准确性提高,比 Euler 稍慢。
DPM_2一种二阶去噪扩散概率模型(DPM)采样器。需要精细结果的高质量工作流。产生具有精细细节的高质量输出。计算强度大且速度较慢。
DPM_2_Ancestral为 DPM_2 采样器引入随机性,以产生多样化的输出。需要输出多样性的创意工作流。在保持质量的同时产生多样化的输出。可能产生不一致的结果。
DPM_Fast一种为速度而设计的更快的 DPM 变体。需要快速出结果且质量可接受的工作流。比其他 DPM 变体更快。可能为了速度而牺牲一些细节和质量。
DPM_Adaptive在扩散过程中动态调整噪声去除过程。需要自适应细化的复杂工作流。产生均衡且自适应的结果。计算要求高。
DPM++_2S_Cfg_PP一种有引导的 DPM++ 采样器,针对高质量输出进行了优化。注重精度、需要有引导细化的工作流。产生高度精细且详细的结果。速度较慢,需要仔细调优。
DPM++_SDE一种基于随机微分方程(SDE)的 DPM++ 采样器。需要噪声控制和平滑输出的场景。产生平滑且无伪影的结果。计算强度大且速度较慢。
DPM++_2M一种二阶多步 DPM++ 采样器。需要多步细化的高质量工作流。产生详细且高质量的结果。计算要求高。
DDIM用于更快推理的去噪扩散隐式模型(DDIM)采样器。需要更快出结果且质量可接受的场景。比传统扩散采样器更快。可能产生细节略少的输出。
Uni_PC一种使用 Uni-PC(均匀预测-校正)方法的采样器。需要均衡去除噪声的工作流。产生均衡且可预测的结果。在复杂工作流中的灵活性有限。
Uni_PC_BH2Uni-PC 的一个变体,噪声去除能力更强。需要平滑输出的高精度工作流。产生比 Uni-PC 更平滑、更精细的结果。计算要求高。
IPNDM迭代概率噪声扩散模型采样器。需要精确控制噪声的迭代工作流。产生高度详细且精细的输出。由于迭代处理,速度较慢。
DEIS基于扩散的高效推理采样器。需要高效快速推理的场景。速度快,计算效率高。可能为了速度而牺牲一些质量。
Gradient_Estimation一种专注于在扩散过程中估计梯度的采样器。需要梯度分析的研究型工作流。提供详细的梯度信息。未针对通用图像生成进行优化。

什么是调度器?

调度器通过定义每一步如何去除噪声来控制采样过程。采样器决定了用于细化的算法,而调度器则决定了噪声去除的速度和模式。

Stable Diffusion 的调度器

调度器的工作原理

调度器通过以下方式协调整个采样过程:

  1. 噪声去除策略:
    决定是在每一步去除相同数量的噪声,还是动态调整去除速率。
  2. 步骤调整:
    控制随着步骤数量的增加,细化过程如何演变。例如:
    • 均匀调度器在每一步去除固定数量的噪声。
    • 动态调度器随着过程的推进减少的噪声越来越少,从而可以在后面的步骤中进行更精细的调整。
  3. 提升采样器性能:
    将采样器与合适的调度器配对,可以显著提高图像质量并减少伪影。

调度器描述用例优点缺点
Normal默认调度器,应用标准的均匀噪声去除过程。基本工作流和通用图像生成。易于使用,与大多数采样器广泛兼容。如果没有与最佳采样器配对,可能会产生有噪声的结果或伪影。
Karras一种动态调度器,逐步调整噪声去除,通常能改善结果。需要高质量、无伪影输出的高级工作流。减少伪影,提高图像质量。可能需要针对特定采样器进行微调。
Exponential以指数模式逐渐减少噪声,强调早期步骤。早期细化至关重要的场景。在潜在空间中产生更平滑的过渡。可能难以在后面的步骤中解析精细细节。
SGM_Uniform一种针对随机梯度方法定制的调度器,应用均匀噪声去除。适用于随机工作流和针对 SGM 技术优化的模型。确保在所有步骤中一致地去除噪声。对于需要动态调整噪声的模型,可能缺乏灵活性。
Simple一种简单直接、复杂度极低的调度器。快速测试和偏好简单性的工作流。速度快,易于配置。针对高质量输出的优化能力有限。
DDIM_Uniform一种专为 DDIM(去噪扩散隐式模型)设计的调度器,采用均匀噪声去除。需要一致降低噪声的基于 DDIM 的工作流。确保与 DDIM 采样器的兼容性。可能无法与非 DDIM 采样器很好地配合。
Beta使用 Beta 分布来控制噪声去除,强调某些步骤。需要特别强调扩散过程某些阶段的场景。对噪声去除模式提供更大的控制。需要详细配置并理解 Beta 分布。
Linear_Quadratic结合线性和二次模式去除噪声。需要渐进式和激进式降噪相结合的复杂工作流。平衡平滑过渡与锐利细化。如果没有与合适的采样器配对,可能会产生不一致的结果。
KL_Optimal一种使用 KL 散度优化的调度器,可最大限度地减少噪声伪影。需要将噪声和伪影降至最低的高精度工作流。产生高质量、无伪影的输出。计算强度大,可能需要仔细调优。

Karus Scheduler

  • 工作原理:根据步骤数动态调整噪声去除速率,优化细化过程以获得更平滑的结果。
  • 优点:提高采样器性能,尤其适用于如下采样器:dpmpp_2m.
  • 局限性:可能需要通过实验才能找到特定工作流的最佳设置。

实践工作流:选择采样器和调度器

分步流程

  1. 选择采样器:
    • 先从 Euler 这样的标准采样器开始,以获得平滑且可预测的结果。
    • 切换到 Euler Ancestral 或 UniPC,以获得更自然或更高对比度的输出。
    • 对于高级任务,可以尝试 DPM 系列采样器。
  2. 测试兼容性:
    • 确保采样器与您的扩散模型兼容。例如,使用 Juggernaut XL 时应避免使用 LMS。
  3. 执行工作流:
    • 使用选定的采样器运行图像生成过程。
    • 观察结果,注意伪影、收敛或发散现象。
  4. 调整调度器:
    • 如果输出噪声较多或伪影严重,请切换到 Karus 这样的动态调度器。
    • 重新运行工作流并比较结果。
  5. 比较输出:
    • 使用队列面板在不同采样器-调度器组合生成的图像之间导航。
    • 评估细节、对比度和伪影解析方面的差异。

示例:比较采样器和调度器

场景设置

  • 提示词: “A vibrant sunset over a mountain range with clouds, realistic style.”
  • 固定种子: 599869489844012
  • CheckPoint: Realistic Vision 5.1
  • 步数: 50
  • CFG 缩放: 7.5
  • 分辨率: 512×512

对比表

采样器与调度器组合结果描述优点缺点
Euler + Normal生成一幅基本图像,日落和山脉清晰,但缺乏精细细节。速度快,计算效率高。云朵可能显得扁平,色彩可能不够鲜艳。
Euler_Ancestral + Karras生成色彩更鲜艳的图像,云层柔和且随机成形。为图像增添多样性和艺术气息。可能在山体形状上引入轻微的不一致。
DPM++_2M + Exponential生成高度精细逼真的图像,山体边缘锐利,云层平滑。产生高质量、照片级逼真的结果。计算强度大且速度较慢。
DDIM + Linear_Quadratic生成均衡的图像,细节良好,元素之间过渡平滑。比 DPM++ 变体更快,同时保持不错的质量。可能缺乏 DPM++ 采样器的极致细化效果。
DPM++_2S_Cfg_PP + KL_Optimal生成令人惊叹的逼真日落,云层细节错综复杂,山体纹理锐利。提供最高的细化程度和无伪影的输出。需要大量计算资源和更长的处理时间。
DPM_Fast + Beta生成细节相当不错、色彩和纹理良好的图像。比大多数基于 DPM 的采样器更快。可能为了速度而牺牲一些细节和锐度。
Gradient_Estimation + Karras生成一幅艺术图像,日落与山脉之间呈现渐变般的过渡。非常适合创意或研究型工作流。可能不适合照片级逼真的输出。
DEIS + Normal快速生成细节适中、质量可接受的图像。速度极快,计算效率极高。云朵和山脉可能显得过于简化。

可视化对比示例

1. Euler + Normal

  • 输出:基本图像,山脉和云朵清晰可见,但缺乏精细的纹理。
  • 用例:快速原型制作或测试。

2. Euler_Ancestral + Karras

  • 输出:色彩鲜艳,云层随机成形,偏向艺术化诠释。
  • 用例:注重多样性的创意工作流。

3. DPM++_2M + Exponential

  • 输出:山脉和云朵高度精细,过渡平滑,光照效果逼真。
  • 用例:高质量、照片级逼真的图像生成。

4. DDIM + Linear_Quadratic

  • 输出:均衡的图像,细节良好,渐变平滑,适合通用用途。
  • 用例:更快的工作流,同时不会牺牲太多质量。

要点总结

快速采样器(Euler、DEIS):

非常适合快速出结果,但可能缺乏细节和细化效果。

适用于原型制作或资源有限的环境。

高质量采样器(DPM++ 变体):

生成逼真、详细的图像,但计算强度大。

非常适合最终生产或需要高精度的工作流。

创意采样器(祖先变体):

引入随机性和多样性,使其非常适合艺术化输出。

可能为了创意而牺牲一致性或真实感。

调度器的影响:

Normal:标准结果,没有重大改进。

Karras:提高鲜艳度并减少伪影。

Exponential:平滑过渡和早期细化。


优化采样器和调度器选择的技巧

  1. 实验是关键:
    测试多种采样器-调度器组合,为您的模型和用例找到最佳配对。
  2. 了解模型要求:
    研究您的扩散模型与特定采样器和调度器的兼容性。例如,DPM 系列采样器通常需要动态调度器才能获得最佳效果。
  3. 使用祖先采样器获得多样性:
    如果您的目标是生成多样化且自然的输出,可以考虑使用 Euler Ancestral 这样的祖先采样器。
  4. 利用动态调度器:
    将采样器与 Karus 这样的动态调度器配对,以提高性能并减少伪影。

结论

采样器和调度器是扩散模型的基础,塑造着生成图像的质量和特征。通过理解它们的机制并尝试不同的组合,您可以充分释放工作流的潜力。无论您是使用收敛型采样器细化平滑输出,还是使用祖先变体解析错综复杂的细节,合适的调度器都能带来巨大的差异。

发表评论