一、介绍
快手可灵大模型团队开源了名为 LivePortrait 的可控人像视频生成框架,能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上,生成极具表现力的视频结果。该项目的模型产生了定性肖像动画,只要输入一张静态的肖像图像,就能将其制作成生动的动画、确保无缝拼接,并能精确控制眼睛和嘴唇的动作。
二、特点
和当前主流基于扩散模型的方法不同,LivePortrait 探索并拓展了基于隐式关键点框架的潜力,从而平衡了模型计算效率和可控性。LivePortrait 聚焦于更好的泛化性,可控性和实用的效率。
为了提升生成能力和可控性,LivePortrait 采用 69M 高质量训练帧,视频-图片混合训练策略,升级网络结构,并设计了更好的动作建模和优化方式。此外,LivePortrait 将隐式关键点看成一种面部混合变形 (Blendshape) 的有效隐式表示,并基于此精心提出了贴合 (stitching) 和重定向 (retargeting) 模块。这两个模块为轻量 MLP 网络,因此在提升可控性的同时,计算成本可以忽略。
同时,在 RTX4090 GPU 上,LivePortrait 的单帧生成速度能够达到 12.8ms,若经过进一步优化,如 TensorRT,预计能达 10ms 以内!HuggingFace Space、Papers with code 趋势榜连续一周榜一,近日登顶 HuggingFace 所有主题排行榜榜一。
模型网址以及在线体验:
LivePortrait/requirements_base.txt at main · KwaiVGI/LivePortrait · GitHub
LivePortrait · 创空间 (modelscope.cn)
三、容器构建
1. 安装miniconda
进入Anaconda官网:
Miniconda — Anaconda 文档
找到快速命令行安装,选择Linux系统,复制代码进入终端中进行安装。
等待安装完成。
2. 安装并更新基础命令,供后续使用更快捷: wget、unzip、lsof、git、git-lfs
apt-get update
apt-get install -y wget
apt-get install -y unzip
apt-get install -y lsof
apt-get install -y git
apt-get install -y git-lfs
3. 项目配置
首先将仓库(魔搭)代码下载:
git clone https://www.modelscope.cn/studios/AI-ModelScope/LivePortrait.git
(1)打开LivePortrait项目文件
cd LivePortrait
· 创建python为3.9版本的虚拟环境,名称为LivePortrait
conda create -n LivePortrait python=3.9
(2)激活虚拟环境LivePortrait
conda activate LivePortrait
(3)通过pip安装所需的torch环境(国内镜像源快一些,以下使用了清华源)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple
(4)安装项目依赖文件
为了安装速度更快可以将pip进行永久换源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
将以下依赖信息复制进入项目文件中的requirements.txt里面
numpy==1.26.4
pyyaml==6.0.1
opencv-python==4.10.0.84
scipy==1.13.1
imageio==2.34.2
lmdb==1.4.1
tqdm==4.66.4
rich==13.7.1
ffmpeg-python==0.2.0
onnx==1.16.1
scikit-image==0.24.0
albumentations==1.4.10
matplotlib==3.9.0
imageio-ffmpeg==0.5.1
tyro==0.8.5
gradio==4.37.1
pykalman==0.9.7
开始安装依赖文件
pip install -r requirements.txt
(5)运行py文件
若直接运行会出现以下情况,表明了端口被占用,需要修改端口
打开app.py文件找到末尾的几行代码
将代码改为自己所需的端口或监听的IP地址,例如
demo.queue(default_concurrency_limit=5).launch(inbrowser=True, server_name=‘0.0.0.0’)
指定端口运行app.py文件
export GRADIO_SERVER_PORT=8080
python app.py
出现以下页面代表运行成功: