LivePortrait 肖像动画完整上手:零基础让一张静态照片开口说话
【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait
LivePortrait 是一个基于 PyTorch 的人像动画开源项目。你给它一张静态人像照片,再给一段驱动视频(或一张驱动图、一个动作模板),它就能把照片做成会眨眼睛、会说话、会转头表情的动态视频。
它由快手团队开发,目前已被快手、抖音、剪映、微信视频号等平台用作高效的肖像动画方案,支持人类和猫狗两种模式。
不用写代码,你只要装好环境、下载好权重,就能在本地跑起 Gradio 界面或命令行推理。下面带你从零走一遍。
项目速览
它解决的问题很直接:静态照片不会动。LivePortrait 用姿态迁移加面部特征捕捉,把一段"动作"搬运到另一张脸上,输出流畅的动画视频。
核心能力:
- 🎞️ 一张照片 + 一段驱动视频,生成动态肖像动画
- 🐱 内置动物模型,猫狗照片也能做表情动画
- ✂️ 支持肖像视频编辑(v2v),改动作还能保留音频
- 🎯 分区控制,只驱动表情、姿态、嘴唇或眼睛中的某一部分
- 🖼️ 支持用一张图片当驱动信号,做表情迁移
- 🎚️ 提供 Gradio 界面,滑杆实时预览,不用敲命令
适合谁用?想给照片、视频加动态效果的创作者,做数字人内容的开发者,以及只想本地跑个肖像动画玩玩儿的普通用户。
第一次使用路径
准备环境:克隆仓库并确认依赖
先确认系统里装好了git、conda和FFmpeg(FFmpeg 缺失会直接报错,安装方法见 assets/docs/how-to-install-ffmpeg.md)。然后克隆代码并建一个 Python 3.10 的独立环境:
git clone https://gitcode.com/GitHub_Trending/li/LivePortrait cd LivePortrait conda create -n LivePortrait python=3.10 conda activate LivePortrait安装依赖:按你的系统选对应命令
Windows 和 Linux 用户用主依赖文件;macOS 苹果芯片用户换用专门的依赖文件,且只能跑人类模式(动物模式不支持):
# Linux / Windows pip install -r requirements.txt # macOS(Apple Silicon) pip install -r requirements_macOS.txt如果你还要用动物模式,需要检查 CUDA 版本并安装匹配的 PyTorch(nvcc -V可查版本),再编译一个 X-Pose 的算子:
nvcc -V cd src/utils/dependencies/XPose/models/UniPose/ops python setup.py build install cd -下载权重并启动:第一次推理只需一条命令
用 HuggingFace 的 CLI 把预训练权重拉到pretrained_weights目录(目录结构应包含 assets/docs/directory-structure.md 所示的 insightface、liveportrait、liveportrait_animals 三部分):
pip install -U "huggingface_hub[cli]" huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"然后启动。命令行跑一次默认示例,成功会生成animations/s6--d0_concat.mp4(驱动视频、源输入和生成结果的拼接):
# Linux / Windows python inference.py # macOS(Apple Silicon) PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py想可视化操作,就起 Gradio 界面,默认监听127.0.0.1:8890:
python app.py功能地图
让一张静态照片动起来
给一张人像照片当源,再给一段驱动视频,照片就会跟着驱动视频做表情和头部动作。
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4操作要点:驱动视频建议裁成 1:1(如 512x512),第一帧保持正面中性表情;自己的视频不符合条件时,加--flag_crop_driving_video自动裁切,效果不理想可用--scale_crop_driving_video、--vy_ratio_crop_driving_video微调。也可以直接用现成的.pkl动作模板,比如-d assets/examples/driving/wink.pkl,既快又不泄露你的视频隐私。
让猫狗照片做出表情
动物模式用单独的模型和入口脚本,专门给猫狗照片做动画,2025 年初还更新过用更多数据训练的新版模型。
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching要点:动物模式只在 Linux / Windows + NVIDIA GPU 上测过,且必须先完成前面那步 X-Pose 算子编译;动物模型没有训练 stitching 模块,记得加--no_flag_stitching。
给照片做精细的表情和嘴型微调
在 Gradio 界面里,你可以用滑杆实时调整源肖像的姿态和面部细节,每次拖动都会即时刷新画面,不满意点 Reset 就能全部还原。
这是 2024-08-06 加入的 Precise Portrait Editing 功能,受社区项目 ComfyUI-AdvancedLivePortrait 启发。想只动某个区域,用--animation_region参数选exp(表情)、pose(头部姿态)、lip(嘴唇)、eyes(眼睛)或all(默认全部),比如--animation_region lip就只迁移嘴部动作。
给已有视频换一套动作
源输入也可以是视频。你给一段人物视频,LivePortrait 会把它重新"表演"成驱动视频里的动作,也就是肖像视频编辑(v2v)。
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4用--audio_priority决定输出用哪边的声音(source或driving);--flag_normalize_lip可让嘴唇在动画前先回到闭合状态。
让效果更好的做法
让动作更自然
- 驱动视频对准头部区域,尽量减小肩部动作,第一帧保持正面中性表情
- 用
--driving_multiplier控制动作幅度,默认 1.0,调得太大会让脸变形 - 头部动得少时保留默认的
--flag_stitching(边缘拼接更干净),头部大幅度运动时关掉它
让生成更快
- 默认已开启半精度推理(
flag_use_half_precision),速度不用额外设置 - 界面里用
python app.py --flag_do_torch_compile起服务,首次推理会优化约一分钟,之后快 20-30%(Windows 和 macOS 不支持) - 复用
.pkl动作模板,省掉对驱动视频的重复计算
让输出更轻量
- 用
--source_max_dim限制源的最大边长,默认 1280,调小后显存和耗时都更低 - 用
--output_dir(-o)指定输出目录,方便批量管理结果 - 只关心某个区域时把
--animation_region缩小到lip或eyes,结果更聚焦
避坑指南
- 现象:启动就报
FFmpeg is not installed。原因:系统里没有 FFmpeg。解决:装好ffmpeg和ffprobe后再跑,参考 assets/docs/how-to-install-ffmpeg.md。 - 现象:输出视频出现黑块。原因:GPU 对半精度推理不兼容。解决:加
--no_flag_use_half_precision关掉 FP16。 - 现象:装 PyTorch 或编译 X-Pose 时报 CUDA 相关错误。原因:PyTorch 版本和系统 CUDA 版本不匹配。解决:先
nvcc -V查版本,再按版本装对应的 torch(CUDA 11.8 / 12.1 都有现成命令);Windows 上 CUDA 12.4 以上的高版本可能出未知问题,可考虑降到 11.8。 - 现象:生成的脸扭曲变形。原因:源图质量差或驱动幅度过大。解决:换一张更清晰的正面照,把
--driving_multiplier调回 0.8-1.2 区间试试。 - 现象:macOS 用户想跑动物模式失败。原因:X-Pose 依赖不支持 macOS。解决:macOS 只跑人类模式(
inference.py/app.py),动物模式去 Linux 或 Windows + NVIDIA GPU 上跑。
跑起来之后
玩法远不止"照片说话"。给社交账号做一张会眨眼的动态头像;把人物视频换成另一种口播动作,音频还能保留;用--animation_region只迁移嘴型,做口型替换;给宠物照片做眨眼微笑,剪一条纪念短片。
想深入一点,可以从 src/config/argument_config.py 开始看所有参数和默认值,再翻 src/modules/ 了解动画是怎么一步步生成的。项目的更新历史都在 assets/docs/changelog/ 里,每加一个功能都有一篇说明;社区也贡献了不少扩展,比如基于 ComfyUI 的节点和 TensorRT 加速版,值得翻一翻。
LivePortrait 把"静态照片变动态肖像"这件事做得足够轻,你本地就能跑起来,也足够好用,能直接用在真实内容生产里。现在就装上权重,用你自己的照片试第一条命令吧。
- 官方文档与安装说明:readme.md、assets/docs/
- 更新日志:assets/docs/changelog/
- 参数配置目录:src/config/
- 核心模块源码:src/modules/
- 示例素材(源图/驱动):assets/examples/
【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考