بدء سريع مع Hunyuan Video Fast API

بدء سريع مع Hunyuan Video Fast API

Hunyuan Video Fast متاح على Novita AI عبر POST https://api.novita.ai/v3/async/hunyuan-video-fast. إنها النسخة المحسّنة للسرعة من نموذج Hunyuan Video مفتوح المصدر من Tencent — فهي تقلل وقت التوليد مقارنة بالنسخة القياسية على حساب بعض دقة الحركة، مما يجعلها عملية لخطوط الإنتاج عالية الإنتاجية، وتكرار التعليمات، وسير العمل التمهيدي حيث تكون سرعة الإنجاز أكثر أهمية من الجودة السينمائية القصوى.

مثل جميع واجهات Novita غير المتزامنة للفيديو، فإنها تُرجع task_id عند الإرسال وتقدم رابط الفيديو بمجرد اكتمال المهمة. يغطي هذا الدليل نقطة النهاية، تنسيق الطلب، أمثلة عملية باستخدام Python وcURL، ومتى تتناسب النسخة السريعة مقارنة بالنموذج القياسي.

متى تستخدم Hunyuan Video Fast مقابل Standard

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

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

إذا كانت جودة المخرج هي القيد الأساسي — البث، التسليم النهائي، أو الحركة فائقة الواقعية — استخدم نقطة نهاية Hunyuan Video القياسية بدلاً من ذلك.

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

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

export NOVITA_API_KEY="your_api_key_here"

الخطوة 2: نقطة النهاية ومعرف النموذج

الحقل القيمة
نقطة نهاية الإرسال POST https://api.novita.ai/v3/async/hunyuan-video-fast
استرجاع النتيجة GET https://api.novita.ai/v3/async/task-result?task_id=<id>
رأس المصادقة Authorization: Bearer $NOVITA_API_KEY
نوع المحتوى application/json

المرجع الرسمي لواجهة API: novita.ai/docs/api-reference/model-apis-hunyuan-video-fast

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

أرسل طلب توليد مع نصك وإعدادات المخرج:

curl -s -X POST https://api.novita.ai/v3/async/hunyuan-video-fast \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox running through a snowy forest at dawn, slow motion, cinematic wide shot",
    "negative_prompt": "blurry, low quality, distorted, watermark",
    "width": 1280,
    "height": 720,
    "seed": -1
  }'
`

ترجع API على الفور `task_id`:

```json
{
  "task_id": "hunyuan-fast-abc123"
}

الفيديو ليس في هذه الاستجابة — احفظ task_id واستخدمه في الخطوة التالية.

الخطوة 4: استعلم عن نتيجة الفيديو

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

استمر في الاستعلام حتى يصبح task_status هو TASK_STATUS_SUCCEED:

{
  "task_status": "TASK_STATUS_SUCCEED",
  "videos": [
    {
      "video_url": "https://cdn.novitai.com/output/...",
      "video_url_ttl": 3600,
      "video_type": "mp4"
    }
  ]
}

قم بتنزيل أو تخزين video_url فورًا — تنتهي صلاحيته بعد video_url_ttl ثانية.

قيم حالة المهمة

الحالة المعنى
TASK_STATUS_QUEUED تم قبول الطلب، في انتظار التشغيل
TASK_STATUS_PROCESSING التوليد قيد التقدم
TASK_STATUS_SUCCEED مكتمل — رابط الفيديو متاح في videos[0].video_url
TASK_STATUS_FAILED فشل التوليد — تحقق من الاستجابة لسبب الفشل

مثال باستخدام 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(
    prompt: str,
    negative_prompt: str = "",
    width: int = 1280,
    height: int = 720,
    seed: int = -1,
) -> str:
    payload = {
        "prompt": prompt,
        "negative_prompt": negative_prompt,
        "width": width,
        "height": height,
        "seed": seed,
    }
    resp = requests.post(
        f"{BASE_URL}/v3/async/hunyuan-video-fast",
        headers=HEADERS,
        json=payload,
    )
    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},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data.get("task_status", "")
        if status == "TASK_STATUS_SUCCEED":
            return data
        if status == "TASK_STATUS_FAILED":
            raise RuntimeError(f"Task failed: {data}")
        time.sleep(interval)
    raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")


if __name__ == "__main__":
    task_id = submit_video(
        prompt="A red fox running through a snowy forest at dawn, slow motion, cinematic wide shot",
        negative_prompt="blurry, low quality, distorted, watermark",
        width=1280,
        height=720,
    )
    print(f"Task submitted: {task_id}")

    result = poll_result(task_id)
    for video in result.get("videos", []):
        print(f"Video URL (expires in {video['video_url_ttl']}s): {video['video_url']}")

مثال باستخدام cURL

# الخطوة 1: أرسل طلب التوليد
TASK_ID=$(curl -s -X POST https://api.novita.ai/v3/async/hunyuan-video-fast \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A timelapse of a city skyline transitioning from dusk to night, cinematic",
    "negative_prompt": "blurry, low quality, distorted",
    "width": 1280,
    "height": 720,
    "seed": 42
  }' | jq -r '.task_id')

echo "Task ID: $TASK_ID"

# الخطوة 2: استعلم حتى الاكتمال
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
  elif [ "$STATUS" = "TASK_STATUS_FAILED" ]; then
    echo "Failed: $RESULT"
    break
  fi
  echo "Status: $STATUS — waiting..."
  sleep 5
done

المعلمات الأساسية

المعامل النوع مطلوب الوصف
prompt string نعم وصف نصي لمشهد الفيديو، الموضوع، الحركة، والأسلوب
negative_prompt string لا عناصر يجب تجنبها في المخرجات (مثل “blurry, low quality”)
width integer لا عرض المخرجات بالبكسل — راجع وثائق API للقيم المدعومة
height integer لا ارتفاع المخرجات بالبكسل — يُستخدم مع width لتعيين الدقة
seed integer لا عيّن عددًا صحيحًا ثابتًا لإعادة إنتاج نفس المخرجات؛ -1 للعشوائية

للاطلاع على قائمة المعاملات الكاملة بما في ذلك خيارات المدة، قيود الدقة القصوى، وأي حقول خاصة بالنموذج، راجع مرجع API لـ Hunyuan Video Fast.

التسعير والحدود

تحقق من التسعير الحالي لكل فيديو على صفحة نماذج Novita AI. تسعير توليد الفيديو عادةً ما يكون لكل مقطع ويختلف حسب الدقة والمدة. تحقق من صفحة التسعير قبل بناء نموذج تكلفة لأعباء العمل الإنتاجية.

تأكد من الحدود التالية في الوثائق الرسمية قبل النشر:

  • الحد الأقصى لطول النص (prompt)
  • قيم الدقة المدعومة (تركيبات الطول × العرض)
  • الحد الأقصى لمدة الفيديو بالثواني
  • حدود المعدل وحدود المهام المتزامنة لكل مفتاح API

النسخة السريعة عادةً ما تكون أقل تكلفة لكل مقطع من النموذج القياسي بسبب وقت الحوسبة المنخفض — تحقق من الفرق الحالي على صفحة تسعير Novita.

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

401 Unauthorized — مفتاح API مفقود أو غير صالح أو منتهي الصلاحية. تأكد من تعيين NOVITA_API_KEY وأن المفتاح نشط في لوحة تحكم Novita AI.

422 Unprocessable Entity — معلمة مطلوبة مفقودة أو قيمة خارج النطاق. تأكد من أن prompt غير فارغ وأن قيم width/height ضمن المجموعة المدعومة من وثائق API.

تبقى المهمة في TASK_STATUS_PROCESSING — التوليد لا يزال قيد التشغيل. النسخة السريعة تكتمل أسرع من القياسية، لكن الدقة الأعلى والمدة الأطول تحتاج وقتًا أطول. زد مهلة الاستعلام للمخرجات الكبيرة.

video_url يُرجع 403 أو 404 — الرابط منتهي الصلاحية (انقضى video_url_ttl). في الإنتاج، قم بتنزيل الفيديو أو نقله فورًا بعد TASK_STATUS_SUCCEED — لا تعتمد على الرابط المستضاف كمخزن دائم.

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

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

ما هي نقطة نهاية Novita AI لـ Hunyuan Video Fast؟

POST https://api.novita.ai/v3/async/hunyuan-video-fast. API غير متزامنة: أرسل طلبًا، استلم task_id، ثم استعلم GET https://api.novita.ai/v3/async/task-result?task_id=<id> حتى يصبح task_status هو TASK_STATUS_SUCCEED.

كيف يختلف Hunyuan Video Fast عن Hunyuan Video القياسي؟

النسخة السريعة محسّنة لسرعة التوليد — تقلل الوقت من إرسال المهمة إلى اكتمال الفيديو. المقابل هو أن دقة الحركة والالتزام الدقيق بالنص أقل من النموذج القياسي. استخدم النسخة السريعة لتكرار النصوص، وظائف الدفعات عالية الإنتاجية، أو المراجعة التمهيدية؛ استخدم القياسي للمخرجات النهائية عالية الجودة.

هل يمكنني تعيين مدة فيديو محددة؟

تحقق من مرجع API لمعلمات المدة المدعومة. بعض واجهات Novita للفيديو تعرض حقل duration صريح؛ البعض الآخر يستخدم إعدادات افتراضية للنموذج. تحقق قبل افتراض طول المقطع الافتراضي.

كيف يمكنني إعادة إنتاج مقطع فيديو معين؟

عيّن seed إلى عدد صحيح ثابت. نفس مجموعة seed، prompt، width، و height يجب أن تنتج مخرجات متسقة عبر مرات التشغيل.

هل يدعم Hunyuan Video Fast تحويل الصورة إلى فيديو؟

Hunyuan Video Fast على Novita AI هو نموذج نص إلى فيديو. لتوليد الفيديو من الصورة على Novita، تحقق من نماذج I2V المتاحة مثل Kling، Vidu، أو Wan على صفحة نماذج Novita.

كم تكلفة Hunyuan Video Fast على Novita AI؟

تحقق من التسعير الحالي على novita.ai/models. تسعير كل مقطع لنماذج الفيديو قد يتغير؛ تحقق دائمًا من صفحة التسعير قبل بناء تقديرات التكلفة الإنتاجية.

هل Hunyuan Video Fast مناسب لخطوط إنتاج الفيديو الإنتاجية؟

نعم، مع المعالجة المناسبة. صمم خط إنتاجك حول إرسال المهام غير المتزامن، خزّن task_id لتتبع الحالة، قم بتنزيل الفيديو فور اكتماله (قبل انتهاء صلاحية video_url_ttl)، وتعامل مع TASK_STATUS_FAILED بإستراتيجية إعادة محاولة أو احتياطية.

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