- متى تستخدم هذا الدليل السريع
- الخطوة 1: الحصول على مفتاح API من Novita AI
- الخطوة 2: تأكيد نقاط النهاية
- الخطوة 3: إرسال أول طلب T2V
- الخطوة 4: إرسال أول طلب I2V
- الخطوة 5: استقصاء النتائج
- الخطوة 6: التحقق من الأسعار والحدود
- المعلمات الرئيسية
- مثال بلغة Python — سير عمل غير متزامن كامل
- أمثلة cURL
- استكشاف الأخطاء وإصلاحها
- الأسئلة الشائعة
- مقالات مقترحة
يتوفر PixVerse V4.5 على Novita AI من خلال نقطتي نهاية غير متزامنتين: POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v لتحويل النص إلى فيديو (T2V) و POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v لتحويل الصورة إلى فيديو (I2V). يتبع كلاهما نفس النمط غير المتزامن المكون من خطوتين — أرسل طلب توليد، واستقبل task_id، ثم استقصِ GET /v3/async/task-result حتى تصبح الحالة TASK_STATUS_SUCCEED ويصبح رابط الفيديو متاحًا. يرشدك هذا الدليل من الصفر إلى الحصول على رابط فيديو عامل لكل وضع.
متى تستخدم هذا الدليل السريع
استخدم هذا الدليل عندما تحتاج إلى طلب عامل موثوق قبل كتابة منطق الإنتاج حول PixVerse V4.5.
T2V هو المسار الصحيح عندما يكون إدخالك نصًا بالكامل — وصف مشهد، أو تعليق على لوحة القصة، أو موجه منتج. I2V مخصص للحالات التي يكون لديك فيها صورة مرجعية وتريد من PixVerse تحريكها للأمام من هذا الإطار.
أشياء يجب معرفتها قبل البدء:
- يبلغ الحد الأقصى للمقاطع 5 ثوانٍ بدقة 1080p، أو 8 ثوانٍ بدقة 720p وما دون.
fast_mode: trueيسرّع التوليد ويقلل التكلفة لكنه يحدد الدقة القصوى بـ 720p.- معلمة
styleالمسبقة (anime,3d_animation,clay,comic,cyberpunk) موثقة على أنها خاصة بـ v3.5 فقط — اختبرها مع V4.5 قبل الاعتماد عليها في الإنتاج. - يجب أن تكون مدخلات الصورة في I2V بتنسيق jpg أو jpeg أو png؛ الحد الأقصى 10 ميجابايت؛ الحد الأدنى 300×300 بكسل؛ ونسبة عرض إلى ارتفاع بين 1:2.5 و 2.5:1.
- لا يغطي هذا الدليل واجهة PixVerse على الويب، أو الاستضافة الذاتية، أو الضبط الدقيق. يغطي فقط مسار API المستضاف على Novita AI.
الخطوة 1: الحصول على مفتاح API من Novita AI
أنشئ حسابًا على Novita AI وانتقل إلى إدارة مفاتيح API. قم بإنشاء مفتاح وقم بتصديره إلى بيئتك:
export NOVITA_API_KEY="your_api_key_here"
احتفظ بالمفتاح خارج نظام التحكم في الإصدارات، وحزم الجهة الخادمة، وطبقات صور Docker.
الخطوة 2: تأكيد نقاط النهاية
| T2V | I2V | |
|---|---|---|
| نقطة نهاية الإرسال | POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v |
POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v |
| نقطة نهاية النتيجة | GET https://api.novita.ai/v3/async/task-result?task_id=<id> |
GET https://api.novita.ai/v3/async/task-result?task_id=<id> |
| مرجع API | وثائق T2V | وثائق I2V |
نقطة نهاية النتيجة مشتركة بين جميع واجهات برمجة التطبيقات غير المتزامنة في Novita AI. بمجرد فهمك لحلقة الاستقصاء، فإنها تعمل بنفس الطريقة لكل نموذج.
الخطوة 3: إرسال أول طلب T2V
قم بإرسال طلب توليد مع موجه ونسبة العرض إلى الارتفاع التي تفضلها. الإعدادات الافتراضية (aspect_ratio: "16:9", resolution: "540p", fast_mode: false) هي نقطة بداية معقولة:
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A time-lapse of cherry blossoms falling in slow motion, soft morning light, cinematic 4K",
"aspect_ratio": "16:9",
"resolution": "720p"
}'
استجابة ناجحة 200 ترجع فقط:
{
"task_id": "abc123..."
}
احفظ task_id. لا يتم إرجاع أي شيء آخر في هذه المرحلة — يتم تشغيل توليد الفيديو بشكل غير متزامن.
الخطوة 4: إرسال أول طلب I2V
يأخذ I2V صورة بداية ويحركها وفقًا لموجهك. يتوقع حقل image_file سلسلة مشفرة بـ base64 للصورة المصدر:
# قم بتشفير صورتك أولاً
IMAGE_B64=$(base64 -w 0 /path/to/your/image.jpg)
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"prompt\": \"Camera slowly pushes forward, light wind moves through the scene\",
\"image_file\": \"$IMAGE_B64\",
\"resolution\": \"720p\"
}"
الاستجابة لها نفس شكل T2V:
{
"task_id": "xyz789..."
}
قيود الصورة الرئيسية التي يجب التحقق منها قبل الإرسال:
- التنسيق: jpg أو jpeg أو png فقط
- حجم الملف: 10 ميجابايت كحد أقصى (تحقق قبل التشفير — base64 يوسع الحجم بنسبة ~33%)
- الحد الأدنى للأبعاد: 300×300 بكسل
- نسبة العرض إلى الارتفاع: بين 1:2.5 و 2.5:1 (من البورتريه إلى لاندسكيب المتطرف)
الخطوة 5: استقصاء النتائج
استقصِ نقطة نهاية نتيجة المهمة باستخدام task_id المرتجع من خطوة الإرسال:
curl -s "https://api.novita.ai/v3/async/task-result?task_id=abc123..." \
-H "Authorization: Bearer $NOVITA_API_KEY"
حقل task.status يتنقل بين هذه الحالات:
| الحالة | المعنى |
|---|---|
TASK_STATUS_QUEUED |
المهمة تنتظر في قائمة الانتظار |
TASK_STATUS_PROCESSING |
التوليد قيد التشغيل |
TASK_STATUS_SUCCEED |
الفيديو جاهز؛ الرابط موجود في الاستجابة |
TASK_STATUS_FAILED |
فشل التوليد؛ تحقق من task.reason |
استقصِ كل 5–10 ثوانٍ. عندما تظهر TASK_STATUS_SUCCEED، سيكون رابط الفيديو في نص الاستجابة. يوفر حقل task.eta وقت الإكمال المقدر بالثواني، والذي يمكنك استخدامه لجدولة أول استقصاء لك.
الخطوة 6: التحقق من الأسعار والحدود
السعر المنشور لـ PixVerse V4.5 على Novita AI هو 0.7 دولار لكل مقطع مدته 5 ثوانٍ (تم التحقق من صفحات منتج PixVerse على Novita AI اعتبارًا من يوليو 2026). تحقق من السعر الحالي على صفحة أسعار Novita AI قبل وضع أي تقدير للتكلفة.
fast_mode: true يولد مقاطع فيديو أسرع وبتكلفة أقل، ولكن الدقة محدودة بـ 720p. إنه مفيد للنمذجة الأولية أو توليد معاينات الدفعات حيث تكون الجودة ثانوية.
تختلف حدود المعدل حسب مستوى الحساب. تحقق من توثيق حدود معدل Novita AI للحصول على عتبات المستوى الحالية.
المعلمات الرئيسية
معلمات T2V
| المعامل | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
prompt |
string | — | مطلوب. الحد الأقصى 2048 حرفًا. |
aspect_ratio |
string | 16:9 |
16:9, 4:3, 1:1, 3:4, 9:16 |
resolution |
string | 540p |
360p, 540p, 720p, 1080p. 1080p يتطلب fast_mode: false. |
negative_prompt |
string | — | الحد الأقصى 2048 حرفًا. صف ما تريد تجنبه. |
fast_mode |
boolean | false |
أسرع وأرخص؛ يحدد الدقة القصوى بـ 720p. |
style |
string | — | anime, 3d_animation, clay, comic, cyberpunk. مُصنف على أنه خاص بـ v3.5 فقط — اختبر قبل الاستخدام في الإنتاج. |
seed |
integer | — | قم بتعيينه لإمكانية التكرار؛ قد تظل المخرجات مختلفة بعد تحديثات النموذج. |
معلمات I2V
| المعامل | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
prompt |
string | — | مطلوب. الحد الأقصى 2048 حرفًا. |
image_file |
string | — | مطلوب. صورة مشفرة بـ base64 بتنسيق jpg/jpeg/png. الحد الأقصى 10 ميجابايت، الحد الأدنى 300×300 بكسل، نسبة العرض إلى الارتفاع من 1:2.5 إلى 2.5:1. |
resolution |
string | 540p |
نفس خيارات T2V. |
negative_prompt |
string | — | الحد الأقصى 2048 حرفًا. |
fast_mode |
boolean | false |
نفس T2V. |
style |
string | — | نفس T2V. |
seed |
integer | — | نفس T2V. |
ملاحظة: لا يأخذ I2V معلمة aspect_ratio — يتم اشتقاق نسبة العرض إلى الارتفاع للمخرجات من صورة الإدخال.
مثال بلغة Python — سير عمل غير متزامن كامل
يغطي هذا المثال كلاً من إرسال T2V و I2V بالإضافة إلى حلقة الاستقصاء في سكريبت واحد:
import os
import time
import base64
import requests
API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai/v3/async"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def submit_t2v(prompt: str, aspect_ratio: str = "16:9", resolution: str = "720p") -> str:
resp = requests.post(
f"{BASE_URL}/pixverse-v4.5-t2v",
headers=HEADERS,
json={
"prompt": prompt,
"aspect_ratio": aspect_ratio,
"resolution": resolution,
},
)
resp.raise_for_status()
return resp.json()["task_id"]
def submit_i2v(prompt: str, image_path: str, resolution: str = "720p") -> str:
with open(image_path, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
resp = requests.post(
f"{BASE_URL}/pixverse-v4.5-i2v",
headers=HEADERS,
json={
"prompt": prompt,
"image_file": image_b64,
"resolution": resolution,
},
)
resp.raise_for_status()
return resp.json()["task_id"]
def poll_result(task_id: str, interval: int = 8, timeout: int = 300) -> dict:
deadline = time.time() + timeout
while time.time() < deadline:
resp = requests.get(
f"{BASE_URL}/task-result",
headers=HEADERS,
params={"task_id": task_id},
)
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__":
# نص إلى فيديو
t2v_task = submit_t2v(
prompt="A lone lighthouse on a rocky coast at dusk, waves crashing, golden sky",
aspect_ratio="16:9",
resolution="720p",
)
print(f"T2V task submitted: {t2v_task}")
t2v_result = poll_result(t2v_task)
print("T2V result:", t2v_result)
# صورة إلى فيديو — استبدل بمسار صورة حقيقي
# i2v_task = submit_i2v(
# prompt="Gentle wind moves through the scene, slow camera pull-back",
# image_path="./reference.jpg",
# resolution="720p",
# )
# print(f"I2V task submitted: {i2v_task}")
# i2v_result = poll_result(i2v_task)
# print("I2V result:", i2v_result)
أمثلة cURL
T2V مع الوضع السريع:
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A hyperrealistic ocean wave cresting and breaking on shore, slow motion, golden hour",
"aspect_ratio": "9:16",
"resolution": "720p",
"fast_mode": true,
"negative_prompt": "blurry, low quality, watermark"
}'
T2V مع بذرة لإمكانية التكرار:
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Neon-lit cyberpunk street at night, rain reflections, hovering vehicles",
"aspect_ratio": "16:9",
"resolution": "1080p",
"seed": 42
}'
استقصاء النتيجة:
curl -s "https://api.novita.ai/v3/async/task-result?task_id=YOUR_TASK_ID" \
-H "Authorization: Bearer $NOVITA_API_KEY"
استكشاف الأخطاء وإصلاحها
400 Bad Request عند إرسال I2V
تحقق أولاً من قيود الصورة: يجب أن يكون التنسيق jpg/jpeg/png، ويجب أن يكون الحجم أقل من 10 ميجابايت قبل تشفير base64 (سيكون الحمولة المشفرة أكبر بنسبة ~33%)، والحد الأدنى 300×300 بكسل، ونسبة العرض إلى الارتفاع بين 1:2.5 و 2.5:1. سيتم رفض الصور ذات الأبعاد القصوى (الواسعة جدًا أو الطويلة جدًا).
تبقى المهمة في حالة TASK_STATUS_QUEUED لفترة طويلة
هذا أمر طبيعي تحت ضغط المنصة العالي. يعطي حقل task.eta تقديرًا؛ استقصِ وفقًا لذلك بدلاً من إغراق نقطة النهاية. إذا لم تتقدم المهمة بعد 10 دقائق، تحقق من صفحة حالة Novita AI أو أعد إرسال الطلب.
TASK_STATUS_FAILED بدون سبب مفيد
أعد المحاولة باستخدام موجه أقصر وأبسط. تميل المطالبات التي تحتوي على تعليمات حركة غامضة، أو أوصاف مشهد متناقضة، أو شخصيات تؤدي فيزياء مستحيلة إلى الفشل. يمكن أن تتعارض المطالبات السلبية أيضًا مع الموجه الرئيسي إذا كانت واسعة جدًا.
1080p غير متوفرة في الوضع السريع
fast_mode: true يحدد الدقة القصوى بـ 720p. إذا كنت بحاجة إلى 1080p، قم بإزالة fast_mode أو قم بتعيينه على false.
ليس لمعامل style تأثير مرئي
معامل style موثق على أنه خاص بـ v3.5 فقط. في طلبات V4.5 قد يتم تجاهله بصمت أو ينتج نتائج غير متسقة. لا تعتمد عليه دون اختبار حالة الاستخدام الخاصة بك.
الأسئلة الشائعة
ما الفرق بين T2V و I2V لـ PixVerse V4.5؟
يولد T2V مقطع فيديو بالكامل من موجه نصي — لا حاجة لإدخال صورة. يأخذ I2V صورة بداية ويحركها للأمام وفقًا للموجه النصي، باستخدام الصورة كإطار أول. استخدم T2V للمشاهد المولدة بالكامل؛ استخدم I2V عندما يكون لديك نقطة بداية بصرية محددة تريد تحريكها.
ما أطوال الفيديو التي ينتجها PixVerse V4.5؟
المقاطع مدتها 5 ثوانٍ بدقة 1080p وتصل إلى 8 ثوانٍ بدقة 720p وما دون. لا يوجد معامل duration في API — يتم تحديد طول المقطع حسب الدقة التي تختارها.
هل تستنتج نقطة نهاية I2V نسبة العرض إلى الارتفاع من الصورة؟
نعم. I2V ليس لديه معامل aspect_ratio. تتطابق نسبة العرض إلى الارتفاع للمخرجات مع صورة الإدخال. تأكد من اقتصاص صورتك إلى نسبة الإخراج المقصودة قبل الإرسال.
هل يمكنني إرسال طلبات T2V و I2V بالتوازي؟
نعم. كل طلب يرجع task_id خاصًا به ومستقلًا. يمكنك إرسال طلبات متعددة في وقت واحد واستقصائها بالتوازي — لا حاجة لانتظار اكتمال أحدها قبل إرسال التالي.
كيف أحصل على مخرجات متناسقة عبر عمليات التشغيل؟
قم بتعيين معامل seed إلى نفس العدد الصحيح. ضع في اعتبارك أن إمكانية التكرار المستندة إلى البذرة غير مضمونة عبر تحديثات إصدار النموذج — قم بتخزين رابط الفيديو ومعاملات التوليد معًا إذا كنت بحاجة إلى مراجعة النتائج لاحقًا.
هل fast_mode مناسب للاستخدام في الإنتاج؟
يعتمد ذلك على معايير الجودة الخاصة بك. fast_mode: true يولد مقاطع فيديو أسرع وبتكلفة أقل، ولكن الدقة محدودة بـ 720p والجودة أقل من الوضع القياسي. إنه مناسب تمامًا لتوليد المعاينات، والتقييم بالدفعات، والنمذجة الأولية؛ استخدم الوضع القياسي عندما تكون جودة المخرجات هي العامل الحاسم.
