FreeInit:弥合视频扩散模型中的初始化差距
该存储库包含以下论文的实现:
FreeInit:弥合视频扩散模型中的初始化差距
Tianxing Wu , Chenyang Si , Yuming Jiang , Ziqi Huang , Ziwei Liu
来自南洋理工大学 S-Lab 附属MMLab@NTU
📖 概述
我们提出了FreeInit,这是一种简洁而有效的方法,可以提高扩散模型生成的视频的时间一致性。FreeInit 不需要额外的训练,也不需要引入可学习的参数,并且可以在推理时轻松地合并到任意视频扩散模型中。
🔥 更新
- [01/2024] FreeInit 已集成到Diffusers和ComfyUI-AnimateDiff-Evolved中。非常感谢@arrow、@DN6和@Kosinkadink!
- [12/2023] 我们发布了Hugging Face🤗的演示!请随意尝试一下:[演示链接]。
- [12/2023] Arxiv 论文可用。
- [12/2023] 代码已发布。
- [12/2023]项目页面和视频可用。
📃 用法
在此存储库中,我们使用AnimateDiff作为示例来演示如何将 FreeInit 集成到当前的文本到视频推理管道中。
在pipeline_animation.py中,我们定义了一个AnimationFreeInitPipeline
继承自 的类AnimationPipeline
,展示了如何修改原始管道。
在freeinit_utils.py中,我们提供了噪声重新初始化的频率过滤代码。
animate_with_freeinit.py提供了示例推理脚本。
将FreeInit集成到其他视频扩散模型中时,请参考上述脚本。
🔨 快速入门
1. 克隆仓库
git clone https://github.com/TianxingWu/FreeInit.git
cd FreeInit
cd examples/AnimateDiff
2. 准备环境
conda env create -f environment.yaml
conda activate animatediff
3. 下载检查点
请参考AnimateDiff 的官方仓库。此处列出了设置指南。
4. 使用 FreeInit 进行推理
下载基础模型、运动模块和个性化 T2I 检查点后,运行以下命令以使用 FreeInit 生成动画。然后生成结果保存到outputs
文件夹中。
python -m scripts.animate_with_freeinit
--config "configs/prompts/freeinit_examples/RealisticVision_v2.yaml"
--num_iters 5
--save_intermediate
--use_fp16
其中num_iters
是 freeinit 迭代次数。我们建议使用 3-5 次迭代来平衡质量和效率。为了更快的推理,可以启用参数use_fast_sampling
使用从粗到细的采样策略,但这可能会导致较差的结果。
您可以更改配置文件中的文本提示。要调整频率滤波器参数以获得更好的结果,请更改filter_params
配置文件中的设置。过滤'butterworth'
器n=4, d_s=d_t=0.25
设置为默认值。对于时间不一致较大的基础模型,请考虑使用'guassian'
过滤器。
还提供了更多.yaml
具有不同运动模块/个性化 T2I 设置的文件用于测试。
🤗 渐变演示
我们还提供了一个 Gradio 演示来通过 UI 演示我们的方法。运行以下命令将启动演示。请随意调整参数以提高生成质量。
python app.py
或者,您可以尝试 Hugging Face 上托管的在线演示:[演示链接]。
🖼️生成结果
请参阅我们的项目页面以获取更多视觉比较。
🍀 社区贡献
- 与 ComfyUI 扩展集成:ComfyUI-AnimateDiff-Evolved(作者:@Kosinkadink)
- 与 HuggingFace 扩散器集成:扩散器(由@arrow和@DN6提供)
- Google Colab:FreeInit-colab(作者:@camenduru)
🖋️ 引用
如果您发现我们的存储库对您的研究有用,请考虑引用我们的论文:
@article{wu2023freeinit,
title={FreeInit: Bridging Initialization Gap in Video Diffusion Models},
author={Wu, Tianxing and Si, Chenyang and Jiang, Yuming and Huang, Ziqi and Liu, Ziwei},
journal={arXiv preprint arXiv:2312.07537},
year={2023}
🤍致谢
该项目是根据 MIT 许可证分发的。请参阅LICENSE
获取更多信息。
示例代码基于AnimateDiff构建。感谢团队所做的令人印象深刻的工作!