Project Icon

UniAnimate

统一视频扩散模型实现一致性人物图像动画

UniAnimate是一个用于生成长时间人物视频的创新框架。它将参考图像、姿势指导和噪声视频映射到共同特征空间,并支持随机和首帧条件输入。该方法在评估中优于现有技术,可生成高度一致的一分钟视频,为人物图像动画带来新的可能。

UniAnimate: 驯服统一视频扩散模型实现一致的人物图像动画

Xiang Wang1, Shiwei Zhang2, Changxin Gao1, Jiayu Wang2, Xiaoqiang Zhou3, Yingya Zhang2 , Luxin Yan1 , Nong Sang1
1华中科技大学   2阿里巴巴集团   3中国科学技术大学

🎨 项目主页

UniAnimate生成的演示案例

🔥 新闻

  • [2024/07/19] 🔥 我们在代码中添加了**噪声先验**(参考tools/inferences/inference_unianimate_long_entrance.py中第381行:noise = diffusion.q_sample(random_ref_frame.clone(), getattr(cfg, "noise_prior_value", 939), noise=noise)),这可以帮助实现更好的外观保持(如背景),尤其是在长视频生成中。此外,如果我们从公司获得开源许可,我们考虑发布UniAnimate的升级版本。
  • [2024/06/26] 对于具有大GPU内存的显卡,如A100 GPU,我们支持多段并行去噪以加速长视频推理。您可以在configs/UniAnimate_infer_long.yaml中将context_batch_size: 1更改为大于1的其他值,如context_batch_size: 4。推理速度将在一定程度上得到提高。
  • [2024/06/15] 🔥🔥🔥 通过卸载CLIP和VAE并显式添加torch.float16(即在configs/UniAnimate_infer.yaml中设置CPU_CLIP_VAE: True),GPU内存可以大大减少。现在生成32x768x512的视频片段只需要~12G GPU内存。更多详情请参考这个issue。感谢@blackight的贡献!
  • [2024/06/13] 🔥🔥🔥 我们发布了人物图像动画的代码和模型,尽情享受吧!
  • [2024/06/13] 我们已将代码提交给公司审批,预计今天或明天发布代码
  • [2024/06/03] 我们初始化了这个github仓库,并计划发布论文。

待办事项

  • 发布模型和推理代码,以及姿态对齐代码。
  • 支持生成短视频和长视频。
  • 发布用于一次性生成更长视频的模型。
  • 发布基于VideoLCM的模型,以实现更快的视频合成。
  • 在更高分辨率的视频上训练模型。

简介

UniAnimate的整体框架

最近基于扩散的人物图像动画技术在合成忠实跟随给定参考身份和一系列所需运动姿势的视频方面取得了令人印象深刻的成功。尽管如此,仍然存在两个限制:i) 需要额外的参考模型来将身份图像与主视频分支对齐,这显著增加了优化负担和模型参数;ii) 生成的视频通常时间较短(例如24帧),阻碍了实际应用。为了解决这些缺点,我们提出了UniAnimate框架,以实现高效和长期的人物视频生成。首先,为了减少优化难度并确保时间连贯性,我们通过结合统一的视频扩散模型,将参考图像与姿势指导和噪声视频映射到一个共同的特征空间。其次,我们提出了一个统一的噪声输入,支持随机噪声输入以及首帧条件输入,这增强了生成长期视频的能力。最后,为了进一步高效处理长序列,我们探索了基于状态空间模型的替代时间建模架构,以替代原来计算密集的时间Transformer。大量实验结果表明,UniAnimate在定量和定性评估中都实现了优于现有最先进对手的合成结果。值得注意的是,UniAnimate甚至可以通过迭代使用首帧条件策略生成高度一致的一分钟视频。

UniAnimate入门指南

(1) 安装

安装Python依赖:

git clone https://github.com/ali-vilab/UniAnimate.git
cd UniAnimate
conda create -n UniAnimate python=3.9
conda activate UniAnimate
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install -r requirements.txt

我们还在environment.yaml中提供了所有依赖项。

注意:对于Windows操作系统,您可以参考这个issue来安装依赖项。感谢@zephirusgit的贡献。如果您遇到The shape of the 2D attn_mask is torch.Size([77, 77]), but should be (1, 1).的问题,请参考这个issue来解决,感谢@Isi-dev的贡献。

(2) 下载预训练检查点

下载模型:

!pip install modelscope
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('iic/unianimate', cache_dir='checkpoints/')

然后您可能需要以下命令将检查点移动到"checkpoints/"目录:

mv ./checkpoints/iic/unianimate/* ./checkpoints/

最后,模型权重将在./checkpoints/中组织如下:

./checkpoints/
|---- dw-ll_ucoco_384.onnx
|---- open_clip_pytorch_model.bin
|---- unianimate_16f_32f_non_ema_223000.pth 
|---- v2-1_512-ema-pruned.ckpt
└---- yolox_l.onnx

(3) 姿态对齐 (重要)

将目标姿态序列重新缩放以匹配参考图像的姿态:

# 参考图像 1
python run_align_pose.py  --ref_name data/images/WOMEN-Blouses_Shirts-id_00004955-01_4_full.jpg --source_video_paths data/videos/source_video.mp4 --saved_pose_dir data/saved_pose/WOMEN-Blouses_Shirts-id_00004955-01_4_full 

# 参考图像 2
python run_align_pose.py  --ref_name data/images/musk.jpg --source_video_paths data/videos/source_video.mp4 --saved_pose_dir data/saved_pose/musk 

# 参考图像 3
python run_align_pose.py  --ref_name data/images/WOMEN-Blouses_Shirts-id_00005125-03_4_full.jpg --source_video_paths data/videos/source_video.mp4 --saved_pose_dir data/saved_pose/WOMEN-Blouses_Shirts-id_00005125-03_4_full

# 参考图像 4
python run_align_pose.py  --ref_name data/images/IMG_20240514_104337.jpg --source_video_paths data/videos/source_video.mp4 --saved_pose_dir data/saved_pose/IMG_20240514_104337

我们已经在data/saved_pose中提供了演示视频的处理后目标姿态,如果您运行我们的演示视频示例,可以跳过这一步。此外,您需要安装onnxruntime-gpu(pip install onnxruntime-gpu==1.13.1)以在GPU上运行姿态对齐。

✔ 一些提示

  • 在姿态对齐中,目标姿态序列的第一帧用于计算对齐的比例系数。因此,如果目标姿态序列的第一帧包含完整的面部和姿态(手和脚),可以帮助获得更准确的估计和更好的视频生成结果。

(4) 运行UniAnimate模型生成视频

(4.1) 生成视频片段(32帧,768x512分辨率)

执行以下命令生成视频片段:

python inference.py --cfg configs/UniAnimate_infer.yaml 

完成后,将生成32帧、768x512分辨率的视频片段:

点击此处查看生成的视频。

点击此处查看生成的视频。

✔ 一些提示:

  • 运行模型时,将使用~12G 26G GPU内存。如果您的GPU内存小于这个数值,可以在configs/UniAnimate_infer.yaml中将max_frames: 32更改为其他值,例如24、16和8。我们的模型与所有这些值兼容。

(4.2) 生成视频片段(32帧,分辨率为1216x768)

如果您想合成更高分辨率的结果,可以在configs/UniAnimate_infer.yaml中将resolution: [512, 768]更改为resolution: [768, 1216]。然后执行以下命令生成视频片段:

python inference.py --cfg configs/UniAnimate_infer.yaml 

完成后,将生成32帧、分辨率为1216x768的视频片段:

点击此处查看生成的视频。

点击此处查看生成的视频。

✔ 一些提示:

  • 运行模型时,将使用~21G 36G GPU内存。尽管我们的模型是在512x768分辨率上训练的,但我们观察到直接在768x1216分辨率上进行推理通常是可行的,并能产生令人满意的结果。如果出现外观不一致的情况,您可以尝试使用不同的种子或将分辨率调整为512x768。

  • 虽然我们的模型没有在48或64帧上训练,但我们发现模型在合成这些长度的视频时表现良好。

configs/UniAnimate_infer.yaml配置文件中,您可以指定数据,使用max_frames调整视频长度,并通过不同的Diffusion设置验证您的想法,等等。

(4.3) 生成长视频

如果您想合成与目标姿势序列一样长的视频,可以执行以下命令生成长视频:

python inference.py --cfg configs/UniAnimate_infer_long.yaml

完成后,将生成分辨率为1216x768的长视频:

点击此处查看生成的视频。

点击此处查看生成的视频。

点击此处查看生成的视频。

点击此处查看生成的视频。

configs/UniAnimate_infer_long.yaml配置文件中,test_list_path应该采用[帧间隔, 参考图像, 驱动姿势序列]的格式,其中frame_interval=1表示目标姿势序列中的所有帧都将用于生成视频,而frame_interval=2表示每两帧采样一帧。reference image是保存参考图像的位置,driving pose sequence是保存驱动姿势序列的位置。

✔ 一些提示

  • 如果发现外观不一致,可以将分辨率从768x1216改为512x768,或将context_overlap从8改为16。

  • configs/UniAnimate_infer_long.yaml的默认设置中,使用了带有时间重叠的滑动窗口策略。您也可以先生成一个满意的视频片段,然后将该片段的最后一帧输入模型,以生成下一个片段来继续视频。

引用

如果您发现这个代码库对您的研究有用,请引用以下论文:

@article{wang2024unianimate,
      title={UniAnimate: Taming Unified Video Diffusion Models for Consistent Human Image Animation},
      author={Wang, Xiang and Zhang, Shiwei and Gao, Changxin and Wang, Jiayu and Zhou, Xiaoqiang and Zhang, Yingya and Yan, Luxin and Sang, Nong},
      journal={arXiv preprint arXiv:2406.01188},
      year={2024}
}

免责声明

这个开源模型仅供研究/非商业用途。 我们明确声明不对用户生成的内容承担任何责任。用户在使用生成模型时应对自己的行为完全负责。项目贡献者与用户的行为没有任何法律关联,也不承担任何责任。使用生成模型时必须遵守道德和法律标准,并负责任地使用。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号