[ICLR2024] ⚡InstaFlow! 一步式稳定扩散与矫正流
[论文] [🤗Hugging Face Space演示] [代码和预训练模型][Colab笔记本]
作者:Xingchao Liu, Xiwen Zhang, Jianzhu Ma, Jian Peng, Qiang Liu
新闻
- (新) 2024/06/07 我们的大规模矫正流已扩展到文本到3D和图像反演/编辑!请查看Xiaofeng Yang等人的精彩工作(论文和代码)!
- 2024/05/17 在这里尝试我们的新少步模型PeRFlow!
- 2023/12/04 我们在🤗Hugging Face Space更新了演示,使用InstaFlow+dreamshaper-7。图像质量显著提升!我们还提供了Gradio演示供您在本地运行,点击这里。
- 2023/12/04 一步式InstaFlow现已兼容预训练的LoRA!请查看这里。代码可在这里获取。(感谢个人贡献者Dr. Hanshu Yan)
- 2023/12/04 现已支持ONNX![ONNX InstaFlow] [ONNX 2-Rectified Flow] [ONNXStack UI](感谢saddam213)
- 2023/11/23 Colab笔记本现已上线。点击这里试用。(感谢个人贡献者xaviviro)
- 2023/11/22 一步式InstaFlow现已兼容预训练的ControlNet。请查看这里。(感谢个人贡献者Dr. Hanshu Yan)
- 2023/11/22 我们在这里发布了预训练模型和推理代码。
- 2023/09/26 我们在🤗Hugging Face Space提供了InstaFlow-0.9B的演示。点击这里试用。
介绍
扩散模型在文本到图像生成方面展现出了显著的前景。然而,由于在推理时需要迭代数值求解器来解决扩散/流程过程,其效率仍在很大程度上受到计算限制的阻碍。
InstaFlow是一个超快速
、一步式
的图像生成器,能达到接近Stable Diffusion的图像质量,同时显著减少了计算资源的需求。这种高效性得益于最近的矫正流技术,该技术训练具有直线轨迹的概率流,因此本质上只需要一步就能实现快速推理。
InstaFlow具有以下几个优势:
超快推理
:InstaFlow模型是一步式生成器,可以直接将噪声映射到图像,避免了扩散模型的多步采样。在我们的A100 GPU机器上,推理时间约为0.1秒,相比原始Stable Diffusion节省了约90%的推理时间。高质量
:InstaFlow生成的图像具有与Stable Diffusion相似的精细细节,在MS COCO 2014上的FID与最先进的文本到图像GAN(如StyleGAN-T)相当。简单高效的训练
:InstaFlow的训练过程仅涉及监督训练。利用预训练的Stable Diffusion,只需199个A100 GPU天就能得到InstaFlow-0.9B。
图库
使用InstaFlow-0.9B的一步生成(每张图片0.09秒,$512 \times 512$)
使用InstaFlow-1.7B的一步生成(每张图片0.12秒,$512 \times 512$)
使用InstaFlow-0.9B(0.09秒)+ SDXL-Refiner的一步生成($1024 \times 1024$)
一步InstaFlow-0.9B的潜在空间插值(每张图像0.09秒,$512 \times 512$)
LoRA
一步InstaFlow与预训练的LoRA兼容。我们感谢个人贡献者韩树燕博士提供和测试Rectified Flow+LoRA流程!
InstaFlow似乎比SDXL-Turbo具有更高的多样性。
https://github.com/gnobitab/InstaFlow/assets/1157982/8f12960e-116d-486a-a2e9-448d745394c2
ControlNet
一步InstaFlow完全兼容预训练的ControlNet。我们感谢个人贡献者韩树燕博士提供和测试Rectified Flow+ControlNet流程!
以下是使用InstaFlow-0.9B + ControlNet的一步生成结果:
与我们A100机器上的SD 1.5的比较
为了直观理解,我们使用相同的A100服务器,并从Gridio界面截取了不同模型随机生成的截图。InstaFlow-0.9B是一步生成,而SD 1.5采用25步DPMSolver。从服务器下载图像大约需要0.3秒。文本提示是*"一张阳光下雪山附近美丽湖泊的照片。"*
InstaFlow-0.9B | Stable Diffusion 1.5 |
---|
方法:使用文本条件重流straightening生成概率流
我们的流程包括三个步骤:
- 从预训练的Stable Diffusion生成(文本,噪声,图像)三元组
- 应用
文本条件重流
得到2-Rectified Flow,这是一个直线化的生成概率流。 - 从2-Rectified Flow蒸馏得到一步InstaFlow。请注意,蒸馏和重流是
正交技术
。
如视频和图像所示,直线流具有以下优势:
- 直线流需要更少的步骤来模拟。
- 直线流在噪声分布和图像分布之间提供更好的耦合,从而允许成功蒸馏。
相关材料
我们在此提供几个相关链接和阅读材料:
-
Rectified Flow官方GitHub仓库 (https://github.com/gnobitab/RectifiedFlow)
-
Rectified Flow介绍 (https://www.cs.utexas.edu/~lqiang/rectflow/html/intro.html)
-
Rectified Flow中文介绍--知乎 (https://zhuanlan.zhihu.com/p/603740431)
-
FlowGrad:使用梯度控制生成ODE的输出 (https://github.com/gnobitab/FlowGrad)
-
使用直线流快速生成点云 (https://github.com/klightz/PSF)
-
分段Rectified Flow (https://github.com/magic-research/piecewise-rectified-flow)
-
文本到图像Rectified Flow作为即插即用先验 (https://github.com/yangxiaofeng/rectified_flow_prior)
引用
@inproceedings{liu2023instaflow,
title={Instaflow: One step is enough for high-quality diffusion-based text-to-image generation},
author={Liu, Xingchao and Zhang, Xiwen and Ma, Jianzhu and Peng, Jian and Liu, Qiang},
booktitle={International Conference on Learning Representations},
year={2024}
}
致谢
我们的训练脚本修改自Diffusers中的一个微调示例。 我们工作的其他部分也严重依赖于🤗 Diffusers库。