Claude Opus 5.5 כבר זמין ב-SeedRouter
SeedRouter Docs

Seedance 2.5

יצירה, עריכה והארכה של וידאו עם Seedance 2.5 דרך ה-API הרשמי של משימות ModelArk: עד 30 שניות ב-1080p, עם עד 30 ייחוסי תמונה, 10 ייחוסי וידאו ו-10 ייחוסי אודיו.

View Markdown

Seedance 2.5 הוא מודל יצירת הווידאו החדש ביותר של ByteDance (Dreamina Seedance 2.5). שלח את גוף המשימה הרשמי של ModelArk, שמור את מזהה המשימה שהוחזר, וקרא את הווידאו המוכן מתוך המשימה. תמונות, סרטוני וידאו ואודיו נשלחים ב-content ככתובות URL.

מזהי מודל

מזהה מודלרזולוציותאורך
dreamina-seedance-2-5480p, 720p, 1080p4–30 שניות, או אוטומטי

המחירים הנוכחיים מופיעים בדף המודל.

דוגמה מהירה

curl https://api.seedrouter.ai/v1/contents/generations/tasks \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5",
    "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/contents/generations/tasks
כותרתערך
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

גוף הבקשה הוא בקשת "יצירת משימת יצירת וידאו" הרשמית של ModelArk. אם אתה כבר קורא ל-ModelArk, שנה רק את כתובת הבסיס ל-https://api.seedrouter.ai/v1 ואת מפתח ה-API. התשובה היא {"id": "task_..."}, ולא הווידאו המוכן. שמור את מפתחות ה-API בקוד שרץ בצד השרת.

פרמטרים

שםסוגחובהברירת מחדלהערות
modelstringכן—dreamina-seedance-2-5.
contentobject[]כן—ההנחיה והמדיה; ראה בהמשך.
resolutionenumלא720p480p, 720p, 1080p.
ratioenumלאadaptive16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. חייב להיות adaptive (או מושמט) כשיש פריים ראשון, וכן ב-edit וב-extend.
durationintegerלא-1בין 4 ל-30 שניות, או -1 כדי לתת למודל לבחור. ב-edit חייב להיות -1.
generate_audiobooleanלאtrueיצירת סאונד יחד עם הווידאו.
watermarkbooleanלאfalseהוספת סימן מים.
return_last_framebooleanלאfalseהחזרת הפריים האחרון גם ככתובת URL של תמונה.
output_formatenumלאmp4mp4 או mov.
omni_reference_task_typeenumלאautoauto, reference, edit, extend. edit ו-extend דורשים סרטון ייחוס.
execution_expires_afterintegerלא172800בין 3600 ל-259200 שניות. משימה שעדיין לא הסתיימה אחרי הזמן הזה עוברת למצב expired ואינה מחויבת.
priorityintegerלא0בין 0 ל-9.
safety_identifierstringלא—בין 1 ל-64 תווים שמזהים את משתמש הקצה שלך. אפשר להשתמש בגיבוב.
service_tierenumלאdefaultרק default.
content_filterbooleanלאtrueהרחבה של SeedRouter. false מכבה את סינון התוכן בבקשה הזו.

פריטי content

פריטמבנהתפקידמגבלה
טקסט{"type": "text", "text": "..."}—אחד.
תמונה{"type": "image_url", "image_url": {"url": "https://..."}, "role": "..."}first_frame, last_frame, reference_imageעד 30 תמונות ייחוס.
וידאו{"type": "video_url", "video_url": {"url": "https://..."}, "role": "reference_video"}reference_videoעד 10.
אודיו{"type": "audio_url", "audio_url": {"url": "https://..."}, "role": "reference_audio"}reference_audioעד 10.

שדות לא מוכרים נדחים. לא נתמכים: seed, callback_url (תשאל את המשימה במקום זאת), draft ו-draft_task, tools, וכן frames ו-camera_fixed שקיימים רק ב-1.x. לא ניתן לבטל או למחוק משימות.

מצבים

המצב נקבע לפי פריטי content; אין פרמטר מצב.

מצבcontent
טקסט לווידאופריט טקסט אחד
פריים ראשוןטקסט (אופציונלי) + תמונה אחת עם התפקיד first_frame, או תמונה אחת בלי תפקיד
פריים ראשון ואחרוןטקסט (אופציונלי) + תמונת first_frame אחת + תמונת last_frame אחת
ייחוס מולטימודליטקסט + כל שילוב של פריטי reference_image, reference_video ו-reference_audio
עריכת וידאוטקסט + reference_video אחד, עם omni_reference_task_type: "edit"
הארכת וידאוטקסט + reference_video אחד, עם omni_reference_task_type: "extend"

אי אפשר לשלב מצבי פריים ראשון עם פריטי ייחוס. כשיש כמה תמונות או מדיה מסוג אחר, לכל תמונה נדרש role.

דוגמת ייחוס

curl https://api.seedrouter.ai/v1/contents/generations/tasks \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5",
    "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
  }'

החלף את כתובות הדוגמה בקבצים שלך שניתן לגשת אליהם.

קלטי מדיה

ה-API הזה מקבל הפניות בכתובת URL בלבד. base64, כתובות data:, מזהי asset:// והעלאות multipart אינם מתקבלים. Playground מעלה את הקבצים שנבחרו לאחסון ורק אז שולח את הכתובות שלהם.

המדיה חייבת להגיע מכתובות HTTP(S) ציבוריות ולעמוד במגבלות הרשמיות של המודל:

מדיהפורמטיםמגבלות
תמונהJPEG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIFפחות מ-30 MB; רוחב וגובה 300–6000 px; יחס גובה-רוחב (רוחב / גובה) 0.4–2.5; 1–30 תמונות ייחוס
וידאוMP4, MOV (H.264 או H.265)2–30 שניות כל אחד (4–30 שניות ב-edit), עד 10, לכל היותר 30 שניות בסך הכול; לכל היותר 200 MB; 24–60 FPS; רוחב וגובה 300–6000 px; יחס גובה-רוחב 0.4–2.5; 407,696–8,295,044 פיקסלים (רוחב × גובה)
אודיוWAV, MP32–30 שניות כל אחד, עד 10, לכל היותר 30 שניות בסך הכול; לכל היותר 15 MB

המודל אינו תומך בתמונות ייחוס ובסרטוני ייחוס שמופיעות בהם פנים אנושיות אמיתיות.

המדיה נבדקת כשהמשימה מתחילה, לפני כל יצירה. משימה שהמדיה שלה חורגת מאחת המגבלות האלה מסתיימת במצב failed עם invalid_request_error והודעה שמציינת את הכלל, למשל The request was rejected: content reference videos must total at most 15 seconds., ואינה מחויבת. קובץ שלא ניתן לקרוא בשלב הזה מועבר למודל, שמקבל או דוחה אותו; בכל מקרה, משימה שנכשלה אינה מחויבת.

גורמי עלות

בדוק את מדור המחירים של המודל לתעריפים הנוכחיים. Seedance 2.5 מחייב לפי טוקני וידאו, יחידת החיוב הרשמית:

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

התעריף למיליון טוקנים תלוי ברזולוציית הפלט ובשאלה אם הבקשה כוללת סרטון ייחוס; בבקשה עם סרטון ייחוס כל הטוקנים מחויבים בתעריף נמוך יותר. קלטי טקסט, תמונה ואודיו אינם מחויבים. ביחס 16:9, שנייה אחת היא 9,607.5 טוקנים ב-480p (854×480), 21,600 ב-720p, 48,600 ב-1080p.

החיוב נקבע לפי הטוקנים שהווידאו המוכן מדווח (usage.completion_tokens), ולכן duration: -1 מחויב לפי האורך שנוצר בפועל. קטעים מרונדרים ארוכים מעט מהאורך המבוקש: בקשה של 5 שניות ב-720p וביחס 16:9 מרנדרת 121 פריימים ומדווחת 108,900 טוקנים ולא 108,000. את החיובים הסופיים תראה בהיסטוריית השימוש של החשבון שלך. משימות שנכשלו או שפג תוקפן אינן מחויבות.

מבנה הפלט

השליחה מחזירה את מזהה המשימה:

{"id": "task_..."}

קבלת המשימה

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

תשאל כל 10–20 שניות עד ש-status יהיה succeeded, failed או expired. פקיעת זמן ברשת במהלך התשאול אינה מעידה שהיצירה נכשלה: שמור את מזהה המשימה והמשך בבדיקה. אל תיצור משימה נוספת כדי לבדוק התקדמות.

דוגמת תשאול מלאה

הרץ זאת אחרי דוגמת השליחה ב-Python שלמעלה.

import time

deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/contents/generations/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "succeeded":
        print(task["content"]["video_url"])
        break
    if task["status"] in ("failed", "expired"):
        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-5",
  "status": "succeeded",
  "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,
  "created_at": 1790321515,
  "updated_at": 1790321652
}
שדהמשמעות
idשמור את המזהה הזה לתשאולים הבאים.
statusqueued, running, succeeded, failed או expired.
content.video_urlהווידאו שנוצר.
content.last_frame_urlהפריים האחרון, כש-return_last_frame הוא true.
usage.completion_tokensטוקני הווידאו של הווידאו המוכן; זו הכמות שמחויבת.
duration, resolution, ratio, framespersecond, seedמה שרונדר בפועל; seed הוא הערך שהמודל בחר.
created_at, updated_atחותמות זמן Unix בשניות.
error{"code", "message"} במשימה שנכשלה או שפג תוקפה.

כתובות הווידאו מאוחסנות באחסון שלנו. שמור את הקובץ באחסון שלך אם אתה צריך עותק קבוע.

רשימת משימות

curl "https://api.seedrouter.ai/v1/contents/generations/tasks?page_num=1&page_size=20&filter.status=succeeded" \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

מחזיר {"total": N, "items": [...]} עם אובייקטי משימה מ-7 הימים האחרונים, מהחדש לישן. page_num ו-page_size הם בין 1 ל-500 (ברירות המחדל 1 ו-20). מסננים: filter.status, filter.model, filter.task_ids (ניתן לחזור עליו) ו-filter.service_tier.

שגיאות

בקשות שנדחות לפני יצירת המשימה מחזירות שגיאת HTTP יחד עם אובייקט error ואינן מחויבות. משימה שנכשלת לאחר שהתקבלה מחזירה בתשאול HTTP 200, עם status: "failed" (או "expired") ואובייקט error. פלט שנחסם על ידי סינון התוכן נכשל עם content_policy_violation; משימה שנמשכת מעבר ל-execution_expires_after מסתיימת במצב expired עם task_expired.

ראה את קטלוג השגיאות המשותף לקודים, לסטטוסי HTTP ולהנחיות ניסיון חוזר.

{
  "id": "task_...",
  "model": "dreamina-seedance-2-5",
  "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 של המשימה הבאה.
  • כדי לערוך צילומים, הגדר את omni_reference_task_type ל-edit ותאר רק את מה שצריך להשתנות.

קישורים רלוונטיים