rectified flow pytorch
0.2.1
수정된 흐름 구현 및 Pytorch의 일부 후속 연구/개선
Scott Hawley 박사의 튜토리얼
32개 배치 크기, 11,000단계 옥스포드 꽃
$ pip install rectified-flow-pytorch
import torch
from rectified_flow_pytorch import RectifiedFlow , Unet
model = Unet ( dim = 64 )
rectified_flow = RectifiedFlow ( model )
images = torch . randn ( 1 , 3 , 256 , 256 )
loss = rectified_flow ( images )
loss . backward ()
sampled = rectified_flow . sample ()
assert sampled . shape [ 1 :] == images . shape [ 1 :]
논문에 설명된 대로 리플로우의 경우
import torch
from rectified_flow_pytorch import RectifiedFlow , Reflow , Unet
model = Unet ( dim = 64 )
rectified_flow = RectifiedFlow ( model )
images = torch . randn ( 1 , 3 , 256 , 256 )
loss = rectified_flow ( images )
loss . backward ()
# do the above for many real images
reflow = Reflow ( rectified_flow )
reflow_loss = reflow ()
reflow_loss . backward ()
# then do the above in a loop many times for reflow - you can reflow multiple times by redefining Reflow(reflow.model) and looping again
sampled = reflow . sample ()
assert sampled . shape [ 1 :] == images . shape [ 1 :]
accelerate
기반으로 한 Trainer
와 함께
import torch
from rectified_flow_pytorch import RectifiedFlow , ImageDataset , Unet , Trainer
model = Unet ( dim = 64 )
rectified_flow = RectifiedFlow ( model )
img_dataset = ImageDataset (
folder = './path/to/your/images' ,
image_size = 256
)
trainer = Trainer (
rectified_flow ,
dataset = img_dataset ,
num_train_steps = 70_000 ,
results_folder = './results' # samples will be saved periodically to this folder
)
trainer ()
@article { Liu2022FlowSA ,
title = { Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow } ,
author = { Xingchao Liu and Chengyue Gong and Qiang Liu } ,
journal = { ArXiv } ,
year = { 2022 } ,
volume = { abs/2209.03003 } ,
url = { https://api.semanticscholar.org/CorpusID:252111177 }
}
@article { Lee2024ImprovingTT ,
title = { Improving the Training of Rectified Flows } ,
author = { Sangyun Lee and Zinan Lin and Giulia Fanti } ,
journal = { ArXiv } ,
year = { 2024 } ,
volume = { abs/2405.20320 } ,
url = { https://api.semanticscholar.org/CorpusID:270123378 }
}
@article { Esser2024ScalingRF ,
title = { Scaling Rectified Flow Transformers for High-Resolution Image Synthesis } ,
author = { Patrick Esser and Sumith Kulal and A. Blattmann and Rahim Entezari and Jonas Muller and Harry Saini and Yam Levi and Dominik Lorenz and Axel Sauer and Frederic Boesel and Dustin Podell and Tim Dockhorn and Zion English and Kyle Lacey and Alex Goodwin and Yannik Marek and Robin Rombach } ,
journal = { ArXiv } ,
year = { 2024 } ,
volume = { abs/2403.03206 } ,
url = { https://api.semanticscholar.org/CorpusID:268247980 }
}
@article { Li2024ImmiscibleDA ,
title = { Immiscible Diffusion: Accelerating Diffusion Training with Noise Assignment } ,
author = { Yiheng Li and Heyang Jiang and Akio Kodaira and Masayoshi Tomizuka and Kurt Keutzer and Chenfeng Xu } ,
journal = { ArXiv } ,
year = { 2024 } ,
volume = { abs/2406.12303 } ,
url = { https://api.semanticscholar.org/CorpusID:270562607 }
}
@article { Yang2024ConsistencyFM ,
title = { Consistency Flow Matching: Defining Straight Flows with Velocity Consistency } ,
author = { Ling Yang and Zixiang Zhang and Zhilong Zhang and Xingchao Liu and Minkai Xu and Wentao Zhang and Chenlin Meng and Stefano Ermon and Bin Cui } ,
journal = { ArXiv } ,
year = { 2024 } ,
volume = { abs/2407.02398 } ,
url = { https://api.semanticscholar.org/CorpusID:270878436 }
}
@article { Zhu2024HyperConnections ,
title = { Hyper-Connections } ,
author = { Defa Zhu and Hongzhi Huang and Zihao Huang and Yutao Zeng and Yunyao Mao and Banggu Wu and Qiyang Min and Xun Zhou } ,
journal = { ArXiv } ,
year = { 2024 } ,
volume = { abs/2409.19606 } ,
url = { https://api.semanticscholar.org/CorpusID:272987528 }
}