LivePortrait:具有拼接和重定向控制的高效肖像动画
🔥 更新
2024/07/24
:🎨 我们支持在 Gradio 界面中编辑源肖像的姿势。我们还降低了默认检测阈值以提高召回率。玩得开心!2024/07/19
:✨ 我们支持🎞️肖像视频编辑(又名 v2v)!更多信息请见此处。2024/07/17
:🍎 我们支持带有 Apple Silicon 的 macOS,根据jeethu的 PR #143修改。2024/07/10
:💪 我们支持音频和视频拼接、驱动视频自动裁剪和模板制作以保护隐私。更多信息请见此处。2024/07/09
:🤗 我们发布了HuggingFace Space,感谢 HF 团队和Gradio!2024/07/04
:😊 我们发布了推理代码和模型的初始版本。持续更新,敬请期待!2024/07/04
:🔥 我们在arXiv上发布了主页和技术报告。
简介 📖
这个名为LivePortrait的仓库包含我们论文LivePortrait: 具有拼接和重定向控制的高效肖像动画的官方 PyTorch 实现。我们正在积极更新和改进这个仓库。如果你发现任何错误或有建议,欢迎提出问题或提交拉取请求 (PR) 💖。
1. 克隆代码并准备环境
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.9
conda activate LivePortrait
# install dependencies with pip
# for Linux and Windows users
pip install -r requirements.txt
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
注意:确保您的系统已安装FFmpeg,包括ffmpeg
和ffprobe
!
2. 下载预训练权重
下载预训练权重的最简单方法是从 HuggingFace 下载:
# first, ensure git-lfs is installed, see: https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage
git lfs install
# clone and move the weights
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.推理
快速动手
# For Linux and Windows
python inference.py
# For macOS with Apple Silicon, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
如果脚本成功运行,你会得到一个名为 的输出mp4文件animations/s6--d0_concat.mp4
。此文件包含以下结果:驾驶视频,输入图像或视频,以及生成的结果。
-s
或者,您可以通过指定和参数来更改输入-d
:
# source input is an image
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
# source input is a video ✨
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
# more options to see
python inference.py -h
驾驶视频自动裁剪 📢📢📢
要使用您自己的驾驶视频,我们建议:⬇️
- 将其裁剪为1:1 的宽高比(例如 512×512 或 256×256 像素),或通过 启用自动裁剪
--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 # portrait animation
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # portrait video editing
4. Gradio 界面
我们还提供了 Gradio界面以获得更好的体验,只需运行即可:
# For Linux and Windows users (and macOS with Intel??)
python app.py
# For macOS with Apple Silicon users, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
您可以指定--server_port
、、--share
参数--server_name
来满足您的需求!
🚀 我们还提供了加速选项--flag_do_torch_compile
。首次推理会触发优化过程(约一分钟),使后续推理速度提高 20-30%。性能提升可能因 CUDA 版本的不同而有所差异。
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
注意:Windows 和 macOS 不支持此方法。
或者,在HuggingFace上轻松尝试一下🤗
5. 推理速度评估
我们还提供了一个脚本来评估每个模块的推理速度:
# For NVIDIA GPU
python speed.py
以下是使用原生 PyTorch 框架在 RTX 4090 GPU 上推断一帧的结果torch.compile
:
模型 | 参数(米) | 模型大小(MB) | 推理(毫秒) |
---|---|---|---|
外观特征提取器 | 0.84 | 3.3 | 0.82 |
运动提取器 | 28.12 | 108 | 0.84 |
铲形发电机 | 55.37 | 212 | 7.59 |
变形模块 | 45.53 | 174 | 5.21 |
拼接和重定向模块 | 0.23 | 2.3 | 0.31 |
注意:拼接和重定向模块的值代表三个连续 MLP 网络的组合参数计数和总推理时间。
仓库地址
GitHub: https://github.com/KwaiVGI/LivePortrait
本网站所有资源及文章均源自互联网,经过我们的收集整理后呈现给用户。我们明确声明,本网站不直接参与任何资源的创作或制作过程,仅作为信息的传递者。若您发现本网站上的任何内容侵犯了您的合法权益(包括但不限于版权、商标权、专利权等),请立即通过以下联系方式与我们取得联系。在收到您的反馈并核实情况后,我们将迅速采取相应措施,包括但不限于删除侵权内容,以确保您的合法权益得到及时保护。
资源鉴别:本网站发布的资源可能包含水印、广告链接或其他引流信息,这是由资源原始来源决定的。我们提醒用户在使用这些资源时,应保持警惕,自行鉴别信息的真实性和适用性,避免受到不必要的干扰或误导。 非商业用途:本网站提供的资源仅供学习、研究及非商业性交流使用。我们鼓励用户尊重原创,支持正版。若您计划将本站资源用于商业目的,请务必先获得合法授权,否则因此产生的一切法律后果将由下载用户自行承担。
为了更好地服务用户,解决您在使用本网站过程中可能遇到的问题或反馈侵权信息,我们提供了以下联系方式(请将“#”替换为“@”后使用): 联系方式:contact#kukaylib.com
本网站致力于为用户提供高质量的信息服务,但对于因网络状况、第三方干扰、不可抗力等因素导致的服务中断、数据丢失、信息错误等问题,本网站不承担任何责任。同时,本网站对于用户在使用本站资源过程中可能产生的任何直接、间接、偶然、特殊或惩罚性损失,也不承担任何法律责任。 请用户在使用本网站时,务必遵守相关法律法规及道德准则,自行承担因使用本站资源而产生的所有风险和后果。
本网站有权随时更新或修订本免责声明,更新或修订后的免责声明一经发布即具有法律效力。用户应定期访问本页面以了解最新的免责声明内容。 感谢您对本网站的理解与支持!我们将继续努力,为用户提供更加优质、便捷的信息服务。
评论(0)