该存储库是 AnimateDiff [ICLR2024 Spotlight] 的官方实现。它是一个即插即用模块,可将大多数社区文本到图像模型转变为动画生成器,无需额外培训。
AnimateDiff:无需特定调整即可为您的个性化文本到图像扩散模型制作动画
郭宇伟、杨策源✝、饶安仪、梁正阳、王耀辉、乔宇、Maneesh Agrawala、林大华、戴博(✝通讯作者)
注: main
分支适用于Stable Diffusion V1.5;对于 Stable Diffusion XL,请参阅sdxl-beta
分支。
更多结果可以在图库中找到。其中一些是由社区贡献的。
型号:ToonYou
型号:真实视觉V2.0
注意: AnimateDiff 也得到了 Diffusers 的官方支持。访问 AnimateDiff 扩散器教程了解更多详细信息。以下说明适用于使用此存储库。
注意:对于所有脚本,检查点下载都会自动处理,因此第一次执行时脚本运行可能需要更长的时间。
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
生成的样本可以在samples/
文件夹中找到。
python -m scripts.animate --config configs/prompts/1_animate/1_1_animate_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_2_animate_FilmVelvia.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_3_animate_ToonYou.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_4_animate_MajicMix.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_5_animate_RcnzCartoon.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_6_animate_Lyriel.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_7_animate_Tusun.yaml
python -m scripts.animate --config configs/prompts/2_motionlora/2_motionlora_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_1_sparsectrl_i2v.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_2_sparsectrl_rgb_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_3_sparsectrl_sketch_RealisticVision.yaml
我们创建了一个 Gradio 演示,以使 AnimateDiff 更易于使用。默认情况下,演示将在localhost:7860
运行。
python -u app.py
AnimateDiff 旨在学习可应用于稳定扩散家族其他变体的可转移运动先验。为此,我们设计了以下由三个阶段组成的训练流程。
在1.减轻负面影响阶段,我们训练域适配器,例如v3_sd15_adapter.ckpt
,以适应训练数据集中有缺陷的视觉事实(例如,水印)。这也有利于运动和空间外观的分散学习。默认情况下,适配器可以在推理时删除。它还可以集成到模型中,并且可以通过 lora 缩放器调整其效果。
在2.学习运动先验阶段,我们训练运动模块,例如v3_sd15_mm.ckpt
,以从视频中学习真实世界的运动模式。
在3.(可选)适应新模式阶段,我们训练MotionLoRA (例如v2_lora_ZoomIn.ckpt
),以有效地适应特定运动模式(相机缩放、滚动等)的运动模块。
SparseCtrl 旨在通过采用一些稀疏输入(例如,少量 RGB 图像或草图输入)来为文本到视频模型添加更多控制。其技术细节可以在以下论文中找到:
SparseCtrl:向文本到视频扩散模型添加稀疏控件
郭宇伟、杨策源✝、饶安仪、Maneesh Agrawala、林大华、戴波(✝通讯作者)
在此版本中,我们使用Domain Adapter LoRA进行图像模型微调,这在推理时提供了更大的灵活性。我们还实现了两个(RGB 图像/涂鸦)SparseCtrl 编码器,它可以采用任意数量的条件映射来控制动画内容。
姓名 | 抱脸 | 类型 | 贮存 | 描述 |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | 关联 | 域适配器 | 97.4MB | |
v3_sd15_mm.ckpt.ckpt | 关联 | 运动模块 | 1.56GB | |
v3_sd15_sparsectrl_scribble.ckpt | 关联 | SparseCtrl 编码器 | 1.86GB | 乱写条件 |
v3_sd15_sparsectrl_rgb.ckpt | 关联 | SparseCtrl 编码器 | 1.85GB | RGB 图像条件 |
输入(由 RealisticVision 提供) | 动画片 | 输入 | 动画片 |
输入涂鸦 | 输出 | 输入涂鸦 | 输出 |
在 SDXL 上发布运动模块(测试版),可在 Google Drive / HuggingFace / CivitAI 上获取。可以使用或不使用个性化模型来制作高分辨率视频(即具有各种宽高比的 1024x1024x16 帧)。推理通常需要 ~13GB VRAM 和调整的超参数(例如采样步骤),具体取决于所选的个性化模型。
查看分支 sdxl 以获取推理的更多详细信息。
姓名 | 抱脸 | 类型 | 存储空间 |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | 关联 | 运动模块 | 950MB |
原装 SDXL | 社区SDXL | 社区SDXL |
在此版本中,运动模块mm_sd_v15_v2.ckpt
(Google Drive / HuggingFace / CivitAI) 在更大的分辨率和批量大小上进行训练。我们发现扩大训练显着有助于提高运动质量和多样性。
我们还支持八种基本相机运动的MotionLoRA 。每个模型 MotionLoRA 检查点仅占用 77 MB 存储空间,并且可在 Google Drive / HuggingFace / CivitAI 上获取。
姓名 | 抱脸 | 类型 | 范围 | 贮存 |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | 关联 | 运动模块 | 453米 | 1.7GB |
v2_lora_ZoomIn.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_ZoomOut.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_PanLeft.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_PanRight.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_TiltUp.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_TiltDown.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_RollingClockwise.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
v2_lora_RollingAnticlockwise.ckpt | 关联 | 运动LoRA | 19米 | 74MB |
放大 | 缩小 | 向左平移缩放 | 向右平移缩放 | ||||
向上倾斜 | 向下倾斜 | 逆时针滚动 | 顺时针滚动 | ||||
这是mm_sd_v15.ckpt
(左)和改进的mm_sd_v15_v2.ckpt
(右)之间的比较。
AnimateDiff 的第一个版本!
姓名 | 抱脸 | 范围 | 存储空间 |
---|---|---|---|
mm_sd_v14.ckpt | 关联 | 417米 | 1.6GB |
mm_sd_v15.ckpt | 关联 | 417米 | 1.6GB |
详情请查看培训步骤。
用于稳定扩散 WebUI 的 AnimateDiff:sd-webui-animatediff(由 @continue-revolution 提供)
ComfyUI 的 AnimateDiff:ComfyUI-AnimateDiff-Evolved(作者:@Kosinkadink)
谷歌 Colab:Colab(@camenduru)
该项目发布用于学术用途。我们对用户生成的内容不承担任何责任。另外,请注意,我们唯一的官方网站是 https://github.com/guoyww/AnimateDiff 和 https://animatediff.github.io,所有其他网站与我们在 AnimateDiff 没有关联。
郭宇伟:[email protected]
杨策源:[email protected]
戴波:[email protected]
@article{guo2023animatediff,
title={AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Liang, Zhengyang and Wang, Yaohui and Qiao, Yu and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={International Conference on Learning Representations},
year={2024}
}
@article{guo2023sparsectrl,
title={SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={arXiv preprint arXiv:2311.16933},
year={2023}
}
代码库基于 Tune-a-Video 构建。