英语 | 中文
原始仓库:LivePortrait,感谢作者分享
新功能:
使用TensorRT在RTX 3090 GPU上实现LivePortrait的实时运行,达到30+ FPS的速度。这是渲染单帧的速度,包括预处理和后处理,而不仅仅是模型推理速度。
实现了 LivePortrait 模型到 Onnx 模型的转换,在 RTX 3090 上使用 onnxruntime-gpu 实现约 70ms/frame (~12 FPS) 的推理速度,方便跨平台部署。
无缝支持原生gradio应用程序,速度提高数倍,并支持多面和动物模型同时推理。
如果您觉得这个项目有用,请给它一个star✨✨
变更日志
2024/08/11:优化了paste_back速度并修复了一些错误。
使用torchgeometry + cuda优化paste_back函数,显着提高速度。示例: python run.py --src_image assets/examples/source/s39.jpg --dri_video assets/examples/driving/d0.mp4 --cfg configs/trt_infer.yaml --paste_back --animal
修复了 Xpose 操作导致某些 GPU 出现错误和其他错误的问题。请使用最新的docker镜像: docker pull shaoguo/faster_liveportrait:v3
2024/08/07:新增对动物模型和MediaPipe模型的支持,不再需要担心版权问题。
对于 Web 使用: python app.py --mode trt --mp
或python app.py --mode onnx --mp
对于本地网络摄像头: python run.py --src_image assets/examples/source/s12.jpg --dri_video 0 --cfg configs/trt_mp_infer.yaml
下载动物ONNX文件: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
,然后将其转换为TRT格式。
更新 Docker 镜像: docker pull shaoguo/faster_liveportrait:v3
。使用动物模型: python run.py --src_image assets/examples/source/s39.jpg --dri_video 0 --cfg configs/trt_infer.yaml --realtime --animal
Windows用户可以从发布页面下载最新的Windows一体机包,然后解压并使用。
简单使用教程:
添加了对动物模型的支持。
使用MediaPipe模型替代InsightFace
2024/07/24: Windows集成包,无需安装,一键运行,支持TensorRT和OnnxruntimeGPU。感谢@zhanghongyong123456 对本期的贡献。
下载CUDA 12.2,双击exe,按照默认设置一步步安装。
下载 cuDNN zip 文件,解压,然后将 cuDNN 文件夹中的 lib、bin 和 include 文件夹复制到 CUDA 12.2 文件夹(默认为 C:Program FilesNVIDIA GPU Compute ToolkitCUDAv12.2)
[可选]如果您的Windows计算机上已经安装了CUDA和cuDNN,请跳过此步骤。我只在 CUDA 12.2 上验证过。如果您尚未安装CUDA或遇到CUDA相关错误,则需要按照以下步骤操作:
从发布页面下载免安装的Windows集成包并解压。
进入FasterLivePortrait-windows
,双击all_onnx2trt.bat
转换onnx文件,需要一些时间。
Web 演示:双击app.bat
,打开网页: http://localhost:9870/
对于实时相机操作,双击camera.bat
,按q
停止。如果要更改目标图像,请在命令行中运行: camera.bat assets/examples/source/s9.jpg
2024/07/18:添加了 macOS 支持(不需要 Docker,Python 就足够了)。 M1/M2 芯片速度更快,但仍然很慢?
安装ffmpeg: brew install ffmpeg
设置Python 3.10虚拟环境。推荐使用 miniforge: conda create -n flip python=3.10 && conda activate flip
安装要求: pip install -r requirements_macos.txt
下载 ONNX 文件: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
测试: python app.py --mode onnx
2024/07/17:增加了对Docker环境的支持,提供可运行的镜像。
选项1:Docker(推荐)。提供了docker镜像,无需手动安装onnxruntime-gpu和TensorRT。
docker run -it --gpus=all --名称 fast_liveportrait -v $FasterLivePortrait_ROOT:/root/FasterLivePortrait --重新启动=始终 -p 9870:9870 烧果/faster_liveportrait:v3 /bin/bash
根据你的系统安装Docker
下载镜像: docker pull shaoguo/faster_liveportrait:v3
执行命令,将$FasterLivePortrait_ROOT
替换为您下载 FasterLivePortrait 的本地目录:
选项 2:创建新的 Python 虚拟环境并手动安装必要的 Python 包。
首先,安装ffmpeg
运行pip install -r requirements.txt
然后按照以下教程安装 onnxruntime-gpu 或 TensorRT。请注意,这仅在 Linux 系统上进行了测试。
首先,下载转换后的 onnx 模型文件: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
。
(在 Docker 中被忽略)如果你想使用 onnxruntime cpu 推理,只需pip install onnxruntime
。但是,cpu 推理速度极慢,不推荐使用。最新的onnxruntime-gpu仍然不支持grid_sample cuda,但我找到了支持它的分支。请按照以下步骤从源安装onnxruntime-gpu
:
./build.sh --并行 --build_shared_lib --use_cuda --cuda_版本 11.8 --cuda_home /usr/local/cuda --cudnn_home /usr/local/cuda/ --config 发布 --build_wheel --skip_tests --cmake_extra_defines CMAKE_CUDA_ARCHITECTURES="60;70;75;80;86" --cmake_extra_defines CMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc --disable_contrib_ops --allow_running_as_root
pip install build/Linux/Release/dist/onnxruntime_gpu-1.17.0-cp310-cp310-linux_x86_64.whl
git clone https://github.com/microsoft/onnxruntime
git checkout liqun/ImageDecoder-cuda
。感谢liqun提供带有cuda实现的grid_sample!
运行以下命令进行编译,根据您的机器更改cuda_version
和CMAKE_CUDA_ARCHITECTURES
:
使用 onnxruntime 测试管道:
python run.py --src_image assets/examples/source/s10.jpg --dri_video assets/examples/driving/d14.mp4 --cfg configs/onnx_infer.yaml
(在 Docker 中被忽略)安装 TensorRT。记住TensorRT的安装路径。
(在 Docker 中被忽略)安装 grid_sample TensorRT 插件,因为模型使用需要 5D 输入的网格样本,而原生 grid_sample 运算符不支持。
git clone https://github.com/SeanWangJS/grid-sample3d-trt-plugin
将CMakeLists.txt
中的第 30 行修改为: set_target_properties(${PROJECT_NAME} PROPERTIES CUDA_ARCHITECTURES "60;70;75;80;86")
export PATH=/usr/local/cuda/bin:$PATH
mkdir build && cd build
cmake .. -DTensorRT_ROOT=$TENSORRT_HOME
,将 $TENSORRT_HOME 替换为您自己的 TensorRT 根目录。
make
,记住.so文件的地址,将scripts/onnx2trt.py
和src/models/predictor.py
中的/opt/grid-sample3d-trt-plugin/build/libgrid_sample_3d_plugin.so
替换为自己的.so文件路径
下载ONNX模型文件: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
。将所有ONNX模型转换为TensorRT,运行sh scripts/all_onnx2trt.sh
和sh scripts/all_onnx2trt_animal.sh
使用tensorrt测试管道:
蟒蛇运行.py --src_image asset/examples/source/s10.jpg --dri_video 资产/示例/驾驶/d14.mp4 --cfg 配置/trt_infer.yaml
要使用摄像头实时运行:
蟒蛇运行.py --src_image asset/examples/source/s10.jpg --dri_video 0 --cfg 配置/trt_infer.yaml - 即时的
onnxruntime: python app.py --mode onnx
张量: python app.py --mode trt
默认端口为9870,打开网页: http://localhost:9870/
关注我的shipinhao频道,持续更新我的AIGC内容。欢迎给我留言寻求合作机会。