Claude Opus 5.5 が SeedRouter で利用できます
SeedRouter Docs

Seedance 2.5

ModelArk 公式のタスク API で Seedance 2.5 の動画を生成・編集・延長します: 1080p で最大 30 秒、参照は画像最大 30 枚・動画最大 10 本・音声最大 10 本。

View Markdown

Seedance 2.5 は ByteDance の最新の動画生成モデル(Dreamina Seedance 2.5)です。ModelArk 公式のタスクのリクエストボディを送信し、返されたタスク ID を保持して、そのタスクから完成した動画を読み取ります。画像・動画・音声は URL として content に入れます。

モデル ID

モデル ID解像度長さ
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 を呼び出している場合は、ベース URL を 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。最初のフレームを使う場合と、edit および extend では adaptive(または省略)にする必要があります。
durationintegerいいえ-14〜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いいえ1728003600〜259200 秒。この時間を過ぎても完了していないタスクは expired になり、課金されません。
priorityintegerいいえ00〜9。
safety_identifierstringいいえ—エンドユーザーを識別する 1〜64 文字。ハッシュ値でも構いません。
service_tierenumいいえdefaultdefault のみ。
content_filterbooleanいいえtrueSeedRouter の拡張パラメータ。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(代わりにタスクをポーリングしてください)、draft と draft_task、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/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
  }'

例の URL は、ご自身のアクセス可能なファイルに置き換えてください。

メディア入力

この API は URL 参照のみを受け付けます。base64、data: URL、asset:// ID、multipart アップロードは受け付けません。Playground は選択されたファイルをストレージにアップロードしてから、その URL を送信します。

メディアは公開 HTTP(S) URL で、モデルの公式の制限を満たす必要があります:

メディアフォーマット制限
画像JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF30 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、MP31 本あたり 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 / 1024

100 万トークンあたりのレートは、出力解像度と、リクエストに参照動画が含まれるかどうかで決まります。参照動画を含むリクエストは、すべてのトークンに低いレートが適用されます。テキスト・画像・音声の入力は課金されません。16:9 の場合、1 秒あたりのトークン数は 480p(854×480)で 9,607.5、720p で 21,600、1080p で 48,600 です。

課金額は完成した動画が報告するトークン数(usage.completion_tokens)に基づくため、duration: -1 は実際に生成された長さで課金されます。レンダリングされたクリップは、指定した長さをわずかに超えます。5 秒・720p・16:9 のリクエストは 121 フレームをレンダリングし、108,000 ではなく 108,900 トークンを報告します。最終的な課金額はアカウントの使用履歴で確認してください。失敗したタスクと期限切れのタスクは課金されません。

出力スキーマ

送信するとタスク ID が返ります:

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

タスクを取得する

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

status が succeeded、failed、expired のいずれかになるまで、10〜20 秒ごとにポーリングしてください。ポーリング中のネットワークタイムアウトは生成の失敗を意味しません。タスク ID を保持して確認を再開してください。進捗確認のために別のタスクを作成しないでください。

ポーリングの完全な例

上記の 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以降の照会のためにこの ID を保持してください。
statusqueued、running、succeeded、failed、expired のいずれか。
content.video_url生成された動画。
content.last_frame_urlreturn_last_frame が true のときの最後のフレーム。
usage.completion_tokens完成した動画の動画トークン数。課金対象の数量です。
duration、resolution、ratio、framespersecond、seed実際にレンダリングされた値。seed はモデルが選んだ値です。
created_at、updated_at秒単位の Unix タイムスタンプ。
error失敗または期限切れのタスクでの {"code", "message"}。

動画 URL は当社のストレージでホストされています。長期保存が必要な場合は、ファイルをご自身のストレージに保存してください。

タスクの一覧

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

過去 7 日間のタスクオブジェクトを新しい順に並べた {"total": N, "items": [...]} を返します。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 を超えて実行されたタスクは task_expired とともに 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 にし、変更すべき点だけを記述してください。

関連情報