LivePortrait: 高效 PyTorch 人像动画生成工具 - 静态照片变动态
Star
Forks
Watch
Issues
LivePortrait 是一个高效的人像动画生成工具,它基于 PyTorch 实现,并提供了一系列强大的功能,能够让静态照片“动”起来,甚至能够编辑视频中的人像。项目源于论文“LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control”。
项目介绍 🛠️
LivePortrait 的核心功能是人像动画生成,它能够将静态人像照片与驱动视频(通常是头部运动的视频)结合,生成逼真的人像动画。项目不仅仅支持单张图片,还可以处理人像视频的编辑(v2v),将一个视频中的人物表情和动作迁移到另一个视频中的人物上。
LivePortrait 具有以下特点:
-
高效性: 采用高效的算法和优化,实现快速的人像动画生成。
-
拼接和重定向控制: 提供了对人像各个部位(如眼睛、嘴巴)的精细控制,可以实现更逼真、自然的动画效果。
-
支持多种输入: 既支持图像驱动模式,也支持视频驱动模式。
-
友好的用户界面: 提供了 Gradio 交互界面,方便用户进行操作和可视化。
-
跨平台支持: 支持 Linux、Windows 和 macOS 系统(macOS 仅支持人物模式)。
-
动物模式支持: 除了人物,LivePortrait 还支持猫、狗等动物的动画生成。
-
区域控制: 支持对人像特定区域进行编辑,例如,你可以只改变眼睛的运动而保持面部其他区域不动。
-
动作模板: 可以创建并使用
.pkl
格式的动作模板,加快生成速度,并且保护隐私。下面展示了一个简单的动画生成效果:
项目提供了丰富的命令行参数,可以灵活地控制动画生成过程。例如,你可以指定输入图像或视频、驱动视频、输出文件名等等。
# 使用图像作为输入 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_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
除了命令行,你还可以通过 Gradio 界面轻松地使用 LivePortrait。启动 Gradio 界面后,你只需要上传一张人像照片和一段驱动视频,就可以生成人像动画,并且进行可视化预览。
优势分析 🚀
LivePortrait 具有以下几个显著优势:
- 易用性强: 项目提供了详细的安装和使用说明,同时还提供了 Gradio 交互界面,使得用户可以轻松上手。此外,Windows 用户还可以下载一键安装包,简化安装过程。
- 功能强大: 支持图像和视频两种输入模式,可以生成高质量的人像动画,还支持动物模型,功能相对全面。不仅支持传统的动画生成,还支持精准的人像编辑。区域控制功能允许用户精细调整动画的细节。
- 高效性: 代码经过优化,运行速度较快。同时,还提供了
torch.compile
选项,可以进一步提升推理速度。在保证生成质量的前提下,速度表现优异。 - 社区活跃: 从 GitHub 的 Star 数量、Issue 数量和贡献者数量来看,LivePortrait 拥有一个活跃的社区。这意味着项目会持续得到更新和维护,用户在使用过程中遇到问题也更容易获得帮助。
使用方法 💻
要使用 LivePortrait,首先需要克隆代码并安装依赖:
-
克隆代码
git clone https://github.com/KwaiVGI/LivePortrait cd LivePortrait
-
创建并激活 conda 环境
conda create -n LivePortrait python=3.10 conda activate LivePortrait
-
安装依赖
-
Linux 或 Windows 用户:
首先,检查CUDA版本:
nvcc -V
然后安装对应版本的 PyTorch,例如:
# CUDA 11.8 pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
更多版本请访问 PyTorch官网。
在Windows系统上,建议使用 CUDA 11.8,高版本可能不稳定。可以参考 @dimitribarbot 提供的降级指南安装其他依赖:
pip install -r requirements.txt
-
macOS (Apple Silicon) 用户:
macOS 系统不支持动物模式,可以使用
requirements_macOS.txt
文件安装依赖:
pip install -r requirements_macOS.txt
安装 FFmpeg:
FFmpeg 是必须安装的依赖项。具体安装方法,可以参考项目文档中提供的详细教程。 -
-
-
下载预训练权重
从 HuggingFace 下载预训练权重:
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
或者,如果访问 Huggingface 受限,可以使用 hf-mirror:
export HF_ENDPOINT=https://hf-mirror.com huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
也可以从 Google Drive 或 Baidu Yun 下载预训练权重,解压后放置到
./pretrained_weights
目录下。确保目录结构与 此结构 相同或包含此结构。 -
运行推理脚本
-
人物模式:
# Linux 或 Windows 用户 python inference.py # macOS 用户 PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
-
动物模式 (仅限 Linux 和 Windows):
首先需要编译 OP:cd src/utils/dependencies/XPose/models/UniPose/ops python setup.py build install cd -
然后运行推理脚本:
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
-
-
使用 Gradio 界面:
-
人物模式:
python app.py #Linux或Windows PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py #macOS(Apple Silicon),速度可能较慢
可以通过参数
--flag_do_torch_compile
开启torch.compile
加速, Windows和macOS 不支持此方法. -
动物模式 (仅限 Linux):
python app_animals.py
可以使用
--server_port
,--share
,--server_name
等参数进行个性化配置。也可以直接访问HuggingFace Space体验。
-
社区和贡献 🤝
LivePortrait 项目在 GitHub 上拥有很高的关注度,截至目前已获得超过14.9k 个 Star。项目社区非常活跃,Issue 数量和贡献者数量都很多。这表明项目在持续得到维护和改进,同时也欢迎更多开发者参与其中。如果你对人像动画生成感兴趣,可以尝试使用 LivePortrait,并为其贡献代码、文档或者提出建议。
总结 📝
LivePortrait 是一个功能强大、易于使用、高效的人像动画生成工具。它不仅可以用于生成有趣的人像动画,还可以应用于视频编辑、虚拟形象制作等领域。 项目社区活跃,更新迭代速度快。可以预见,未来 LivePortrait 将会支持更多的功能,拓展更多的应用场景, 进一步推动