الإنجليزية | 中文
المستودع الأصلي: LivePortrait، شكرًا للمؤلفين على المشاركة
الميزات الجديدة:
تم تحقيق تشغيل LivePortrait في الوقت الفعلي على وحدة معالجة الرسومات RTX 3090 باستخدام TensorRT، والوصول إلى سرعات تزيد عن 30 إطارًا في الثانية. هذه هي سرعة عرض إطار واحد، بما في ذلك المعالجة المسبقة واللاحقة، وليس فقط سرعة استنتاج النموذج.
تم تنفيذ تحويل نموذج LivePortrait إلى نموذج Onnx، مما حقق سرعة استدلال تبلغ حوالي 70 مللي ثانية/إطار (~12 إطارًا في الثانية) باستخدام onnxruntime-gpu على RTX 3090، مما يسهل النشر عبر الأنظمة الأساسية.
دعم سلس لتطبيق Gradio الأصلي، مع سرعة أكبر عدة مرات ودعم الاستدلال المتزامن على وجوه متعددة ونموذج الحيوان.
إذا وجدت هذا المشروع مفيدًا، فيرجى إعطائه نجمة ✨✨
سجل التغيير
2024/08/11: تحسين سرعة اللصق وإصلاح بعض الأخطاء.
تم استخدام 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 التي تسبب أخطاء في بعض وحدات معالجة الرسومات وأخطاء أخرى. الرجاء استخدام أحدث صورة لعامل الإرساء: 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 all-in-one من صفحة الإصدار، ثم فك ضغطها واستخدامها.
تعليم الاستخدام البسيط:
تمت إضافة الدعم للنماذج الحيوانية.
استخدام نموذج MediaPipe لاستبدال InsightFace
2024/07/24: حزمة تكامل Windows، لا يلزم التثبيت، التشغيل بنقرة واحدة، يدعم TensorRT وOnnxruntimeGPU. شكرًا لـ @zhanghongyong123456 على مساهمتهم في هذه القضية.
قم بتنزيل CUDA 12.2، وانقر نقرًا مزدوجًا فوق ملف exe وقم بتثبيته باتباع الإعدادات الافتراضية خطوة بخطوة.
قم بتنزيل ملف cuDNN المضغوط واستخرجه وانسخ lib وbin وقم بتضمين المجلدات من مجلد cuDNN إلى مجلد CUDA 12.2 (الإعداد الافتراضي هو C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2)
[اختياري] إذا قمت بالفعل بتثبيت CUDA وcuDNN على جهاز الكمبيوتر الذي يعمل بنظام Windows، فيرجى تخطي هذه الخطوة. لقد قمت بالتحقق فقط من 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 (مستحسن). يتم توفير صورة عامل إرساء للتخلص من الحاجة إلى تثبيت onnxruntime-gpu وTensorRT يدويًا.
تشغيل عامل الميناء -it --gpus=all --اسم أسرع_liveportrait -v $FasterLivePortrait_ROOT:/root/FasterLivePortrait --restart=always -ص 9870:9870 شاوغو/faster_liveportrait:v3 /بن/باش
قم بتثبيت Docker وفقًا لنظامك
قم بتنزيل الصورة: docker pull shaoguo/faster_liveportrait:v3
قم بتنفيذ الأمر، واستبدل $FasterLivePortrait_ROOT
بالدليل المحلي الذي قمت بتنزيل FasterLivePortrait فيه:
الخيار 2: إنشاء بيئة بايثون افتراضية جديدة وتثبيت حزم بايثون اللازمة يدويًا.
أولاً، قم بتثبيت ffmpeg
قم بتشغيل pip install -r requirements.txt
ثم اتبع البرامج التعليمية أدناه لتثبيت onnxruntime-gpu أو TensorRT. لاحظ أنه تم اختبار هذا فقط على أنظمة Linux.
أولاً، قم بتنزيل ملفات نماذج onnx المحولة: huggingface-cli download warmshao/FasterLivePortrait --local-dir ./checkpoints
.
(تم التجاهل في Docker) إذا كنت تريد استخدام استنتاج وحدة المعالجة المركزية onnxruntime، فما عليك سوى pip install onnxruntime
. ومع ذلك، فإن استنتاج وحدة المعالجة المركزية بطيء للغاية ولا ينصح به. لا يزال أحدث إصدار من onnxruntime-gpu لا يدعم Grid_sample cuda، لكنني وجدت فرعًا يدعمه. اتبع هذه الخطوات لتثبيت onnxruntime-gpu
من المصدر:
./build.sh --parallel --build_shared_lib --use_cuda --cuda_version 11.8 --cuda_home /usr/local/cuda --cudnn_home /usr/local/cuda/ --إصدار التكوين --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 على Grid_sample مع تنفيذ cuda!
قم بتشغيل الأوامر التالية لتجميع وتغيير 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
قم بتعديل السطر 30 في CMakeLists.txt
إلى: 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، واستبدل /opt/grid-sample3d-trt-plugin/build/libgrid_sample_3d_plugin.so
في scripts/onnx2trt.py
و src/models/predictor.py
بمسار ملف .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 الأصول/examples/source/s10.jpg --dri_video الأصول/الأمثلة/القيادة/d14.mp4 --cfg configs/trt_infer.yaml
للتشغيل في الوقت الفعلي باستخدام الكاميرا:
بيثون run.py --src_image الأصول/examples/source/s10.jpg --dri_فيديو 0 --cfg configs/trt_infer.yaml --في الوقت الحالى
onnxruntime: python app.py --mode onnx
Tensorrt: python app.py --mode trt
المنفذ الافتراضي هو 9870. افتح صفحة الويب: http://localhost:9870/
اتبع قناتي على shipinhao للحصول على تحديثات مستمرة لمحتوى AIGC الخاص بي. لا تتردد في مراسلتي لفرص التعاون.