Englisch | 中文
Ursprüngliches Repository: LivePortrait, vielen Dank an die Autoren für das Teilen
Neue Funktionen:
Mit TensorRT konnte LivePortrait auf der RTX 3090-GPU in Echtzeit ausgeführt werden, wobei Geschwindigkeiten von über 30 FPS erreicht wurden. Dabei handelt es sich um die Geschwindigkeit zum Rendern eines einzelnen Frames, einschließlich Vor- und Nachbearbeitung, nicht nur um die Modellinferenzgeschwindigkeit.
Implementierung der Konvertierung des LivePortrait-Modells in das Onnx-Modell, wodurch mit onnxruntime-gpu auf RTX 3090 eine Inferenzgeschwindigkeit von etwa 70 ms/Frame (~12 FPS) erreicht wurde, was die plattformübergreifende Bereitstellung erleichtert.
Nahtlose Unterstützung für die native Gradio-App mit um ein Vielfaches schnellerer Geschwindigkeit und Unterstützung für gleichzeitige Rückschlüsse auf mehrere Gesichter und Tiermodelle.
Wenn Sie dieses Projekt nützlich finden, geben Sie ihm bitte einen Stern ✨✨
Änderungsprotokoll
11.08.2024: Paste_back-Geschwindigkeit optimiert und einige Fehler behoben.
Verwendung von Torchgeometry + Cuda zur Optimierung der Paste_back-Funktion, wodurch die Geschwindigkeit erheblich verbessert wurde. Beispiel: 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
Probleme mit Xpose-Operationen behoben, die zu Fehlern auf einigen GPUs und anderen Fehlern führten. Bitte verwenden Sie das neueste Docker-Image: docker pull shaoguo/faster_liveportrait:v3
07.08.2024: Unterstützung für Tiermodelle und MediaPipe-Modelle hinzugefügt, sodass Sie sich keine Sorgen mehr über Urheberrechtsprobleme machen müssen.
Für die Webnutzung: python app.py --mode trt --mp
oder python app.py --mode onnx --mp
Für lokale Webcam: python run.py --src_image assets/examples/source/s12.jpg --dri_video 0 --cfg configs/trt_mp_infer.yaml
Laden Sie die Tier-ONNX-Datei herunter: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
und konvertieren Sie sie dann in das TRT-Format.
Aktualisieren Sie das Docker-Image: docker pull shaoguo/faster_liveportrait:v3
. Tiermodell verwenden: python run.py --src_image assets/examples/source/s39.jpg --dri_video 0 --cfg configs/trt_infer.yaml --realtime --animal
Windows-Benutzer können das neueste Windows-Komplettpaket von der Release-Seite herunterladen, es dann entpacken und verwenden.
Einfaches Tutorial zur Verwendung:
Unterstützung für Tiermodelle hinzugefügt.
Verwenden des MediaPipe-Modells als Ersatz für InsightFace
24.07.2024: Windows-Integrationspaket, keine Installation erforderlich, Ein-Klick-Ausführung, unterstützt TensorRT und OnnxruntimeGPU. Vielen Dank an @zhanghongyong123456 für ihren Beitrag in dieser Ausgabe.
Laden Sie CUDA 12.2 herunter, doppelklicken Sie auf die Exe-Datei und installieren Sie sie Schritt für Schritt anhand der Standardeinstellungen.
Laden Sie die cuDNN-Zip-Datei herunter, extrahieren Sie sie und kopieren Sie die Ordner lib, bin und include aus dem Ordner cuDNN in den Ordner CUDA 12.2 (Standard ist C:ProgrammeNVIDIA GPU Computing ToolkitCUDAv12.2).
[Optional] Wenn Sie CUDA und cuDNN bereits auf Ihrem Windows-Computer installiert haben, überspringen Sie bitte diesen Schritt. Ich habe nur CUDA 12.2 überprüft. Wenn Sie CUDA nicht installiert haben oder CUDA-bezogene Fehler auftreten, müssen Sie die folgenden Schritte ausführen:
Laden Sie das installationsfreie Windows-Integrationspaket von der Release-Seite herunter und extrahieren Sie es.
Geben Sie FasterLivePortrait-windows
ein und doppelklicken Sie auf all_onnx2trt.bat
um ONNX-Dateien zu konvertieren, was einige Zeit dauern wird.
Für eine Web-Demo: Doppelklicken Sie auf app.bat
und öffnen Sie die Webseite: http://localhost:9870/
Für den Kamerabetrieb in Echtzeit doppelklicken Sie auf camera.bat
und drücken Sie q
, um den Vorgang zu stoppen. Wenn Sie das Zielbild ändern möchten, führen Sie in der Befehlszeile Folgendes aus: camera.bat assets/examples/source/s9.jpg
18.07.2024: macOS-Unterstützung hinzugefügt (Docker ist nicht erforderlich, Python reicht aus). M1/M2-Chips sind schneller, aber immer noch ziemlich langsam?
ffmpeg installieren: brew install ffmpeg
Richten Sie eine virtuelle Python 3.10-Umgebung ein. Empfehlen Sie die Verwendung von Miniforge: conda create -n flip python=3.10 && conda activate flip
Installationsanforderungen: pip install -r requirements_macos.txt
Laden Sie ONNX-Dateien herunter: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
Test: python app.py --mode onnx
17.07.2024: Unterstützung für die Docker-Umgebung hinzugefügt, wodurch ein ausführbares Image bereitgestellt wird.
Option 1: Docker (empfohlen). Es wird ein Docker-Image bereitgestellt, um die manuelle Installation von onnxruntime-gpu und TensorRT zu vermeiden.
Docker führt -it --gpus=all aus --name schneller_liveportrait -v $FasterLivePortrait_ROOT:/root/FasterLivePortrait --restart=always -p 9870:9870 shaoguo/faster_liveportrait:v3 /bin/bash
Installieren Sie Docker entsprechend Ihrem System
Laden Sie das Bild herunter: docker pull shaoguo/faster_liveportrait:v3
Führen Sie den Befehl aus und ersetzen Sie $FasterLivePortrait_ROOT
durch das lokale Verzeichnis, in das Sie FasterLivePortrait heruntergeladen haben:
Option 2: Erstellen Sie eine neue virtuelle Python-Umgebung und installieren Sie die erforderlichen Python-Pakete manuell.
Installieren Sie zunächst ffmpeg
Führen Sie pip install -r requirements.txt
aus
Befolgen Sie dann die folgenden Tutorials, um onnxruntime-gpu oder TensorRT zu installieren. Beachten Sie, dass dies nur auf Linux-Systemen getestet wurde.
Laden Sie zunächst die konvertierten Onnx-Modelldateien herunter: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
.
(In Docker ignoriert) Wenn Sie die Onnxruntime-CPU-Inferenz verwenden möchten, pip install onnxruntime
. Allerdings ist die CPU-Inferenz extrem langsam und wird nicht empfohlen. Die neueste onnxruntime-gpu unterstützt Grid_sample cuda immer noch nicht, aber ich habe einen Zweig gefunden, der dies unterstützt. Befolgen Sie diese Schritte, um onnxruntime-gpu
von der Quelle zu installieren:
./build.sh --parallel --build_shared_lib --use_cuda --cuda_version 11.8 --cuda_home /usr/local/cuda --cudnn_home /usr/local/cuda/ --config Release --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
. Vielen Dank an liqun für die Grid_sample mit Cuda-Implementierung!
Führen Sie zum Kompilieren die folgenden Befehle aus und ändern Sie cuda_version
und CMAKE_CUDA_ARCHITECTURES
entsprechend Ihrem Computer:
Testen Sie die Pipeline mit onnxruntime:
python run.py --src_image assets/examples/source/s10.jpg --dri_video assets/examples/driving/d14.mp4 --cfg configs/onnx_infer.yaml
(In Docker ignoriert) TensorRT installieren. Merken Sie sich den Installationspfad von TensorRT.
(In Docker ignoriert) Installieren Sie das Grid_sample-TensorRT-Plugin, da das Modell ein Grid-Sample verwendet, das eine 5D-Eingabe erfordert, die vom nativen Grid_sample-Operator nicht unterstützt wird.
git clone https://github.com/SeanWangJS/grid-sample3d-trt-plugin
Ändern Sie Zeile 30 in CMakeLists.txt
in: 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
, ersetzen Sie $TENSORRT_HOME durch Ihr eigenes TensorRT-Stammverzeichnis.
make
, merken Sie sich die Adresse der .so-Datei, ersetzen Sie /opt/grid-sample3d-trt-plugin/build/libgrid_sample_3d_plugin.so
in scripts/onnx2trt.py
und src/models/predictor.py
durch Ihren eigenen .so-Dateipfad
Laden Sie ONNX-Modelldateien herunter: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
. Konvertieren Sie alle ONNX-Modelle in TensorRT, führen Sie sh scripts/all_onnx2trt.sh
und sh scripts/all_onnx2trt_animal.sh
aus
Testen Sie die Pipeline mit tensorrt:
Python run.py --src_image asset/examples/source/s10.jpg --dri_video asset/examples/driving/d14.mp4 --cfg configs/trt_infer.yaml
So laufen Sie in Echtzeit mit einer Kamera:
Python run.py --src_image asset/examples/source/s10.jpg --dri_video 0 --cfg configs/trt_infer.yaml --realtime
onnxruntime: python app.py --mode onnx
tensorrt: python app.py --mode trt
Der Standardport ist 9870. Öffnen Sie die Webseite: http://localhost:9870/
Folgen Sie meinem Shipinhao-Kanal, um fortlaufend über meine AIGC-Inhalte informiert zu werden. Für Möglichkeiten zur Zusammenarbeit können Sie mir gerne eine Nachricht senden.