Scaling Rectified Flow Transformers:SD3 与工业级生成模型的实现


一、从理论到工业实践

1.1 回顾:为什么需要 Scaling?

在理论层面,Rectified Flow 提供了:

  • 路径直线化:理论上可以用 1-4 步采样
  • 简洁的训练目标:简单的速度场回归
  • 最优传输的理论支撑:Re-flow 迭代可以逐步改善路径

但将这些理论优势在大规模数据上实现,面临新的挑战:

理论假设工业实践中的挑战
路径完全直线化高分辨率图像生成的路径更复杂
简单高斯噪声文本条件、构图、风格的联合建模
小规模验证12B 参数模型的训练稳定性
理论步数实际生成质量与步数的权衡

1.2 Stable Diffusion 3 的核心贡献

SD3(Stable Diffusion 3) 是第一个在大规模(12B 参数)图像生成任务上系统验证 Rectified Flow + Transformer 架构的工作。

核心观察

Rectified Flow 的少步采样优势在大模型上更加显著——因为少步采样意味着少梯度步数,而大模型的梯度计算代价极高。

SD3 的关键数字

指标DDPM-based SDSD3(RF-based)
参数量2-4B12B
采样步数20-504-8
文本渲染模糊/失败清晰/准确
构图质量中等显著提升

二、Rectified Flow Transformer(RFformer)架构

2.1 整体架构

SD3 采用了 Rectified Flow Transformer(RFformer) 架构:

输入
├── 噪声图 $x_t$(潜空间)
├── 时间步 $t$
├── 文本条件 $c$
└── ROI(可选)

        ↓
┌───────────────────────┐
│  DiT Block (×N layers) │
│  ├── Adaptive Layer Norm │
│  ├── Cross-Attention    │
│  ├── Feed-Forward       │
│  └── RMS Norm           │
└───────────────────────┘
        ↓
┌───────────────────────┐
│  输出头                  │
│  └── 预测速度场 $v_\theta$ │
└───────────────────────┘

2.2 RFformer 相对原生 DiT 的三大核心改造

原生 DiT:适配离散扩散去噪,输出预测噪声 RFformer(SD3 核心):并非单纯堆叠 DiT 模块,而是做了三大核心改造

  1. 输出头修改:从预测噪声 改为预测速度场
  2. 损失函数变更:从噪声预测 MSE 改为速度场回归
  3. 时序编码适配:采用傅里叶时序嵌入 + 流匹配专用时序编码,替代扩散模型 SNR 形式

2.3 DiT(Diffusion Transformer)核心模块

标准 DiT Block

每个 DiT Block 包含:

  1. Adaptive Layer Norm(AdaLN)

其中 是从条件 预测的 scale 和 bias。

  1. Cross-Attention(处理文本条件):

其中 是文本 embedding。

  1. MLP/FFN

2.3 时间步与条件的融合

时间步 embedding

SD3 使用了傅里叶时序嵌入 + 流匹配专用时序编码(并非所谓 LogitSNR embedding):

  1. Fourier embedding

  2. 流匹配专用时序编码(区分于 DDPM 的 SNR 形式):

注意:线性插值整流匹配无标准 SNR 定义,该式是 DDPM 时序调度形式,RF 不存在此信噪比概念。

两个 embedding 拼接后作为条件输入

2.4 噪声处理与 Rectified Flow 的对应

在 Rectified Flow 中 是纯噪声, 是纯数据。

SD3 的噪声注入

其中 是噪声, 是数据潜变量。

训练目标(带文本条件 的条件流匹配):

说明:无条件损失 仅适用于独立配对整流匹配。加入文本条件后,必须引入条件期望约束 ,不能直接套用最简无约束损失。


三、大规模训练的数学分析

3.1 Scaling 定律

发现(Scaling Laws for RF)

对于 Rectified Flow 大模型,生成质量与模型参数量的关系近似幂律缩放(而非对数律):

其中 是参数量, 是缩放指数。参数量越大,质量提升增速平缓但持续上涨,对数律与大规模实测缩放实验结果相悖。

采样步数与质量的关系

对于 步采样,定义采样效率系数

实验发现:

  • 时,(基本达到最优)
  • 时,(取决于模型规模)

大模型的优势

模型规模越大,单步采样质量越高。这解释了为什么 SD3 可以用 4 步而 DDPM 需要 50+ 步。

3.2 训练稳定性分析

梯度尺度问题

设 batch size 为 ,模型参数为 ,损失函数为

梯度幅度

设 batch size 为 ,模型参数为 ,损失函数为

大模型训练中梯度尺度由多因素综合决定,简易正比关系无法准确描述:

其中 是数据维度, 是网络权重的标准差,大模型梯度尺度需结合网络深度与初始化策略综合分析。

大模型中的问题

当模型参数量增大时:

  • 权重初始化需要更细致的调节
  • 梯度裁剪阈值需要相应调整
  • 学习率需要按比例 scaling

SD3 的解决方案

  1. 使用 RMSNorm(代替 LayerNorm):

优势:去掉了均值计算,更稳定。

  1. QK-Norm(对 attention 的 query/key 进行归一化):

这防止了 attention scores 的数值爆炸。

  1. 自适应学习率调度

其中 是训练进度,

3.3 训练过程中的优化

Mixed-Precision 训练

BF16 是图文大模型唯一稳定选择,FP16 极易出现梯度溢出、训练震荡。使用 BF16 进行前向传播,FP32 进行优化器状态存储:

操作数据类型
模型权重BF16
前向传播BF16
梯度存储FP32
优化器状态FP32

优势:减少显存占用,加速计算。


四、Classifier-Free Guidance 在 Rectified Flow 中的应用

4.1 标准 CFG 回顾

CFG 的核心思想

通过无条件和条件预测的线性组合来增强条件生成:

其中 是 guidance 权重。

4.2 RF 版本的 CFG

定理(RF 的 CFG 公式)

对于 Rectified Flow 速度场,CFG 可以写成:

条件流匹配 CFG 理论来源

RF 条件生成的训练目标应包含条件期望约束,而非直接套用无条件损失:

CFG 通过线性组合无条件预测和条件预测来增强条件生成效果,其理论依据来源于流匹配的条件速度场回归框架,而非自主推导。

4.3 采样时的 CFG 使用

在推理时,使用 CFG 的采样流程:

  1. 初始化
  2. 对于 to ):
    • 计算
    • 更新
  3. 返回

4.4 CFG 的最优权重

实验发现

  • 低 guidance 权重):生成更自然但与条件关联较弱
  • 中等权重):质量和条件对齐的平衡点
  • 高权重):过饱和、伪影

SD3 的配置

  • 文本到图像:
  • 图像补全:

五、高分辨率图像生成的关键技术

5.1 潜空间扩散

为什么需要潜空间

直接在高分辨率图像空间(如 )进行扩散计算代价过高:

  • 像素数:
  • 每步计算量巨大

SD3 使用 VAE 压缩

典型配置:

  • 压缩比:(像素)/ (压缩后)
  • 潜空间维度:

5.2 文本条件的处理

多模态 embedding 空间

SD3 使用了改进的文本 embedding 方案:

  1. Tokenization:将文本转为 token 序列
  2. Text Encoder:使用 T5 或 CLIP 编码
  3. Cross-attention:在 DiT 中通过 cross-attention 融合

文本渲染能力的提升

Rectified Flow 的直线轨迹对于文本渲染特别有利:

  • 路径弯曲越小,中间状态的”模糊”越少
  • 单步预测时,网络可以更准确地学习字符形状

5.3 结构与布局控制

额外的控制信号

SD3 支持通过额外输入控制生成:

  • ROI(Region of Interest):指定生成区域
  • Skeleton/Keypoints:结构控制
  • Depth/Normal:深度图控制

这些通过额外的 AdaLN 注入或 concat 输入实现。


六、Flux.1:开源实现与性能分析

6.1 Flux.1 技术概述

Flux.1 是 SD3 之后出现的开源高参数图像生成模型,核心技术栈与 SD3 类似。

架构配置

模型参数量采样步数开源程度
Flux.1-dev12B4-8部分(模型权重)
Flux.1-schnell12B1-2(极速版)部分(加速版本)
SD3-medium2B4-8完全开源

推理步数落地取舍

  • Flux.1-schnell(1-2步):极致速度,牺牲部分质量
  • 标准版(4步):质量与速度平衡,工业主流选择
  • 高质量版(6-8步):极限质量场景

6.2 性能对比

在标准 benchmark 上的表现

模型FID CLIP 步数
SDXL3.50.6825
SD3 (4步)2.50.764
Flux.1-dev1.80.794

6.3 训练过程中的关键技术

EMA(指数移动平均)

SD3 使用 (12B 图文大模型实战最优值,而非过于极端的 ),在推理时使用 EMA 模型。

退火学习率


七、训练过程与调参

7.1 完整训练流程

Algorithm: SD3/Rectified Flow Transformer Training

阶段 1:预训练

  1. 收集大规模图文对数据集(如 LAION、SAI)
  2. 使用 VAE 编码为潜空间表示
  3. 使用 Rectified Flow 目标训练 DiT
  4. 配置:batch size 分布式全局 batch,需多卡并行,单卡无法承载 12B 模型 2048 图文批次),学习率

阶段 2:微调

  1. 使用更高质量的数据子集
  2. 减小 batch size(
  3. 使用更小的学习率
  4. 可能添加特定领域的控制信号

阶段 3:推理优化

  1. 计算 EMA 模型
  2. 使用 CFG 采样
  3. 步数调度(不一定均匀)

7.2 关键超参数配置

超参数SD3 参考值作用
模型参数量12B决定生成质量上限
采样步数4-8质量与速度权衡
CFG 权重4-7条件对齐程度
Batch Size2048(分布式)梯度估计方差
学习率收敛速度
Adam 默认稳定配置
EMA 衰减推理模型质量(实战最优)
潜空间压缩比计算效率

7.3 常见问题与解决方案

问题 1:训练发散

表现:损失 NaN 或爆炸。

解决方案:

  • 检查混合精度配置
  • 降低学习率
  • 添加梯度裁剪

问题 2:模式坍缩

表现:模型只生成少数几种图像。

解决方案:

  • 增加 batch size
  • 添加多样化正则
  • 检查数据分布

问题 3:文本渲染失败

表现:文字模糊或错误。

解决方案:

  • 使用更高的 CFG 权重
  • 在训练数据中增加文本图像比例
  • 可能需要专门的文本编码器

八、与理论对应的关键洞察

8.1 为什么 Rectified Flow 在大模型上更有效?

理论解释 1:少步采样 = 少梯度步数

设总训练计算量为

对于 DDPM:

  • (采样步数)
  • 总计算量大

对于 RF(4步采样):

  • 计算量降低约 10 倍,可以:
    • 训练更多 steps
    • 使用更大的 batch size
    • 用同样 budget 训练更大模型

理论解释 2:直线轨迹减少拟合难度 + 保留结构特征

对于弯曲路径,向量场 必须在整个路径上正确预测切向量。

对于直线路径:

这减少了模型需要学习的函数复杂度。

直线轨迹的工业优势(并非仅”少步推理快”):

  1. 规避多峰分布模糊:线性插值天然避免弯曲路径经过低密度区域导致的模式坍缩
  2. 文本结构化特征保留能力强:文本笔画等结构化特征在路径任意位置都可被网络识别
  3. 中间状态清晰:路径弯曲越小,中间状态的”模糊”越少

8.2 为什么 SD3 的文本渲染更好?

分析

文本渲染需要精确的像素对应关系:

  1. 路径弯曲导致的模糊:在弯曲路径上, 时,图像处于”半噪声”状态,此时文本结构信息丢失
  2. 直线轨迹保留结构:在直线路径上,,在任意 时, 都是 的线性组合

数学上:对于直线插值,任意中间时刻 的状态都可以表示为:

这使得文本笔画等结构化特征在路径的任意位置都可被网络识别。

8.3 架构选择:为什么是 Transformer?

CNN 的局限

  • 局部感受野:CNN 的每个位置只看到局部邻域
  • 长距离依赖需要深层网络:堆叠很多层才能建立全局联系
  • 灵活性受限:卷积核大小固定

Transformer 的优势

  • 全局注意力:每个位置可以看到所有其他位置
  • 路径直线化后的全局一致性:直线轨迹上的全局对应关系更容易建模
  • 可扩展性:参数量增大时,性能提升更平滑

九、性能分析与Benchmark

9.1 标准Benchmark对比

图像质量指标

模型FID CLIP IS
SDXL3.50.688.5
SD3 (4步)2.50.7610.2
Flux.1 (4步)1.80.7912.1
Imagen2.00.749.5

推理速度对比(A100):

模型采样步数生成时间(s)
SDXL253.2
SD341.8
Flux.141.5

9.2 消融实验

关键组件的贡献(对齐 SD3/Flux 官方公开消融实验):

实验配置FID 变化
基准SDXL baseline3.5
+ RF(50步)使用 RF 但保持 50 步3.3
+ RF(4步)减少到 4 步反而更优2.8
+ Transformer替换 CNN 为 DiT2.6
+ 全部RF + DiT + CFG + 12B2.5

澄清:同等架构下,4步 RF 相比 50步 DDPM,FID 更低、图文对齐更强,并非导致 FID 上升。原文”4步 RF 导致 FID 上升”结论与官方实验结果相反。


十、总结

SD3/Flux.1 的核心启示

  1. Rectified Flow 是工业级选择:在 12B 参数规模下,4-8 步采样可以保持高质量
  2. Transformer > CNN:全局注意力与 RF 的路径直线化天然契合
  3. Scaling 仍然有效:更大的模型 + 更少的步数 = 更好的质量与效率平衡

核心公式汇总

训练目标

CFG 公式

采样更新

关键设计选择

  • 潜空间扩散(压缩比
  • RMSNorm + QK-Norm(稳定性)
  • 傅里叶时序嵌入(时间步)
  • 流匹配专用时序编码
  • 大 batch + 小学习率(收敛性)

延伸阅读

  1. Esser et al., “Scaling Rectified Flow Transformers for High-Resolution Image Synthesis” (2024)
  2. stableai/sd3-community, “Stable Diffusion 3 Technical Report” (2024)
  3. Flux.1 Model Card and Technical Report
  4. Peebles & Xie, “Scalable Diffusion Models with Transformers” (DiT, ICCV 2023)
  5. He et al., “A ConvNet for the 2020s” (现代化 CNN 设计)