Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Seedance 2.5 APIクイックスタート: はじめてのビデオリクエスト
2026/09/12

Seedance 2.5 APIクイックスタート: はじめてのビデオリクエスト

APIキーとcURLリクエスト、Pythonでのポーリングを使ってSeedance 2.5 APIを呼び出します。入力モード、フレームチェーン、初回ビデオ生成の費用を学びます。

reAPIでSeedance 2.5 APIを呼び出すには、APIキーを作成し、/api/v1/videos/generationsmodel: "doubao-seedance-2.5-face"でリクエストを送信し、返されたidをポーリングします。完了したタスクにはビデオURLが含まれています。テキスト、画像、最初/最終フレーム、マルチモーダルリファレンスリクエストに同じモデルIDを使用します。[1]

アップロードするファイルがないテキストリクエストから始めて、診断を容易にしましょう。9月12日のレートは480p、参照ビデオなしで秒あたり$0.118589です。このリクエストは475クレジット、またはクレジットを整数に切り上げた後$0.475かかります。Seedance 2.5モデルページには、ライブレートテーブルと同じ設定をチェックするためのプレイグラウンドがあります。[2]

TL;DR

  • API Keysでベアラーキーを作成し、model: "doubao-seedance-2.5-face"を送信します。ページスラッグseedance-2-5はリクエストのモデルIDではありません。[1]
  • 1回送信し、レスポンスidを保存して/api/v1/tasks/{id}をポーリングします。成功したPOSTがタスクを開始します。これはビデオの準備ができたことを意味しません。[1]
  • durationを4~30秒から選択し、resolution480p720p、または1080pから選択します。予測可能な初期リザーブのために固定期間を使用します。[1]
  • 明示的な最初/最終フレーム入力にはsize: "adaptive"を設定します。出力はフレーム形状に従います。[1]
  • 参照ビデオなしの10秒720pリクエストは2,669クレジット、または9月12日のレートで$2.669です。参照動画の料金は、出力秒数だけでは決まりません。[1][2]

Seedance 2.5 APIキーを作成し、1つのリクエストを準備する

reAPIにサインインし、API Keysを開いて、生成に支払うワークスペースのキーを作成します。これをREAPI_API_KEYという名前のローカル環境変数にコピーします。ブラウザのJavaScript、パブリックリポジトリ、スクリーンショットからキーを保護してください。リクエストはAuthorization: Bearer ...ヘッダーで認証されます。ドキュメント化されたワークフローは別個のプロジェクトヘッダーを必要としません。[1]

また、リクエストの初期リザーブに十分なクレジットが必要です。対象のアカウントに提供されるプロモーションクレジットは、特定のビデオが完全に資金提供されるかどうかとは別です。アカウントに表示されている金額をお読みください。このチュートリアルは資金提供されたアカウントを想定しており、無料生成を保証しません。[2]

最初のペイロードは小さく保ちます。プロンプト、固定期間、アスペクト比、解像度はテキストリクエストに十分です。送信とポーリングパスが機能してから、画像または音声を追加します。これにより、失敗した最初の試行の診断が容易になります。アクセス不可能なリファレンスURLや互換性のないソースファイルが原因である可能性はありません。

最初のcURLリクエストを送信してタスクIDを保存する

REAPI_API_KEYがシェルで既に設定されている場合、このリクエストを送信します:

curl --fail-with-body https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer $REAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2.5-face",
    "prompt": "A matte cobalt ceramic mug stands on an ivory turntable. One continuous studio shot. Over four seconds the turntable rotates clockwise by about 45 degrees. The camera stays fixed at mug height. Keep the handle, rim and glaze consistent. Soft side light, plain background, no text or logos.",
    "duration": 4,
    "size": "16:9",
    "resolution": "480p",
    "generate_audio": false,
    "return_last_frame": true
  }'

他に何かする前に、レスポンスのidを保存します。このID識別子はこの生成に属し、後続のGETリクエストに使用する値です。モデルID、ファイルURL、または推測されたIDに置き換えないでください。レスポンスはタスクステータスも含みます。ビデオURLはタスクが完了したときに表示されます。[1]

この例は、ビデオに加えて最終フレーム画像もリクエストしています。スタンドアロンクリップの場合、この画像を無視することができます。または、後で複数のショットをつなぐときに使用します。同じプロンプトと設定は、当社のテスト済みプロンプトライブラリに含まれており、生成されたテイクを検査して、文言を品質保証として扱う必要がありません。

Seedance 2.5 API タスクをPythonで送信してポーリングする

以下のPython例は、cURL例の代替です: 新しいビデオタスクを作成し、そのタスクをポーリングします。最初のテストに1つの送信方法を選択してください。両方の例を実行すると、2つの有料生成が作成されます。

スクリプトはローカルで最大30分待機します。このタイムアウトは、約束された生成時間ではなく、サンプルクライアントポリシーです。別のジョブを静かに開始する代わりに、HTTPエラーを報告します。requestsをインストールし、実行する前にREAPI_API_KEYを設定します。

import os
import time
import requests

BASE = "https://reapi.ai/api/v1"
headers = {"Authorization": f"Bearer {os.environ['REAPI_API_KEY']}"}
payload = {
    "model": "doubao-seedance-2.5-face",
    "prompt": "A ceramic mug on a table. Locked camera, soft daylight.",
    "duration": 4,
    "resolution": "480p",
    "size": "16:9",
    "generate_audio": False,
}

submitted = requests.post(
    f"{BASE}/videos/generations",
    headers=headers,
    json=payload,
    timeout=120,
)
submitted.raise_for_status()
task_id = submitted.json()["id"]
print("Save this task id:", task_id, flush=True)

deadline = time.monotonic() + 30 * 60
while time.monotonic() < deadline:
    response = requests.get(
        f"{BASE}/tasks/{task_id}", headers=headers, timeout=60
    )
    if response.status_code in (429, 500, 502, 503, 504):
        time.sleep(10)
        continue
    response.raise_for_status()
    task = response.json()
    if task["status"] == "completed":
        for url in task["output"]["video_urls"]:
            print(url)
        break
    if task["status"] == "failed":
        raise RuntimeError(task.get("error"))
    time.sleep(10)
else:
    raise TimeoutError(f"Resume polling existing task {task_id}")

ポーリングは生成クレジットを消費しません。ローカルプロセスがタイムアウトした場合、保存されたIDを保持し、そのタスクのGETリクエストを再開します。ローカルタイムアウトだけでは、リモート生成が失敗したことを確認できません。同様に、POSTコネクションがレスポンスを受信する前に切断した場合、同じ作業を再度送信する前にタスク履歴を確認してください。[1]

サービス統合の場合、送信直後にタスクIDを独自のデータベースに永続化します。重要な区別は、既存のタスクの読み取りを再試行することと、新しいタスクを作成することの違いです。後者は別の生成リクエストです。

メディアフィールドを通じて4つの入力モードを選択する

メディアフィールドはリクエスト形状を選択します。完全なSeedance 2.5 APIドキュメントと一緒にこのテーブルを使用してください。[1]

目的のリクエスト送信するフィールド覚えておく制約
テキストからビデオpromptテキストのみのリクエストにはプロンプトが必要です
リファレンス画像からビデオimage_urlsプラスモーションプロンプトパブリック画像URL。最大30画像
明示的な最初フレームまたは最初/最後フレームimage_with_rolessize: "adaptive"を使用します。最終フレームには最初のフレームが必要です
マルチモーダルリファレンスimage_urlsvideo_urls、/またはaudio_urls各メディアタイプには独自のファイルと期間の制限があります

たとえば、テキストのみのペイロードのイメージ入力を明示的な最初フレームに置き換えます:

{
  "image_with_roles": [
    {
      "url": "https://file.deepytb.com/landing/qwen-image-2/playground-input.webp",
      "role": "first_frame"
    }
  ],
  "size": "adaptive"
}

このブロックは完全なPOSTボディではなく、完全なリクエストにマージするフィールドを示しています。使用する権利のある画像に置き換えてください。image_urlsimage_with_rolesの両方を送信しないでください。それらは相互に排他的です。また、フレームロールとreference_imageロールを同じ配列で混在させないでください。[1]

ビデオ入力の場合、ソースクリップは2~30秒の長さである必要があり、最大10クリップで、合計30秒以下である必要があります。オーディオの制限は別で、10トラック、合計30秒です。より多くのファイルがそれ自体でリクエストをより多く制御することはありません。各リファレンスにプロンプト内で明確な役割を割り当ててください。[1]

完璧な継続性を想定せずに最終フレームをチェーンする

最初のリクエストでreturn_last_frame: trueを設定します。そのタスクが完了したら、output.last_frame_urlを読み、その URLを次のリクエストのimage_with_roles配列にrole: "first_frame"で配置します。size: "adaptive"を再度使用します。[1]

対象、衣装、設定、および意図した次のアクションの関連する説明を持ち越します。共有の境界画像は、次のショットに視覚的な開始点を提供します。これは、後のフレームがすべての詳細を保持することを証明していません。ペアを1つのシーケンスとして使用する前に、結合、特に動く手、視線方向、背景オブジェクトを検査してください。

ビデオ編集は異なるリクエスト形状です。明示的なomni_reference_task_type: "edit"にはソースビデオ、適応サイズ、自動期間が必要です。これは写真をガイダンスとして使用するだけの新しいシーンに適切な設定ではありません。最初の統合をプレーンな生成パスで保持し、既存のクリップを変更する必要がある場合にのみ編集を追加してください。[1]

ソースビデオを追加する前にリクエスト費用を計算する

参照ビデオなしのリクエストでは、秒あたりの価格に出力期間を乗算し、ドルをクレジットに変換して、1つのクレジットに切り上げます。1クレジット=$0.001です。[1]

リクエスト9月12日のレート計算お支払い総額
4秒、480p、参照ビデオなし$0.118589/秒ceil(0.118589 × 4 × 1000)475クレジット / $0.475
10秒、720p、参照ビデオなし$0.266824/秒ceil(0.266824 × 10 × 1000)2,669クレジット / $2.669
10秒出力、3秒リファレンス、720p$0.160094/秒ceil(0.160094 × 17 × 1000)2,722クレジット / $2.722

最後の行は17秒分を請求します。ビデオ入力リクエストは、出力と丸められたソース期間の合計とceil(5 × output / 3)のいずれか大きい方を使用するためです。したがって、より低い参照ビデオレートは、必ずしもより低い最終請求を意味しません。イメージとオーディオリファレンスはソース秒を追加しません。[1][2]

自動期間、duration: -1は30秒の上限に対して予約し、後で配信期間に決済します。リザーブを小さく保つ必要がある場合は、固定期間を使用します。より広いプラットフォーム間比較については、API料金ガイドを参照してください。

APIホスト命令をまとめて保つ

OpenRouter、fal、またはGitHubでSeedance 2.5を検索すると、異なるクライアントとサービス仕様につながることがあります。このチュートリアルのキー、エンドポイント、モデルID、タスクエンベロープは一緒に属しています。別のサービスを呼び出すリポジトリは、このリクエストのドロップイン置換ではありません。

サンプルを適応させる前に、ベースURL、認証ヘッダー、受け入れられるモデル名、入力スキーマ、ステータスエンドポイントを確認してください。実際にリクエストを受け取るホストのドキュメントを使用してください。ここのcURLとPython例を実行するために、サードパーティのGitHubラッパーは必要ありません。それらはreAPIのドキュメント化されたHTTPインターフェースを使用します。[1]

FAQ

Seedance 2.5 APIキー

reAPI API Keysでキーを作成し、ベアラートークンとして使用します。サーバーまたはローカル環境に保管し、リクエストに十分なワークスペースクレジットがあります。[1]

Seedance 2.5 APIドキュメント

モデルリファレンスは、受け入れられるフィールド、モード、制約、請求についてドキュメント化しています。現在の秒あたりの価格についてはモデルページを使用します。[1][2]

Seedance 2.5 APIチュートリアル

1つの固定期間テキストリクエストを送信し、そのidを保存してから、完了または失敗するまでポーリングします。そのパスが機能してから、参照ファイルのみを追加します。[1]

Seedance 2.5 apigithub

GitHubクライアントはオプションです。どのサービスを呼び出すか、そのフィールドが現在のAPIドキュメントと一致しているかどうかを検査してから、サンプルペイロードを使用します。[1]

Seedance 2.5 APIアクセス

reAPIはdoubao-seedance-2.5-faceをその非同期ビデオエンドポイントを通じて公開します。ウェブサイトモデルスラッグは、送信するモデル値ではありません。[1]

Seedance 2.5 API費用

9月12日のレートでクレジット丸めを行った4秒480pリクエスト(ソースビデオなし)は$0.475です。期間、解像度、参照ビデオ請求が合計を変更します。[1][2]

ワークフローを拡張する前に1つのリクエストを完成させる

最初の成功したペイロードとそのタスクIDをSeedance 2.5 API統合ベースラインとして保持します。次のリクエストでは、ショットに必要なメディアタイプを追加し、返されたビデオをチェーンまたは編集を導入する前に確認します。

参考文献

  1. reAPI. Seedance 2.5 API — Parameters, Modes & Billing. 2026年9月12日にブラウザから取得。reapi.ai/docs/seedance-2-5
  2. reAPI. Seedance 2.5 model page, rendered pricing table and FAQ. 2026年9月12日にブラウザから取得。reapi.ai/models/seedance-2-5