دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

ولّد فيديوهات من مزوّدي ذكاء اصطناعي متعدّدين باستعمال عميل Async Video Gen

تعلّم كيفاش تثبّت وتستعمل Video Gen Client، وهي أداة Python غير متزامنة فيها CLI موحّد وواجهة ويب FastAPI مدمجة، باش تولّد فيديوهات عبر مزوّدي Seedance وKling وMiniMax/Hailuo وWan.

ولّد فيديوهات من مزوّدي ذكاء اصطناعي متعدّدين باستعمال Async Video Gen

شنو كيدير Video Gen Client

Video Gen Client كيوفّر عميل Python واحد خدام بشكل غير متزامن مع بزاف ديال مزوّدي توليد الفيديو: Seedance من ByteDance، وKling من Kuaishou، وMiniMax/Hailuo، وWan من Alibaba. بلا ما تخدم مع تكاملات منفصلة لكل مزوّد، تقدر تكتاشف الموديلات المتاحة، وتبعث مهام التوليد، وتشيّك على الحالة ديالها، وتهبط النتائج من خلال واجهة موحّدة لسطر الأوامر ولا تطبيق ويب.

المشروع مصمّم ككود ديال التكامل مع واجهات API ديال المزوّدين. وحيت هاد الواجهات ومعرّفات الموديلات ديالها يقدرو يتبدلو بشكل مستقل، فممكن تحتاج محوّلات المزوّدين لتحديثات مع الوقت.

المزوّدين والموديلات المدعومين

العميل كيعرض دابا العائلات التالية ديال المزوّدين ومعرّفات موديلات API ديالهم:

  • Seedance: الإصدار 2.5 كيستعمل doubao-seedance-2.5؛ والإصدار 2.0 كيستعمل doubao-seedance-2-0-260128؛ أما المستويين 2.0 Mini و2.0 Fast كيستعملو doubao-seedance-2-0-mini-260615 وdoubao-seedance-2-0-fast-260128.
  • Kling: Kling 3.0 و3.0 Omni كيستعملو kling-v3 وkling-v3-omni. ومن بين الموديلات الأخرى المدرجة كاينين kling-v2-6 وkling-v2-5-turbo وkling-v2-1-master.
  • MiniMax/Hailuo: H3 كيستعمل MiniMax-H3، بينما الإصدار 2.3 كيستعمل MiniMax-Hailuo-2.3 وMiniMax-Hailuo-2.3-Fast.
  • Wan: Wan 3.0 كيستعمل wan3.0. أما Wan 2.7 و2.6 و2.5 فكيقدمو معرّفات موديلات متخصصة فـ text-to-video أو image-to-video أو reference-to-video أو المعاينة.

ثبّت وكونفيگي العميل

  1. كلونِي المستودع:
    git clone https://github.com/letorig/video-generator-client
    cd video-generator-client
  2. صايب بيئة افتراضية:
    python -m venv .venv
  3. فعّل البيئة. فـ Windows، شغّل:
    .venv\Scripts\activate
    وفـ macOS ولا Linux، شغّل:
    source .venv/bin/activate
  4. ثبّت الباكيج مع دعم الويب:
    pip install -e ".[web]"
  5. زِد بيانات الدخول ديال المزوّدين: كوپي .env.example لـ .env، ومن بعد زِد بيانات الدخول ديال المزوّدين اللي ناوي تستعمل. الـ README ما كيفرضش مجموعة وحدة ديال بيانات الدخول، لذلك كونفيگي غير الخدمات اللي محتاجها فـ workflows ديالك.

المخرجات المولّدة كتحفظ فـ مجلد output ملي كتستعمل CLI.

استعمل واجهة سطر الأوامر

من بعد التثبيت، الأمر video-gen كيوفّر workflow الرئيسي باش تكتاشف المزوّدين، وتختار الموديلات، وتبدا مهام التوليد، وتشيّك على النتائج.

اكتاشف المزوّدين والموديلات

بدا بعرض الأوامر والمزوّدين المتاحين:

video-gen --help
video-gen providers

باش تشوف الموديلات ديال مزوّد معيّن، دوز السمية ديالو للأمر models:

video-gen models wan

ولّد فيديو

بعث طلب text-to-video فيه prompt والمزوّد والموديل والمدة:

video-gen generate wan --prompt "A snowy forest at dawn" --model 2.1 --duration 5

الأمر كيبعث المهمة عبر المزوّد اللي اخترتي وكيحفظ الناتج فـ مجلد output. استعمل قيم المزوّد والموديل اللي كيعرضهم المشروع ملي كتبني الأوامر ديالك، حيث التوفّر ديال الموديلات عند المزوّدين يقدر يتبدل.

شيّك على حالة المهمة

فـ workflows ديال التوليد غير المتزامن، تقدر تستعلم على مهمة باستعمال المزوّد ومعرّف المهمة:

video-gen status wan TASK_ID

عوّض TASK_ID بالمعرّف اللي رجعاتو عملية التوليد.

شغّل واجهة الويب

المشروع فيه واجهة ويب داخلة مباشرة فـ باكيج Python. ما كاين لا npm لا Node.js لا خطوة منفصلة لبناء الواجهة الأمامية. FastAPI كيسير واجهة HTML وكيعرّض نقاط نهاية JSON لاكتشاف المزوّدين، وتوليد الفيديو، وتتبع المهام، وتحميل ملفات MP4.

شغّل السيرفر بالـ host والـ port الافتراضيين:

video-gen serve

تقدر تحدد الـ host والـ port بشكل صريح:

video-gen serve --host 127.0.0.1 --port 8000

باش تشغّل سيرفر مع تفعيل reload، استعمل:

video-gen serve --host 0.0.0.0 --port 9000 --reload

إمكانيات واجهة الويب

الواجهة كتدعم اختيار المزوّد والموديل، ومدخلات text-to-video وimage-to-video، وnegative prompts، والمدة، ونسبة الأبعاد، والتحكم فـ الدقة. وكتوفّر حتى التتبع المباشر لحالة المهمة، ومعاينة الفيديو، وتحميل MP4، وتاريخ المهام المحفوظ فالذاكرة لجلسة السيرفر الحالية.

نصائح عملية للـ workflow

  • عاين قبل ما تولّد: شغّل video-gen providers وvideo-gen models PROVIDER قبل ما تختار المزوّد ولا الموديل.
  • خلي بيانات الدخول محدودة: زِد غير بيانات الدخول ديال المزوّد اللي محتاج فـ workflow الحالي ديالك لملف .env.
  • تبع المهام بشكل غير متزامن: تقدر تراقب التوليد باستعمال الأمر status والتتبع المباشر فالواجهة.
  • اختار الواجهة اللي مناسبة للـ workflow ديالك: CLI مزيانة للسكريبتات والخدمات اللي خدامة من التيرمينال، بينما واجهة الويب كتوفّر تحكمات تفاعلية ومعاينات.
  • توقّع صيانة التكامل: واجهات API ديال المزوّدين ومعرّفات الموديلات مستقلة على هاد SDK وممكن تتبدل، لذلك تأكد من المحوّلات وكاتالوگ الموديلات ملي شي مزوّد يحدّث الخدمة ديالو.

بنية المشروع

المستودع كيفصل بين العميل، وواجهة سطر الأوامر، وسيرفر الويب، وكاتالوگ الموديلات، ومحوّلات المزوّدين، والأصول الثابتة ديال الويب، والأمثلة، والاختبارات، وكود الأدوات:

src/video_gen/
├── client.py
├── cli.py
├── web.py
├── catalog.py
├── static/index.html
├── providers/
└── utils/

التكوين كيتّمثّل فـ .env.example، بينما إعدادات الحزْم والتثبيت مْحدّدة فـ pyproject.toml. المستودع فيه حتى examples/ وtests/، وزايد عليهم مجلد اختياري mcp_server/.

الخلاصة

Video Gen Client كيعطي لمطوّري Python طريقة موحّدة باش يخدمو مع بزاف ديال مزوّدي توليد الفيديو. ثبّتو فبيئة افتراضية، كوّنو بيانات الاعتماد المطلوبة، اكتاشفو النماذج المدعومة، وصيفطو المهام عبر CLI ولا واجهة الويب ديال FastAPI المرفقة. فاستعمال الإنتاج، راقبو التغييرات ديال المزوّدين حيث معرّفات النماذج وسلوك واجهات API يقدرو يتبدلو بشكل مستقل على العميل.