lucidrains/rectified-flow-pytorch

Implementation of rectified flow and some of its followup research / improvements in Pytorch

rectified-flow-pytorch – Rectified Flow的PyTorch实现

简介 – 一个可通过pip安装的小型库,重现了Rectified Flow生成模型技术(Liu等人,2022年)及若干后续改进。它提供了开箱即用的RectifiedFlow类、简单的UNet主干、用于加载图像数据集的工具,以及基于🤗 Accelerate的训练器。

重要性 – Rectified Flow是一种流匹配/类扩散方法,通过单一步骤学习从噪声到数据的直线映射,提供快速采样和有竞争力的图像质量。本仓库让研究人员和爱好者无需从头编写数学即可实验该方法。


快速开始

pip install rectified-flow-pytorch          # 核心库
pip install .[examples]                     # 可选示例依赖
import torch
from rectified_flow_pytorch import RectifiedFlow, Unet

# 一个很小的UNet主干(可替换为任何torch.nn.Module)
model = Unet(dim=64)

# 用RectifiedFlow包装器包裹
flow = RectifiedFlow(model)

# 虚拟数据 – 形状 (batch, 3, 256, 256)
imgs = torch.randn(1, 3, 256, 256)

# 前向传播返回可反向传播的损失
loss = flow(imgs)
loss.backward()

# 生成样本(与输入图像形状相同)
sample = flow.sample()
assert sample.shape[1:] == imgs.shape[1:]

重流(迭代精化)

该库还附带了Reflow包装器,允许您重复应用学习到的流,如原始论文所述。

from rectified_flow_pytorch import Reflow

reflow = Reflow(flow)
reflow_loss = reflow()
reflow_loss.backward()

sample = reflow.sample()

在您自己的图像上训练

from rectified_flow_pytorch import ImageDataset, Trainer

train_set = ImageDataset(folder='./my_images', image_size=256)
trainer = Trainer(
    flow,
    dataset=train_set,
    num_train_steps=70_000,
    results_folder='./results'   # 定期保存样本
)
trainer()   # 启动训练循环(内部使用accelerate)

内部组件

组件 作用
RectifiedFlow 实现直线流目标的核心损失和采样器。
Reflow 用于多次应用流的便捷包装器(“重流”过程)。
Unet 用作默认主干的极简UNet架构;可通过dim参数完全配置。
ImageDataset 简单的torch.utils.data.Dataset,从文件夹加载所有图像并将其调整为正方形。
Trainer 基于🤗 Accelerate的训练循环;处理优化器、学习率调度、检查点保存和定期图像保存。

示例脚本

仓库附带train_oxford.py,在Oxford-Flowers数据集(批量32,11,000步)上训练模型。安装额外的examples依赖后,您可以运行:

python train_oxford.py

该脚本演示了数据集加载、训练器配置以及如何可视化生成的样本。


参考文献及相关工作

README列出了原始Rectified Flow论文以及一些扩展或分析流匹配方法的新arXiv作品(例如Improving the Training of Rectified Flows、Scaling Rectified Flow Transformers、Consistency Flow Matching)。这些引用有助于用户找到学术背景并探索高级变体。


谁可能使用?

  • 研究人员 – 正在实验流匹配、扩散替代或单步生成模型的人。
  • 从业者 – 需要快速采样图像生成器并想要轻量级PyTorch实现的人。
  • 学生 – 寻找简洁代码库来学习Rectified Flow数学的人。

底线

rectified-flow-pytorch是尖端生成模型技术的专注且文档完善的实现。通过一次pip install,您就得到一个可用的模型、训练工具和示例脚本,轻松在您自己的图像数据上原型化和基准测试Rectified Flow。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目