LivePortrait 快速上手:3 步把静态照片变成动态人像视频
【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait
给老照片里的人补一段会眨眼的视频,或让人物立绘跟着驱动视频做动作——静态照片变动态这件事,靠传统剪辑很难做到。LivePortrait 人像动画是一个开源的人像动画工具:一张照片、一段驱动视频,就能生成表情和动作连贯的动态肖像视频。
先看效果:先跑通,再谈参数
🖥️ 开始前确认三件事:装了git、conda和ffmpeg(缺 ffmpeg 会直接报错),有一块 CUDA 显卡;macOS 用户也可以跑人类模式,只是会慢很多。
第一步:克隆代码并安装依赖
git clone https://gitcode.com/GitHub_Trending/li/LivePortrait cd LivePortrait conda create -n liveportrait python=3.10 conda activate liveportrait pip install -r requirements.txtmacOS(Apple Silicon)用户把最后一行换成pip install -r requirements_macOS.txt。
第二步:下载预训练模型权重
pip install -U "huggingface_hub[cli]" huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"权重会放进项目根目录的pretrained_weights/,目录结构应包含 assets/docs/directory-structure.md 中描述的那些文件。
第三步:跑一次推理,打开 WebUI
# 命令行直接跑:默认用示例图 source/s0.jpg 和驱动视频 driving/d0.mp4 python inference.py # 或者启动 Gradio 界面,浏览器打开 http://127.0.0.1:8890 python app.pyinference.py跑完会在animations/目录生成一个 mp4,里面横向拼了驱动视频、输入图和生成结果三块,方便你直接对比效果。跑通这一步,后面所有参数才有讨论的意义。
它能干什么:5 类玩法一次说清
界面和命令行功能基本一致,常用入口是python app.py(人类模式)和python app_animals.py(动物模式)。功能上可以归成五类:
- 照片变视频(i2v):静态人像 + 驱动视频,输出动态肖像,这是最核心的用法
- 视频编辑(v2v):源输入本身是视频,相当于给人像视频换表情、换头部动作
- 滑块式编辑:不靠视频,用滑块控制点头、偏头、微笑、眨眼、眼神方向,实时预览
- 图像驱动 + 区域控制:用一张图片当驱动信号,还能指定只驱动嘴、眼、表情或头部
- 动物模式🐱:针对猫狗的面部关键点单独建模,注意它只支持 Linux/Windows + NVIDIA 显卡,macOS 跑不了
跟着做三个最常用的功能
用驱动视频让照片动起来
这是上手后第一个该试的功能:
- 启动
python app.py,在左侧Source Image上传一张正面清晰的人像(仓库示例可直接点assets/examples/source/s9.jpg) - 右侧Driving Video选一段驱动视频,示例
d0.mp4就能用 - 保持默认参数,点Animate按钮
- 到
animations/查看拼接结果,确认动作和表情都"贴"在脸上
用自己的驱动视频时注意两点:裁成 1:1(如 512×512),或加参数--flag_crop_driving_video让程序自动裁;第一帧最好是正面中性表情,肩部动作越少越好。
用滑块摆头、眨眼、微笑
不需要任何驱动视频,适合做静态图的微调:
- 在 Gradio 界面往下滚到Retargeting Image区域,上传人像
- 在 "Facial movement sliders" 里拖
head pitch / yaw / roll,控制低头、偏头、歪头 - 在 "Facial expression sliders" 里试
smile、wink、eyebrow、眼神方向 - 每拖一下就会实时重绘预览,不满意点Reset一键还原
用一张图当驱动信号
想给照片"定格"某个表情,又不想拍视频?
- 驱动输入区切到Driving Image页签,上传一张带表情的照片(如
assets/examples/driving/d30.jpg) - 如果只想动嘴,把animation region设为
lip;只动头部就选pose - 点Animate,源图和驱动都是图片时,输出就是一张"改完表情"的静态图
- 源是视频时,每帧都会按这张图的表情驱动,等于批量换表情
另外两个进阶入口:动物模式先在src/utils/dependencies/XPose/models/UniPose/ops下执行python setup.py build install编译依赖,再运行python app_animals.py;批量推理可以直接用命令行加-s-d换输入。
参数速查表:这几个最常用
以下参数在 src/config/argument_config.py 中有完整定义,命令行加--参数名 值,Gradio 里对应同名控件:
| 参数 | 作用 | 建议取值 |
|---|---|---|
driving_multiplier | 动作幅度系数(0–2),控制驱动动作"打几折" | 默认 1.0;动作过猛降到 0.8–1.2;动物模式建议 1.75 |
driving_option | 驱动侧重:expression-friendly偏表情,pose-friendly偏头部姿态 | 人像默认前者;想让头跟着驱动视频转就换后者 |
animation_region | 哪些部位跟着驱动动:exp/pose/lip/eyes/all | 默认all,需要单部位时再收窄 |
flag_stitching | 把动画区域的边缘修补回原图 | 默认开;头部动作很大或动物模式时关掉 |
flag_use_half_precision | FP16 半精度,显存和速度都更省 | 默认开;输出出现黑块时加--no_flag_use_half_precision关掉 |
source_max_dim | 源图/源视频的最大边长 | 默认 1280;显存吃紧时降到 960 |
Linux/Windows 上可以启动时加--flag_do_torch_compile,首次推理会多花约一分钟做优化,之后每次快 20%–30%(macOS 和 Windows 不支持该选项)。
排障手册:遇到问题这样处理
现象:运行
app.py直接报FFmpeg is not installed。原因:系统缺少 ffmpeg / ffprobe。处理:按 assets/docs/how-to-install-ffmpeg.md 装上,再重跑即可。现象:输出视频里出现黑色方块。原因:部分 GPU 对 FP16 半精度支持不完整。处理:启动时加
--no_flag_use_half_precision,牺牲一点速度换正确性。现象:人脸边缘和背景之间有一条可见接缝。原因:边缘修补没生效,或驱动视频头部动作过大,超出可修复范围。处理:确认
--flag_stitching处于开启状态(默认开),并换一段头部动作更小的驱动视频。现象:动作幅度失控或表情不自然。原因:
driving_option和驱动内容不匹配,或系数给大了。处理:把driving_multiplier收到 0.8–1.2 区间;驱动视频主要是头部转动时改用--driving_option pose-friendly。现象:动物模式依赖安装失败,或 macOS 上报错。原因:动物模式依赖 XPose,需要编译 CUDA 算子,官方只在 Linux/Windows + NVIDIA 上验证过。处理:macOS 只用人类模式;Linux/Windows 先确认
nvcc -V的 CUDA 版本与 PyTorch 对应,再编译ops目录。
这些场景用得上
- 数字人口播:用一段口播视频驱动静态人物立绘,做出简单的讲解视频,适合产品介绍和教程内容。
- 老照片纪念:让老照片里的人眨眨眼、笑一笑,比单纯修图更有温度,注意只用于自家照片。
- 宠物内容:动物模式让猫狗照片配合
wink.pkl这类动作模板眨眼、摇头,仓库示例里就有现成组合。 - 表情素材批量:同一张图换不同的
.pkl动作模板(talking、shake_face、shy 等),一次产出一组表情素材。
跑通之后继续看
参数不需要一次全懂,先跑通一次比什么都重要。挑一张正面清晰的人像,用仓库自带的驱动视频生成你的第一个视频,再对照速查表调一两个参数,手感很快就有了。
- 中文说明文档:readme_zh_cn.md
- 功能更新日志:assets/docs/changelog/
- 全部参数定义:src/config/argument_config.py
- 示例素材(人像与驱动视频/模板):assets/examples/
- 各模块单帧推理耗时:assets/docs/speed.md
【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考