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

Video

Seedance 2.0

View Markdown

ModelArk 公式のタスク API で Seedance 2.0 の動画を生成します: テキストから動画、最初と最後のフレーム、画像・動画・音声の参照に対応し、480p から 4K まで。

Seedance 2.0 は ByteDance の動画生成モデル(Dreamina Seedance 2.0)です。ModelArk 公式のタスクのリクエストボディを POST /v1/videos/generations に送信し、返されたタスク ID を保持して、GET /v1/tasks/{id} から完成した動画を読み取ります。画像・動画・音声は URL として content に入れます。

モデル ID

モデル ID解像度備考
dreamina-seedance-2-0480p、720p、1080p、4Kフルモデル
dreamina-seedance-2-0-fast480p、720p1 秒あたりの価格がより低い
dreamina-seedance-2-0-mini480p、720p1 秒あたりの価格が最も低い

3 つの ID はいずれも同じパラメータを受け付けます。現在の価格はモデルページを参照してください。

クイックサンプル

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はい—上記 3 つのモデル ID のいずれか。
contentobject[]はい—プロンプトとメディア。下記を参照してください。
resolutionenumいいえ720p480p、720p、1080p、4k。Fast と Mini の ID は 480p と 720p のみ受け付けます。
ratioenumいいえadaptive16:9、4:3、1:1、3:4、9:16、21:9、adaptive。
durationintegerいいえ54〜15 秒、またはモデルに任せる場合は -1。
generate_audiobooleanいいえtrue動画と一緒に音声を生成します。
watermarkbooleanいいえfalseウォーターマークを入れます。
return_last_framebooleanいいえfalse最後のフレームも画像 URL として返します。
execution_expires_afterintegerいいえ1728003600〜259200 秒。この時間を過ぎても完了していないタスクは task_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参照画像は最大 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、1.x 専用の frames と camera_fixed、そして output_format と omni_reference_task_type(Seedance 2.5 専用)。タスクのキャンセルや削除はできません。

モード

モードは content の項目から決まります。モードを指定するパラメータはありません。

モードcontent
テキストから動画テキスト項目 1 つ
最初のフレームテキスト(任意)+ ロールが first_frame の画像 1 枚、またはロールなしの画像 1 枚
最初と最後のフレームテキスト(任意)+ first_frame の画像 1 枚 + last_frame の画像 1 枚
マルチモーダル参照テキスト + 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
  }'

例の 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〜9 枚
動画MP4、MOV(H.264 または H.265)1 本あたり 2〜15 秒、最大 3 本、合計 15 秒以下、200 MB 以下、24〜60 FPS、幅と高さは 300〜6000 px、アスペクト比は 0.4〜2.5、407,696〜8,295,044 ピクセル(幅 × 高さ)
音声WAV、MP31 本あたり 2〜15 秒、最大 3 本、合計 15 秒以下、参照画像または参照動画が必要、15 MB 以下

実在の人物の顔を含む参照画像・参照動画には、モデルが対応していません。

メディアはタスクの開始時、生成の前に検証されます。メディアがこれらの制限のいずれかに違反したタスクは、invalid_request_error と、違反した規則を示すメッセージ(例: The request was rejected: content reference videos must total at most 15 seconds.)とともに failed で終了し、課金されません。その時点で読み取れないファイルはそのままモデルに渡され、モデルが受け付けるか拒否するかを判断します。いずれの場合も、失敗したタスクは課金されません。

課金に影響する要素

現在のレートはモデルの料金セクションで確認してください。Seedance 2.0 は公式の単位である動画トークンで課金されます:

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

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

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

出力スキーマ

送信すると新しいタスクが返ります:

{"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"

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-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以降の照会のためにこの ID を保持してください。
statusprocessing、completed、failed のいずれか。
output.video_url生成された動画。
output.last_frame_urlreturn_last_frame が true のときの最後のフレーム。
output.contentModelArk の公式フォーマットの同じ 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-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 として使ってください。

関連情報