อังกฤษ | 中文
พื้นที่เก็บข้อมูลดั้งเดิม: LivePortrait ขอขอบคุณผู้เขียนที่แบ่งปัน
คุณสมบัติใหม่:
ใช้งาน LivePortrait แบบเรียลไทม์บน GPU RTX 3090 โดยใช้ TensorRT ซึ่งมีความเร็วถึง 30+ FPS นี่คือความเร็วสำหรับการเรนเดอร์เฟรมเดียว รวมถึงก่อนและหลังการประมวลผล ไม่ใช่แค่ความเร็วในการอนุมานโมเดล
ดำเนินการแปลงโมเดล LivePortrait เป็นโมเดล Onnx โดยบรรลุความเร็วอนุมานประมาณ 70ms/เฟรม (~12 FPS) โดยใช้ onnxruntime-gpu บน RTX 3090 ซึ่งอำนวยความสะดวกในการปรับใช้ข้ามแพลตฟอร์ม
รองรับแอป gradio แบบเนทีฟได้อย่างราบรื่น ด้วยความเร็วที่เร็วขึ้นหลายเท่า และรองรับการอนุมานพร้อมกันบนหลายใบหน้าและ Animal Model
หากคุณพบว่าโครงการนี้มีประโยชน์ โปรดให้ดาว ✨✨
บันทึกการเปลี่ยนแปลง
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 ops ที่ทำให้เกิดข้อผิดพลาดกับ GPU บางตัวและข้อบกพร่องอื่น ๆ โปรดใช้อิมเมจนักเทียบท่าล่าสุด: docker pull shaoguo/faster_liveportrait:v3
08/08/2024: เพิ่มการรองรับสำหรับโมเดลสัตว์และโมเดล 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/2024: แพ็คเกจการรวม Windows ไม่จำเป็นต้องติดตั้ง เรียกใช้ด้วยคลิกเดียว รองรับ TensorRT และ OnnxruntimeGPU ขอขอบคุณ @zhanghongyong123456 สำหรับการมีส่วนร่วมในประเด็นนี้
ดาวน์โหลด CUDA 12.2 ดับเบิลคลิก exe และติดตั้งตามการตั้งค่าเริ่มต้นทีละขั้นตอน
ดาวน์โหลดไฟล์ zip 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
17/07/2024: เพิ่มการรองรับสภาพแวดล้อม Docker โดยให้อิมเมจที่รันได้
ตัวเลือกที่ 1: นักเทียบท่า (แนะนำ) มีอิมเมจนักเทียบท่าไว้เพื่อขจัดความจำเป็นในการติดตั้ง onnxruntime-gpu และ TensorRT ด้วยตนเอง
นักเทียบท่าทำงาน -it --gpus=all -- ตั้งชื่อให้เร็วขึ้น_livePortrait -v $FasterLivePortrait_ROOT:/root/FasterLivePortrait --รีสตาร์ท=เสมอ -หน้า 9870:9870 shaoguo/faster_liveporttle:v3 /bin/ทุบตี
ติดตั้ง 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_version 11.8.1 --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
ขอบคุณ 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 สินทรัพย์/ตัวอย่าง/แหล่งที่มา/s10.jpg --dri_video เนื้อหา/ตัวอย่าง/การขับขี่/d14.mp4 --cfg configs/trt_infer.yaml
หากต้องการทำงานแบบเรียลไทม์โดยใช้กล้อง:
หลาม run.py --src_image สินทรัพย์/ตัวอย่าง/แหล่งที่มา/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/
ติดตามช่อง shipinhao ของฉันเพื่อรับการอัปเดตอย่างต่อเนื่องเกี่ยวกับเนื้อหา AIGC ของฉัน อย่าลังเลที่จะส่งข้อความถึงฉันสำหรับโอกาสในการทำงานร่วมกัน