Claude Opus 5.5 متاح الآن على SeedRouter

Video

Seedance 2.0

View Markdown

ولّد الفيديو باستخدام Seedance 2.0 عبر واجهة المهام الرسمية من ModelArk: من نص إلى فيديو، والإطاران الأول والأخير، ومراجع الصور والفيديو والصوت، من 480p إلى 4K.

Seedance 2.0 هو نموذج توليد الفيديو من ByteDance (Dreamina Seedance 2.0). أرسل جسم المهمة الرسمي من ModelArk إلى POST /v1/videos/generations، واحتفظ بمعرّف المهمة المُعاد، ثم اقرأ الفيديو المكتمل من GET /v1/tasks/{id}. وتوضع الصور والفيديوهات والصوت في content على شكل روابط.

معرّفات النموذج

معرّف النموذجالدقةملاحظات
dreamina-seedance-2-0480p، 720p، 1080p، 4Kالنموذج الكامل
dreamina-seedance-2-0-fast480p، 720pسعر أقل لكل ثانية
dreamina-seedance-2-0-mini480p، 720pأدنى سعر لكل ثانية

تقبل المعرّفات الثلاثة المعاملات نفسها. راجع صفحة النموذج للاطلاع على الأسعار الحالية.

مثال سريع

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-0",
    "content": [{"type": "text", "text": "A red paper boat drifts across a calm pond at sunrise, slow dolly-in"}],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": true
  }'

نقطة النهاية

POST https://api.seedrouter.ai/v1/videos/generations
الترويسةالقيمة
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

الجسم هو طلب «إنشاء مهمة توليد فيديو» الرسمي من ModelArk؛ وهي نفس نقطة النهاية التي تستخدمها جميع نماذج الفيديو في SeedRouter. والاستجابة هي المهمة الجديدة (id، status: "processing"), لا الفيديو المكتمل. واحتفظ بمفاتيح API في شفرة تعمل على الخادم.

المعاملات

الاسمالنوعمطلوبالقيمة الافتراضيةملاحظات
modelstringنعم—أحد معرّفات النموذج الثلاثة أعلاه.
contentobject[]نعم—الموجّه والوسائط؛ انظر أدناه.
resolutionenumلا720p480p، 720p، 1080p، 4k؛ ولا يقبل معرّفا Fast وMini إلا 480p و720p.
ratioenumلاadaptive16:9، 4:3، 1:1، 3:4، 9:16، 21:9، adaptive.
durationintegerلا5من 4 إلى 15 ثانية، أو -1 ليختار النموذج.
generate_audiobooleanلاtrueتوليد الصوت مع الفيديو.
watermarkbooleanلاfalseإضافة علامة مائية.
return_last_framebooleanلاfalseإعادة الإطار الأخير أيضًا على شكل رابط صورة.
execution_expires_afterintegerلا172800من 3600 إلى 259200 ثانية. والمهمة التي لم تكتمل بعد هذه المدة تفشل مع task_expired ولا تُحتسب عليها رسوم.
priorityintegerلا0من 0 إلى 9.
safety_identifierstringلا—من 1 إلى 64 حرفًا تعرّف المستخدم النهائي لديك. ولا بأس باستخدام قيمة تجزئة (hash).
service_tierenumلاdefaultdefault فقط.
content_filterbooleanلاtrueامتداد خاص بـ SeedRouter. والقيمة false توقف تصفية المحتوى في هذا الطلب.

عناصر content

العنصرالشكلالدورالحد
نص{"type": "text", "text": "..."}—عنصر واحد.
صورة{"type": "image_url", "image_url": {"url": "https://..."}, "role": "..."}first_frame، last_frame، reference_imageحتى 9 صور مرجعية.
فيديو{"type": "video_url", "video_url": {"url": "https://..."}, "role": "reference_video"}reference_videoحتى 3.
صوت{"type": "audio_url", "audio_url": {"url": "https://..."}, "role": "reference_audio"}reference_audioحتى 3. ويتطلب صورة أو فيديو مرجعيًا.

تُرفض الحقول غير المعروفة. غير مدعوم: seed، وcallback_url (استعلم عن المهمة بدلًا منه)، وdraft وdraft_task، وtools، وframes وcamera_fixed الخاصّان بالإصدار 1.x فقط، وكذلك output_format وomni_reference_task_type (في Seedance 2.5 فقط). ولا يمكن إلغاء المهام أو حذفها.

الأوضاع

يُستنتج الوضع من عناصر content؛ ولا يوجد معامل للوضع.

الوضعcontent
من نص إلى فيديوعنصر نصي واحد
الإطار الأولنص (اختياري) + صورة واحدة بالدور first_frame، أو صورة واحدة دون دور
الإطاران الأول والأخيرنص (اختياري) + صورة first_frame واحدة + صورة last_frame واحدة
مرجع متعدد الوسائطنص + أي مزيج من عناصر reference_image وreference_video وreference_audio

لا يمكن الجمع بين أوضاع الإطار الأول وعناصر المراجع. وعند وجود عدة صور أو أي وسائط أخرى، تحتاج كل صورة إلى role.

مثال المراجع

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-0",
    "content": [
      {"type": "text", "text": "The character from the image walks through the market in the video, same camera move"},
      {"type": "image_url", "image_url": {"url": "https://example.com/character.png"}, "role": "reference_image"},
      {"type": "video_url", "video_url": {"url": "https://example.com/market.mp4"}, "role": "reference_video"}
    ],
    "ratio": "adaptive",
    "duration": 8
  }'

استبدل روابط المثال بملفاتك أنت بحيث يمكن الوصول إليها.

مدخلات الوسائط

لا تقبل هذه الواجهة سوى الإشارة عبر الروابط. ولا تُقبل بيانات base64 ولا روابط data: ولا معرّفات asset:// ولا الرفع بصيغة multipart. ويرفع Playground الملفات المختارة إلى التخزين قبل إرسال روابطها.

يجب أن تكون الوسائط روابط HTTP(S) عامة وأن تستوفي الحدود الرسمية للنموذج:

الوسائطالصيغالحدود
صورةJPEG، PNG، WebP، BMP، TIFF، GIF، HEIC، HEIFأقل من 30 ميغابايت؛ العرض والارتفاع من 300 إلى 6000 بكسل؛ نسبة الأبعاد (العرض / الارتفاع) من 0.4 إلى 2.5؛ من 1 إلى 9 صور مرجعية
فيديوMP4، MOV (H.264 أو H.265)من 2 إلى 15 ثانية لكل مقطع، وحتى 3 مقاطع، وبإجمالي 15 ثانية كحد أقصى؛ و200 ميغابايت كحد أقصى؛ ومن 24 إلى 60 FPS؛ والعرض والارتفاع من 300 إلى 6000 بكسل؛ ونسبة الأبعاد من 0.4 إلى 2.5؛ ومن 407,696 إلى 8,295,044 بكسل (العرض × الارتفاع)
صوتWAV، MP3من 2 إلى 15 ثانية لكل مقطع، وحتى 3 مقاطع، وبإجمالي 15 ثانية كحد أقصى؛ ويتطلب صورة أو فيديو مرجعيًا؛ و15 ميغابايت كحد أقصى

لا يدعم النموذج الصور والفيديوهات المرجعية التي تحتوي على وجوه بشرية حقيقية.

تُفحص الوسائط عند بدء المهمة، قبل أي توليد. والمهمة التي تخالف وسائطها أحد هذه الحدود تنتهي بالحالة failed مع invalid_request_error ورسالة تسمّي القاعدة المخالَفة، مثل The request was rejected: content reference videos must total at most 15 seconds.، ولا تُحتسب عليها رسوم. أما الملف الذي يتعذّر قراءته في تلك المرحلة فيُمرَّر إلى النموذج، فيقبله أو يرفضه؛ ولا تُحتسب رسوم على المهمة الفاشلة في الحالتين.

عوامل التكلفة

راجع قسم أسعار النموذج للاطلاع على الأسعار الحالية. يحتسب Seedance 2.0 توكنات الفيديو، وهي الوحدة الرسمية:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

يعتمد السعر لكل مليون توكن على دقة المخرجات وعلى ما إذا كان الطلب يتضمن فيديو مرجعيًا؛ فالطلب الذي يتضمن فيديو مرجعيًا يُحتسب بسعر أقل لجميع توكناته. ولا تُحتسب مدخلات النص والصور والصوت. وبنسبة 16:9، تساوي الثانية الواحدة 10,044 توكن بدقة 480p (864×496)، و21,600 بدقة 720p، و48,600 بدقة 1080p، و194,400 بدقة 4K.

تتبع الرسوم التوكنات التي يبلّغ عنها الفيديو المكتمل (output.usage.completion_tokens)، لذا يُحتسب duration: -1 على أساس الطول المولَّد فعليًا. وتتجاوز المقاطع المولَّدة الطول المطلوب بقليل: فالطلب الذي مدته 5 ثوانٍ بدقة 720p ونسبة 16:9 يولّد 121 إطارًا ويبلّغ عن 108,900 توكن بدلًا من 108,000. راجع الرسوم النهائية في سجل الاستخدام الخاص بحسابك. ولا تُحتسب رسوم على المهام الفاشلة.

بنية المخرجات

يعيد الإرسال المهمة الجديدة:

{"id": "task_...", "model": "dreamina-seedance-2-0", "status": "processing", "created_at": 1790321515}

الاستعلام عن المهمة

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

استعلم كل 10 إلى 20 ثانية حتى تصبح قيمة status هي completed أو failed. وانتهاء مهلة الشبكة أثناء الاستعلام لا يعني فشل التوليد: احتفظ بمعرّف المهمة واستأنف التحقق منها. ولا تنشئ مهمة أخرى لمعرفة التقدّم.

مثال استعلام كامل

شغّل هذا بعد مثال الإرسال بلغة Python الوارد أعلاه.

import time

deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        print(task["output"]["video_url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(15)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

المهمة المكتملة

{
  "id": "task_...",
  "model": "dreamina-seedance-2-0",
  "status": "completed",
  "created_at": 1790321515,
  "finished_at": 1790321652,
  "output": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
    "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg",
    "content": {
      "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
      "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg"
    },
    "usage": {"completion_tokens": 108900, "total_tokens": 108900},
    "seed": 42,
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "framespersecond": 24,
    "generate_audio": true,
    "draft": false,
    "output_format": "mp4",
    "service_tier": "default",
    "execution_expires_after": 172800,
    "priority": 0
  }
}
الحقلالمعنى
idاحتفظ بهذا المعرّف للاستعلامات اللاحقة.
statusprocessing أو completed أو failed.
output.video_urlالفيديو المولَّد.
output.last_frame_urlالإطار الأخير، عندما تكون قيمة return_last_frame هي true.
output.contentنفس الروابط بصيغة ModelArk الرسمية.
output.usage.completion_tokensتوكنات الفيديو المكتمل؛ وهي الكمية المُحتسبة.
output.duration, output.resolution, output.ratio, output.framespersecond, output.seedما جرى توليده فعليًا؛ وseed هي القيمة التي اختارها النموذج.
created_at, finished_atطوابع زمنية Unix بالثواني.
error{"code", "message"} في المهمة الفاشلة.

تُستضاف روابط الفيديو على تخزيننا. واحفظ الملف في تخزينك الخاص إذا احتجت إلى نسخة دائمة.

الأخطاء

الطلبات المرفوضة قبل إنشاء المهمة تعيد خطأ HTTP مصحوبًا بكائن error ولا تُحتسب عليها رسوم. أما المهمة التي تفشل بعد قبولها فتعيد عند الاستعلام رمز HTTP 200 مع status: "failed" وكائن error. والمخرجات التي تحجبها تصفية المحتوى تفشل بالرمز content_policy_violation؛ والمهمة التي تتجاوز execution_expires_after تفشل مع task_expired.

راجع كتالوج الأخطاء المشترك للاطلاع على الرموز وحالات HTTP وإرشادات إعادة المحاولة.

{
  "id": "task_...",
  "model": "dreamina-seedance-2-0",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

إذا انتهت مهلة الإرسال نفسه، فراجع سجل المهام الخاص بك قبل الإرسال مجددًا: فربما قُبل الطلب الأول.

نصائح

  • صِف الموضوع والحركة وحركة الكاميرا والإضاءة بجمل كاملة.
  • أنشئ المسودة بدقة 480p مع duration قصيرة، ثم ولّد النسخة المختارة بدقة أعلى.
  • اربط اللقطات عبر return_last_frame: استخدم الإطار المُعاد بوصفه first_frame للمهمة التالية.

مواضيع ذات صلة