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。
相关
- 项目
- 项目
- 项目
- 项目
- 项目