LivePortrait 上手指南:让一张静态照片开口说话 + 5 分钟跑通人像动画
【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait
想让证件照里的自己开口说话,或让家里猫的眨眼变得生动?LivePortrait 把这类人像动画做得足够简单:一张照片、一段驱动视频,几分钟就能得到动作自然、背景稳定的动画结果。这篇指南从空环境带你跑通第一次生成,再讲清真正影响出片质量的几个参数。
项目概览与核心能力
LivePortrait 是快手同名论文的官方 PyTorch 实现,一套可本地部署的人像动画方案:它将源图像的外观特征与运动特征分离,再由生成器和扭曲网络逐帧重绘,让头部动起来时背景与身体保持稳定。项目已被快手、抖音、剪映等视频平台采用,适合想制作动态头像的创作者,也适合把人像动画集成进自己工作流的开发者。默认流程是"源图像或视频 + 驱动信号 → mp4",全程无需训练。
- 🎭人像动画生成:静态照片配合驱动视频,输出头部动作自然、背景不抖动的短视频
- 🐱动物模式:基于 X-Pose 的猫狗关键点检测,宠物照片也能眨眼、张嘴
- 🎨重定向控制:滑块调整俯仰、偏航、翻滚,或单独改嘴部开合、眼神方向
- 🖼️图像驱动:用另一张图作为驱动信号,把它的表情"搬"到目标肖像上
- 🪄区域控制:通过
animation_region选择只动表情、姿态、嘴唇或眼睛 - ⚡轻量高效:官方在 RTX 4090 上测得单帧推理合计约 15 毫秒
相比多数同类工具,它的区分度在于把 retargeting 与背景缝合做成了默认开启的精细控制:身份和背景都被"锁住",消费级显卡上几分钟即可出一条可用视频。
从零到第一次生成结果
- 克隆代码并建环境(系统需预装
git、conda、FFmpeg):
git clone https://gitcode.com/GitHub_Trending/li/LivePortrait cd LivePortrait conda create -n LivePortrait python=3.10 && conda activate LivePortrait- 安装依赖(Linux/Windows 用下表单;macOS Apple Silicon 换用
requirements_macOS.txt,且只支持人类模式):
conda activate LivePortrait pip install -r requirements.txt- 下载预训练权重到
pretrained_weights/目录,子目录结构可对照assets/docs/directory-structure.md:
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(驱动视频、源图、生成结果三列拼接):
python inference.py- (可选)启用动物模式,仅支持 Linux/Windows + NVIDIA GPU,需先编译 X-Pose 的注意力算子:
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 界面,浏览器访问
127.0.0.1:8890看到上传面板与 Animate 按钮即大功告成;动物模式界面用python app_animals.py启动:
python app.py核心玩法:按场景拆解
让人像照片跟着驱动视频动
界面里上传正面照与驱动视频,或命令行直接给-s/-d。用自己的驱动视频时,建议裁成 1:1(如 512×512),首帧保持正面中性表情,肩部尽量少动;懒得手动裁就开--flag_crop_driving_video,效果不佳再微调--scale_crop_driving_video。更省事的路线是用.pkl运动模板:推理更快,也不用把自己的面部视频放进传播链。
用另一张图的表情驱动肖像
-d指向一张 .jpg 即可,单图驱动后输出仍是一张图。默认开启的--flag_relative_motion只迁移驱动图相对其中性态的形变,能明显减少身份串味;想只迁移嘴型,追加--animation_region lip就行,眼神、姿态同理。
给肖像视频重定向动作
源输入是视频时(v2v),界面提供重定向滑杆,可实时调整目标嘴部开合与运动平滑强度motion smooth strength。适合"机位、场景不动,只改表演"的场景,输入、结果、贴回结果三栏并排,对照调参很顺手。
用滑块摆出新的姿势和表情
Retargeting 标签页对单张图同样有效:拖动 relative pitch/yaw/roll 调整头部姿态,把 eyes-open 与 lip-open 目标值都设为 0.8 可以看到"完全打开"的极限效果。面部表情滑杆还能单独控制眼神横纵、挑眉、抿嘴等微表情。
猫狗宠物模式
跑app_animals.py即可,模型由 X-Pose 做宠物关键点检测。经验上动物驱动幅度要放大,官方示例用--driving_multiplier 1.75,且建议--no_flag_stitching。2025 年 1 月更新的 v1.1 动物模型主要改善了犬类嘴部识别,老权重建议更新。
关键参数与调优策略
| 参数 | 作用 | 推荐取值 | 一句话建议 |
|---|---|---|---|
driving_multiplier | 动作幅度总乘数(仅 expression-friendly 生效) | 0.8–1.2,动物约 1.75 | 肖像变形就先降到 0.8 再慢慢加 |
driving_option | 运动迁移策略:expression-friendly / pose-friendly | expression-friendly | 希望头部姿态严格跟随时选后者 |
flag_stitching | 背景缝合,补全脸部与背景接缝 | 小动作 True,大动作或动物 False | 背景出现涂抹感就关掉 |
animation_region | 只动画局部:exp / pose / lip / eyes / all | all | 只迁嘴型用 lip,只迁眼神用 eyes |
driving_smooth_observation_variance | v2v 时运动平滑强度 | 1e-7–3e-7 | 帧间抖动大就调大,但过大丢动作细节 |
三条经验之谈:
- 源图选正面、清晰、人脸占比中等的照片;侧脸大角度会直接拉低稳定性,
det_thresh(默认 0.15)过低会误检、过高会漏检。 - 驱动素材首帧必须是正面中性表情,这是相对运动计算的基准,基准歪了后面全歪。
- 出片满意后用自动生成模板存成
.pkl,同一驱动复用可跳过运动提取,也避免人脸视频外传。
踩坑记录:常见问题与解法
- 现象:
pip installtorch 失败或报 CUDA 版本错误。原因:PyTorch 与系统 CUDA 不匹配,Windows 上 12.4 等新版 CUDA 稳定性差。解法:先nvcc -V查版本,装对应版本的 PyTorch;Windows 可考虑将 CUDA 降到 11.8。 - 现象:生成结果出现黑块或黑斑。原因:部分 GPU 对 FP16 半精度不兼容。解法:加
--no_flag_use_half_precision重新跑。 - 现象:动物模式编译算子报错,或 macOS 上根本装不上。原因:X-Pose 的
MultiScaleDeformableAttention算子需本地编译,仅支持 Linux/Windows + NVIDIA GPU。解法:在src/utils/dependencies/XPose/models/UniPose/ops目录执行python setup.py build install;macOS 用户只能用人类模式。 - 现象:肖像扭曲、漂移或身份串味。原因:驱动幅度过大,或源图模糊、角度偏。解法:
driving_multiplier收到 0.8–1.2,换清晰的正面照,并确认flag_stitching与头部运动幅度匹配。 - 现象:显存不足 OOM。原因:源素材分辨率大,且
flag_pasteback会把结果贴回原图分辨率。解法:降--source_max_dim(默认 1280)到 960,长视频可加--no_flag_pasteback。
硬件参考与性能建议
- 4GB 显存:
--source_max_dim 960,保持 fp16(默认开启),长视频关--flag_pasteback - 6–8GB 显存:默认参数(1280 输入)直接跑,这是官方验证过的主流档位
- 8GB+ 显存:保留贴回,全部默认即可
- 速度技巧:
--flag_do_torch_compile(Windows/macOS 不支持)首次编译约一分钟,后续推理快 20–30%;.pkl模板复用可跳过运动提取 - 参考基准:RTX 4090 单帧约 15ms,明细见
assets/docs/speed.md
延伸探索
- 所有参数的默认值与中文注释都集中在 src/config/,找不到的参数先来这里搜,
argument_config.py是最好的"活文档"。 - 每个功能(v2v、图像驱动、动物模型 v1.1)在 assets/docs/changelog/ 都有独立记录,比单看主文档更细。
- 想读懂论文对应实现,src/modules/ 里的稠密运动、扭曲网络、SPADE 生成器五个核心模块是最好的入口,配合
src/live_portrait_wrapper.py看数据流。 - 二次创作方向:把
motion_extractor的输出接进自己的 ComfyUI/SD WebUI 工作流,是社区最常见的集成方式,先熟悉输入输出格式再动手。
回到开头那张证件照——挑一张清晰的正面照,用内置驱动样例跑一次,五分钟后就能拿到第一个会动的自己;效果不理想时,先动driving_multiplier和源图这两处,能解决大部分"不够像"或"太夸张"的问题。
- 文档目录:assets/docs/
- 参数配置:src/config/
- 核心模块:src/modules/
【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考