Wan 2.7 VideoEdit API على Novita AI: كيف تحرر الفيديو بالذكاء الاصطناعي

Wan 2.7 VideoEdit API على Novita AI: كيف تحرر الفيديو بالذكاء الاصطناعي

Wan 2.7 VideoEdit على Novita AI هو النقطة النهائية المناسبة عندما يكون لديك بالفعل لقطات وتريد من النموذج إعادة تصميم المشهد أو إعادة كتابته دون إعادة بناء الحركة من الصفر. تقوم بإرسال فيديو مصدر إلى POST https://api.novita.ai/v3/async/wan2.7-videoedit، وتستلم task_id، ثم تقوم بالاستقصاء على GET /v3/async/task-result حتى يصبح المقطع المعدل جاهزًا. يوضح هذا الدليل شكل الطلب الدقيق، ومتى تضيف صورًا مرجعية، وتفاصيل التنفيذ المهمة قبل ربطه في الإنتاج.

متى يكون Wan 2.7 VideoEdit الأداة المناسبة

استخدم Wan 2.7 VideoEdit عندما يكون التوقيت وحركة الكاميرا في مقطع المصدر جيدين بالفعل، وتريد من الذكاء الاصطناعي تغيير ما يراه المشاهد بدلاً من تغيير طريقة تكوين اللقطة.

الاستخدامات النموذجية:

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

إنها ليست النقطة النهائية المناسبة عندما:

  • تحتاج إلى حركة جديدة تمامًا من النص فقط. استخدم Wan 2.7 T2V بدلاً من ذلك.
  • تريد تحريك صورة ثابتة. استخدم Wan 2.7 I2V بدلاً من ذلك.
  • تحتاج إلى تمثيل أدوار متعددة الشخصيات مع فتحات مرجعية مسماة عبر مشهد مولّد. استخدم Wan 2.7 R2V بدلاً من ذلك.

هذا التمييز مهم لأن VideoEdit يبدأ من مقطع إدخال. إذا كانت الحركة الأصلية خاطئة، فلن يقوم النموذج بإصلاح تصميم الرقصة لك.

النقطة النهائية المعتمدة وسير العمل

يستخدم Wan 2.7 VideoEdit على Novita AI نقطة نهاية واحدة للتقديم ونقطة النهاية المشتركة لنتيجة المهمة غير المتزامنة:

الحقل القيمة
نقطة التقديم POST https://api.novita.ai/v3/async/wan2.7-videoedit
استقصاء النتيجة GET https://api.novita.ai/v3/async/task-result?task_id=<id>
رأس المصادقة Authorization: Bearer $NOVITA_API_KEY
نوع المحتوى application/json
الوثائق الرسمية مرجع API Wan 2.7 VideoEdit

الـ API غير متزامن. يعيد استدعاء التقديم الناجح task_id، وليس رابط الفيديو النهائي. يجب على تطبيقك الاحتفاظ بمعرّف المهمة هذا وبناء منطق استقصاء أو مهمة خلفية حوله.

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

أنشئ مفتاحًا من إدارة مفاتيح Novita AI واحتفظ به في متغير بيئة:

export NOVITA_API_KEY="your_api_key_here"

لا تقم بتضمين المفتاح مباشرة في كود المتصفح أو تطبيقات الجوال أو ملفات الإعدادات المرفوعة.

الخطوة 2: فهم شكل الطلب

يستخدم Wan 2.7 VideoEdit نص JSON مسطح. لا يقوم الطلب بتداخل الحقول تحت input أو parameters.

كحد أدنى، أرسل:

  • video_url
  • prompt

الحقول الاختيارية الموثقة التي ستهمك عادةً هي:

  • reference_image_url لمرجع المظهر/الأسلوب
  • resolution
  • duration
  • audio_setting
  • prompt_extend
  • seed

الخطوة 3: تقديم أول طلب VideoEdit

هذا هو أصغر طلب عملي:

curl -s -X POST https://api.novita.ai/v3/async/wan2.7-videoedit \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/source-clip.mp4",
    "prompt": "Turn this office hallway scene into a neon cyberpunk corridor, preserve the walking motion and camera path",
    "resolution": "720P",
    "duration": 5
  }'

الاستجابة المتوقعة:

{
  "task_id": "abc123..."
}

لا شيء آخر مضمون في وقت التقديم. تعامل مع الطلب كخطوة إدراج مهمة وليس كاستجابة تحرير متزامنة.

الخطوة 4: استقصاء نقطة نهاية نتيجة المهمة

استخدم task_id الذي تم إرجاعه مع API نتيجة المهمة المشتركة:

curl -s "https://api.novita.ai/v3/async/task-result?task_id=abc123..." \
  -H "Authorization: Bearer $NOVITA_API_KEY"

ابنِ حول هذه الحالات:

الحالة المعنى
TASK_STATUS_QUEUED تم قبولها وانتظار التنفيذ
TASK_STATUS_PROCESSING التحرير قيد التقدم
TASK_STATUS_SUCCEED الفيديو المحرر جاهز
TASK_STATUS_FAILED فشلت المهمة؛ افحص جسم الاستجابة

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

الخطوة 5: إضافة صورة مرجعية عندما تحتاج تحكمًا بصريًا أدق

reference_image_url اختياري، لكنه يغير سلوك التحرير بطرق مفيدة.

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

  • تريد أن يتبع المقطع النهائي مظهر شخصية معينة أو زيًا أو لوحة ألوان.
  • تريد توجيه المخرجات نحو اتجاه فني محدد بدلاً من ترك كل شيء للأمر النصي.
  • حركة الفيديو المصدر صحيحة، لكن هوية المشهد فضفاضة جدًا مع التوجيه النصي فقط.

مثال لطلب مع صورة مرجعية:

curl -s -X POST https://api.novita.ai/v3/async/wan2.7-videoedit \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/source-clip.mp4",
    "reference_image_url": "https://example.com/reference-look.png",
    "prompt": "Transform the performer into the look and color palette of the reference image while keeping the same dance timing",
    "resolution": "1080P",
    "duration": 6,
    "audio_setting": "auto"
  }'

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

المعلمات الرئيسية التي يجب أن تهتم بها حقًا

المعامل النوع إلزامي وظيفته
video_url string نعم الفيديو المصدر لتحريره
prompt string نعم يصف التحويل المستهدف
reference_image_url string لا صورة مرجعية لتثبيت المظهر والأسلوب
resolution string لا دقة الإخراج، القيم الموثقة تتضمن 720P و 1080P
duration integer لا طول الإخراج المستهدف بالثواني؛ 0 يحافظ على طول فيديو الإدخال الكامل
audio_setting string لا يتحكم في سلوك توليد الصوت
prompt_extend boolean لا يسمح للنموذج بتوسيع الأوامر القصيرة تلقائيًا
seed integer لا يحسن إمكانية إعادة الإنتاج عبر المحاولات المتكررة

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

القيود الموثقة والقيود العملية

اعتبارًا من 29 يوليو 2026، توثق وثائق Novita الرسمية لـ Wan 2.7 VideoEdit هذه الحدود:

  • الدقة المدعومة: 720P و 1080P
  • duration الافتراضي هو 0، مما يعني طول فيديو الإدخال الكامل؛ نطاق طول الإخراج الصريح الموثق هو 2 إلى 10 ثوانٍ عند تعيينه
  • تنسيقات فيديو الإدخال: mp4 و mov
  • حد حجم فيديو الإدخال: حتى 100 ميغابايت
  • تنسيقات الصور المرجعية: jpg، jpeg، png، webp
  • حد حجم الصورة المرجعية: حتى 20 ميغابايت
  • تنسيق فيديو الإخراج: mp4

من السهل تفويت هذه القيود عند بناء خط وسائط عام. أكثر فشل تكامل شيوعًا هو إرسال ملف مصدر أطول أو أكبر مما تقبل به نقطة النهاية.

آثار عملية:

  1. إذا كنت تريد أن يحافظ المقطع المحرر على طول المصدر، فاحذف duration أو اضبطه على 0 بدلاً من فرض قص من 2 إلى 10 ثوانٍ.
  2. إذا كنت تختبر الأوامر بسرعة، استخدم 720P أولاً وانتقل إلى 1080P فقط عندما يعمل التحويل.

مثال بلغة Python: تقديم واستقصاء

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_video_edit(
    video_url: str,
    prompt: str,
    reference_image_url: str | None = None,
    resolution: str = "720P",
    duration: int = 0,
    audio_setting: str = "auto",
    prompt_extend: bool = True,
    seed: int | None = None,
) -> str:
    payload = {
        "video_url": video_url,
        "prompt": prompt,
        "resolution": resolution,
        "duration": duration,
        "audio_setting": audio_setting,
        "prompt_extend": prompt_extend,
    }
    if reference_image_url:
        payload["reference_image_url"] = reference_image_url
    if seed is not None:
        payload["seed"] = seed

    resp = requests.post(
        f"{BASE_URL}/v3/async/wan2.7-videoedit",
        headers=HEADERS,
        json=payload,
        timeout=60,
    )
    resp.raise_for_status()
    return resp.json()["task_id"]


def poll_result(task_id: str, interval: int = 5, timeout: int = 300) -> dict:
    deadline = time.time() + timeout
    while time.time() < deadline:
        resp = requests.get(
            f"{BASE_URL}/v3/async/task-result",
            headers=HEADERS,
            params={"task_id": task_id},
            timeout=60,
        )
        resp.raise_for_status()
        data = resp.json()
        status = data.get("task", {}).get("status")

        if status == "TASK_STATUS_SUCCEED":
            return data
        if status == "TASK_STATUS_FAILED":
            reason = data.get("task", {}).get("reason", "unknown")
            raise RuntimeError(f"Task {task_id} failed: {reason}")

        time.sleep(interval)

    raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")


if __name__ == "__main__":
    task_id = submit_video_edit(
        video_url="https://example.com/source-clip.mp4",
        prompt="Change the street scene into a rainy retro-futurist city at night, preserve the original tracking shot",
        reference_image_url="https://example.com/reference-frame.png",
        resolution="720P",
        duration=0,
        seed=42,
    )
    print(f"Submitted task: {task_id}")

    result = poll_result(task_id)
    video = result["videos"][0]
    print("Edited video URL:", video["video_url"])
    print("URL TTL:", video["video_url_ttl"])

مثال cURL مع استقصاء شل

TASK_ID=$(curl -s -X POST https://api.novita.ai/v3/async/wan2.7-videoedit \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/source-clip.mp4",
    "prompt": "Convert the clip into a hand-drawn anime city scene, preserve the running motion",
    "resolution": "720P",
    "duration": 0,
    "prompt_extend": true
  }' | jq -r '.task_id')

while true; do
  RESULT=$(curl -s "https://api.novita.ai/v3/async/task-result?task_id=$TASK_ID" \
    -H "Authorization: Bearer $NOVITA_API_KEY")
  STATUS=$(echo "$RESULT" | jq -r '.task.status')

  if [ "$STATUS" = "TASK_STATUS_SUCCEED" ]; then
    echo "$RESULT" | jq -r '.videos[0].video_url'
    break
  fi

  if [ "$STATUS" = "TASK_STATUS_FAILED" ]; then
    echo "$RESULT"
    break
  fi

  sleep 5
done

إذا كنت تتكامل من خدمة خلفية، فلفّ حلقة الاستقصاء هذه في عامل بدلاً من إبقاء طلب المستخدم مفتوحًا طوال نافذة التوليد.

التسعير والائتمانات وما يجب التحقق منه قبل تقدير التكلفة

تكشف Novita AI عن التسعير لنماذج الفيديو على صفحات النماذج والتسعير الخاصة بها، لكن هذه الأرقام قد تتغير. بالنسبة لـ Wan 2.7 VideoEdit، تحقق من الأسعار الحالية مباشرة من صفحة تسعير Novita AI وإدخال النموذج المرتبط من الوثائق الرسمية قبل نشر تقديرات التكلفة التي يواجهها العميل.

لتخطيط الهندسة، الافتراض الأكثر أمانًا هو:

  • التكلفة تتدرج مع إعدادات المقطع المولد، وليس فقط مع رسم طلب واحد ثابت.
  • تشغيلات 1080P هي خط الأساس الخاطئ للتكرار.
  • المقاطع الأقصر أسهل في التحقق وأرخص في التصحيح.

إذا كنت تبني أدوات داخلية، تعامل مع البحث عن التسعير كشأن تكوين، وليس كثابت مضمن في الكود.

أخطاء التكامل الشائعة

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

استخدام VideoEdit لتغييرات الحركة. VideoEdit هي نقطة نهاية للتحويل، وليست نقطة نهاية لتصميم الرقصات. إذا كانت الحركة الأصلية خاطئة، أعد التوليد باستخدام T2V أو I2V.

الخلط بين حدود الفيديو المصدر والصورة المرجعية. الفيديو المصدر هو الأصل الأكبر: mp4/mov، حتى 100 ميغابايت. الحد الأصغر 20 ميغابايت ينطبق على reference_image_url، وليس video_url.

الاستقصاء بقوة شديدة. ضرب نقطة نهاية نتيجة المهمة كل ثانية غير ضروري لمهام الفيديو التي تستغرق عدة ثوانٍ. فاصل زمني من 5-10 ثوانٍ عادة ما يكون نقطة بداية أفضل.

تجاهل مدة صلاحية الرابط. رابط النتيجة مؤقت. قم بتخزين الأصل فورًا إذا كان المقطع المحرر مهمًا في المراحل اللاحقة.

تجاهل خصوصية الأمر. “اجعله أفضل” ليس أمر تحرير. صف الأسلوب المستهدف والبيئة ومعالجة الموضوع والحركة التي يجب أن تبقى دون تغيير.

أي نقطة نهاية Wan 2.7 يجب أن تختار؟

استخدم هذه القاعدة السريعة:

  • اختر VideoEdit عندما يكون لديك بالفعل فيديو مصدر.
  • اختر I2V عندما يكون لديك صورة مصدر أو تريد الاستمرار من سير عمل قائم على الصور الثابتة.
  • اختر T2V عندما يكون لديك نص فقط.
  • اختر R2V عندما يكون ثبات الهوية والتحكم في الشخصيات المرجعية أكثر أهمية من تحرير مقطع موجود.

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

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

ما هي نقطة نهاية Novita AI لـ Wan 2.7 VideoEdit؟

POST https://api.novita.ai/v3/async/wan2.7-videoedit. تعيد task_id، ثم تستقصي GET https://api.novita.ai/v3/async/task-result?task_id=<id> لاكتمال المهمة.

هل يمكنني تقديم صورة مرجعية مع الفيديو المصدر؟

نعم. يدعم شكل الطلب الموثق reference_image_url اختياريًا إلى جانب video_url و prompt، وهو مفيد لتوجيه المظهر النهائي بشكل أكثر دقة.

ما طول الفيديو الذي يدعمه Wan 2.7 VideoEdit على Novita AI؟

كما هو موثق في 29 يوليو 2026، القيمة الافتراضية لـ duration هي 0، مما يعني طول فيديو الإدخال الكامل. إذا قمت بتعيين duration بشكل صريح، فإن النطاق الموثق هو 2-10 ثوانٍ.

هل يقبل Wan 2.7 VideoEdit فيديوهات مصدر كبيرة؟

نعم، ضمن الحد الموثق. تسرد الوثائق الرسمية إدخال mp4/mov حتى 100 ميغابايت. الحد المنفصل 20 ميغابايت ينطبق على الصورة المرجعية الاختيارية.

هل يجب أن أستخدم Wan 2.7 VideoEdit أم Wan 2.7 I2V؟

استخدم VideoEdit إذا كان لديك بالفعل مقطع وتريد تحويله. استخدم I2V إذا كانت نقطة البداية لديك صورة ثابتة أو سير عمل يقوده الصور.

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