lucidrains/rectified-flow-pytorch
Implementation of rectified flow and some of its followup research / improvements in Pytorch
rectified-flow-pytorch – Rectified FlowのPyTorch実装
概要 – Rectified Flow生成モデル技術(Liuら、2022年)とその後の改良を再現する、pipインストール可能な小さなライブラリです。すぐに使えるRectifiedFlowクラス、シンプルなUNetバックボーン、画像データセットを読み込むためのユーティリティ、そして🤗 Accelerateに基づくトレーナーを提供します。
重要性 – Rectified Flowは、フローマッチング/拡散に似た手法で、ノイズからデータへの直線的なマッピングを1ステップで学習し、高速なサンプリングと競争力のある画質を実現します。このリポジトリにより、研究者や愛好家は、数式をゼロから書くことなく、この手法を実験できます。
クイックスタート
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)
# ダミーデータ – 形状 (バッチ, 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に基づくトレーニングループ。オプティマイザ、学習率スケジュール、チェックポイント、定期的な画像保存を処理。 |
サンプルスクリプト
リポジトリには、Oxford-Flowersデータセット(バッチ32、11,000ステップ)でモデルをトレーニングするtrain_oxford.pyが含まれています。オプションの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を簡単にプロトタイプ化およびベンチマークできます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト