Schedulers

Diffusion Schedulers (Noise Schedules)

核心定义

在 Diffusion Model 中,Scheduler (调度器) 的核心职责是定义时间步 $t$ 与噪声强度 $\sigma_t$ (或 $\beta_t, \alpha_t$) 之间的映射关系

  • Scheduler (Map): 决定任何时刻 $t$ 应该有多少噪声。它控制扩散过程的“轨迹形状”。
  • Sampler (Solver): 决定如何利用梯度在这个轨迹上迈步(详见 Samplers)。

1. 为什么 Schedule 很重要?

Schedule 直接决定了模型在训练和推理时,把计算资源分配给哪些阶段

  • 高噪声阶段 ($t \to T$): 学习图像的整体构图、布局 (Low Frequency)。
  • 低噪声阶段 ($t \to 0$): 学习图像的纹理、细节 (High Frequency)。

如果 Schedule 设置不合理(例如一直在低噪声区打转),模型就画不出这就的大结构;反之则画不出细节。


2. 经典调度策略

2.1 Linear Schedule (线性调度)

来源: [Ho et al. 2020] DDPM

最原始的方案,让 $\beta_t$ 随 $t$ 线性增加。

$$ \beta_t = \text{Linear}(\beta_{\text{start}}=10^{-4}, \beta_{\text{end}}=0.02, t) $$
  • 问题: 虽然 $\beta$ 是线性的,但累积信噪比 (SNR) 的变化在两头非常急促,中间非常平缓
  • 后果: 对于常规分辨率(如 64x64),这种调度浪费了大量时间在“无效”的加噪步骤上。

2.2 Cosine Schedule (余弦调度)

来源: [Nichol et al. 2021] Improved DDPM

为了解决 Linear Schedule 的问题,让累积信号强度 $\bar{\alpha}_t$ 按余弦曲线下降。

$$ \bar{\alpha}_t = \frac{f(t)}{f(0)}, \quad f(t) = \cos^2 \left( \frac{t/T + s}{1 + s} \cdot \frac{\pi}{2} \right) $$
  • 优点: 噪声变化更均匀,更符合人类视觉感知。
  • 地位: 是 Stable Diffusion 1.x / 2.x 的默认选择。

3. 面向高分辨率的现代调度 (Noise Shift)

当生成分辨率提升到 1024x1024 (SDXL, SD3) 时,传统的 Cosine Schedule 失效了。 核心原因 (Resolution Bias):

同样的噪声强度 $\sigma$,加在小图上可能已经全糊了,但加在大图上还能看清轮廓。因为大图像素多,信息冗余度高

如果用老调度训练 1024模型,会导致 $x_T$ (所谓的纯噪声) 其实还包含原图信息,导致生成的图片对比度低、不够黑/白(Zero-Terminal SNR 没满足)。

3.1 Noise Shift / Offset Schedule

来源: SDXL, Stable Diffusion 3, Simple Diffusion

解决方案: 既然大图更耐噪,我们就整体增加噪声强度,把 Log-SNR 曲线往“高噪”方向平移。

  • SDXL: 简单地增加了一个 Offset。
  • Stable Diffusion 3 / FLUX.1: 根据分辨率动态计算 Shift 参数。 $$ t \leftarrow \frac{\text{shift} \cdot t}{1 + (\text{shift} - 1) \cdot t} $$ 分辨率越高,Shift 越大,强制让模型花更多时间在去噪的高难度阶段。

4. Flow Matching 中的 Time Sampling

在 Flow Matching (FM) 框架中,路径通常被固定为直线 ($x_t = (1-t)x_0 + t x_1$)。 此时,“Schedule”体现为训练时采样时间步 $t$ 的概率分布

  • Uniform: $t \sim U[0, 1]$。最简单,但效率一般。
  • Logit-Normal (SD3):
    • 倾向于采样中间部分(既非纯噪也非纯图),因为这是“学习性价比”最高的区域。
    • 对于高分辨率训练,分布的均值会向 $t=1$ (纯噪) 偏移。

5. 总结

Schedule适用模型/场景核心特征
LinearDDPM (32x32)原始方案,效率低
CosineSD 1.5 / 2.1改进了 SNR 分布,适合 512px
Shifted / OffsetSDXL, SD3, FLUX.1 (1024px)SOTA 必备。解决大图耐噪问题,提升对比度。
Zero-SNRv-prediction 模型强制 $x_T$ 为纯噪声,能够生成纯白/纯黑图像
避坑指南

如果你自己训练 Diffusion/Flow 模型,只要分辨率超过 256x256,强烈建议使用 Shifted Schedule (或 Logit-Normal Sampling),否则很难收敛出高质量结果。