news 2026/9/9 23:12:34

LivePortrait 实操指南:三条命令把静态照片变成动态肖像

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LivePortrait 实操指南:三条命令把静态照片变成动态肖像

LivePortrait 实操指南:三条命令把静态照片变成动态肖像

【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait

LivePortrait 是一个基于 PyTorch 的开源人像动画工具:它从一段驱动视频(或预生成的动作模板)中提取头部姿态、表情和口型变化,再迁移到一张静态人像照片上,最终输出一段动画视频。项目同时提供人类模式和猫狗动物模式,并附带 Gradio 图形界面,覆盖从单次推理到批量生成的常见需求。

先搞清三样东西:输入、输出和入口

LivePortrait 的推理逻辑很简单——一个"静止的源"加上一个"会动的驱动",生成结果:

要素命令行参数接受的格式
源(要被带动的对象)-s / --source人像图片(jpg/png)或人像视频(mp4)
驱动(动作来源)-d / --driving驱动视频(mp4)或动作模板(.pkl)
输出目录-o / --output_dir默认为animations/

仓库自带的示例素材就是最直观的教学材料:assets/examples/source/放的是源照片,assets/examples/driving/里既有 mp4 驱动视频,也有一批.pkl动作模板(眨眼、歪头、说话、害羞等)。

成功后会在animations/下生成形如s6--d0_concat.mp4的文件,内容是驱动视频、源输入、生成结果三栏拼接的对比视频,方便直接判断效果。

安装与环境准备 🛠️

前置条件:系统里装好gitcondaFFmpeginference.py启动时会检查ffmpeg是否可用,缺失会直接报错,安装方法见 assets/docs/how-to-install-ffmpeg.md)。

git clone https://gitcode.com/GitHub_Trending/li/LivePortrait cd LivePortrait conda create -n LivePortrait python=3.10 conda activate LivePortrait

依赖安装因平台而异,这是三个平台最容易踩的差异点:

平台依赖安装动物模式额外要求
Linux / Windowspip install -r requirements.txt支持需先编译 X-Pose 算子(见下文)
macOS(Apple Silicon)pip install -r requirements_macOS.txt不支持运行时加PYTORCH_ENABLE_MPS_FALLBACK=1,速度约为 RTX 4090 的 1/20

权重统一放到pretrained_weights/目录:

pip install -U "huggingface_hub[cli]" huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

落盘后的目录结构应与 assets/docs/directory-structure.md 保持一致,放错位置会报权重找不到。

跑通第一次动画

最省事的方式是直接执行默认命令(源为s0.jpg、驱动为d0.mp4):

python inference.py

想换成自己的素材,只需替换-s-d;全部参数可用python inference.py -h查看,默认值与含义都写在 src/config/argument_config.py 的注释里:

python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4

如果更习惯鼠标操作,可以用 Gradio 界面(人类模式app.py,默认端口 8890):

界面里支持滑块调节头部姿态(俯仰/偏航/翻滚)和表情、口型等细节,比改命令行参数更直观。

🐱 动物模式(Linux / Windows + NVIDIA GPU)

动物模式用的是另一套关键点检测(X-Pose),需要先手动编译一个自定义算子:

cd src/utils/dependencies/XPose/models/UniPose/ops python setup.py build install cd -

之后入口换成inference_animals.py/app_animals.py。动物对动作幅度更敏感,官方示例命令里有两个针对动物的关键参数:--driving_multiplier 1.75放大动作幅度,--no_flag_stitching关闭拼接修正:

python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching

让驱动信号好用的四条规则 🎯

用自带的示例视频时效果有保证,换成自己的驱动视频时,效果好坏基本由这四条决定(官方 readme 里标为 IMPORTANT 的建议):

  1. 裁成 1:1(如 512×512),或加--flag_crop_driving_video让程序自动裁剪;自动裁切不理想时可用--scale_crop_driving_video--vy_ratio_crop_driving_video微调;
  2. 画面聚焦头部,少包含肩膀——肩部运动会干扰迁移;
  3. 第一帧是正面、中性表情,模型以它作为动作的"零点";
  4. 驱动视频可以包含音频,用--audio_priority driving/source决定最终视频取哪一路声音。

两个常被忽略的选项:

  • --driving_optionexpression-friendly(默认,配合--driving_multiplier按整体幅度缩放,源为人类照片时用)或pose-friendly(侧重姿态迁移);
  • .pkl动作模板:把驱动视频预处理成纯动作文件,推理更快,且因为不携带原始画面,用来做口播、演讲类内容时能保护隐私。

--driving_multiplier控制动作被放大或缩小的倍数,默认 1.0;出现面部扭曲时优先回调到 0.8–1.2 之间。另外--animation_region可以只迁移局部:exp(表情)、pose(头姿)、lip(嘴)、eyes(眼)或all(默认)。

界面里的进阶玩法

Gradio 界面(src/gradio_pipeline.py)把论文里的几个能力都做成了交互组件:

  • 姿态编辑:拖动滑块直接改源人脸的朝向,再生成动画;
  • 精细面部编辑:独立控制眼神方向、嘴唇开合等微表情,适合做口播数字人;
  • 图像驱动:不用驱动视频,用另一张人脸照片的表情驱动源图,实现"表情迁移";
  • 视频编辑(v2v):源输入给一段视频,可逐帧替换其中的人脸动作。

出问题怎么排查 ⚙️

现象大概率原因处理动作
启动即报 FFmpeg 错误系统缺ffmpeg/ffprobe安装 FFmpeg(assets/docs/how-to-install-ffmpeg.md)
装 torch 后 CUDA 报错驱动/工具链与 PyTorch 版本不匹配nvcc -V查版本,按 PyTorch 官网版本表 装对应 CUDA 的 torch;Windows 高版本 CUDA(12.4+)有已知问题,可降到 11.8
生成结果面部扭曲源图质量差或动作幅度过大换正面清晰照片;--driving_multiplier回调到 0.8–1.2
显存不足源分辨率过高调低--source_max_dim(默认 1280,可降到 1024);关闭其他占卡程序
输出黑屏/黑块个别 GPU 与 FP16 不兼容FP16 默认开启,改用--no_flag_use_half_precision关闭
macOS 上动物模式跑不了X-Pose 不支持 macOS这是平台边界,仅人类模式可用

速度方面可以跑python speed.py测本机各模块耗时(RTX 4090 参考数据见 assets/docs/speed.md);长期用 Gradio 界面时可加--flag_do_torch_compile,首次推理约多花一分钟做优化,之后每次快 20–30%(仅 Linux 支持)。

收尾

跑通python inference.py只是起点:素材质量决定下限,driving_multiplieranimation_regionflag_stitching这些参数决定上限。建议从自带示例开始逐个替换成自己的素材,遇到效果问题按上面的排查表处理。核心源码在src/modules/(外观/运动提取、Spade 生成、warping、拼接与重定向网络),所有可调参数集中在src/config/,界面逻辑在src/gradio_pipeline.py,想改行为前先看这三个位置。

【免费下载链接】LivePortraitBring portraits to life!项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 23:44:57

Windows Terminal 自动补全实战:PSReadLine 与 Clink 组合配置指南

1. 先搞明白:Windows Terminal 的自动补全到底缺什么这些年不管是从 cmd 迁移过来,还是从 macOS 的 iTerm2 转战 Windows,很多人装上 Windows Terminal 的第一反应都是:界面是漂亮了,字体渲染也舒服了,可这…

作者头像 李华
网站建设 2026/9/8 20:37:03

嵌入式音频解码中心SDK解析:标准C实现多路输入路由与缓冲机制

简介:这套C语言编写的声道解码SDK,面向音频设备开发与嵌入式软件工程师,解决HDMI、光纤、同轴、模拟、U盘、TF/SD卡及话筒输入等多类音源信号的统一解码问题。压缩包共46个文件,既包含C源码头文件与静态库,也附带PDF用…

作者头像 李华
网站建设 2026/9/8 20:36:51

ESP-IDF v5.4.1 环境搭建避坑:从零到第一次编译

ESP-IDF v5.4.1 环境搭建避坑:从零到第一次编译 【免费下载链接】esp-idf Espressif IoT Development Framework. Official development framework for Espressif SoCs. 项目地址: https://gitcode.com/GitHub_Trending/es/esp-idf 第一次装 ESP-IDF&#xf…

作者头像 李华