Seedance 2.5 API:30秒のクリップ、料金、コード
Seedance 2.5は、Revanaのカタログで最も新しいSeedanceモデルです。テキスト、画像、動画から最長30秒のクリップを生成できます。このガイドでは、Seedance 2.0との違い、料金、呼び出し方を説明します。
Seedance 2.0に対するSeedance 2.5の追加点
Seedance 2.5は、2.0ファミリーと同じリクエスト形式で、同じ種類のジョブに対応します。音声付きのテキストから動画、開始フレームと終了フレーム、参照画像です。これを使って開発するときに重要な違いは実用面のもので、すべてカタログで確認できます。
| Seedance 2.0 | Seedance 2.5 | |
|---|---|---|
| タスク | テキストから動画、画像から動画、最初と最後のフレーム、参照画像 | テキストから動画、画像から動画、最初と最後のフレーム、参照画像、動画から動画 |
| クリップの長さ | 4〜15秒 | 4〜30秒 |
| 解像度 | 480p、720p、1080p、4K | 480p、720p、1080p |
| 参照画像 | 最大9枚 | 最大30 |
| アスペクト比 | 16:9、9:16、1:1、4:3、3:4、21:9、またはadaptive | 16:9、9:16、1:1、4:3、3:4、21:9、またはadaptive |
| 最安価格 | $0.08 / s | $0.11 / s |
| ルート | 3ルート | 5ルート |
要するに、Seedance 2.5は1本のクリップで最長30秒(Seedance 2.0は15秒)まで対応し、参照画像は9枚ではなく30枚まで受け付け、動画から動画にも対応します。4K出力が必要な場合は、引き続きSeedance 2.0を使います。15秒以下のクリップなら、選ぶ前に1秒あたりの料金を比べてください。720pでは、Seedance 2.0は$0.15、Seedance 2.5は$0.25です。
どちらのモデルも品質スコアは公開していません。選ぶ最善の方法は、自社のプロダクトで使う3〜4個のプロンプトを両方で実行して比べることです。
30秒のクリップが役立つ場面
- 途切れないワンテイク。ウォークスルー、プロダクトデモ、セリフのあるシーンなど、15秒のクリップを2本つなぐと継ぎ目が目立ってしまうもの。
- 広告スポット全体。多くのソーシャル広告のフォーマットは15〜30秒です。1回の生成でスポット全体を作れ、音声も全体を通して設計できます。
- 長い編集でのつなぎ目を減らす。クリップをカットしてつなぐ場合でも、1本が長いほど、キャラクターや照明がずれる箇所が減ります。
クリップが15秒以下なら、まずSeedance 2.0でまかなえるかを確認してください。長い上限は不要かもしれません。
Seedance 2.5の料金(2026年10月)
Seedance 2.5は出力1秒あたりで課金され、480pで1秒あたり$0.11からです。表には、掲載レートと、各解像度での10秒と30秒のクリップの費用を示しています。ほかのAPIでの同じ料金は、Seedance 2.5の料金比較をご覧ください。
| 解像度 | 1秒あたり | 10秒のクリップ | 30秒のクリップ | 動画入力あり |
|---|---|---|---|---|
| 480p | $0.11 | $1.10 | $3.30 | $0.06 / s |
| 720p | $0.25 | $2.50 | $7.50 | $0.15 / s |
| 1080p | $0.55 | $5.50 | $16.50 | $0.34 / s |
料金は音声のオン・オフで変わりません。動画を入力に使うジョブは、より低い動画入力ありのレートで課金されますが、課金される秒数には入力が含まれ、出力の秒数に入力クリップの長さを足したものになります。10秒の元動画から作る10秒・720pのクリップは、20秒分、つまり$3.00で課金されます。テキストプロンプトから作る10秒のクリップは$2.50です。
各ジョブの料金は、送信時に残高から確保され、ジョブが成功した場合にのみ課金されます。失敗したジョブでは確保が解放されるため、失敗した30秒のジョブは無料です。正確な請求額は cost_usd で返されます。クレジットパックと完全な表は、料金ページにあります。
Seedance 2.5の動画を生成する
モデルID seedance-2.5 を指定して POST /v1/generations を送信します。レスポンスは、生成の id を含む 202 です。ステータスが succeeded または failed になるまでポーリングしてください。この音声付き10秒・720pのクリップは$2.50です。
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"input": {
"prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 3
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "seedance-2.5",
"input": {
"prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 3,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "seedance-2.5",
input: {
prompt: "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
resolution: "720p",
duration: 10,
aspect_ratio: "16:9",
audio: true,
},
max_cost_usd: 3,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);長いジョブは短いジョブより完了に時間がかかるため、エンドポイントに連打せず、5〜10秒ごとにポーリングしてください。完了したジョブは次のようになります。
{
"id": "gen_01JBX7Q2M4",
"model": "seedance-2.5",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
]
},
"cost_usd": 2.5,
"attempts": 1,
"error": null,
"created_at": "2026-10-19T14:02:11Z",
"completed_at": "2026-10-19T14:03:47Z"
}参照画像を使った30秒の縦型クリップ
フルレングスの縦型スポットでは、ブランド素材を参照画像として送り、ショットを順番に説明します。1080pでは、このジョブは$16.50です。スキップされないよう、max_cost_usd をそれより大きく設定してください。同じリクエストを480pで実行すると$3.30で、フル解像度に進む前に構成を確認する、より安い方法です。
{
"model": "seedance-2.5",
"input": {
"prompt": "A 30 second vertical ad. Shot 1: the runner from the first image laces the shoe from the second image at dawn. Shot 2: tracking shot as she runs along the seafront. Shot 3: close-up of the shoe hitting wet sand. Shot 4: she stops, breathing hard, and looks out to sea. Steady electronic beat, waves, footsteps.",
"image_urls": [
"https://example.com/runner.jpg",
"https://example.com/shoe.jpg"
],
"resolution": "1080p",
"duration": 30,
"aspect_ratio": "9:16",
"audio": true
},
"max_cost_usd": 20
}開始フレームと終了フレーム(image_url、end_image_url)か、参照画像(image_urls)のどちらかを1回のリクエストで使い、両方は使えません。これらは別のモードで、混在させたリクエストは、課金の前に 422 で拒否されることがあります。
長いクリップのプロンプトのコツ
- 段落ではなくショットリストを書く。ショットに番号を付け、それぞれに被写体、アクション、カメラワークを指定します。30秒にわたっては、形容詞より構成が重要です。
- 登場人物は少なく。1〜2人のキャラクターのほうが、群衆よりも一貫性を保ちやすく、複数のカットをまたぐ場合は特にそうです。
- 参照画像を活用する。最大30枚の画像で、キャラクターを複数の角度から、さらに商品、ロケーション、カラーパレットを固定できます。それぞれは「2枚目の画像のシューズ」のように、位置で指定します。
- クリップ全体の音を設計する。すべてのショットの下で流れるもの(ビート、環境音)と、特定の瞬間に起こること(ドアが閉まる音、セリフ)を書きます。
- ドラフトは短く小さく。冒頭のショットを480pの10秒のクリップでテストし、見た目が決まったら30秒をフルでレンダリングします。解像度によって結果が異なるため、ドラフトはプレビューではなく目安として扱ってください。
- 文字はフレームに入れない。キャプション、価格、ロゴは、編集ソフトで追加してください。
ルーティングとフォールバック
Seedance 2.5には現在、Revanaに5つのルートがあります。ルーターは、各ジョブをまず最も安いルートに送信し、そのルートが失敗またはタイムアウトした場合は、次のルートに移します。バックアップのルートは1秒あたりの料金が高く(各ルートはモデルページに掲載)、課金されるのは成功したルートのみです。attempts フィールドで、ジョブが使ったルートの数を確認できます。
フォールバックは結果を得られる可能性を高めますが、稼働を保証するものではありません。特に長いジョブでは、アプリ側で failed を処理してください。たとえば、後でより低い解像度で再試行します。
Seedanceのすべてのティアはモデルページ、リクエストのリファレンスはドキュメントで確認できます。またはAPIキーを取得して、上のサンプルを実行してください。
よくある質問
Seedance 2.5 APIの料金はいくらですか?
2026年10月時点で、Seedance 2.5は1秒あたり、480pが$0.11、720pが$0.25、1080pが$0.55です。10秒・720pのクリップは$2.50、30秒・1080pのクリップは$16.50です。
Seedance 2.0とSeedance 2.5の違いは何ですか?
Seedance 2.5は最長30秒のクリップを生成でき(2.0は15秒まで)、最大30枚の参照画像を受け付け(2.0は9枚)、動画から動画にも対応します。4Kに対応するのはSeedance 2.0で、Seedance 2.5は1080pまでです。
Seedance 2.5の動画は最長どれくらいですか?
1回のリクエストにつき4〜30秒です。長さは duration フィールドで指定します。
Seedance 2.5は4Kに対応していますか?
現時点のカタログでは対応していません。掲載されているのは480p、720p、1080pです。4K出力にはSeedance 2.0を使ってください。
Seedance 2.5は音声を生成しますか?
はい。audio を true にすると映像と一緒に音声が生成され、false にすると無音のクリップになります。どちらでも料金は同じです。
長いSeedance 2.5のジョブが失敗した場合、課金されますか?
いいえ。料金は送信時に確保され、ジョブが失敗すると解放されます。ルーターはまずほかのルートを試し、課金されるのは成功したジョブのみです。