Seedance 2.0
Seedance 2.0 API リファレンス。動画生成、フレームと参照素材、リクエスト例、タスクの状態確認、ダウンロード、料金を解説します。
Seedance 2.0 は、テキスト、開始・終了フレーム、画像・動画・音声の参照素材に対応し、480p、720p、1080p、4K で出力できます。1 回のリクエストで最長 15 秒の動画を生成します。モデルの詳細と Playground。
Wan API に接続する
API のベース URL は https://api.wanapi.app です。API キー設定で Seedance モデルファミリーのキーを作成し、Authorization: Bearer YOUR_API_KEY ヘッダーで送信してください。キーはサーバー側で保管します。Playground はウェブサイトのログインセッションを使い、同じアカウントの残高から課金します。ブラウザーにキーを貼り付ける必要はありません。
利用には、有効なアカウントと十分な残高が必要です。GET /v1/models で、そのキーから利用できるモデルを取得できます。Seedance モデルには POST /v1/videos を使い、JSON 本文でモデルを指定してください。
| 設定 | Seedance 2.0 |
|---|---|
| モデル ID | bytedance/seedance-2.0 |
resolution | 480p、720p、1080p、4k。既定値:720p。 |
duration | 出力の長さは 4–15 秒。-1 は自動設定。既定値:5。 |
aspectRatio | adaptive、16:9、4:3、1:1、3:4、9:16、21:9。既定値:adaptive。 |
generateAudio | 既定値は true。false にしてもトークン単価は下がりません。 |
| 出力 | 1 リクエストにつき動画 1 本、24 fps。 |
13 個すべてのトップレベルフィールドをリクエストフィールドに記載しています。aspectRatio と generateAudio を含め、ここに示したフィールド名を使ってください。
Seedance 2.0 のタスクを送信する
この例では、テキストから 720p の 4 秒動画を生成します。サーバー側で WAN_API_KEY に Seedance のキーを設定してください。一度だけ送信し、返された id を保存します。
curl https://api.wanapi.app/v1/videos \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.0",
"prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
"resolution": "720p",
"aspectRatio": "16:9",
"duration": 4,
"generateAudio": true
}'Seedance 2.0 のタスクを確認する
返された id を TASK_ID として保存し、同じキーで状態を確認します。送信時のレスポンスはタスクの受付結果です。動画は完了後に利用できます。最初は 5 秒間隔で状態を確認してください。タスクの状態とダウンロードも参照してください。
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Seedance 2.0 の料金
単価は動画 100 万トークンあたりの USD 建てで表示しています。最終費用は入力・出力の動画トークン数で決まります。解像度、長さ、参照動画の入力によって使用量が変わるため、参照動画の有無に対応する単価を使ってください。音声に別の料金区分はありません。
| 解像度 | 参照動画 | 公式定価 | Wan API の料金 | 割引率 |
|---|---|---|---|---|
| 480p | 動画なし | $0.0703 | 取得できません | — |
| 480p | 動画あり | $0.0432 | 取得できません | — |
| 720p | 動画なし | $0.1512 | 取得できません | — |
| 720p | 動画あり | $0.0929 | 取得できません | — |
| 1080p | 動画なし | $0.3742 | 取得できません | — |
| 1080p | 動画あり | $0.2284 | 取得できません | — |
| 4K | 動画なし | $0.7776 | 取得できません | — |
| 4K | 動画あり | $0.4666 | 取得できません | — |
見積もりは 16:9、24 fps の出力を基準にしています。アスペクト比や実際の出力サイズによって費用が変わる場合があります。
参照動画がない場合は、出力秒数のみを計算します。参照動画がある場合は、入力秒数と出力秒数の両方を計算します。課金対象の入力時間には、出力時間の 3 分の 2 を 1 秒単位で切り上げた秒数が最低限適用されます。
公式料金との比較: BytePlus 国際版のオンデマンド料金. 2026-10-15 に確認。Wan API の料金は自動更新されます。
最終費用は入力・出力の動画トークン数で決まります。失敗したリクエストには課金されません。
Seedance 2.0 の料金と見積もりを見る。送信前に Playground で見積もりをご確認ください。
リクエストフィールド
JSON オブジェクトを送信します。model に加え、空でないプロンプトまたは一つ以上のメディア入力が必要です。その他のフィールドは任意です。未定義のフィールドは受け付けません。
| フィールド | 型 | 仕様 |
|---|---|---|
model | 文字列 | 必須:bytedance/seedance-2.0。 |
prompt | 文字列 | 文章による指示。このサービスでは 20,000 文字まで。プロンプトまたはメディア入力が必要です。 |
image | URL または URL オブジェクト | 開始フレームの画像 URL、または type: "url"、url、任意の mediaType を持つオブジェクト。image と frameImages は、いずれか一方を使ってください。 |
frameImages | 配列 | first_frame 一つと、任意の last_frame。各要素に frameType と image を指定します。下のフレームの例を参照してください。 |
inputReferences | 配列 | 画像 9 枚、動画 3 本まで。各要素に type: "url"、url、mediaType を指定します。data/mediaType の URL 形式にも対応します。 |
aspectRatio | 文字列 | adaptive(既定値)、16:9、4:3、1:1、3:4、9:16、21:9。 |
resolution | 文字列 | 480p、720p、1080p、4k。既定値:720p。解像度の区分として 854x480、1280x720、1920x1080、3840x2160 も指定できます。形状は aspectRatio で選びます。 |
duration | 整数 | 出力の長さは 4–15 秒。-1 は自動設定。既定値:5。 |
fps | 整数 | 24 固定。省略するか、24 を送信してください。 |
seed | 整数 | 任意。-1 から 2147483647。再現性は保証しません。providerOptions.bytedance.seed との重複指定はできません。 |
generateAudio | 真偽値 | 音声を生成します。既定値:true。無効にしてもトークン単価は変わりません。 |
n | 整数 | 1 固定。1 リクエストにつき動画 1 本です。 |
providerOptions | オブジェクト | 任意の bytedance オブジェクト:referenceAudio(HTTP(S) URL を 3 個まで)、seed(トップレベルの seed と同じ範囲)。draft: true には対応していません。未定義のオプションは受け付けません。 |
入力の組み合わせとメディアの制限
-
開始フレームには
image、開始フレームと任意の終了フレームにはframeImagesを使います。終了フレームだけの指定と、同じフレーム種別の重複は受け付けません。 -
フレームは
inputReferencesまたはproviderOptions.bytedance.referenceAudioと併用できません。 -
参照モードでは、画像 9 枚、動画 3 本、音声 3 本まで、合計 15 個までの参照素材を指定できます。
-
メディア入力には公開 HTTP(S) URL が必要です。ファイルのバイト列のアップロードと、認証情報を含む URL は受け付けません。
-
画像:JPEG、PNG、WebP、BMP、TIFF、GIF。30 MB 未満、各辺 300–6000 ピクセル、アスペクト比 0.4–2.5。
-
動画:MP4 または MOV。1 ファイル 50 MB 以下。各動画は 2–15 秒、合計 15 秒以内。各辺 300–6000 ピクセル、アスペクト比 0.4–2.5、24–60 fps。
-
音声:MP3 または WAV。1 ファイル 15 MB 以下。各音声は 2–15 秒、合計 15 秒以内。少なくとも一つの参照画像または参照動画が必要です。
-
URL 先のメディアのサイズ、エンコード、長さは処理中に検証します。URL の検証だけでは、ファイルを使用できることは保証できません。
-
このエンドポイントでは、過去のドラフトタスクからの最終レンダリングや、任意のネイティブタスクオプションは提供していません。
フレームと参照素材のリクエスト例
以下の本文を、同じ POST /v1/videos エンドポイントに送信します。送信前に、すべての example.com の URL を、ご自身の直接アクセス可能なメディア URL に置き換えてください。タスクが完了するまで、入力 URL にアクセスできる状態を保ってください。
開始・終了フレーム
開始フレームだけを指定する場合は、image: "https://example.com/first-frame.jpg" を使い、frameImages を省略します。動画の始点と終点を指定する場合は、次のようにします。
{
"model": "bytedance/seedance-2.0",
"prompt": "The camera slowly moves from the opening scene to the closing scene.",
"frameImages": [
{
"frameType": "first_frame",
"image": "https://example.com/first-frame.jpg"
},
{
"frameType": "last_frame",
"image": "https://example.com/last-frame.jpg"
}
],
"aspectRatio": "adaptive",
"resolution": "720p",
"duration": 4
}画像・動画・音声の参照素材
画像と動画は、MIME タイプを明示して inputReferences に指定します。音声 URL は providerOptions.bytedance.referenceAudio に指定してください。このリクエストにフレーム入力を加えることはできません。
{
"model": "bytedance/seedance-2.0",
"prompt": "Use the character from the image and the camera movement from the video.",
"inputReferences": [
{
"type": "url",
"url": "https://example.com/character.jpg",
"mediaType": "image/jpeg"
},
{
"type": "url",
"url": "https://example.com/motion.mp4",
"mediaType": "video/mp4"
}
],
"providerOptions": {
"bytedance": {
"referenceAudio": [
"https://example.com/sound.wav"
]
}
},
"resolution": "720p",
"duration": 4
}状態を確認して動画をダウンロードする
受け付けたタスクには、次のようなオブジェクトを返します。ID とタイムスタンプは例示です。
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0",
"status": "queued",
"progress": 0,
"created_at": 1792022400
}API キーを使って GET /v1/videos/{task_id} をポーリングします。確認時には、同じ公開タスク ID とモデルが返されます。ポーリングを終了するタイミングは status で判断してください。progress は残り時間の見積もりではありません。
| 状態 | 意味 | 次の操作 |
|---|---|---|
queued | タスクを受け付けました。 | ポーリングを続けます。 |
in_progress | 生成中です。 | ポーリングを続けます。 |
completed | 動画が完成しました。 | videos[0].url を取得してダウンロードします。 |
failed | 生成に失敗しました。 | ポーリングを終了し、error を確認します。 |
完了したタスクの確認結果には、url と mediaType を持つオブジェクトの配列 videos が含まれます。タイムスタンプは Unix 秒です。完了が記録されると completed_at が含まれます。
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0",
"status": "completed",
"progress": 100,
"created_at": 1792022400,
"completed_at": 1792022460,
"videos": [
{
"url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
"mediaType": "video/mp4"
}
]
}返された URL が相対パスの場合は、https://api.wanapi.app を基準に解決し、API キーで認証してください。上の例では、次のように取得します。
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
-H "Authorization: Bearer $WAN_API_KEY" \
-o video.mp4署名付き HTTPS メディア URL が返された場合は、そのホストに API キーを送らず、URL を直接使用してください。結果の URL には有効期限がある場合があります。残したい動画は、ご自身のストレージに保存してください。既存の結果の状態確認やダウンロードで、新たな生成が作成されることはありません。
失敗したタスクには、code と message を持つ error オブジェクトが含まれます。例:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0",
"status": "failed",
"error": {
"code": "generation_failed",
"message": "Video generation failed"
}
}課金とエラー処理
最終費用は、実際の動画トークン使用量とモデルの現在の単価に基づきます。Playground の見積もりは上限の見積もりであり、固定料金ではありません。動画が長い場合や出力解像度が高い場合、トークン使用量が増えることがあります。失敗したリクエストには課金されません。
- 無効なパラメーター: 再送信する前に、フィールドや入力の組み合わせを修正してください。URL の構文に加え、メディア形式と制限も確認します。
- 認証またはモデルへのアクセス: 指定したモデルを利用できる、有効な Seedance のキーを使ってください。
- 残高不足: 新しい有料リクエストの前にチャージしてください。キーの利用上限を設定しても、アカウントの残高は増えません。
- 一時的な状態確認の失敗: 再試行間隔を延ばし、待機時間の上限を設けて GET を再試行してください。状態確認の失敗は、生成の失敗を意味しません。
- 送信のタイムアウトやタスク ID の欠落: 結果が不明な場合があります。二つ目の有料タスクが作成される可能性があるため、POST を自動で繰り返さないでください。
- ダウンロードの失敗: 新しい生成を始める前に、既存の結果の取得を再試行してください。
送信結果が不明で調査が必要な場合は、タスク ID を保管し、サポートにお問い合わせください。