视频驱动肖像动画框架,专注于更好的泛化性、可控性和实际使用的效率。为了提高生成质量和泛化能力,我们将训练数据扩展到约 6900 万个高质量帧,采用混合图像 - 视频训练策略,升级网络架构,并设计更好的运动变换和优化目标。
主要功能
- 实时肖像动画生成:通过输入静态肖像照片,LivePortrait 能够实时生成动态的肖像动画,使静态图像“活”起来。
- 面部表情控制:用户可以通过摄像头或手动输入来控制生成动画中的面部表情,如微笑、眨眼、皱眉等。
- 头部姿态调整:支持对生成动画中的头部姿态进行调整,包括旋转、倾斜等,使动画更加自然和生动。
- 语音驱动动画:结合语音输入,LivePortrait 可以根据语音内容自动生成相应的口型和面部表情,实现语音驱动的肖像动画。
- 实时预览与编辑:提供实时预览功能,用户可以在生成动画的过程中进行实时编辑和调整,确保最终效果符合预期。
- 多平台支持:LivePortrait 支持在多种平台上运行,包括 Windows、Linux 和 macOS,方便用户在不同环境下使用。
- 开源与可定制:作为开源软件,LivePortrait 允许开发者根据需求进行二次开发和定制,扩展其功能和应用场景。
- 高质量输出:生成的动画具有较高的图像质量和流畅度,适用于多种应用场景,如虚拟主播、在线教育、游戏角色等。
安装和使用
1. 克隆代码并准备环境 🛠️
注意
确保您的系统已安装 git
、conda
和 FFmpeg
。有关 FFmpeg 安装的详细信息,请参阅如何安装 FFmpeg。
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait
对于 Linux 或 Windows 用户
X-Pose 要求您的版本与 CUDA 版本兼容。torch
首先,通过以下方式检查您当前的 CUDA 版本:
nvcc -V # example versions: 11.1, 11.8, 12.1, etc.
然后,安装相应的 Torch 版本。以下是不同 CUDA 版本的示例。如果您的 CUDA 版本未列出,请访问 PyTorch 官方网站获取安装命令:
# for CUDA 11.1
pip install torch==1.10.1+cu111 torchvision==0.11.2 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
# for 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
# for CUDA 12.1
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121
# ...
注意:在 Windows 系统上,某些更高版本的 CUDA(如 12.4、12.6 等)可能会导致未知问题。您可以考虑将 CUDA 降级到 11.8 版本以保持稳定性。请参阅 @dimitribarbot 的降级指南。
最后,安装其余的依赖项:
pip install -r requirements.txt
对于具有 Apple Silicon 用户的 macOS
X-Pose 依赖项不支持 macOS,因此您可以跳过安装。虽然 Humans (人类) 模式照常工作,但不支持 Animals (动物) 模式。使用提供的 macOS 和 Apple Silicon 的要求文件:
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
2. 下载预训练权重 📥
下载预训练权重的最简单方法是从 HuggingFace 下载:
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
如果无法访问 Huggingface,可以使用 hf-mirror 下载:
# !pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
或者,您可以从 Google Drive 或百度云下载所有预训练的权重。解压缩并将它们放入 中。./pretrained_weights
确保目录结构为 as 或 contains this。
3. 推理 🚀
Fast hands-on (人类) 👤
# For Linux and Windows users
python inference.py
# For macOS users with Apple Silicon (Intel is not tested). NOTE: this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
如果脚本成功运行,您将获得一个名为 .此文件包括以下结果:driving video、input image or video,以及生成的结果。animations/s6--d0_concat.mp4
https://github.com/KwaiVGI/LivePortrait/blob/main/assets/docs/inference.gif
或者,您可以通过指定 and 参数来更改输入:-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
Fast hands-on(动物) 🐱🐶
动物模式仅在使用 NVIDIA GPU 的 Linux 和 Windows 上进行了测试。
您需要构建一个名为 first 的 OP,它由通用的关键点检测框架 X-Pose 使用。MultiScaleDeformableAttention
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # equal to cd ../../../../../../../
然后
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
如果脚本成功运行,您将获得一个名为 .animations/s39--wink_concat.mp4
https://github.com/KwaiVGI/LivePortrait/blob/main/assets/docs/inference-animals.gif
驱动视频自动裁剪 📢📢📢
重要
要使用您自己的驾驶视频,我们建议: ⬇️
- 将其裁剪为 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
Motion 模板制作
您还可以使用自动生成的 Ending with 的动画模板文件来加快推理速度并保护隐私,例如:.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 https://github.com/gradio-app/gradio 接口以获得更好的体验,只需运行:
# For Linux and Windows users (and macOS with Intel??)
python app.py # humans mode
# For macOS with Apple Silicon users, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py # humans mode
我们还提供了动物模式的 Gradio 接口,仅在使用 NVIDIA GPU 的 Linux 上进行了测试:
python app_animals.py # animals mode 🐱🐶
您可以指定 , , 参数来满足您的需求!--server_port--share--server_name
🚀 我们还提供了一个 加速选项 .首次推理会触发优化过程(大约 1 分钟),使后续推理的速度提高 20-30%。性能提升可能因 CUDA 版本而异。--flag_do_torch_compile
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
注意:Windows 和 macOS 不支持此方法。
或者,在 HuggingFace 🤗 上毫不费力地尝试一下
5. 推理速度评估 🚀🚀🚀
我们还提供了一个脚本来评估每个模块的推理速度:
# For NVIDIA GPU
python speed.py