سير عمل InfiniteTalk في ComfyUI وواجهة API: أفاتار بمزامنة الشفاه مجانًا

InfiniteTalk نموذج مفتوح المصدر يحوّل صورة واحدة وملف صوتي إلى فيديو متحدث بشفاه وحركة رأس وجسم متزامنة. يعرض هذا المقال سير عمل ComfyUI والإعدادات المهمة، واستدعاءات API المستضافة وذاتية الاستضافة، وبديلًا يعمل في المتصفح لتحقيق نتائج سريعة.

سير عمل InfiniteTalk في ComfyUI وواجهة API: أفاتار بمزامنة الشفاه مجانًا
Cristian Da Conceicao
مؤسس Picasso IA

لديك صورة، وتسجيل صوتي، ولا يوجد فريق تصوير. يحوّل InfiniteTalk هذين الملفين إلى فيديو يتحدث فيه الشخص الموجود في الصورة فعليًا، مع تحرك الشفاه والرأس والكتفين بتزامن مع الصوت. أوزان النموذج مفتوحة بموجب ترخيص Apache 2.0، ويمكن تشغيلها عبر ComfyUI على وحدة GPU الخاصة بك، ويمكن لواجهة API مستضافة تشغيلها عندما لا تملك وحدة GPU. يستعرض هذا المقال المسارين معًا: سير عمل ComfyUI خطوة بخطوة، والإعدادات التي تغيّر النتيجة، واستدعاءات API، وبديلًا بلا تثبيت على PicassoIA لأيام لا يستحق فيها الإعداد المحلي هذا الجهد.

ماذا يفعل InfiniteTalk فعليًا

InfiniteTalk من فريق MeiGen-AI. نُشرت الشيفرة والأوزان والتقرير التقني للعامة في 19 أغسطس 2025. بُني النموذج على checkpoint بحجم 14B بدقة 480P من نموذج Wan 2.1 لتحويل الصورة إلى فيديو، ويقرأ الصوت عبر مشفّر wav2vec2. يدعم الإخراج بدقة 480p و720p معًا.

للنموذج جذور سابقة. نموذج MultiTalk السابق للفريق نفسه كان يعالج فيديوهات المحادثة المدفوعة بالصوت، ولا يزال غلاف ComfyUI يدرجه بجانب InfiniteTalk. ما يضيفه InfiniteTalk هو توليد بلا حدود للطول، وحركة الجسم كاملًا فوق حركة الشفاه. يشير قسم الأخبار في المستودع الآن أيضًا إلى عائلة خلفاء تُسمى LongCat Video Avatar، فتحقق منها عندما تريد أحدث الأوزان من الفريق نفسه.

شاب يشاهد إطارًا متوقفًا من فيديو لامرأة في منتصف جملة على شاشة مطفأة المظهر

الدبلجة بالإطارات المتفرقة بكلمات بسيطة

تعيد معظم أدوات مزامنة الشفاه القديمة رسم رقعة حول الفم وتترك بقية الوجه ثابتًا. فتبدو النتيجة كقناع يتحدث. يستخدم InfiniteTalk ما يسميه مؤلفوه دبلجة الفيديو بالإطارات المتفرقة: يحتفظ بعدد قليل من إطارات المرجع للحفاظ على ثبات الهوية، ثم يولّد ما بينها بحيث تتبع الشفاه، وحركات الرأس، والوضعية، وتعابير الوجه الصوت. تُبنى المقاطع الطويلة من نوافذ سياق متسلسلة، بنافذة افتراضية من 81 إطارًا، وهذا ما يسمح لفيديو متحدث بأن يتجاوز بكثير المدة المعتادة البالغة خمس ثوانٍ.

وضع الصورة مقابل وضع الفيديو

الوضعما تقدمهالأفضل لـالمدة
تحويل الصورة إلى فيديوصورة واحدة وملف صوتيالمعلّقون، والأفاتار، والمغنون، والمتحدثون باسم جهاتحتى دقيقة تقريبًا قبل أن تتراجع الجودة
تحويل الفيديو إلى فيديومقطع موجود وصوت جديدالدبلجة، واستبدال الصوت، والحفاظ على حركة الكاميرابلا حدود من حيث المبدأ

💡 ابدأ بوضع الصورة. يحتاج إلى أقل عدد من المدخلات، ويفشل بأكثر الطرق وضوحًا، فترى ما تفعله إعدادات الصوت قبل إدخال فيديو مصدر في المعادلة.

هل هو مجاني حقًا؟

الترخيص مجاني. الحوسبة ليست كذلك. هذا الفرق هو ما يحدد المسار الذي ينبغي أن تختاره.

المسارما يكلّفما تتنازل عنه
ComfyUI محليًاوحدة GPU الخاصة بك والكهرباءوقت الإعداد، وحدود VRAM، وعمليات تصيير بطيئة على البطاقات الصغيرة
API مستضافةتُحتسب بالثانية من الإخراج. وقت كتابة هذا المقال، تدرج WaveSpeed نحو 0.03 دولار للثانية بدقة 480p و0.06 دولار للثانية بدقة 720p، حتى 10 دقائق لكل مهمةإنفاق مستمر، وتحكم أقل في المخطط
نموذج متصفح على PicassoIAتجربة مجانية على عدة نماذج لمزامنة الشفاهنموذج مختلف، ومقاطع أقصر

المجاني له ثمن زمني أيضًا. يستهلك التثبيت الأول محليًا جزءًا من فترة العصر في تثبيت العقد والتنزيلات، وملفات النموذج وحدها تبلغ عشرات الجيجابايت. قيّم المسار بحسب عدد المقاطع التي تخطط لإنتاجها، لا بحسب سعره المعلن.

نظرة واقعية على العتاد

يعتمد InfiniteTalk على نموذج فيديو بحجم 14 مليار معامل، لذلك تكون الذاكرة أول حاجز تصطدم به. يتضمن المستودع الرسمي وضع VRAM منخفضًا (--num_persistent_param_in_dit 0) يُبقي الأوزان خارج وحدة GPU بين الخطوات، إضافة إلى checkpoint مكمّم بصيغة FP8. وفي ComfyUI تؤدي ملفات FP8 المحجّمة من Kijai الغرض نفسه. لن أذكر رقمًا لاستهلاك VRAM، لأنه يتغير مع الدقة وعدد الإطارات والتكميم. اختبر بمقطع 480p مدته 10 ثوانٍ قبل أن تخصص مساءً كاملًا لتصيير 720p.

لقطة مقربة لبطاقة رسومات مثبتة في هيكل حاسوب مفتوح

بناء سير عمل ComfyUI

يأتي دعم ComfyUI من خلال حزمة ComfyUI-WanVideoWrapper من Kijai. يعرض قالب InfiniteTalk الموسيقي على comfy.org ثلاث حزم من العقد: WanVideoWrapper وaudio-separation-nodes-comfyui وcomfyui-kjnodes. ومعًا تتيح هذه الحزم تحميل النموذج، وفصل الصوت عن الموسيقى، وتتولّى إدارة مدخلات الصور ومقاطع الفيديو ومخرجاتها.

تثبيت العقد المخصصة

  1. افتح طرفية في ComfyUI/custom_nodes واستنسخ الغلاف.
  2. ثبّت متطلباته باستخدام pip install -r requirements.txt (النسخ المحمولة تستخدم مفسّر python_embeded المرفق بدلًا من ذلك).
  3. أضف حزمتي فصل الصوت وkjnodes عبر ComfyUI Manager.
  4. أعد تشغيل ComfyUI ليتم تسجيل العقد الجديدة.
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt

منظر من أعلى لمكتب عليه حاسوب محمول وقرص SSD وقائمة إعداد مكتوبة بخط اليد

تنزيل ملفات النموذج

يرتب ملف README الخاص بالغلاف النماذج في أربعة مجلدات: text_encoders، وclip_vision، وdiffusion_models، وvae. يضيف InfiniteTalk أوزانه الخاصة فوق النموذج الأساسي Wan 2.1.

الملفالمجلدملاحظات
Wan 2.1 لتحويل الصورة إلى فيديو 14Bdiffusion_modelsالنموذج الأساسي، وتوجد نسخ FP8 محجّمة
مشفّر النص UMT5text_encodersالمشفّر نفسه الذي تستخدمه سير عمل Wan 2.1
VAE الخاص بـ Wan 2.1vaeمشترك مع سير عمل Wan الأخرى
نموذج CLIP visionclip_visionيقرأ صورة المرجع
InfiniteTalk Single (fp16، نحو 5.1 جيجابايت)diffusion_modelsمتحدث واحد
InfiniteTalk Multi (fp16، نحو 5.1 جيجابايت)diffusion_modelsمتحدثان

يوجد ملفا InfiniteTalk في مجلد InfiniteTalk من مستودع WanVideo_comfy التابع لـ Kijai على Hugging Face. إذا بقيت قائمة المحمّل فارغة بعد نسخ الملف، فأعد تحميل ComfyUI وتحقق من المجلد مرة أخرى.

توصيل المخطط

تتغير أسماء العقد بين إصدارات الغلاف، لذا افتح سير العمل النموذجي من مجلد example_workflows الخاص بالغلاف بدلًا من البناء من الصفر. المنطق واحد دائمًا:

  • فرع الصورة: حمّل صورة الشخص، وغيّر حجمها إلى الدقة المستهدفة، وشفّرها باستخدام نموذج CLIP vision.
  • فرع الصوت: حمّل الصوت، وافصل الصوت البشري عن أي موسيقى، ومرره عبر مشفّر wav2vec2 للحصول على تضمينات الصوت.
  • فرع النموذج: حمّل النموذج الأساسي Wan 2.1، وأضف أوزان InfiniteTalk كنموذج إضافي، وأضف LoRA للسرعة إن أردت.
  • أداة أخذ العينات: مرّر تضمينات الصورة وتضمينات النص وتضمينات الصوت إلى أداة أخذ العينات، ثم فك الترميز عبر VAE.
  • الإخراج: ادمج الإطارات مع الصوت الأصلي في ملف MP4.

💡 غيّر الحجم قبل أخذ العينات. الصورة الشخصية التي لا تطابق نسبة العرض إلى الارتفاع المستهدفة تُمط أو تُقص بطرق تبدو كمزامنة شفاه سيئة، لكنها في الحقيقة مدخل سيئ.

تجهيز الصوت والصورة الشخصية

المخطط نصف النتيجة فقط. الملفان المدخلان يحددان الباقي.

صوت يتزامن بنظافة

الصوت البشري وحده هو المدخل الأكثر أمانًا. فالموسيقى الخلفية تحت الصوت تُربك أشكال الفم، ولهذا يتضمن قالب ComfyUI عُقد فصل الصوت التي تستخرج الغناء من المزيج. اقطع الصمت الزائد من البداية، ووازن مستوى الصوت، وصدّره بصيغة WAV كلما أمكن.

لا يوجد تسجيل؟ ولّد الصوت بدلًا منه. يحوّل Speech 2.8 HD وElevenLabs v3 النص إلى تعليق صوتي نظيف يمكنك إدخاله مباشرة في فرع الصوت.

تفقد الصورة جودتها بعد نحو دقيقة، لذا اكتب للمشاهد لا للمونولوجات. قسّم النص الطويل إلى أجزاء بطول 20 إلى 40 ثانية، وصيّر كل جزء من الصورة الشخصية نفسها وبقيمة البذرة نفسها، ثم ادمجها في أي محرر فيديو. القطع عند توقف يُخفي الوصلة، والصورة الشخصية المكررة تحافظ على ثبات الهوية من مشهد إلى آخر.

يدان تديران مقبضًا على واجهة صوتية بجانب ميكروفون مكثّف

صورة مصدر تنجح

الصورة الشخصية هي الإطار الأول لأفاتارك، لذا ينتقل كل عيب عبر الفيديو كله.

  • واجه الكاميرا، مع فم مرتاح أو مغلق برفق.
  • أظهر الكتفين، لأن InfiniteTalk يحرّك الوضعية أيضًا.
  • استخدم إضاءة متساوية بلا ظل حاد يقطع الشفاه.
  • أبعد اليدين والميكروفونات والشعر عن الفم.

لا توجد صورة مناسبة؟ أنشئ واحدة باستخدام Seedream 4.5 واطلب تعبيرًا محايدًا، ومواجهة للكاميرا، وضوءًا ناعمًا من نافذة.

امرأة في الخمسينات من عمرها ترتدي سترة زرقاء داكنة تواجه الكاميرا بتعبير محايد

الإعدادات التي تغيّر النتيجة

يقوم مقياسان بمعظم العمل: عدد خطوات أخذ العينات ومقياس CFG للصوت. كل شيء آخر ثانوي حتى يعملا بشكل صحيح.

الخطوات وCFG الصوت

تستخدم الإعدادات الافتراضية الرسمية 40 خطوة لأخذ العينات. أما CFG للصوت، فيوصي المستودع بقيمة بين 3 و5 لمزامنة شفاه جيدة. عمليًا، القيمة الأعلى تدفع الفم إلى اتباع الصوت بصرامة أكبر، والدفع بها بعيدًا جدًا يجعل الوجه متصلبًا.

الإعدادالقيمة الابتدائيةوظيفته
خطوات أخذ العينات40التفاصيل والاستقرار، وتصيير أبطأ
CFG الصوتمن 3 إلى 5قوة الرابط بين الصوت والفم
الدقة480p أولًا، و720p للنسخ النهائيةالحدة مقابل زمن التصيير والذاكرة
البذرةثابتة أثناء الاختبارتتيح لك تغيير إعداد واحد في كل مرة

الوضع السريع مع LoRA

أربعون خطوة على نموذج 14B بطيئة. يصف المستودع طريقتين مختصرتين: 8 خطوات مع LoRA من FusionX، أو 4 خطوات مع LoRA من lightx2v. عند استخدام LoRA للسرعة، خفّض CFG للصوت إلى نحو 2. ستفقد بعض التفاصيل الدقيقة في الجلد والشعر، لذا استخدم الوضع السريع للمسودات وللمقاطع التي ستُعرض بحجم صغير، ثم أعد تصيير أفضل نسخة بخطوات كاملة.

عندما يسير التصيير بشكل خاطئ، تشير الأعراض عادةً إلى سبب واحد:

العرَضالسبب المحتملالحل
الشفاه تنحرف عن الصوتCFG الصوت منخفض جدًا، أو موسيقى تحت الصوتارفع CFG الصوت نحو 4 وافصل الصوت البشري
وجه متصلب يشبه القناعCFG الصوت مرتفع جدًاخفّضه بنقطة واحدة وأعد التصيير بالبذرة نفسها
الوجه يتغير ببطء في مقطع طويلالوضع بالصورة يتجاوز حده البالغ نحو دقيقةقسّم النص إلى مشاهد وادمجها في محرر
خطأ نفاد الذاكرةالدقة أو نافذة الإطارات كبيرة جدًاانزل إلى 480p، أو استخدم ملفات FP8، أو فعّل إعداد VRAM المنخفض
الفم ينفتح أثناء الصمتأنفاس أو ضجيج الغرفة يُقرآن ككلامنظّف الصوت ببوابة ضوضاء قبل تحميله

💡 ثبّت البذرة وغيّر شيئًا واحدًا. صيّر الخمس ثوانٍ نفسها بدقة 480p أثناء ضبط CFG الصوت. وعندما يبدو الفم صحيحًا، ارفع الدقة.

استدعاء InfiniteTalk عبر API

تحوّل API عملية يدوية تستغرق عشر دقائق إلى استدعاء دالة. لديك خياران، بحسب من يملك وحدة GPU.

مسار API المستضافة

تستضيف WaveSpeed نموذج InfiniteTalk على POST https://api.wavespeed.ai/api/v3/wavespeed-ai/infinitetalk. يأخذ الطلب image، وaudio، وresolution (480p أو 720p)، وseed، وprompt اختياريًا، وmask_image اختياريًا. تحصل على معرّف التنبؤ، ثم تستعلم عن عنوان النتيجة كل ثانيتين تقريبًا حتى تصل الحالة إلى حالة نهائية. يُقبل صوت يصل إلى 10 دقائق لكل مهمة.

import os, time, requests

TOKEN = os.environ["WAVESPEED_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
BASE = "https://api.wavespeed.ai/api/v3"

job = requests.post(
    f"{BASE}/wavespeed-ai/infinitetalk",
    headers=HEADERS,
    json={
        "image": "https://example.com/portrait.jpg",
        "audio": "https://example.com/voice.wav",
        "resolution": "480p",
    },
).json()["data"]

while True:
    result = requests.get(f"{BASE}/predictions/{job['id']}/result", headers=HEADERS).json()["data"]
    if result["status"] not in ("created", "processing"):
        break
    time.sleep(2)

print(result["status"], result.get("outputs"))

اعتبر المقتطف نقطة بداية، وتحقق من صفحة النموذج لمعرفة المخطط الحالي قبل النشر. توقّع انتظارًا يتراوح تقريبًا بين 10 و30 ثانية لكل ثانية من الفيديو، بحسب الدقة وازدحام الطابور.

نقطة ComfyUI الخاصة بك

يعمل ComfyUI بالفعل كخادم HTTP، لذا يصبح سير عملك واجهة API لحظة تصديره. استخدم Save (API Format)، وغيّر أسماء ملفات الصورة والصوت داخل JSON، ثم أرسله إلى /prompt.

import json, time, requests

COMFY = "http://127.0.0.1:8188"
workflow = json.load(open("infinitetalk_api.json"))

prompt_id = requests.post(f"{COMFY}/prompt", json={"prompt": workflow}).json()["prompt_id"]

while True:
    history = requests.get(f"{COMFY}/history/{prompt_id}").json()
    if prompt_id in history:
        break
    time.sleep(3)

print(history[prompt_id]["outputs"])

يجب أن تكون الملفات المذكورة في سير العمل موجودة مسبقًا في مجلد input الخاص بـ ComfyUI، أو أن تُرفع إلى نقطة /upload/image أولًا. احصل على الفيديو الناتج من /view باستخدام اسم الملف المدرج في المخرجات.

منظور من زاوية منخفضة لصف من خزائن الخوادم وفني في طرفه البعيد

💡 لا تعرّض المنفذ 8188 للإنترنت المفتوح أبدًا. لا يحتوي ComfyUI على تسجيل دخول. ضعه خلف VPN أو وكيل عكسي مع مصادقة قبل أن يتمكن أي شخص من خارج شبكتك من الوصول إليه.

أين تفيد الأفاتارات فعلًا

يكسب الأفاتار المتحدث مكانه عندما يكون تسجيل شخص أمام الكاميرا بطيئًا أو مكلفًا أو مستحيل التكرار.

  • الدروس والتدريب: صورة واحدة للمدرّب ونص واحد تمنحانك وحدات فيديو متسقة، وتعديل جملة يعني إعادة التصيير لا إعادة التصوير.
  • جولات المنتجات: يمكن لأفاتار متحدث باسم جهة أن يشرح الصفحة نفسها بعدة لغات عبر تبديل الصوت.
  • مقاطع البودكاست: يتعامل نموذج Multi مع متحدثين اثنين، وهذا مناسب لمقتطفات المقابلات على وسائل التواصل الاجتماعي.
  • الموسيقى وأعمال الشخصيات: المغنون والشخصيات الرمزية والشخصيات المرسومة تعمل طالما أن الوجه ظاهر بوضوح.

معلم يسجل درسًا على حامل هاتف ذكي بجانب سبورة بيضاء

صديقان يضحكان على طاولة بودكاست مع ميكروفونات على أذرع متحركة

💡 احصل على الإذن. حرّك وجهك أنت، أو شخصية مرخّصة، أو شخص وافق على ذلك، ووسم النتيجة بأنها مولّدة بالذكاء الاصطناعي عندما يمكن أن تُخلط بتسجيل حقيقي.

تجاوز الإعداد على PicassoIA

لا تستضيف PicassoIA نموذج InfiniteTalk بنفسها. لكنها تقدم عدة نماذج تجمع بين صورة وصوت وتحقق النوع نفسه من النتيجة في تبويب متصفح، دون عُقد أو تنزيلات أو حسابات VRAM.

اختر نموذج مزامنة الشفاه

النموذجالمدخلما يجب معرفته
Omni Human 1.5صورة وصوتصوت أقل من 35 ثانية، وأمر نصي اختياري، والوضع السريع
Fabric 1.0صورة وصوتاختيار الإخراج بدقة 480p أو 720p
Wan 2.2 S2Vصورة وصوت وأمر نصييشكّل الأمر النصي الحركة والمزاج، و81 إطارًا لكل جزء افتراضيًا
Kling Avatar v2صورة وصوت (MP3 أو WAV أو M4A أو AAC)وضع Standard أو Pro، ويتعامل مع الرسوم الكرتونية والحيوانات أيضًا
P Video Avatarصورة مع نص مكتوب أو صوتك الخاصأكثر من 30 صوتًا مدمجًا، ودقة تصل إلى 1080p
Lipsync 2 Proفيديو موجود مع صوت WAVاكتشاف المتحدث النشط وخمسة أوضاع للمزامنة

الصف الأخير مهم إذا جئت من أجل الدبلجة من فيديو إلى فيديو: يعمل Lipsync 2 Pro على لقطات صوّرتها أنت بالفعل. والمسار المناسب يعتمد على المهمة:

  • اختر ComfyUI المحلي للمقاطع التي تتجاوز دقيقة، ونموذج Multi مع متحدثين اثنين، والدبلجة التي تحافظ على حركات الكاميرا الأصلية، أو التحكم الكامل في كل إعداد من إعدادات أداة أخذ العينات.
  • اختر API المستضافة عندما يحتاج تطبيقك إلى إنشاء أفاتارات عند الطلب، وتفضّل الدفع بالثانية على إبقاء وحدة GPU مشغّلة.
  • اختر نموذجًا من PicassoIA عندما تريد نتيجة خلال العشر دقائق القادمة، وعندما يكون صوتك أقل من 35 ثانية، وعندما تكون السرعة أهم من مطابقة المظهر الدقيق لنموذج InfiniteTalk.

خطوات لأول مقطع لك

  1. افتح صفحة Omni Human 1.5 على PicassoIA.
  2. ارفع صورة شخصية أمامية. الوجوه ولقطات الجسم كاملًا والشخصيات المرسومة تعمل جميعها.
  3. ارفع ملف MP3 أو WAV أقل من 35 ثانية. الصوت بالإنجليزية والإسبانية واليابانية والكورية والصينية والإندونيسية مدعوم.
  4. أضف أمرًا نصيًا اختياريًا لتوجيه حركة الكاميرا أو الإيماءات، مثل "تبتسم وتهز رأسها قليلًا".
  5. فعّل الوضع السريع للمسودات السريعة، أو اتركه معطّلًا لأفضل تفاصيل.
  6. اضبط بذرة إذا أردت إعادة إنتاج نتيجة، ثم وَلّد الفيديو وحمّله.

💡 اكتب النص أولًا، وسجّله بـ Speech 2.8 HD، واحرص على أن يبقى كل مقطع تحت حد 35 ثانية. المقاطع القصيرة المدموجة معًا تبدو أكثر طبيعية من لقطة طويلة واحدة.

أنشئ أول أفاتار لك

اختر صورة شخصية واحدة، وسجّل 20 ثانية من الصوت، وشغّل المقطع نفسه على نموذجين أو ثلاثة. مقارنة النتائج جنبًا إلى جنب تستغرق دقائق، وتخبرك بأكثر مما تخبرك به أي مواصفات. افتح Omni Human 1.5 أو Fabric 1.0 على PicassoIA، وارفع ملفيك، وشاهد صورة ثابتة تبدأ بالكلام. وإذا أردت لاحقًا خط عمل محليًا، فستعرف مسبقًا كيف يبدو المدخل الجيد.

شابة تبتسم أمام هاتفها الذكي في استوديو علوي مشرق

شارك هذا المقال

اختر لغتك

مقالات ذات صلة