Video
Seedance 2.5
ModelArk 公式のタスク API で Seedance 2.5 の動画を生成・編集・延長します: 1080p で最大 30 秒、参照は画像最大 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": "..."} | — | 1 つ。 |
| 画像 | {"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 |
|---|---|
| テキストから動画 | テキスト項目 1 つ |
| 最初のフレーム | テキスト(任意)+ ロールが first_frame の画像 1 枚、またはロールなしの画像 1 枚 |
| 最初と最後のフレーム | テキスト(任意)+ first_frame の画像 1 枚 + last_frame の画像 1 枚 |
| マルチモーダル参照 | テキスト + reference_image、reference_video、reference_audio の項目を自由に組み合わせたもの |
| 動画を編集 | テキスト + reference_video 1 本、omni_reference_task_type: "edit" を指定 |
| 動画を延長 | テキスト + reference_video 1 本、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) | 1 本あたり 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 | 1 本あたり 2〜30 秒、最大 10 本、合計 30 秒以下、15 MB 以下 |
実在の人物の顔を含む参照画像・参照動画には、モデルが対応していません。
メディアはタスクの開始時、生成の前に検証されます。メディアがこれらの制限のいずれかに違反したタスクは、invalid_request_error と、違反した規則を示すメッセージ(例: The request was rejected: content reference videos must total at most 15 seconds.)とともに failed で終了し、課金されません。その時点で読み取れないファイルはそのままモデルに渡され、モデルが受け付けるか拒否するかを判断します。いずれの場合も、失敗したタスクは課金されません。
課金に影響する要素
現在のレートはモデルの料金セクションで確認してください。Seedance 2.5 は公式の単位である動画トークンで課金されます:
video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024100 万トークンあたりのレートは、出力解像度と、リクエストに参照動画が含まれるかどうかで決まります。参照動画を含むリクエストは、すべてのトークンに低いレートが適用されます。テキスト・画像・音声の入力は課金されません。16:9 の場合、1 秒あたりのトークン数は 480p(854×480)で 9,607.5、720p で 21,600、1080p で 48,600 です。
参照動画を含むリクエストには、トークン数の下限も適用されます。見積もりでは、元の参照動画が短い場合でも、式の参照動画の秒数を少なくとも ceil(output seconds × 2 / 3) として計算してください。この規則はドラフトと完成版の両方のタスクに適用されます。ドラフト動画自体が参照動画になることはありません。実際の料金は、完了したタスクから返される使用量に基づきます。
課金額は完成した動画が報告するトークン数(output.usage.completion_tokens)に基づくため、duration: -1 は実際に生成された長さで課金されます。レンダリングされたクリップは、指定した長さをわずかに超えます。5 秒・720p・16:9 のリクエストは 121 フレームをレンダリングし、108,000 ではなく 108,900 トークンを報告します。最終的な課金額はアカウントの使用履歴で確認してください。失敗したタスクは課金されません。
出力スキーマ
送信すると新しいタスクが返ります:
{"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"status が completed または failed になるまで、10〜20 秒ごとにポーリングしてください。ポーリング中のネットワークタイムアウトは生成の失敗を意味しません。タスク 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 | 完成した動画の動画トークン数。課金対象の数量です。 |
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 のプレビューを生成できます。ドラフトモードでは他の解像度は使用できません。プレビュー生成のトークン使用量の計算方法と単価は、標準の 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 項目を 1 つだけ指定できます。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 の単価が適用されます。ドラフトで参照動画を使用した場合、完成版にも参照動画ありの単価が適用され、元の参照動画の長さがトークン使用量に含まれます。ドラフト動画自体が追加の入力動画として加算されることはありません。各タスクには、送信時点で有効な価格が適用されます。失敗したリクエストには課金されません。
