Video
Seedance 2.5
透過官方 ModelArk 任務 API 使用 Seedance 2.5 生成、編輯和延長影片:最長 30 秒、最高 1080p,支援最多 30 張圖片、10 段影片和 10 段音訊參考。
Seedance 2.5 是 ByteDance 最新的影片生成模型(Dreamina Seedance 2.5)。傳送官方 ModelArk 任務請求主體到 POST /v1/videos/generations,保留回傳的任務 ID,再從 GET /v1/tasks/{id} 讀取生成完成的影片。圖片、影片和音訊以 URL 形式放在 content 中。
模型 ID
| 模型 ID | 解析度 | 長度 |
|---|---|---|
dreamina-seedance-2-5 | 480p、720p、1080p | 4–30 秒,或自動 |
目前價格見模型頁。
快速範例
curl https://api.seedrouter.ai/v1/videos/generations \
-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/videos/generations| 標頭 | 值 |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
請求主體就是官方 ModelArk 的「建立影片生成任務」請求主體;這是每個 SeedRouter 影片模型都使用的同一個端點。回應是新任務(id、status: "processing"),而不是生成完成的影片。請把 API 金鑰保存在伺服器端程式碼中。
參數
| 名稱 | 型別 | 必填 | 預設值 | 說明 |
|---|---|---|---|---|
model | string | 是 | — | dreamina-seedance-2-5。 |
content | object[] | 是 | — | 提示詞和媒體;見下文。 |
draft | boolean | 否 | false | true 表示生成 480p 草稿。 |
resolution | enum | 否 | 480p、720p、1080p。一般生成預設為 720p,草稿預設為 480p;以草稿生成正式影片時必須明確設為 1080p。 | 480p、720p、1080p。 |
ratio | enum | 否 | adaptive | 16:9、4:3、1:1、3:4、9:16、21:9、adaptive。使用首影格時,以及 edit 和 extend 下,必須為 adaptive(或省略)。 |
duration | integer | 否 | -1 | 4–30 秒,或傳 -1 由模型決定。edit 下必須為 -1。 |
generate_audio | boolean | 否 | true | 隨影片一起生成聲音。 |
watermark | boolean | 否 | false | 加上浮水印。 |
return_last_frame | boolean | 否 | false | 同時以圖片 URL 形式回傳最後一個影格。 |
output_format | enum | 否 | mp4 | mp4 或 mov。 |
omni_reference_task_type | enum | 否 | auto | auto、reference、edit、extend。edit 和 extend 需要參考影片。 |
execution_expires_after | integer | 否 | 172800 | 3600–259200 秒。超過這個時間仍未完成的任務會失敗並伴隨 task_expired,且不計費。 |
priority | integer | 否 | 0 | 0–9。 |
safety_identifier | string | 否 | — | 識別你的終端使用者,1–64 個字元。使用雜湊值即可。 |
service_tier | enum | 否 | default | 只能是 default。 |
content_filter | boolean | 否 | 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(請改為輪詢任務)、tools,以及僅適用於 1.x 的 frames 和 camera_fixed。任務無法取消或刪除。
模式
模式由 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/videos/generations \
-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
}'請把範例 URL 換成你自己、可存取的檔案。
媒體輸入
本 API 只接受 URL 參考。不接受 Base64、data: URL、asset:// ID 和 multipart 上傳。Playground 會先把所選檔案上傳到儲存空間,再提交其 URL。
媒體必須是可公開存取的 HTTP(S) URL,並符合模型的官方限制:
| 媒體 | 格式 | 限制 |
|---|---|---|
| 圖片 | 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 秒(edit 為 4–30 秒),最多 10 段,總長不超過 30 秒;不超過 200 MB;24–60 FPS;寬和高 300–6000 px;長寬比 0.4–2.5;407,696–8,295,044 像素(寬 × 高) |
| 音訊 | WAV、MP3 | 每段 2–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 按影片 token 計費,這是官方的計費單位:
video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024每百萬 token 的費率取決於輸出解析度,以及請求是否包含參考影片;包含參考影片的請求,其全部 token 都按較低的費率計費。文字、圖片和音訊輸入不計費。在 16:9 下,每秒在 480p(854×480)為 9,607.5 個 token,720p 為 21,600,1080p 為 48,600。
含參考影片的請求另有最低 token 門檻。估算費用時,即使原始參考影片較短,公式中的參考影片長度仍須至少以 ceil(output seconds × 2 / 3) 秒計算。此規則同時適用於草稿與正式影片任務;草稿影片本身不會成為參考影片。實際費用以完成任務傳回的用量為準。
扣款以生成完成的影片所回報的 token(output.usage.completion_tokens)為準,因此 duration: -1 會按實際生成的長度計費。算繪出的片段會略長於請求的長度:一個 5 秒、720p、16:9 的請求會算繪 121 個影格,回報 108,900 個 token,而不是 108,000。最終扣款請在帳號的用量記錄中查看。失敗的任務不計費。
輸出結構
提交後會回傳新任務:
{"id": "task_...", "model": "dreamina-seedance-2-5", "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。輪詢過程中發生網路逾時,並不代表生成失敗:請保留任務 ID 並繼續查詢。不要為了查看進度而再建立一個任務。
完整輪詢範例
請在上方的 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-5",
"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 | 請保留該 ID 供後續查詢使用。 |
status | processing、completed 或 failed。 |
output.video_url | 生成的影片。 |
output.last_frame_url | 最後一個影格,在 return_last_frame 為 true 時回傳。 |
output.content | 官方 ModelArk 格式的相同 URL。 |
output.usage.completion_tokens | 生成完成的影片的影片 token 數,即計費數量。 |
output.duration、output.resolution、output.ratio、output.framespersecond、output.seed | 實際算繪時的值;seed 是模型選定的值。 |
created_at、finished_at | 以秒為單位的 Unix 時間戳記。 |
error | 任務失敗時回傳 {"code", "message"}。 |
影片 URL 託管在我們的儲存空間上。需要長期保存時,請把檔案儲存到你自己的儲存空間中。
錯誤
在任務建立之前就被拒絕的請求,會回傳 HTTP 錯誤狀態碼和一個 error 物件,且不計費。受理之後才失敗的任務,查詢時會回傳 HTTP 200,並帶有 status: "failed" 和一個 error 物件。被內容過濾攔下的輸出會以 content_policy_violation 失敗;執行超過 execution_expires_after 的任務會以 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,並只描述需要改變的部分。
相關內容
草稿預覽與正式影片
設定 draft: true 可生成 480p 預覽。草稿模式不接受其他解析度。預覽生成的 token 用量規則與單價皆與標準 480p 生成相同。
{
"model": "dreamina-seedance-2-5",
"content": [{ "type": "text", "text": "A fox walks through a sunny garden." }],
"draft": true,
"resolution": "480p",
"duration": 4,
"ratio": "16:9"
}輪詢傳回的 SeedRouter 任務 ID,直到 status 為 completed 且 output.draft 為 true。在草稿建立後的 7 天內,使用該 ID 另行提交一筆請求:
{
"model": "dreamina-seedance-2-5",
"content": [{ "type": "draft_task", "draft_task": { "id": "task_YOUR_DRAFT_ID" } }],
"resolution": "1080p"
}草稿必須屬於你的帳號、已完成,且使用相同模型。content 只能包含一筆 draft_task。必須明確將 resolution 設為 1080p;省略 draft 或將其設為 false。請勿再次傳入 duration、ratio、seed、generate_audio、omni_reference_task_type、文字或媒體,即使值相同也不允許。這些設定皆沿用草稿。
新任務可設定 watermark、return_last_frame、output_format、execution_expires_after、priority、safety_identifier 和 service_tier: "default"。未傳入的輸出選項使用各自的預設值。content_filter 沿用草稿,無法變更。正式影片成功後會傳回新的任務 ID、output.draft: false,以及值為原始 SeedRouter 草稿 ID 的 output.draft_task_id。同一份草稿到期前,可用來分別生成多次正式影片。
草稿與正式影片個別計費。正式影片依原始草稿的輸入類別套用對應的 1080p 費率:若草稿使用參考影片,正式影片也套用參考影片費率,並將原始參考影片長度計入 token 用量。草稿影片本身不會作為額外輸入影片計入。每個任務皆使用提交當下生效的價格。失敗的請求不收費。
