Seedance 2.5 API:料金・パラメータ・コード
Seedance 2.5 は ByteDance の動画モデルで、テキストのプロンプトだけから、または最大 30 枚の参照画像、10 本の動画、10 本のオーディオから、ネイティブ音声付きで最長 30 秒の動画を 1 回で生成します。NezhaGate では OpenAI 形式の非同期 API として提供しています。料金は 480P で 1 秒あたり $0.10、720P で $0.158 で、失敗したジョブには料金がかかりません。
更新日:2026-10-03
Seedance 2.5 の概要
ByteDance は 2026 年 7 月 31 日に Seedance 2.5 をリリースしました(ByteDance Seed)。最大の特長は長さで、ネイティブ音声付きの長回しで最長 30 秒を生成できます(Seedance 2.0 は 15 秒まで)。NezhaGate では、他のすべてのモデルと同じ API キーで利用できます。
| モデル ID | seedance-2.5 |
|---|---|
| エンドポイント | POST https://nezhagate.com/v1/videos/generations で送信し、GET /v1/videos/jobs/{id} で結果を取得 |
| 長さ | 4〜30 秒の任意の整数秒(duration) |
| 解像度 | 480P、720P(既定)。1080P は近日公開 |
| 画面比率 | 16:9(既定)、9:16、1:1、4:3、3:4(size) |
| 参照素材 | 1 回のリクエストで画像 30 枚、動画 10 本(合計 30 秒まで)、オーディオ 10 本まで |
| 音声 | ネイティブ音声。既定でオン(audio: false でオフ) |
| プロンプト | 最大 11,000 文字(英語も中国語も同じく文字数で数えます) |
| 出力 | data[0].url の mp4 リンク(当社がホストし、60 日間保存) |
料金
生成した動画の秒数で課金します。参照画像、参照動画、参照オーディオは課金されません。失敗またはタイムアウトしたジョブは全額返金します。
| 解像度 | 1 秒あたり | 5 秒 | 10 秒 | 15 秒 | 30 秒 |
|---|---|---|---|---|---|
| 480P | $0.10 | $0.50 | $1.00 | $1.50 | $3.00 |
| 720P | $0.158 | $0.79 | $1.58 | $2.37 | $4.74 |
ByteDance の公式 BytePlus 価格は、16:9 の動画で 480p が 1 秒あたり $0.103、720p が $0.231 です。720P では公式価格と比べて 31% 節約できます。30 秒固定の 720P 動画は seedance-2.5-30s で 1 本 $1.50 です。各社の価格を並べた比較は Seedance API 料金比較 をご覧ください。
ジョブを送信して動画を受け取る
動画の生成は非同期です。送信するとすぐに HTTP 202 とジョブ ID が返るので、status が succeeded になるまでポーリングし、data[0].url を読み取ります。コンソールで API キーを作成し、環境変数 API_KEY に設定してください。
curl
# 1) 送信:{"id": "img_...", "status": "queued"} が返ります
curl https://nezhagate.com/v1/videos/generations \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A lighthouse keeper climbs the spiral stairs at dusk; the lamp flares on and sweeps across a stormy sea. Slow push-in, warm light, film grain.",
"duration": 10,
"resolution": "720P",
"size": "16:9"
}'
# 2) "status" が "succeeded" になるまで 15 秒ごとにポーリングし、data[0].url を読み取ります
curl https://nezhagate.com/v1/videos/jobs/JOB_ID -H "Authorization: Bearer $API_KEY"Python
import os
import time
import requests
BASE = "https://nezhagate.com/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["API_KEY"]}
job = requests.post(f"{BASE}/videos/generations", headers=HEADERS, json={
"model": "seedance-2.5",
"prompt": "A lighthouse keeper climbs the spiral stairs at dusk; the lamp flares on "
"and sweeps across a stormy sea. Slow push-in, warm light, film grain.",
"duration": 10,
"resolution": "720P",
"size": "16:9",
}).json()
print("job", job["id"])
while True:
time.sleep(15)
r = requests.get(f"{BASE}/videos/jobs/{job['id']}", headers=HEADERS).json()
if r["status"] == "succeeded":
print(r["data"][0]["url"])
break
if r["status"] == "failed":
raise SystemExit(r["error"]["message"]) # refunded in fullNode.js
const BASE = "https://nezhagate.com/v1";
const headers = { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" };
const job = await (await fetch(`${BASE}/videos/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "seedance-2.5",
prompt: "A lighthouse keeper climbs the spiral stairs at dusk; the lamp flares on and sweeps across a stormy sea.",
duration: 10,
resolution: "720P",
size: "16:9",
}),
})).json();
while (true) {
await new Promise((ok) => setTimeout(ok, 15000));
const r = await (await fetch(`${BASE}/videos/jobs/${job.id}`, { headers })).json();
if (r.status === "succeeded") { console.log(r.data[0].url); break; }
if (r.status === "failed") throw new Error(r.error.message);
}参照画像・参照動画・参照オーディオ
参照素材は同じリクエストに追加し、プロンプトの中で順番に名前で指定します。images は @Image1、@Image2、video_references は @Video1、audio_reference は @Audio1 です。各項目には公開 URL または base64 の data URI を指定できます(data URI は当社が 7 日間ホストします)。
{
"model": "seedance-2.5",
"prompt": "The dancer from @Image1 performs the moves of @Video1 on the rooftop from @Image2, cut to the beat of @Audio1.",
"images": ["https://example.com/dancer.png", "https://example.com/rooftop.png"],
"video_references": ["https://example.com/moves.mp4"],
"audio_reference": ["https://example.com/beat.mp3"],
"duration": 12,
"resolution": "720P",
"size": "9:16"
}Seedance には最初のフレームを指定するモードがありません。どの画像も人物、物体、場所、スタイルの参照として扱われるため、参照画像が動画の冒頭に来るとは限りません。プロンプトでは参照素材をひとつずつ名前で指定し、そこから何を引き継ぐかを書いてください。
リクエストが失敗する条件
- 画像が 30 枚、動画が 10 本、オーディオが 10 本を超える場合、または参照動画の合計が 30 秒を超える場合:送信時に拒否されます(切り詰めて受け付けることはありません)。
- 11,000 文字を超えるプロンプト。
- 4〜30 秒の範囲外の長さ、または上記 5 種類以外の画面比率(21:9 は使えません)。
- コンテンツ審査で拒否される内容。実在の人物の写真は拒否されることがあります。ご自身で生成したキャラクターは、写実的なものも含めて参照に使えます。
いずれの場合も、理由がわかるエラーを返します。送信後に失敗したジョブは全額返金します。
生成にかかる時間
集計対象は実際のお客様のリクエストのみです。当社のテスト、クライアントエラー(4xx)で拒否されたリクエスト、モデルが生成を拒否した内容は含みません。失敗した呼び出しは課金されません。10 分ごとに更新します。
動画が長いほど、また解像度が高いほど時間がかかり、混雑する時間帯も遅くなります。ジョブ ID を保存してポーリングしてください。送信のたびに新しい有料ジョブになるため、再送信はしないでください。制限時間内に生成が終わらなかったジョブは failed で終了し、理由が error に入り、全額返金されます。
よくある質問
Seedance 2.5 API の料金はいくらですか?
Seedance 2.5 の動画は最長何秒ですか?
Seedance 2.5 は画像から動画に対応していますか?
参照動画や参照オーディオは使えますか?
Seedance 2.5 の生成にはどのくらい時間がかかりますか?
1080P は使えますか?
同じ OpenAI 互換の Key で、NezhaGate のほかの対話・画像・動画モデルもすべて呼び出せます。従量課金で、失敗したジョブは全額返金します。
API キーを取得 Playground で試す 各社の料金を比較その他のガイド: Seedance 30 秒動画 API:料金・サンプル・コード