영어 | 중국어
원본 저장소: LivePortrait, 공유해 주신 작성자에게 감사드립니다.
새로운 기능:
TensorRT를 사용하여 RTX 3090 GPU에서 LivePortrait를 실시간 실행하여 30FPS 이상의 속도에 도달했습니다. 이는 모델 추론 속도뿐만 아니라 전처리 및 후처리를 포함하여 단일 프레임을 렌더링하는 속도입니다.
LivePortrait 모델을 Onnx 모델로 변환하여 RTX 3090에서 onnxruntime-gpu를 사용하여 약 70ms/프레임(~12FPS)의 추론 속도를 달성하고 크로스 플랫폼 배포를 촉진했습니다.
몇 배 더 빠른 속도와 여러 얼굴 및 동물 모델에 대한 동시 추론 지원으로 기본 그라디오 앱을 완벽하게 지원합니다.
이 프로젝트가 유용하다고 생각되면 별점을 주세요 ✨✨
변경 내역
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
일부 GPU 및 기타 버그에서 오류를 일으키는 Xpose 작업 관련 문제를 수정했습니다. 최신 도커 이미지를 사용하세요: docker pull shaoguo/faster_liveportrait:v3
2024/08/07: 동물 모델 및 MediaPipe 모델에 대한 지원이 추가되었으므로 더 이상 저작권 문제를 걱정할 필요가 없습니다.
웹 사용의 경우: 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 Computing ToolkitCUDAv12.2).
[선택 사항] Windows 컴퓨터에 CUDA 및 cuDNN을 이미 설치한 경우 이 단계를 건너뛰십시오. CUDA 12.2에서만 확인했습니다. CUDA를 설치하지 않았거나 CUDA 관련 오류가 발생하는 경우 다음 단계를 따라야 합니다.
릴리스 페이지에서 설치가 필요 없는 Windows 통합 패키지를 다운로드하고 추출합니다.
FasterLivePortrait-windows
입력하고 all_onnx2trt.bat
두 번 클릭하여 onnx 파일을 변환하는데 시간이 좀 걸립니다.
웹 데모: 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(권장). nxruntime-gpu 및 TensorRT를 수동으로 설치할 필요가 없도록 Docker 이미지가 제공됩니다.
docker run -it --gpus=all --namefast_liveportrait 이름 -v $FasterLivePortrait_ROOT:/root/FasterLivePortrait --restart=항상 -p 9870:9870 shaoguo/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 --parallel --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
. Cuda 구현이 포함된 Grid_sample을 제공해 주신 liqun에게 감사드립니다!
다음 명령을 실행하여 컴퓨터에 따라 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 연산자에서 지원하지 않는 5D 입력이 필요한 그리드 샘플을 사용하므로 Grid_sample TensorRT 플러그인을 설치하십시오.
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를 사용하여 파이프라인을 테스트합니다.
파이썬 run.py --src_image 자산/예제/source/s10.jpg --dri_video 자산/예제/운전/d14.mp4 --cfg configs/trt_infer.yaml
카메라를 사용하여 실시간으로 실행하려면:
파이썬 run.py --src_image 자산/예제/source/s10.jpg --dri_video 0 --cfg configs/trt_infer.yaml --실시간
onnxruntime: python app.py --mode onnx
tensorrt: python app.py --mode trt
기본 포트는 9870입니다. 웹페이지를 엽니다: http://localhost:9870/
내 AIGC 콘텐츠에 대한 지속적인 업데이트를 보려면 내 shipinhao 채널을 팔로우하세요. 협업 기회를 원하시면 언제든지 저에게 메시지를 보내주세요.