模型简介
模型特点
模型能力
使用案例
🚀 LivePortrait:具备拼接与重定向控制的高效人像动画技术
LivePortrait 是一个用于人像动画的项目,通过拼接和重定向控制技术,实现高效的人像动画制作。它可以将静态人像转化为动态视频,支持多种输入格式和自定义设置,为用户提供了便捷的人像动画解决方案。
🚀 快速开始
1. 克隆代码并准备环境
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait
# 使用 conda 创建环境
conda create -n LivePortrait python==3.9
conda activate LivePortrait
# 使用 pip 安装依赖
# 适用于 Linux 和 Windows 用户
pip install -r requirements.txt
# 适用于搭载 Apple Silicon 的 macOS 用户
pip install -r requirements_macOS.txt
⚠️ 重要提示
确保你的系统已经安装了 FFmpeg,包括
ffmpeg
和ffprobe
!
2. 下载预训练权重
从 HuggingFace 下载预训练权重是最简单的方法:
# 首先,确保已安装 git-lfs,详见:https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage
git lfs install
# 克隆并移动权重文件
git clone https://huggingface.co/KwaiVGI/LivePortrait temp_pretrained_weights
mv temp_pretrained_weights/* pretrained_weights/
rm -rf temp_pretrained_weights
或者,你也可以从 Google Drive 或 百度云 下载所有预训练权重。解压后将它们放在 ./pretrained_weights
目录下。
确保目录结构如下,或包含以下内容:
pretrained_weights
├── insightface
│ └── models
│ └── buffalo_l
│ ├── 2d106det.onnx
│ └── det_10g.onnx
└── liveportrait
├── base_models
│ ├── appearance_feature_extractor.pth
│ ├── motion_extractor.pth
│ ├── spade_generator.pth
│ └── warping_module.pth
├── landmark.onnx
└── retargeting_models
└── stitching_retargeting_module.pth
3. 推理 🚀
快速上手
# 适用于 Linux 和 Windows
python inference.py
# 适用于搭载 Apple Silicon 的 macOS,不支持 Intel,速度可能比 RTX 4090 慢 20 倍
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
如果脚本运行成功,你将得到一个名为 animations/s6--d0_concat.mp4
的输出视频文件。该文件包含以下内容:驱动视频、输入图像或视频以及生成的结果。
或者,你可以通过指定 -s
和 -d
参数来更改输入:
# 源输入为图像
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
# 源输入为视频 ✨
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
# 查看更多选项
python inference.py -h
驱动视频自动裁剪 📢📢📢
若要使用你自己的驱动视频,我们 建议:⬇️
- 将其裁剪为 1:1 的宽高比(例如 512x512 或 256x256 像素),或者通过
--flag_crop_driving_video
启用自动裁剪功能。 - 聚焦于头部区域,与示例视频类似。
- 尽量减少肩部动作。
- 确保驱动视频的第一帧是正面且表情 中性 的人脸。
以下是使用 --flag_crop_driving_video
进行自动裁剪的示例:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
如果你发现自动裁剪的效果不理想,可以修改 --scale_crop_driving_video
和 --vy_ratio_crop_driving_video
选项来调整裁剪比例和偏移量,或者手动进行裁剪。
运动模板制作
你还可以使用以 .pkl
结尾的自动生成的运动模板文件来加快推理速度,并 保护隐私,例如:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # 人像动画
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # 人像视频编辑
4. Gradio 界面 🤗
我们还提供了一个 Gradio 界面,以提供更好的使用体验,只需运行以下命令:
# 适用于 Linux 和 Windows 用户(以及搭载 Intel 的 macOS 用户??)
python app.py
# 适用于搭载 Apple Silicon 的 macOS 用户,不支持 Intel,速度可能比 RTX 4090 慢 20 倍
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
你可以指定 --server_port
、--share
和 --server_name
参数来满足你的需求!
🚀 我们还提供了一个加速选项 --flag_do_torch_compile
。首次推理时会触发一个优化过程(大约一分钟),使后续推理速度提高 20 - 30%。性能提升可能因不同的 CUDA 版本而异。
# 启用 torch.compile 以加快推理速度
python app.py --flag_do_torch_compile
⚠️ 重要提示
此方法在 Windows 和 macOS 上不受支持。
或者,你可以在 HuggingFace 上轻松试用 🤗
5. 推理速度评估 🚀🚀🚀
我们还提供了一个脚本来评估每个模块的推理速度:
# 适用于 NVIDIA GPU
python speed.py
以下是在 RTX 4090 GPU 上使用原生 PyTorch 框架并开启 torch.compile
对一帧进行推理的结果:
模型 | 参数数量(M) | 模型大小(MB) | 推理时间(ms) |
---|---|---|---|
外观特征提取器 | 0.84 | 3.3 | 0.82 |
运动提取器 | 28.12 | 108 | 0.84 |
Spade 生成器 | 55.37 | 212 | 7.59 |
变形模块 | 45.53 | 174 | 5.21 |
拼接和重定向模块 | 0.23 | 2.3 | 0.31 |
注意:拼接和重定向模块的值表示三个连续 MLP 网络的参数总数和总推理时间。
✨ 主要特性
- 多平台支持:支持 Linux、Windows 和搭载 Apple Silicon 的 macOS 系统。
- 多种输入格式:支持图像和视频作为源输入。
- 驱动视频自动裁剪:方便用户使用自己的驱动视频。
- 运动模板制作:加快推理速度并保护隐私。
- Gradio 界面:提供更好的使用体验。
- 推理速度优化:支持
torch.compile
加速推理。
📚 详细文档
本项目是论文 LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control 的官方 PyTorch 实现。我们正在积极更新和改进这个仓库。如果你发现任何错误或有建议,欢迎提出问题或提交拉取请求(PR)💖。
🤗 社区资源
探索我们社区贡献的宝贵资源,以提升你的 LivePortrait 使用体验:
- ComfyUI-LivePortraitKJ 作者:@kijai
- comfyui-liveportrait 作者:@shadowcz007
- LivePortrait In ComfyUI 作者:@Benji
- LivePortrait 实践教程 作者:@AI Search
- ComfyUI 教程 作者:@Sebastian Kamph
- Replicate 游乐场 和 cog-comfyui 作者:@fofr
还有更多来自我们社区的精彩贡献!
💐 致谢
我们要感谢 FOMM、Open Facevid2vid、SPADE 和 InsightFace 仓库的贡献者,感谢他们的开放研究和贡献。
💖 引用
如果你发现 LivePortrait 对你的研究有用,欢迎给这个仓库点个星 🌟 并使用以下 BibTeX 引用我们的工作:
@article{guo2024liveportrait,
title = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
author = {Guo, Jianzhu and Zhang, Dingyun and Liu, Xiaoqiang and Zhong, Zhizhou and Zhang, Yuan and Wan, Pengfei and Zhang, Di},
journal = {arXiv preprint arXiv:2407.03168},
year = {2024}
}
长期发布于 arXiv。
📧 联系信息
Jianzhu Guo (郭建珠); guojianzhu1994@gmail.com
📄 许可证
本项目采用 MIT 许可证。





