Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >项目推荐:LivePortrait - 让静态照片“活”起来

项目推荐:LivePortrait - 让静态照片“活”起来

作者头像
wayn
发布于 2025-06-09 08:06:25
发布于 2025-06-09 08:06:25
31500
代码可运行
举报
文章被收录于专栏:wayn的程序开发wayn的程序开发
运行总次数:0
代码可运行

LivePortrait 是由 KwaiVGI 团队开发的一项前沿技术,旨在通过深度学习实现高效、逼真的人像动画生成。使得用户能够通过简单的驱动视频或动作模板,将静态图片“活化”为具有丰富表情和姿态变化的动态人像。

本文将详细介绍 LivePortrait 的功能特点、安装步骤、使用方法以及适用场景,并提供清晰的操作示例,帮助开发者快速上手这一强大工具。

一、LivePortrait 简介 📖

技术亮点

  • 高保真动画生成:支持从单张静态图像生成高质量的动态人物形象。
  • 高效的推理速度:在现代 GPU 上可实现接近实时的动画生成。
  • 灵活的控制方式
    • 支持使用驱动视频(如面部动作视频)或动作模板文件.pkl)进行控制。
    • 提供图像缝合(Stitching)与姿态重定向(Retargeting)两种模式,适应不同应用场景。
  • 跨平台支持
    • 支持 Linux 和 Windows 系统,兼容 NVIDIA GPU。
    • macOS(Apple Silicon)也提供部分支持,但性能较低。

二、安装与配置指南 ⚙️

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
硬件要求:
内存(RAM):至少 16GB
显卡(GPU):NVIDIA GPU,支持 CUDA 计算能力 ≥ 6.0(如 RTX 30 系列或更高)

1. 克隆仓库并创建环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait

# 创建 conda 环境
conda create -n LivePortrait python=3.10
conda activate LivePortrait

根据你的 CUDA 版本安装 PyTorch:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 示例(请根据实际版本选择)
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118

然后安装依赖项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install -r requirements.txt

Mac 用户注意:搭载 Apple Silicon 的设备需使用 requirements_macOS.txt 文件安装依赖。X-Pose 依赖项不支持 macOS,因此您可以跳过其安装。人类模式照常工作,但不支持动物模式

2. 下载预训练模型权重

推荐使用 HuggingFace CLI 下载预训练权重:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

若无法访问 HuggingFace,可使用镜像网站 hf-mirror:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights ...

下载完成后确保目录结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pretrained_weights
├── insightface
│   └── models
│       └── buffalo_l
│           ├── 2d106det.onnx
│           └── det_10g.onnx
├── liveportrait
│   ├── base_models
│   │   ├── appearance_feature_extractor.pth
│   │   ├── motion_extractor.pth
│   │   ├── spade_generator.pth
│   │   └── warping_module.pth
│   ├── landmark.onnx
│   └── retargeting_models
│       └── stitching_retargeting_module.pth
└── liveportrait_animals
    ├── base_models
    │   ├── appearance_feature_extractor.pth
    │   ├── motion_extractor.pth
    │   ├── spade_generator.pth
    │   └── warping_module.pth
    ├── retargeting_models
    │   └── stitching_retargeting_module.pth
    └── xpose.pth

三、使用教程 🚀

快速上手(人类模型)👤 👤

运行以下命令即可生成默认示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 对于Linux和Windows用户
python inference.py

# 对于搭载Apple Silicon的macOS用户(Intel未测试)。注意:这可能比RTX 409020PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py

输出结果保存在 animations/s6--d0_concat.mp4 中,包含原始输入、驱动视频和生成动画的拼接效果。

自定义输入参数:

或者,您可以通过指定-s-d参数来更改输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 输入图像 + 驱动视频
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4

# 输入视频 + 驱动视频(动态编辑)
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4

查看所有参数选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python inference.py -h

快速上手(动物模型) 🐱🐶

动物模型仅支持 Linux 和 Windows 系统,并需要 NVIDIA GPU。

首先构建 X-Pose 所需的自定义算子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # 等同于 cd ../../../../../../../

然后运行动物模型推理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching

如果脚本成功运行,您将得到一个名为 animations/s39--wink_concat.mp4 的输出 mp4 文件。

驱动视频自动裁剪 📢📢📢

使用您自己的驱动视频时,我们推荐: ⬇️

  • 将其裁剪为1:1的宽高比(例如,512x512或256x256像素),或通过--flag_crop_driving_video启用自动裁剪。
  • 专注于头部区域,类似于示例视频。
  • 最小化肩部运动。
  • 确保驱动视频的第一帧是具有中性表情的正面面部。

建议对驱动视频进行裁剪以提升效果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video

可选参数调整裁剪比例和偏移:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--scale_crop_driving_video 1.2
--vy_ratio_crop_driving_video 0.5

Gradio 图形界面 🤗

LivePortrait 提供了基于 Gradio 的图形界面,方便非程序员用户使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 对于Linux和Windows用户(以及搭载Intel的macOS??)
python app.py # 人类模型模式

# 对于搭载Apple Silicon的macOS用户,不支持Intel,这可能比RTX 409020PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py # 人类模型模式

支持参数:

  • --server_port:指定端口
  • --share:生成公网链接分享
  • --flag_do_torch_compile:启用编译优化(仅限 NVIDIA GPU)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 启用torch.compile以进行更快的推理
python app.py --flag_do_torch_compile

四、总结 ✅

LivePortrait 是一个极具潜力的人像动画生成项目,凭借其高效的推理架构、灵活的控制方式和良好的跨平台支持,非常适合用于虚拟主播、AI 换脸、数字人等领域。

无论是研究人员还是内容创作者,都可以通过简单几步快速部署并生成高质量的人像动画。如果你希望打造个性化的虚拟形象,或者探索 AI 驱动的视觉创作,LivePortrait 绝对值得一试!

📌 GitHub 地址:https://github.com/KwaiVGI/LivePortrait 📌 HuggingFace 页面:https://huggingface.co/KwaiVGI/LivePortrait

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 waynblog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL 基础知识笔记 第04期:分组查询和聚集函数
这一节内容,来通过一张测试表,进行 MySQL 分组查询和聚集函数的练习。 1 数据准备 建表及数据准备,以便后面 SQL 练习: use yzl; /* 使用yzl这个database */ drop table if exists student_info; /* 如果表student_info存在则删除表student_info */ CREATE TABLE `student_info` ( /* 创建表student_info */ `id` int(11) NOT NULL auto_i
数据库交流
2022/04/25
4820
MySQL 基础知识笔记 第04期:分组查询和聚集函数
懒办法1篇文10分钟快速入门MySQL增删查改
作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,InfoQ签约作者,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。
1_bit
2022/01/06
3000
懒办法1篇文10分钟快速入门MySQL增删查改
Mysql增删改查sql语句练习
Mysql增删改查sql语句练习 关于数据库的一些操作: 进入mysql 命令行: mysql -uroot –p 查看所有数据库: show databases; 创建数据库: create database wg charset utf8; 删除数据库: drop database wg; 选择数据库: use databases; 查看所有表: show tables; 查看创建数据库的语句:show create database databasename; 查看创建表的语句:show create table tablename; 查看表结构:desc tablename; 增: mysql> use wg; mysql> create table students( id int auto_increment primary key,name varchar(10) not null,sex varchar(12),address varchar(50),phone int not null unique); #自增长 auto_increment #非空 not null #默认值 default ‘xx’ #唯一 unique #指定字符集 charset #主键 primary key mysql> create table scores(id int auto_increment primary key,s_id int not null,grade float not null); 数据: mysql> insert into student (id,name,sex,phone) values(122,’wg’,’男’,’110’); mysql> insert into students values(111,’wg’,’121’,’dd’) ; 删: mysql> drop table tablename; mysql> truncate tablename; 快速删除表数据,自增长id从头在来,快速,从磁盘直接删除,不可恢复 mysql> delete from student; 删除整个表的数据,自增长继续 改: mysql> alter table oldtable rename newtable; 改表名 mysql> alter table scores modify s_id varchar(20);
全栈程序员站长
2022/07/25
2.3K0
Mysql增删改查sql语句练习
Mysql介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。 MySQL使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。 提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。 MySQL 是开源的,所以不需要支付费用。 原生JSON支持(5.7 新增) 企业级的应用支持。
全栈程序员站长
2022/08/04
6520
Mysql介绍
MySQL 基础知识笔记 第03期:子查询和关联查询
在练习左连接和右连接之前,为了显示出两者的区别,这里再在每张表中新增一条记录,两张表中的这两条记录 stu_id 不相等。
数据库交流
2022/04/25
5160
MySQL 基础知识笔记 第03期:子查询和关联查询
MySQL 常用基础知识,多学一门技能,不求人
外键约束:是指在主键关联的外键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
微芒不朽
2022/09/13
5740
MySql数据库增删改查常用语句命令「建议收藏」
创建数据库表: 创建一个表名为:employee,该表中含有id、name、sex、birthday、job字段
全栈程序员站长
2022/09/02
1.3K0
mysql 练习题
)DEFAULT CHARSET=UTF8; create table grade( s_id char(4) not null, c_id char(4) not null, g_score int , primary key(s_id,c_id) )default charset=utf8; 表1 student_info表结构 列名 数据类型 允许NULL值 主键 学号 char(4) 否 是 姓名 char(8) 否 否 性别 char(2) 是 否 出生日期 date 是 否 家族住址 varchar(50) 是 否 表2 curriculum表结构 列名 数据类型 允许NULL值 主键 课程编号 char(4) 否 是 课程名称 varchar(50) 是 否 学分 int 是 否
全栈程序员站长
2022/10/02
1.2K0
MySQL表的增删查改
values左侧为表中属性,右侧为自定义插入的内容,左右两侧安装顺序是一一对应的,如果顺序不同就会导致类型不同而出错。
每天都要进步呀
2023/10/16
8940
MySQL表的增删查改
Mysql常用sql语句(2)- 操作数据表
https://www.cnblogs.com/poloyy/category/1683347.html
小菠萝测试笔记
2020/06/09
5890
Mysql常用sql语句(2)- 操作数据表
mysql基本操作命令汇总
作用:提高表中数据的查询速度 1.普通索引 2.唯一性索引 3.全文索引 4.单列索引 5.多列索引 6.空间索引
崔笑颜
2020/06/08
1.1K0
mysql基本操作命令汇总
关于MySQL库表名大小写问题
一般在数据库使用规范中,我们都会看到这么一条:库名及表名一律使用小写英文。你有没有思考过,为什么推荐使用小写呢?库表名是否应该区分大小写呢?带着这些疑问,我们一起来看下本篇文章。
MySQL技术
2021/07/05
8.2K0
MySQL表的增删查改(二)
创建学生表student,一个学生对应一个班级,一个班级对应多个学生。使用id为主键,classes_id为外键,关联班级表id:
海盗船长
2020/08/27
2.8K0
数据库-表的操作
**语法一:**create table 新表 select 字段 from 旧表
cwl_java
2020/03/27
7090
02 . Mysql基础操作及增删改查
SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
iginkgo18
2020/09/27
2K0
haue数据库原理第一次实验
(1)学会使用MySQL 图形界面工具进行数据库相关操作。 (2)掌握使用SQL语句创建、选择、删除数据库。 (3)掌握使用SQL语句创建、修改、删除表。 (4)掌握使用SQL语句对表进行插入、修改和删除数据操作。 (5)学会使用SQL命令进行数据库备份的操作方法。 (6)学会使用SQL命令进行数据库恢复的操作方法。
南桥
2024/11/02
1570
haue数据库原理第一次实验
MySQL基础篇(DDL,DML,DQL,DCL详细讲解)
pojie方式:https://www.jb51.net/database/710931.html
用户4919348
2022/04/13
1.7K0
MySQL基础篇(DDL,DML,DQL,DCL详细讲解)
软件测试从业者必备SQL合集V1.0(21天搞定)
这是,IDO老徐最近在进行的21天SQL打卡的作业 & 参考答案的合集,提供给所有软件测试从业者 ;
IDO老徐
2020/04/26
8010
mysql必知必会2
语法:delete from {1} where {2} 第一对大括号替换为表名,第二对大括号替换为查询条件。 注意:删除语句一定要写删除条件,否则整张表删除。 例如:delete from commodity 这个SQL语句删除commodity表中的所有数据。 例如:delete from commodity where id = 5 这个SQL语句删除commodity表中的id=5的数据
潇洒坤
2018/09/10
7890
mysql必知必会2
MySQL入门,问题不大【增删改查极速上手】
当你登录你的QQ账号和别人吹水的时候,当你期末交作业去度娘复制的时候,当你在工作中登录一些网站的时候,再比如当你查看自己几乎没有什么余额的银行卡的时候(捂脸),或许自己也没注意,(非需要,大部分人也不想注意哈哈哈)我们一直都在以某种方式与数据库打交道,或许你是一个开发人员,也或许你也只是一个普通的用户,数据库与我们的生活息息相关,作为一名程序员,现在学习 MySQL 和 Oracle 的会多一些,像微软的 SQL Server 以前配合 asp 的时候用的还是挺多的,不过现在就没那么流行了,
BWH_Steven
2020/06/03
8140
推荐阅读
相关推荐
MySQL 基础知识笔记 第04期:分组查询和聚集函数
更多 >
交个朋友
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术工作实战群
获取实战干货 交流技术经验
加入[数据库] 腾讯云官方技术交流站
数据库问题秒解答 分享实践经验
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验