دليل البدء السريع لواجهة برمجة التطبيقات Kling V3.0 Motion Control

دليل البدء السريع لواجهة برمجة التطبيقات Kling V3.0 Motion Control

يتيح لك Kling V3.0 Motion Control تحريك صورة شخصية ثابتة عن طريق استخراج الحركة من فيديو مرجعي وتطبيقها إطارًا بإطار. يحافظ المخرَج على مظهر الشخصية من صورتك مع إعادة إنتاج الحركة من الفيديو — وهي تقنية تُسمى نقل الحركة. يغطي هذا الدليل نقطة نهاية Novita AI، والمدخلات المطلوبة، والمعلمات الرئيسية، وأمثلة عملية بلغة Python وأداة curl يمكنك تشغيلها مقابل مفتاح API حقيقي.

متى يكون Motion Control الأداة المناسبة

Motion Control هو الأداة المناسبة عندما تمتلك شيئين: صورة شخصية ثابتة تريد تحريكها، وفيديو مرجعي تريد إعادة إنتاج حركته. وهو يختلف عن تحويل الصورة إلى فيديو (Image-to-Video أو I2V)، الذي يُولّد الحركة من وصف نصي. مع Motion Control، تُنسخ الحركة من الفيديو المرجعي بدقة — ستتبع الشخصية المخرَجة نفس مسار الحركة الذي يتبعه الشخص في الفيديو المرجعي.

استخدمه عندما:

  • تريد رقصة معينة، أو دورة مشي، أو إيماءة تُطبق على رسم توضيحي أو صورة شخصية
  • تحتاج إلى حركة متسقة وقابلة للتكرار عبر شخصيات مختلفة (نفس الفيديو المرجعي، صور مختلفة)
  • تبني محتوى حيث تكون جودة الحركة مهمة ونتائج I2V المفتوحة غير متوقعة للغاية

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

الخطوة 1: الحصول على مفتاح Novita API الخاص بك

سجّل في novita.ai وأنشئ مفتاح API من لوحة التحكم. تتلقى الحسابات الجديدة أرصدة مجانية يمكنك استخدامها لاختبار Motion Control قبل الالتزام بحجم إنتاج.

الخطوة 2: تأكيد نقطة النهاية ومعرّف النموذج

يستخدم Kling V3.0 Motion Control على Novita AI نمط الفيديو غير المتزامن القياسي:

إرسال المهمة:

POST https://api.novita.ai/v3/async/kling-v3.0-motion-control

الاستعلام عن النتيجة:

GET https://api.novita.ai/v3/async/task-result?task_id={task_id}

جميع الطلبات تتطلب:

Authorization: Bearer YOUR_NOVITA_API_KEY
Content-Type: application/json

التوثيق الكامل: novita.ai/docs/api-reference/model-apis-kling-v3.0-motion-control

الخطوة 3: تجهيز المدخلات الخاصة بك

يتطلب Motion Control مدخلين: صورة مرجعية وفيديو مرجعي. الحصول على هذين المدخلين بشكل صحيح هو العامل الأكبر في جودة المخرَج.

الصورة المرجعية

هذه هي الشخصية التي سيحافظ المخرَج على مظهرها. المتطلبات:

  • الصيغ: JPEG، PNG، JPG
  • الحجم الأقصى: 10 ميجابايت
  • الدقة الدنيا: 340 بكسل على كل جانب
  • نسبة العرض إلى الارتفاع: بين 2:5 و 5:2
  • يجب أن تكون الشخصية مرئية بوضوح، وأن تشغل أكثر من 5% من مساحة الصورة، وألا يكون هناك إخفاء كبير (لا تقطع الرأس أو الجسم)

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

الفيديو المرجعي

هذا هو مصدر الحركة. ستكرر الشخصية في المخرَج الحركات من هذا الفيديو:

  • الصيغ: MP4، MOV
  • الحجم الأقصى: 10 ميجابايت
  • المدة: 3–30 ثانية
  • الدقة الدنيا: 340 بكسل على كل جانب
  • نسبة العرض إلى الارتفاع: بين 2:5 و 5:2
  • يجب أن يكون الشخص في الفيديو المرجعي مرئيًا بكامل جسمه أو الجزء العلوي منه دون عوائق، بما في ذلك الرأس

اللقطات الواضحة والمضاءة جيدًا مع الحد الأدنى من الفوضى في الخلفية تنقل الحركة بدقة أكبر من اللقطات المزعجة أو المزدحمة.

الخطوة 4: إرسال أول طلب لك

طلب curl بسيط:

curl --request POST \
  --url https://api.novita.ai/v3/async/kling-v3.0-motion-control \
  --header 'Authorization: Bearer $NOVITA_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "image": "https://example.com/character.jpg",
    "video": "https://example.com/reference_motion.mp4",
    "prompt": "A person performing a smooth dance routine, cinematic lighting",
    "model_name": "kling-v3.0-motion-control",
    "character_orientation": "video"
  }'

يُرجع الرد task_id فورًا:

{
  "task_id": "abc123xyz"
}

الخطوة 5: الاستعلام عن النتيجة

Kling V3.0 Motion Control غير متزامن. أرسل المهمة، ثم استعلم حتى تكون الحالة succeed:

curl --request GET \
  --url 'https://api.novita.ai/v3/async/task-result?task_id=abc123xyz' \
  --header 'Authorization: Bearer $NOVITA_API_KEY'

عند الاكتمال، يحتوي الرد على مصفوفة videos مع رابط المخرَج:

{
  "task": {
    "status": "succeed"
  },
  "videos": [
    {
      "video_url": "https://cdn.novita.ai/output/abc123xyz.mp4",
      "video_url_ttl": "3600"
    }
  ]
}

الوقت النموذجي للتوليد هو 30–120 ثانية حسب مدة الفيديو والوضع. استعلم كل 5–10 ثوانٍ بدلاً من إرسال طلبات كثيفة إلى نقطة النهاية.

مثال متكامل بلغة Python

يقوم هذا البرنامج النصي بإرسال مهمة Motion Control والاستعلام حتى اكتمالها:

import os
import time
import requests

API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai"

HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

def submit_motion_control(image: str, video: str, prompt: str = "") -> str:
    payload = {
        "image": image,
        "video": video,
        "prompt": prompt,
        "model_name": "kling-v3.0-motion-control",
        "character_orientation": "video",
    }
    resp = requests.post(f"{BASE_URL}/v3/async/kling-v3.0-motion-control", json=payload, headers=HEADERS)
    resp.raise_for_status()
    return resp.json()["task_id"]


def poll_result(task_id: str, timeout: int = 300) -> str:
    deadline = time.time() + timeout
    while time.time() < deadline:
        resp = requests.get(
            f"{BASE_URL}/v3/async/task-result",
            params={"task_id": task_id},
            headers=HEADERS,
        )
        resp.raise_for_status()
        data = resp.json()
        status = data.get("task", {}).get("status")
        if status == "succeed":
            return data["videos"][0]["video_url"]
        if status == "failed":
            raise RuntimeError(f"Task failed: {data}")
        time.sleep(8)
    raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")


if __name__ == "__main__":
    image = "https://example.com/character.jpg"
    video = "https://example.com/reference_motion.mp4"

    print("Submitting task...")
    task_id = submit_motion_control(image, video, prompt="smooth dance routine, warm lighting")
    print(f"Task ID: {task_id}")

    print("Polling for result...")
    output_url = poll_result(task_id)
    print(f"Output video: {output_url}")

مرجع معلمات API

المعامل النوع إلزامي الوصف
image string نعم رابط URL لصورة الشخصية المراد تحريكها. راجع متطلبات الإدخال أعلاه.
video string نعم رابط URL للفيديو المرجعي الذي سيتم نقل حركته.
model_name string نعم اضبط على kling-v3.0-motion-control.
prompt string لا وصف نصي لنمط الحركة المطلوب أو سياق المشهد. اختياري ولكنه يمكن أن يحسن جودة المخرَج.
character_orientation string لا يتحكم في محاذاة الوضعية ومدة المخرَج. "video" يطابق اتجاه الفيديو المرجعي — أفضل للحركات المعقدة لكامل الجسم، يدعم حتى 30 ثانية. "image" يطابق اتجاه صورة الشخصية — أفضل للحركات المرتبطة بالكاميرا، ثابت عند 5 ثوانٍ.

character_orientation عمليًا

إذا كان الفيديو المرجعي يظهر راقصًا مواجهًا للأمام وصورة شخصيتك أيضًا مواجهة للأمام، فإن "video" سيعطي نقل حركة أفضل ويدعم حتى 30 ثانية. إذا كان الفيديو المرجعي يحتوي على كاميرا تتحرك حول الموضوع وكانت صورتك صورة وجه بزاوية ثابتة، فإن "image" يميل إلى تقليل تشوه المنظور غير المرغوب فيه — لكن لاحظ أنه يُنشئ مقطعًا ثابتًا لمدة 5 ثوانٍ.

المستوى القياسي مقابل المستوى الاحترافي: أي مستوى جودة تختار

يتوفر Kling V3.0 Motion Control بمستويين من الجودة:

المستوى القياسي يخرج بدقة 720p. إنه الخيار المناسب للتكرار، واختبار توافق الحركة، أو إنشاء مسودات قبل الالتزام بالنسخة النهائية.

المستوى الاحترافي يخرج بدقة 1080p مع دقة حركة محسّنة وثبات أفضل للشخصية. استخدم المستوى الاحترافي عندما:

  • المخرَج سيُستخدم في إنتاج نهائي (منشور على وسائل التواصل، فيلم قصير، عرض منتج)
  • التفاصيل الدقيقة في وجه الشخصية أو ملابسها مهمة
  • تقوم بإنشاء مقاطع أطول (10 ثوانٍ+) حيث يكون تدهور الجودة بمرور الوقت أكثر وضوحًا

بالنسبة لمعظم سير عمل التطوير، ابدأ بالمستوى القياسي لتأكيد توافق الإدخال وجودة الحركة، ثم انتقل إلى المستوى الاحترافي للمرور النهائي.

التسعير والمدة وتقديرات التكلفة

تقوم Novita AI بفوترة Motion Control لكل ثانية من الفيديو المُنشأ. المستويان القياسي والاحترافي لهما معدلات منفصلة لكل ثانية. للحصول على التسعير الحالي، راجع صفحة نموذج Novita AI.

حدود المدة:

  • character_orientation: "video" — حتى 30 ثانية
  • character_orientation: "image" — ثابت عند 5 ثوانٍ

تزداد التكلفة مع المدة لوضع "video". وضع "image" يُنشئ دائمًا مقطعًا مدته 5 ثوانٍ.

استكشاف الأخطاء الشائعة وإصلاحها

فشل المهمة فورًا مع خطأ 422 أو خطأ في التحقق من الصحة تأكد من أن كلاً من image وvideo عبارة عن عناوين URL يمكن الوصول إليها بشكل عام (ليست خلف مصادقة أو رابط URL منتهي الصلاحية). يجب أن يكون خادم Novita قادرًا على جلب كلا الملفين في وقت تنفيذ المهمة.

الحركة الناتجة تبدو خاطئة أو الشخصية مشوهة السبب الأكثر شيوعًا هو عدم تطابق اتجاه الشخصية في الصورة والفيديو المرجعي. حاول التبديل بين character_orientation بقيمتي "video" و"image" لترى أيها ينتج محاذاة أفضل.

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

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

تبقى الحالة processing لأكثر من 3 دقائق يحدث تأخير في قائمة الانتظار أحيانًا. انتظر حتى 5 دقائق قبل اعتبار المهمة عالقة. إذا بقيت عالقة، أرسل مهمة جديدة — لا تعيد استخدام task_id القديم.

ما يبنيه المطورون باستخدام Kling Motion Control

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

محتوى وسائل التواصل مع حركة متسقة: طبق نفس الفيديو المرجعي للرقص على صور شخصيات متعددة لإنتاج سلسلة من المقاطع بنفس تصميم الرقصات ولكن بمظاهر مختلفة.

التصور المسبق: اختبر كيف تبدو تسلسل حركة معين على تصميم شخصية قبل الاستثمار في إنتاج رسوم متحركة كامل.

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

الأسئلة الشائعة

ما الفرق بين Motion Control وتحويل الصورة إلى فيديو (Image-to-Video) على Novita AI؟

تحويل الصورة إلى فيديو (I2V) يحوّل صورة بناءً على وصف نصي — يتم توليد الحركة بواسطة النموذج من وصفك. أما Motion Control فينقل حركة محددة من فيديو مرجعي إلى الشخصية في صورتك. يمنحك Motion Control حركة دقيقة وقابلة للتكرار؛ بينما يمنحك I2V مرونة إبداعية دون الحاجة إلى مقطع مرجعي.

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

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

هل يمكنني استخدام أي فيديو متاح للجمهور كمرجع؟

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

كم من الوقت يستغرق التوليد؟

عادةً 30–120 ثانية حسب مدة المخرَج وما إذا اخترت الوضع القياسي أو الاحترافي. استعلم كل 8–10 ثوانٍ بدلاً من حلقة ضيقة.

مقالات موصى بها