FLUX 图像生成模型
FLUX 是 Black Forest Labs 推出的新一代图像生成模型,采用 Flow Matching 训练范式和创新的 DiT(Diffusion Transformer)架构,在图像质量、文本对齐和多样性方面实现了显著突破。
Flow Matching 范式
FLUX 采用了 Flow Matching 替代传统扩散模型的 DDPM 训练:
- 连续归一化流:通过学习向量场将简单分布(高斯噪声)变换为数据分布
- 最优传输路径:使用条件最优传输(Conditional Optimal Transport)构建更直的去噪轨迹
- 更少推理步数:相比 DDPM 的 50+ 步,Flow Matching 可在 4-8 步内生成高质量图像
python
import torch
class FlowMatchingScheduler:
"""Flow Matching 采样调度器"""
def __init__(self, num_steps=4, sigma_min=1e-5):
self.num_steps = num_steps
self.sigma_min = sigma_min
def step(self, model_output, timestep, sample):
# Flow Matching ODE 步进
dt = 1.0 / self.num_steps
# 从 t=0(噪声)到 t=1(数据)的积分
prev_sample = sample + dt * model_output
return prev_sample
def add_noise(self, sample, noise, timestep):
# 线性插值路径:x_t = (1-t) * noise + t * sample
return (1 - timestep) * noise + timestep * sampleDiT 架构创新
FLUX 的核心架构基于改进的 Diffusion Transformer:
- 双流设计:文本和图像 Token 在独立的流中处理,通过交叉注意力交互
- 旋转位置编码(RoPE):替代传统位置编码,支持变长序列
- 并行注意力与 FFN:将自注意力、交叉注意力和 FFN 并行计算,提升效率
- 分组查询注意力(GQA):减少 KV Cache 开销
FLUX 模型系列
- FLUX.1-schnell:快速版本,4 步生成,适合实时应用
- FLUX.1-dev:开发版本,质量更高,需要更多步数
- FLUX.1-pro:商业版本,最高质量,API 访问
与 SDXL 的对比
| 特性 | SDXL | FLUX.1 |
|---|---|---|
| 训练范式 | DDPM/EDM | Flow Matching |
| 架构 | U-Net | DiT |
| 文本编码器 | CLIP + OpenCLIP | T5 + CLIP |
| 参数量 | 3.5B | 12B |
| 推理步数 | 20-50 | 4-8 (schnell) |
| 文字渲染 | 差 | 优秀 |
文字渲染能力
FLUX 在文字渲染方面的突破是其最显著的特性之一:
- 使用 T5-XXL 作为文本编码器,提供更强的文本理解
- 训练数据中包含大量带文字的图像
- 字符级别的文本条件注入,而非仅依赖 CLIP 的句子级编码