MotionCtrl:用于视频生成的统一灵活运动控制器
[SIGGRAPH 2024 会议论文集]
🔥🔥🔥 我们已发布 MotionCtrl 在 AnimateDiff 上的训练和推理代码
🔥🔥 我们发布了 MotionCtrl 在 Stable Video Diffusion (SVD) 上的代码、模型和演示。
https://github.com/TencentARC/MotionCtrl/assets/19488619/45d44bf5-d4bf-4e45-8628-2c8926b5954a
MotionCtrl:用于视频生成的统一灵活运动控制器的官方实现。
MotionCtrl 可以仅使用一个统一模型,独立控制生成视频的复杂相机运动和物体运动。
MotionCtrl+AnimateDiff 的结果
MotionCtrl+SVD 的结果
更多结果请查看 showcase_svd 和我们的项目页面。
更多结果请查看我们的项目页面。
📝 更新日志
- 20231225:发布部署在LVDM/VideoCrafter上的MotionCtrl。
- 20231225:Gradio演示可用。🤗
- 20231228:为方便起见,提供本地Gradio演示。
- 20240115:在
dataset/camera_poses
中提供了更多用于测试的相机姿态。 - 20240115:发布部署在SVD上的MotionCtrl。代码位于svd分支,Gradio演示可在🤗 上使用。
- ❗❗❗ 部署在VideoCrafter2上的MotionCtrl的Gradio演示可在🤗 上使用。您也可以通过运行
python -m app --share
在本地运行。
- ❗❗❗ 部署在AnimateDiff上的MotionCtrl已在animatediff分支上发布,包含训练和推理代码。
⚙️ 环境配置
conda create -n motionctrl python=3.10.6
conda activate motionctrl
pip install -r requirements.txt
💫 推理
-
运行本地推理脚本
- 下载MotionCtrl的权重motionctrl.pth并将其放入
./checkpoints
。 - 进入
configs/inference/run.sh
并将condtype
设置为'camera_motion'、'object_motion'或'both'。
condtype=camera_motion
表示仅控制生成视频中的相机运动。condtype=object_motion
表示仅控制生成视频中的物体运动。condtype=both
表示同时控制生成视频中的相机运动和物体运动。
- 运行脚本: sh configs/inference/run.sh
-
运行本地Gradio演示
python -m app --share
🔥🔥 训练 👉 详情
准备数据集
:books: 引用
如果您使用了我们的工作,请引用我们的论文。
@inproceedings{wang2024motionctrl,
title={Motionctrl: 一个统一且灵活的视频生成运动控制器},
author={Wang, Zhouxia and Yuan, Ziyang and Wang, Xintao and Li, Yaowei and Chen, Tianshui and Xia, Menghan and Luo, Ping and Shan, Ying},
booktitle={ACM SIGGRAPH 2024 会议论文集},
pages={1--11},
year={2024}
}
🤗 致谢
MotionCtrl的当前版本基于VideoCrafter构建。我们感谢作者们分享了他们出色的代码库。
❓ 联系方式
如有任何问题,请随时发送邮件至wzhoux@connect.hku.hk
或zhouzi1212@gmail.com
。