Skip to main content
مع اتساع استخدام الذكاء الاصطناعي، أصبحت برامج الذكاء الاصطناعي متنوعة وشائعة. لقد أصبح الذكاء الاصطناعي جزءًا متزايدًا من جوانب حياة الناس وعملهم. كما أن الصناعات التي تشملها الذكاء الاصطناعي تتزايد، بدءًا من الكتابة، إلى التعليم الطبي، وصولاً إلى الفيديوهات الآن. Luma هي منصة متخصصة في توليد الفيديوهات عالية الجودة، حيث يمكن للمستخدمين ببساطة رفع المواد، وسيتم توليد فيديوهات عالية الجودة تلقائيًا وفقًا لأنماط وتأثيرات مختلفة. تم تطوير هذه الأداة من قبل أعضاء فريق من شركات التكنولوجيا المعروفة، والهدف هو تمكين الجميع من إنتاج فيديوهات رائعة بسهولة دون الحاجة إلى أدوات تحرير معقدة. ومع ذلك، لم تقدم Luma رسميًا واجهة برمجة التطبيقات، حيث تقدم AceDataCloud مجموعة من واجهات برمجة التطبيقات الخاصة بـ Luma، والتي تحاكي الاتصال بـ Suno الرسمي، مما يسهل ويسرع عملية توليد الفيديوهات المطلوبة.

التقديم والاستخدام

لاستخدام واجهة برمجة تطبيقات توليد فيديوهات Luma، يجب أولاً الذهاب إلى لوحة تحكم Ace Data Cloud للحصول على رمز API الخاص بك، للاحتفاظ به للاستخدام لاحقًا. إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل بعد، فسيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء، سيتم إرجاعك تلقائيًا إلى الصفحة الحالية. يمكن استخدام رمز API واحد لاستدعاء جميع خدمات المنصة، دون الحاجة لتقديم طلب منفصل لكل خدمة. عند التقديم لأول مرة، ستحصل على رصيد مجاني لتجربته؛ وعند نفاد الرصيد، يمكنك إعادة شحن الرصيد العام في لوحة التحكم.
📘 الوثائق الكاملة: واجهة برمجة تطبيقات توليد فيديوهات Luma →

الاستخدام الأساسي

لإنشاء أي فيديو، يمكنك إدخال نص عشوائي، على سبيل المثال، إذا كنت ترغب في إنشاء فيديو عن رواد الفضاء الذين ينتقلون بين الفضاء والبراكين، يمكنك إدخال Astronauts shuttle from space to volcano، كما هو موضح في الصورة:

الكود الناتج هو كما يلي:

المعلمات الرئيسية المطلوبة:
  • prompt: كلمة المرور لتوليد الفيديو.
  • aspect_ratio: نسبة عرض الفيديو إلى ارتفاعه، الافتراضي 16:9.
  • end_image_url: اختياري، لتحديد الإطار النهائي.
  • enhancement: اختياري، مفتاح تعزيز الوضوح.
  • loop: هل يجب توليد فيديو متكرر، الافتراضي false.
  • timeout: اختياري، عدد الثواني للمهلة.
  • callback_url: عنوان الاسترجاع غير المتزامن.
  • async: اختياري، إذا تم تعيينه إلى true، ستعيد الواجهة على الفور task_id، دون الحاجة لتقديم callback_url، ثم يمكنك الاستعلام عن النتائج من خلال واجهة الاستعلام عن المهام المقابلة.
يمكنك النقر على زر “Try” لاختبار واجهة برمجة التطبيقات مباشرة، انتظر 1-2 دقيقة، وستكون النتائج كما يلي:
يمكنك أن ترى أننا حصلنا على معلومات حول هذا الفيديو، بما في ذلك معرف الفيديو، رابط الفيديو، غلاف الفيديو، وغيرها من المحتويات. تفسير الحقول كما يلي:
  • success: هل تم التوليد بنجاح، إذا كان ناجحًا سيكون true، وإلا سيكون false
  • task_id: المعرف الفريد لمهمة توليد الفيديو هذه
  • video_id: المعرف الفريد للفيديو الناتج عن مهمة توليد الفيديو هذه
  • prompt: الكلمات الرئيسية لمهمة توليد الفيديو هذه
  • video_url: رابط الفيديو الناتج عن مهمة توليد الفيديو هذه
  • video_height: ارتفاع صورة غلاف الفيديو الناتج
  • video_width: عرض صورة غلاف الفيديو الناتج
  • state: حالة مهمة توليد الفيديو هذه، إذا كانت المهمة مكتملة ستكون completed.
  • thumbnail_url: رابط صورة غلاف الفيديو الناتج
  • thumbnail_width: عرض صورة غلاف الفيديو الناتج
  • thumbnail_height: ارتفاع صورة غلاف الفيديو الناتج

توليد الإطارات المخصصة

إذا كنت ترغب في توليد الفيديو من خلال تخصيص الإطارات الأولى والأخيرة، يمكنك إدخال روابط الصور للإطارات: في هذه الحالة، يمكن تمرير الصورة التالية كإطار أول للفيديو في حقل start_image_url: الإطار الأول بعد ذلك، نريد تخصيص توليد الفيديو بناءً على الإطارات والكلمات الرئيسية، يمكننا تحديد المحتويات كما يلي:
  • action: سلوك مهمة توليد الفيديو، عادةً ما يكون التوليد العادي generate أو التوليد الموسع extend، الافتراضي هو generate.
  • start_image_url: تحديد الإطار الأول للفيديو الناتج.
  • end_image_url: تحديد الإطار النهائي للفيديو الناتج.
  • prompt: محتوى الكلمات الرئيسية لتوليد الفيديو.
مثال على كيفية التعبئة كما يلي:

بعد الانتهاء من التعبئة، تم توليد الكود كما يلي:

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

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

وظيفة توسيع الفيديو

إذا كنت ترغب في الاستمرار في إنشاء الفيديو الناتج، يمكنك تعيين المعامل action إلى extend، وإدخال ID الفيديو أو رابط الفيديو الذي تحتاج إلى الاستمرار في إنشائه، يتم الحصول على ID الفيديو ورابط الفيديو بناءً على الاستخدام الأساسي كما هو موضح في الصورة أدناه:

في هذه الحالة، يمكنك رؤية ID الفيديو هو:
ملاحظة: هنا في الفيديو، video_id و video_url هما ID ورابط الفيديو الناتج، إذا كنت لا تعرف كيفية إنشاء الفيديو، يمكنك الرجوع إلى الاستخدام الأساسي المذكور أعلاه لإنشاء الفيديو.
للاستمرار في إنشاء الفيديو، يجب عليك تحميل رابط الفيديو أو ID الفيديو، أدناه توضيح لاستخدام ID الفيديو للتوسيع، بعد ذلك يجب علينا ملء الكلمات الرئيسية لتخصيص إنشاء الفيديو، يمكننا تحديد المحتوى كما يلي:
  • action: في هذه الحالة، سلوك توسيع الفيديو، يجب أن يكون extend.
  • prompt: الكلمات الرئيسية التي تحتاج إلى توسيع الفيديو.
  • video_url: الرابط الذي يحتاج إلى توسيع الفيديو الناتج.
  • video_id: ID الفيديو الفريد الذي يحتاج إلى توسيع.
  • end_image_url: رابط صورة الإطار الأخير التي يمكن تحديدها لتوسيع الفيديو، معامل اختياري.
نموذج التعبئة كما يلي:

بعد ملء المعلومات، تم إنشاء الكود تلقائيًا كما يلي:

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

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

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

ردود الفعل غير المتزامنة

نظرًا لأن وقت إنشاء الفيديو بواسطة Luma طويل نسبيًا، حوالي 1-2 دقيقة، إذا لم يكن هناك استجابة من API لفترة طويلة، ستظل طلبات HTTP متصلة، مما يؤدي إلى استهلاك موارد النظام الإضافية، لذا فإن هذه API توفر أيضًا دعم ردود الفعل غير المتزامنة. 整体流程是:客户端发起请求的时候,额外指定一个 callback_url 字段,客户端发起 API 请求之后,API 会立马返回一个结果,包含一个 task_id 的字段信息,代表当前的任务 ID。当任务完成之后,生成音乐的结果会通过 POST JSON 的形式发送到客户端指定的 callback_url,其中也包括了 task_id 字段,这样任务结果就可以通过 ID 关联起来了。 下面我们通过示例来了解下具体怎样操作。 首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 Webhook 样例网站 https://webhook.site/,打开该网站即可得到一个 Webhook URL,如图所示:

将此 URL 复制下来,就可以作为 Webhook 来使用,此处的样例为 https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13。 接下来,我们可以设置字段 callback_url 为上述 Webhook URL,同时填入 prompt,如图所示:

点击运行,可以发现会立即得到一个结果,如下:
稍等片刻,我们可以在 https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13 上观察到生成歌曲的结果,如图所示: 内容如下:
可以看到结果中有一个 task_id 字段,其他的字段都和上文类似,通过该字段即可实现任务的关联。