DeepFuze هي أداة حديثة للتعلم العميق تتكامل بسلاسة مع ComfyUI لإحداث ثورة في تحويلات الوجه، ومزامنة الشفاه، وإنشاء الفيديو، واستنساخ الصوت، وتبديل الوجه، وترجمة مزامنة الشفاه. من خلال الاستفادة من الخوارزميات المتقدمة، يمكّن DeepFuze المستخدمين من الجمع بين الصوت والفيديو بواقعية لا مثيل لها، مما يضمن حركات الوجه المتزامنة تمامًا. يعد هذا الحل المبتكر مثاليًا لمنشئي المحتوى ورسامي الرسوم المتحركة والمطورين وأي شخص يسعى إلى الارتقاء بمشاريع تحرير الفيديو الخاصة به باستخدام ميزات متطورة تعتمد على الذكاء الاصطناعي.
يجب عليك تثبيت Visual Studio، فهو يعمل مع إصدار المجتمع أو VS C++ Build Tools وتحديد "Desktop Development with C++" ضمن "أعباء العمل -> Desktop & Mobile"
من ComfyUI-Manager، ابحث عن DeepFuze، وقم بتثبيت العقدة. أعد تشغيل ComfyUI، وانظر إلى نافذة المحطة الطرفية للتأكد من عدم وجود خطأ، أو قم بالتثبيت من مدير ComfyUI، وحدد "التثبيت عبر GIT URL"، وانسخ ما يلي:
https://github.com/SamKhoze/CompfyUI-DeepFuze.git
أعد تشغيل ComfyUI الخاص بك
رابط YOUTUBE تعليمات خطوة بخطوة
قم بتثبيت Nvidia CUDA Toolkit==11.8 وcuDNN (CUDA Deep Neural Network) للتعلم العميق، ويجب عليك تنزيل إصدار cuDNN 8.9.2.26 من أرشيف NVIDIA DEVELOPER cuDNN، إذا لم يكن لديك حساب مطور، فيمكنك تنزيله مباشرة من GoogleDrive . تأكد من تثبيت Cuda1 1.8 . لقد وجدت فيديو YOUTUBE هذا مفيدًا للتثبيت. إذا كان لديك إصدار مختلف من CUDA، فإليك رابط YOUTUBE الذي يرشدك حول كيفية إزالة تثبيت CUDA الخاص بك. تأكد من إنشاء مسارات في متغير البيئة الخاص بك كما هو موضح في YOUTUBE VIDEO. أعد تشغيل جهاز الكمبيوتر الخاص بك بعد إنشاء المسارات. قم بتأكيد تثبيت Cuda، والصق هذا الرمز في نافذة المحطة الطرفية الخاصة بك nvcc --version
ومن المفترض أن تحصل على استجابة مثل هذا:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0`
لا تقم بالتثبيت عبر ComfyUI-Manager، فلن يعمل، يجب عليك تثبيته يدويًا واتباع التعليمات التالية:
قم بتنشيط بيئتك الافتراضية، Conda أو Venv
هنا كيفية تثبيت واختبار PyTorch الخاص بك
تم اختبار هذه الطريقة على أجهزة Mac M1 وM3، ويجب عليك تشغيل التعليمات البرمجية أدناه على النافذة الطرفية الخاصة بك لـ Mac Metal Performance Shaders (MPS) وهو الحل المتخصص الذي تقدمه Apple لبرمجة GPU عالية الأداء على أجهزتها. من خلال التكامل الوثيق مع الإطار المعدني، توفر MPS مجموعة من التظليلات المحسنة للغاية لمهام الرسومات والحوسبة، وهو أمر مفيد بشكل خاص في تطبيقات التعلم الآلي.
انسخ وألصق الأمر أدناه في نافذتك الطرفية.
export PYTORCH_ENABLE_MPS_FALLBACK=1
يجب على مستخدمي Mac تثبيت وحدة المعالجة المركزية ONNX RUNTIME بدلاً من onnxruntime-gpu
pip install onnxruntime
يحتاج نظام التشغيل macOS إلى تثبيت dlib الأصلي.
pip install dlib
تثبيت النص إلى كلام لعقدة استنساخ الصوت
pip install TTS
انتقل إلى مجلد custom_nodes
cd custom_nodes
git clone https://github.com/SamKhoze/CompfyUI-DeepFuze.git
انتقل إلى المجلد CompfyUI-DeepFuze
وقم بتثبيت ملف requirements.txt
cd CompfyUI-DeepFuze
pip install -r requirements.txt
المتطلبات الأساسية لاستنساخ الصوت ومزامنة الشفاه
فيما يلي مستودعي ComfyUI المطلوبين لتحميل الفيديو والصوت. قم بتثبيتها في مجلد custom_nodes
الخاص بك:
استنساخ المستودعات:
cd custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
خطأ في السيرة الذاتية: إذا واجهت الخطأ "تعذر تحميل ComfyUI_windows_portableComfyUIoutputdeepfuzefaceswap_file.mp4 بالسيرة الذاتية"، فهذا يعني أنه لم يتم تثبيت onnxruntime
. لإصلاح ذلك، تأكد من تثبيت onnxruntime
لوحدة المعالجة المركزية و onnxruntime-gpu
لنظام التشغيل Windows. يجب على مستخدمي Mac ترقية OpenCV باستخدام الأمر pip install --upgrade opencv-python-headless
في بيئتهم الافتراضية. بالنسبة لمستخدمي Windows، انتقل إلى ComfyUI Manager، وانقر فوق "pip install"، ثم الصق --upgrade opencv-python-headless
، وانقر فوق "موافق"، وأعد تشغيل ComfyUI.
خطأ zlibwapi.dll مفقود: ابحث عن ملف NVIDIA zlibwapi.dll، وقم بتنزيله ونسخه في C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.8binzlibwapi.dll
إذا حصلت على خطأ أثناء تثبيت TTS، فمن المرجح أن يكون لديك إصدارات مختلفة من Python، تأكد من تثبيت الإصدار الصحيح
إذا حصلت على خطأ: ImportError: لا يمكن استيراد الاسم "get_full_repo_name" من "huggingface_hub" قم بتشغيل الرموز أدناه على جهازك الطرفي، وسوف يحل المشكلة
conda install chardet
pip install --upgrade transformers==4.39.2
إذا حصلت على أي خطأ فيما يتعلق بأي حزم، افتح ملف require.txt باستخدام أي محرر نصوص، وقم بإزالة الإصدار من مقدمة اسم الحزمة، وأعد تثبيت requirments.txt مرة أخرى
يمكنك تنزيل النماذج مباشرة من GoogleDrive ووضع النماذج في PATH ./ComfyUI/models/deepfuze/
تأكد من تنزيل كل نموذج يدويًا واحدًا تلو الآخر ووضعه، نظرًا لحجم النماذج لن يتم تنزيل بعض النماذج إذا تقوم بتنزيل المجلد الذي يقوم بإعداد المتغيرات البيئية، ثم انتقل إلى مجلد custom_nodes الخاص بك ثم git clone أو قم بتنزيل الكود يدويًا واستخراجه في مجلد custom_nodes.
لاستخدام عقدة "Openai LLM" لمربعات حوار استنساخ الصوت، تحتاج إلى مفتاح OpenAI API. يمكنك الحصول على هذا المفتاح وإعداده باتباع الإرشادات الواردة في دليل البدء السريع لمطور OpenAI. يرجى ملاحظة أن العقدة "Openai LLM" لا تحفظ مفتاح API الخاص بك. في كل مرة تغلق فيها العقدة، ستحتاج إلى نسخ مفتاح واجهة برمجة التطبيقات (API) الخاص بك ولصقه يدويًا. يمكنك أيضًا إضافة مفتاح واجهة برمجة التطبيقات (API) كمتغير بيئة باستخدام الأوامر التالية: لنظام التشغيل Windows: setx OPENAI_API_KEY "your-api-key-here"
، ولنظام التشغيل Mac: export OPENAI_API_KEY='your-api-key-here'
. في المرة التالية التي تحتاج فيها إلى نسخ ولصق مفتاح API الخاص بك في LLM Node، يمكنك كتابة الأمر التالي في جهازك الطرفي: echo $OPENAI_API_KEY
، وسوف يطبع مفتاح API الخاص بك، مما يسمح لك بنسخه ولصقه في Openai LLM الخاص بك. العقدة.
تقوم هذه العقدة بإنشاء فيديو مزامنة الشفاه من ملفات الفيديو والصور والصوت. للحصول على جودة أعلى، قم بتصدير مخرجات IMAGE كمجموعة صور بدلاً من مقطع فيديو مدمج، ويمكنك الحصول على حجم صورة بجودة تصل إلى 4K. هام: يجب عليك تحميل الصوت باستخدام عقدة "VHS تحميل الصوت" من عقدة VideoHelperSuit.
أنواع الإدخال:
images
: صور الإطار المستخرجة كموترات PyTorch.audio
: مثيل للبيانات الصوتية المحملة.mata_batch
: قم بتحميل أرقام الدُفعات عبر عقدة Meta Batch Manager.أنواع المخرجات:
IMAGES
: صور الإطار المستخرجة كموترات PyTorch.frame_count
: عدد إطارات الإخراج int.audio
: إخراج الصوت.video_info
: إخراج البيانات الوصفية للفيديو.مميزات برنامج DeepFuze Lipsync:
enhancer
: يمكنك إضافة محسن للوجه لتحسين جودة الفيديو الذي تم إنشاؤه عبر شبكة استعادة الوجه.frame_enhancer
: يمكنك إضافة تحسين لإطار الفيديو بالكامل.face_mask_padding_left
: الحشو على يسار الوجه أثناء مزامنة الشفاه.face_mask_padding_right
: الحشو على يمين الوجه أثناء مزامنة الشفاه.face_mask_padding_bottom
: حشوة أسفل الوجه أثناء مزامنة الشفاه.face_mask_padding_top
: الحشو إلى أعلى الوجه أثناء مزامنة الشفاه.device
: [وحدة المعالجة المركزية، وحدة معالجة الرسومات]frame_rate
: اضبط معدل الإطارات.loop_count
: عدد المرات الإضافية التي يجب أن يتكرر فيها الفيديو.filename_prefix
: تسمية البادئة للفيديو الناتج.pingpong
: يؤدي إلى تشغيل الإدخال في الاتجاه المعاكس لإنشاء حلقة نظيفة.save_output
: حفظ الإخراج في مجلد الإخراج. تقوم هذه العقدة بمبادلة وتحسين واستعادة الوجوه من الفيديو والصورة. أو قم بتصدير مخرجات IMAGE بجودة أعلى كمجموعة صور بدلاً من مقطع فيديو مدمج، ويمكنك الحصول على حجم صورة بجودة تصل إلى 4K.
أنواع الإدخال:
source_images
: صورة الإطار المستخرجة كموترات PyTorch للتبديل.target_images
: صور الإطار المستخرجة كموترات PyTorch لإدخال الفيديو/الصورة المصدر.mata_batch
: قم بتحميل أرقام الدُفعات عبر عقدة Meta Batch Manager.أنواع المخرجات:
IMAGES
: صور الإطار المستخرجة كموترات PyTorch.frame_count
: عدد إطارات الإخراج int.audio
: إخراج الصوت.video_info
: إخراج البيانات الوصفية للفيديو.ميزات DeepFuze FaceSwap:
enhancer
: يمكنك إضافة مُحسِّن للوجه لتحسين جودة الفيديو الذي تم إنشاؤه عبر شبكة استعادة الوجه.faceswap_model
: يمكنك تحديد نماذج مختلفة للتبديل.frame_enhancer
: يمكنك إضافة تحسين لإطار الفيديو بالكامل.face_detector_model
: يمكنك تحديد نماذج مختلفة لاكتشاف الوجه.face_mask_padding_left
: الحشو إلى اليسار على الوجه أثناء مزامنة الشفاه.face_mask_padding_right
: الحشو إلى اليمين على الوجه أثناء مزامنة الشفاه.face_mask_padding_bottom
: الحشو إلى أسفل الوجه أثناء مزامنة الشفاه.face_mask_padding_top
: الحشو إلى الأعلى على الوجه أثناء مزامنة الشفاه.device
: [وحدة المعالجة المركزية، وحدة معالجة الرسومات]frame_rate
: اضبط معدل الإطارات.loop_count
: عدد المرات الإضافية التي يجب أن يتكرر فيها الفيديو.filename_prefix
: تسمية البادئة للفيديو الناتج.pingpong
: يؤدي إلى تشغيل الإدخال في الاتجاه المعاكس لإنشاء حلقة نظيفة.save_output
: حفظ الإخراج في مجلد الإخراج.جدول ملخص نموذج كاشف الوجه (يوفر RetinaFace جودة أعلى من خلال دمج المعلومات السياقية حول الوجه، مما يساعد في اكتشاف الوجوه في ظل ظروف مختلفة، مثل الإطباق والمقاييس المختلفة والوضعيات.
ميزة | YOLOFace | RetinaFace | سكرفد | يو نت |
---|---|---|---|---|
بنيان | طلقة واحدة YOLO | شبكة RetinaNet أحادية المرحلة | تتالي مرحلة واحدة | مخصص خفيف الوزن |
سرعة | سريع جدًا | معتدل | سريع | سريع جدًا |
دقة | جيد | عالية جدًا | عالي | جيد |
المتانة | معتدل | عالية جدًا | عالي | معتدل |
الكفاءة الحسابية | عالي | معتدل | عالي | عالية جدًا |
حالات الاستخدام | في الوقت الحقيقي، مشاهد أقل تعقيدا | احتياجات عالية الدقة وقوية | الأجهزة المحمولة/الحافة المتوازنة | متنقل، مضمن، في الوقت الحقيقي |
الايجابيات | سرعة | الدقة والمتانة | الكفاءة والدقة | خفيفة الوزن وفعالة |
سلبيات | دقة المقايضة | ثقيلة حسابيا | ليس الأسرع | أقل قوة في المشاهد المعقدة |
اللغات:
يدعم استنساخ الصوت DeepFuze_TTS 17 لغة: الإنجليزية (en)، الإسبانية (es)، الفرنسية (fr)، الألمانية (de)، الإيطالية (it)، البرتغالية (pt)، البولندية (pl)، التركية (tr)، الروسية (ru) )، الهولندية (nl)، التشيكية (cs)، العربية (ar)، الصينية (zh-cn)، اليابانية (ja)، المجرية (hu)، الكورية (ko) الهندية (hi).
تُستخدم هذه العقدة لاستنساخ أي صوت من الإدخال المكتوب. يجب أن يتراوح طول الملف الصوتي ما بين 10 إلى 15 ثانية للحصول على نتائج أفضل ويجب ألا يحتوي على الكثير من الضوضاء. لتجنب أي خطأ في معدل العينة، قم بتحميل صوت MP3 واعمل فقط مع عقدة AudioScheduler. نحن نعمل على تطوير عقدة المحول لحل هذه المشكلة.
أنواع الإدخال:
audio
: مثيل للبيانات الصوتية المحملة.text
: نص لإنشاء الصوت الصوتي المستنسخ.أنواع المخرجات:
audio
: مثيل للبيانات الصوتية المحملة.يتم استخدام عقدة "LLM Integration" لدمج LLM (نموذج اللغة) في عملية استنساخ الصوت. يمكنك إدخال الحوار الخاص بك وتكوين المعلمات، وسيتم استخدام النصوص التي تم إنشاؤها بواسطة الذكاء الاصطناعي لاستنساخ الصوت. علاوة على ذلك، يمكنك استخدام هذه العقدة بدلاً من ChatGPT لإنتاج نص من LLM أو لطرح أي أسئلة بنفس الطريقة التي تستخدمها مع ChatGPT. يمكنك عرض مخرجات DeepFuze_LLM عن طريق توصيل LLM_RESPONSE بعقدة "عرض أي" من rgthree-comfy، كما يمكن استخدام هذه العقدة للأجيال السريعة وأي نصوص إدخال للعقد.
أنواع الإدخال:
user_query
: اكتب مربعات الحوار الخاصة بك.أنواع المخرجات:
LLM_RESPONSE
: مخرجات النصوص التي تم إنشاؤها بواسطة الذكاء الاصطناعي.مميزات DeepFuze Openai LLM:
model_name
: يمكنك الاختيار من بين نماذج openai المتاحة.api_key
: أضف مفتاح API الخاص بك. (لن يتم حفظ مفتاح API الخاص بك، وفي كل مرة تستخدم فيها هذه العقدة، يجب عليك إدخاله يدويًا.max_tokens
: هي معلمة تحدد عدد الرموز المميزة في استجابة النموذج في واجهات برمجة تطبيقات OpenAI GPT. يتم استخدامه في الطلبات المقدمة من خلال GPT لجداول البيانات والمستندات، وفي فئة ChatOpenAI(). القيمة الافتراضية لـ max_tokens هي 4096 رمزًا، وهو ما يعادل تقريبًا 3000 كلمة.temperature
: تتحكم في مستوى العشوائية والإبداع في استجاباتها. إنها معلمة مفرطة في نماذج اللغات الكبيرة (LLMs) تعمل على موازنة الإبداع والتماسك في النص الذي تم إنشاؤه. يكون إعداد درجة الحرارة دائمًا رقمًا بين 0 و1، والإعداد الافتراضي هو 0.7: 0: ينتج استجابات واضحة جدًا وتقريبًا حتمية 1: يؤدي إلى استجابات متباينة بشكل كبير 0.7: درجة الحرارة الافتراضية لـ ChatGPT.timeout
: قم بإعداد الوقت إذا استغرق الطلب وقتًا طويلاً حتى يكتمل وقام الخادم بإغلاق الاتصال.أنواع الإدخال:
image
: توفر معاينة لحشوة قناع الوجه.ميزات الحشو DeepFuze:
face_mask_padding_left
: الحشو إلى اليسار على الوجه أثناء مزامنة الشفاه.face_mask_padding_right
: الحشو إلى اليمين على الوجه أثناء مزامنة الشفاه.face_mask_padding_bottom
: الحشو إلى أسفل الوجه أثناء مزامنة الشفاه.face_mask_padding_top
: الحشو إلى الأعلى على الوجه أثناء مزامنة الشفاه.يتم استخدام هذه العقدة لحفظ مخرجات عقدة "الاستنساخ الصوتي". بالإضافة إلى ذلك، يمكنك قطع الصوت وتشغيله مرة أخرى.
أنواع الإدخال:
audio
: مثيل للبيانات الصوتية المحملة.ميزات الحشو DeepFuze:
METADATA
: بيانات تعريف ستينج.start_time
: تقليص وقت البدء.end_time
: تقليم وقت النهاية.playback window
: توفر خيارات سرعة التشغيل والحفظ والتشغيل.استنساخ الصوت + جيل Lipsync
استنساخ الصوت + جيل Lipsync + FaceSwap
ComfyUI-DeepFuze/ ├── __init__.py ├── __pycache__/ │ ├── __init__.cpython-311.pyc │ ├── audio_playback.cpython-311.pyc │ ├── llm_node.cpython-311.pyc │ ├── nodes.cpython-311.pyc │ └── utils.cpython-311.pyc ├── audio_playback.py ├── deepfuze/ │ ├── __init__.py │ ├── audio.py │ ├── choices.py │ ├── common_helper.py │ ├── config.py │ ├── content_analyser.py │ ├── core.py │ ├── download.py │ ├── execution.py │ ├── face_analyser.py │ ├── face_helper.py │ ├── face_masker.py │ ├── face_store.py │ ├── ffmpeg.py │ ├── filesystem.py │ ├── globals.py │ ├── installer.py │ ├── logger.py │ ├── memory.py │ ├── metadata.py │ ├── normalizer.py │ ├── process_manager.py ├── requirements.txt ├── images/ ├── install.py ├── LICENSE.txt ├── llm_node.py ├── mypy.ini ├── nodes.py ├── README.md ├── requirements.txt ├── run.py ├── tests/ │ ├── __init__.py │ ├── test_audio.py │ ├── test_cli_face_debugger.py │ ├── test_cli_face_enhancer.py │ ├── test_cli_face_swapper.py │ ├── test_cli_frame_colorizer.py │ ├── test_cli_frame_enhancer.py │ ├── test_cli_lip_syncer.py │ ├── test_common_helper.py │ ├── test_config.py │ ├── test_download.py │ ├── test_execution.py │ ├── test_face_analyser.py │ ├── test_ffmpeg.py │ ├── test_filesystem.py │ ├── test_memory.py │ ├── test_normalizer.py │ ├── test_process_manager.py │ ├── test_vision.py │ └── test_wording.py ├── tts_generation.py └── utils.py
from deepfuze import DeepFuze
# Initialize the DeepFuze instance
deepfuze = DeepFuze ()
# Load video and audio files
deepfuze . load_video ( 'path/to/video.mp4' )
deepfuze . load_audio ( 'path/to/audio.mp3' )
deepfuze . load_checkpoint ( 'path/to/checkpoint_path' )
# Set parameters (optional)
deepfuze . set_parameters ( sync_level = 5 , transform_intensity = 3 )
# Generate lipsynced video
output_path = deepfuze . generate ( output = 'path/to/output.mp4' )
print ( f"Lipsynced video saved at { output_path } " )
لم يكن من الممكن إكمال هذا المستودع بدون مساهمات FaceFusion وInsightFace وSadTalker وFacexlib وGFPGAN وGPEN وReal-ESRGAN وTTS وSSD وwav2lip،
تم تطوير كود DeepFuze بواسطة الدكتور سام خوز وفريقه. لا تتردد في استخدام كود DeepFuze للأغراض الشخصية والبحثية والأكاديمية والتجارية. يمكنك إنشاء مقاطع فيديو باستخدام هذه الأداة، ولكن يرجى التأكد من اتباع القوانين المحلية واستخدامها بطريقة مسؤولة. لن يكون المطورون مسؤولين عن أي سوء استخدام للأداة من قبل المستخدمين.