张芷铭的个人博客

Rectified Flow 通过直线路径优化实现高效去噪,仅需 20-50 步即可完成生成。

核心创新

传统扩散模型局限

  • 计算复杂,需维护噪声系数表
  • 步数多(通常 1000 步)
  • 随机性控制困难

Rectified Flow 解决方案

直线路径公式:$z_t = (1-t) \cdot \text{data} + t \cdot \text{noise}$

去噪目标:预测速度场 $v_\Theta$,而非直接预测噪声

去噪步骤:$z_{t-1} = z_t - \Delta t \cdot v_\Theta$

调度器核心功能

动态时间步计算

1
2
dt = timestep - lower_timestep  # 计算 Δt
prev_sample = sample - dt * model_output  # z_{t-1} = z_t - Δt * v_Θ

随机性控制

1
2
3
if stochastic_sampling:
    x0 = sample - timestep * model_output
    prev_sample = self.add_noise(x0, noise, next_timestep)

条件掩码

1
2
tokens_to_denoise_mask = (t - t_eps < (1.0 - conditioning_mask)).unsqueeze(-1)
return torch.where(tokens_to_denoise_mask, denoised_latents, latents)

支持细粒度时空控制,如视频特定帧局部编辑。

架构对比

维度传统扩散 (DDPM)Rectified Flow
路径设计弯曲路径直线路径
计算效率需 1000 步仅需 20-50 步
随机性控制需切换采样器参数灵活开关
数学框架SDE/概率扩散ODE/最优传输

总结

Rectified Flow 通过直线路径设计减少误差累积,动态时间控制提升数值稳定性,支持细粒度条件生成,是平衡质量、速度与控制力的关键模块。

Comments