news 2026/9/13 15:06:52

LivePortrait 2024-08-02 版本更新详解:Animals 动物模式、X-Pose 关键点检测与人类模式 Driving 新选项

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LivePortrait 2024-08-02 版本更新详解:Animals 动物模式、X-Pose 关键点检测与人类模式 Driving 新选项

LivePortrait 2024-08-02 版本更新详解:Animals 动物模式、X-Pose 关键点检测与人类模式 Driving 新选项

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

本文基于 LivePortrait 仓库的 2024-08-02 版本更新记录,系统讲解本次更新带来的两大核心能力:面向猫狗等动物的Animals 模式(含 X-Pose 关键点检测器安装、CLI 与 Gradio 两种运行方式),以及人类模式新增的expression-friendly 驱动选项、driving_multiplier 强度调节与视频嘴型重定向(lip retargeting)。读完本文,你将掌握动物肖像动画的完整部署与运行流程,并能用--driving_option--driving_multiplier精确控制人类肖像动画的头部晃动与动作幅度,还会了解配套的 Windows 一键安装包与第三方生态进展。

一、版本更新概览

2024-08-02 是 LivePortrait 发布历史上一个重要节点:团队正式推出Animals 模式——在约23 万帧各种动物(主要是猫和狗)数据上微调训练的动物驱动模型,同时为人类模式引入了更精细的驱动控制选项。更新记录中特别感谢了 LivePortrait 团队的贡献,并为 Windows 用户提供了一键安装包(详见 2024-08-05 的更新说明)。

本次更新的内容分为三块:

  1. Animals 模式:新增动物关键点检测器 X-Pose、动物权重liveportrait_animals、CLI 脚本 inference_animals.py 与 Gradio 界面 app_animals.py;
  2. 人类模式改进:新增expression-friendly/pose-friendly驱动选项、--driving_multiplier驱动强度参数、Gradio 中的视频嘴型重定向功能;
  3. 生态与周边:Poe 平台上线 LivePortrait、ComfyUI 社区出现两个第三方集成节点、Windows 一键安装器发布。

二、Animals 模式:让猫猫狗狗"活"起来

2.1 模式背景与权重下载

Animals 模式在约 23 万帧动物图像(以猫狗为主)上微调训练而成。从 inference_config.py 的源码可以看出,动物模型权重存放在pretrained_weights/liveportrait_animals/目录,并已演进到_v1.1版本:

version_animals = "_v1.1" # new (v1.1) version checkpoint_F_animal: str = make_abs_path(f'../../pretrained_weights/liveportrait_animals/base_models{version_animals}/appearance_feature_extractor.pth') checkpoint_M_animal: str = make_abs_path(f'../../pretrained_weights/liveportrait_animals/base_models{version_animals}/motion_extractor.pth') checkpoint_G_animal: str = make_abs_path(f'../../pretrained_weights/liveportrait_animals/base_models{version_animals}/spade_generator.pth') checkpoint_W_animal: str = make_abs_path(f'../../pretrained_weights/liveportrait_animals/base_models{version_animals}/warping_module.pth')

运行前必须先下载动物权重到pretrained_weights/liveportrait_animals/目录下。

重要限制(务必阅读):由于若干技术问题,本次发布没有为动物模型训练 stitching(拼接)与 retargeting(重定向)模块,未来版本可能修复。因此官方建议:

  • 运行时关闭 stitching,即设置--no_flag_stitching
  • 不建议启用 paste-back(贴回原图空间)。

从 argument_config.py 可以看到对应的默认参数:flag_stitching: bool = True(CLI 中通过--no_flag_stitching置为 False)、flag_pasteback: bool = True。而在 app_animals.py 的 Gradio 界面中,stitching 与 paste-back 两个选项默认即被勾选为False,并明确标注 "not recommended":

flag_stitching = gr.Checkbox(value=False, label="stitching (not recommended)") flag_remap_input = gr.Checkbox(value=False, label="paste-back (not recommended)")

另外从源码看,动物模型的 stitching 权重暂用人类模型的stitching_retargeting_module.pth临时替代(见 inference_config.py 中checkpoint_S_animal的注释 "use human temporarily"),这也是官方建议关闭 stitching 的底层原因之一。

2.2 安装 X-Pose 关键点检测器

Animals 模式选用X-Pose作为动物关键点检测器。X-Pose 依赖transformers==4.22.0pillow>=10.2.0,并需要编译一个名为MultiScaleDeformableAttention的自定义算子。

需要说明的是,当前仓库的 requirements.txt 中 transformers 版本已更新为4.38.0,而 requirements_base.txt 中pillow>=10.2.0已满足要求。若你的环境仍使用较旧依赖,请以实际安装情况为准并确保版本兼容。

编译算子前,请先确认已按 PyTorch 安装指南 为 Linux 或 Windows 配置好 PyTorch 环境。随后执行:

cd src/utils/dependencies/XPose/models/UniPose/ops python setup.py build install cd - # 返回上一级目录

该命令会在 src/utils/dependencies/XPose/models/UniPose/ops 目录下编译包含 CUDA 算子的MultiScaleDeformableAttention,其源码实现分布在src/cuda/src/cpu/等子目录中(如 ms_deform_attn_cuda.cu)。

2.3 通过 CLI 运行动物动画

准备好权重与 X-Pose 后,使用 inference_animals.py 脚本运行。更新记录给出的标准命令:

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

命令参数解析:

参数含义本次示例值
-s/--source源动物图像(或视频,动物模式仅支持图像)assets/examples/source/s39.jpg
-d/--driving驱动视频或.pkl运动模板assets/examples/driving/wink.pkl(眨眼模板)
--no_flag_stitching关闭 stitching(动物模式官方推荐)无值开关
--driving_multiplier驱动强度系数1.75

从 inference_animals.py 的入口实现看,脚本会先校验 FFmpeg 环境与输入文件存在性,再通过partial_fields将命令行参数映射到InferenceConfigCropConfig,最终交由 src/live_portrait_pipeline_animal.py 中的LivePortraitPipelineAnimal执行完整流程。

动画流程的底层逻辑(见 src/live_portrait_pipeline_animal.py)大致如下:

  1. 加载源图:读取s39.jpg并限制到source_max_dim(默认 1280);
  2. 处理驱动信息:若-d.pkl模板则直接加载预提取的运动(scale、旋转矩阵R、表情exp、位移t),速度更快且无音频;若为视频则逐帧提取运动并缓存为同名.pkl模板;
  3. 动物脸裁剪:通过 src/utils/cropper.py 中的Cropperimage_type='animal_face')裁剪出 256×256 动物脸区域;
  4. 逐帧动画:利用运动提取器、3D 关键点变换、warping 与生成器合成动画帧,driving_multiplier控制驱动强度(x_d_i = x_s + (x_d_i - x_s) * inf_cfg.driving_multiplier);
  5. 输出:生成动画 mp4、拼接对比视频(驱动帧 | 源图 | 生成结果)与 GIF。

在命令行驱动动物动画时,输入源示例存放在 assets/examples/source/(如s25.jpgs39.jpgs40.jpgs41.jpg等),驱动模板与视频存放在 assets/examples/driving/(如wink.pklshy.pkltalking.pkllaugh.pkl等)。

2.4 通过 Gradio 图形界面运行

对于更友好的交互体验,可启动 Animals 模式的 Gradio 界面:

python app_animals.py # --server_port 8889 --server_name "0.0.0.0" --share

可选参数含义:--server_port 8889指定端口、--server_name "0.0.0.0"允许局域网访问、--share生成公网分享链接。

从 app_animals.py 的界面源码看,操作流程非常直观:

  1. 上传源动物图像(任意宽高比),内置s25.jpgs30.jpg~s33.jpgs39.jpgs40.jpgs41.jpg等示例可一键选择,并附有裁剪选项(do cropsource crop scale默认 2.3、source crop x/y默认 0 / -0.125);
  2. 选择驱动输入:可在 "Driving Pickle" 标签页上传.pkl运动模板(内置wink.pklshy.pklaggrieved.pklopen_lip.pkllaugh.pkltalking.pklshake_face.pkl),或在 "Driving Video" 标签页上传驱动视频(内置d19.mp4d14.mp4d6.mp4d3.mp4),同样提供驱动视频裁剪选项;
  3. 调节动画选项stitchingpaste-back默认关闭(不推荐启用),driving multiplier滑块范围 0.0~2.0、默认 1.0;
  4. 点击Animate按钮,输出裁剪空间内的动画视频、GIF 以及含拼接对比的最终视频。

界面下方的操作提示(见 gradio_description_upload_animal.md)建议:驱动视频中头部保持居中、减少肩膀晃动、首帧保持中性表情,以获得更稳定的驱动效果。

2.5 X-Pose 的许可提醒

[!WARNING] X-Pose仅限非商业科研用途。若用于商业场景,必须移除并替换为其他关键点检测器。

这一点对任何计划将动物模式投入生产环境的开发者都至关重要,合规是部署前的第一道门槛。

三、人类模式更新:更精细的驱动控制

本次更新在人类模式(Humans mode)上同样带来三项重要改进,全部体现在 argument_config.py 与 gradio_pipeline.py 中。

3.1 新增 expression-friendly 驱动选项(减少头部晃动)

此前版本的驱动方式被命名为pose-friendly(姿态友好),现在新增expression-friendly(表情友好)选项并设为默认值,用于减少头部晃动(head wobbling)。两者对比:

选项特点适用场景
expression-friendly(默认)用全局乘子自适应驱动运动,减少头部晃动源图为人类图像、头部姿态变化不大时更稳定
pose-friendly与旧版本行为一致大幅头部姿态运动时效果更好

通过--driving_option参数或 Gradio 界面下拉框即可切换。从 argument_config.py 的声明可以确认:

driving_option: Literal["expression-friendly", "pose-friendly"] = "expression-friendly" # "expression-friendly" 会用全局乘子自适应驱动运动

官方同时提示:expression-friendly 在大角度头部姿态下效果可能较弱,此时请切换到 pose-friendly。

3.2 新增 driving_multiplier 驱动强度参数

--driving_multiplier用于调节驱动强度,默认值为 1,可在命令行或 Gradio 界面设置。其语义是控制驱动动作"打多大折扣或放大多大":值大于 1 增强动作幅度,小于 1 削弱动作幅度。该参数通常与expression-friendly配合使用(见 argument_config.py 中 "be used only when driving_option is expression-friendly" 的注释),取值范围建议在 0~2 之间。在上文动物模式的 CLI 示例中,--driving_multiplier 1.75即用于放大眨眼/表情的驱动幅度。

3.3 Gradio 视频重定向:精确控制嘴型

本次为 Gradio 新增了**视频重定向(Video Retargeting)**功能:可以为源视频指定一个target lip-open ratio(目标嘴部张开比例),从而整体调整源视频中的嘴部运动幅度。一个典型应用是:将目标比例设为 0,即可让源视频中的人物全程闭嘴

从 gradio_pipeline.py 的实现看,该功能由execute_video_retargeting驱动,核心流程是:

  1. 对源视频逐帧提取关键点与嘴部比例;
  2. 通过calc_lip_close_ratio(见 src/utils/retargeting_utils.py)计算当前嘴型闭合程度;
  3. 将用户指定的input_lip_ratio作为目标,调用retarget_lip计算嘴部关键点增量lip_delta_retargeting
  4. driving_smooth_observation_variance对增量序列做平滑(避免帧间跳变),再逐帧叠加回源帧关键点完成重定向输出。

这为口播视频、配音素材的嘴型规范化提供了非常实用的工具,例如将说话幅度过大的口播统一收敛,或完全静音嘴部动作。

四、其他更新与生态进展

更新记录还附带了几项值得关注的信息:

  • Windows 一键安装包:为 Windows 用户提供了集成环境的一键安装器,详见 2024-08-05 更新说明——下载解压后,双击run_windows_human.bat进入人类模式,或run_windows_animal.bat进入 Animals 模式;
  • Poe 平台支持 LivePortrait:Poe 上线了 LivePortrait 在线体验入口;
  • ComfyUI-LivePortraitKJ:第三方 ComfyUI 节点,已引入 MediaPipe 作为 InsightFace 的替代关键点检测方案,使整体许可保持在 MIT 与 Apache 2.0 范围内,方便商业使用;
  • ComfyUI-AdvancedLivePortrait:另一款第三方节点,支持实时肖像姿态/表情编辑与动画,并已注册到 ComfyUI-Manager,可直接在 ComfyUI 中检索安装。

以上生态信息均为社区第三方项目,具体功能与许可请以各项目实际发布为准。

五、常见问题与使用建议

  1. 动物模式动画结果变形或漂移?请确认已加--no_flag_stitching(关闭 stitching),且不要启用 paste-back;由于动物模型未训练拼接模块,这两个选项是官方明确不推荐的。
  2. 头部晃动明显?人类模式默认已启用expression-friendly;若源视频/图像头部姿态较大,改用--driving_option pose-friendly通常更稳。
  3. 动作幅度不符合预期?--driving_multiplier在 0~2 之间调节驱动强度,动作为 0 时即完全静止驱动。
  4. 想让源视频闭嘴?在 Gradio 的视频重定向功能中把 target lip-open ratio 设为 0。
  5. 动物模式检测不到脸?确认已安装 X-Pose 并成功编译MultiScaleDeformableAttention算子,同时源图中动物面部应清晰、可被检测。
  6. Windows 用户:优先使用官方一键安装包(见 2024-08-05 更新说明),避免手动配置 PyTorch 与编译算子的环境问题。
  7. 商业合规:X-Pose 仅限非商业科研用途,商用前必须替换检测器。

六、相关资源索引

  • 版本更新记录:assets/docs/changelog/2024-08-02.md、assets/docs/changelog/2024-08-05.md
  • 动物模式 CLI 入口:inference_animals.py,Gradio 入口:app_animals.py
  • 动物模式推理流水线:src/live_portrait_pipeline_animal.py
  • 命令行参数定义:src/config/argument_config.py,推理配置(含动物权重路径):src/config/inference_config.py
  • X-Pose 算子源码:src/utils/dependencies/XPose/models/UniPose/ops
  • 依赖声明:requirements.txt、requirements_base.txt
  • 动物源图与驱动示例:assets/examples/source/、assets/examples/driving/
  • Gradio 动物模式操作说明:assets/gradio/gradio_description_upload_animal.md

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

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

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

Python __dict__ 详解:对象属性存储原理与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 15:05:22

WorkBuddy连接配置实战:打通环境、上下文与外部能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 15:05:06

MyBatis拦截器优化SQL日志存储的实践与技巧

1. 项目概述:为什么需要自定义MyBatis拦截器优化SQL日志存储? 在大多数Java项目中,MyBatis作为ORM框架的首选方案,其SQL日志输出功能却存在明显的存储效率问题。默认情况下,MyBatis通过日志框架(如Log4j、L…

作者头像 李华
网站建设 2026/9/13 15:04:09

EF Core原生SQL实战:FromSql/SqlQuery映射与仓储封装

你有没有过这种经历:业务报表越写越复杂,LINQ 表达式树绕得头大,Dapper 又不敢乱引,最后实在绷不住,在 EF Core 里直接塞了一段原生 SQL,结果一运行就被“列名无效”“无法映射”各种报错打懵?我…

作者头像 李华
网站建设 2026/9/13 15:01:15

teamai-cli:面向AI工程化的MCP协议CLI治理工具

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华