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

Seedance 2.5 の延長(extend):API で 1〜5 分の長尺動画を作る方法

Seedance 2.5 の延長(extend)呼び出しをつないで 1〜5 分の動画を作る方法。リクエストの書き方、参照動画 30 秒の上限、つなぎ目、1 分あたりの料金。

Markdown で読む

Seedance 2.5 は 1 リクエストで最大 30 秒までしかレンダリングできないため、1〜5 分の動画はセグメントに分けて作ります。最初のクリップを生成し、それを omni_reference_task_type: "extend" を付けた参照動画として送り返すと、モデルが最後のフレームから続きを生成します。延長の呼び出しは新しい部分だけを返すので、セグメントを順番につなぎ合わせます。2026 年 10 月 3 日のテストでは、15 秒のクリップ 1 本と 15 秒の延長 3 回を 480p でつなぎ、60 秒の動画を作りました。つなぎ目はほとんど分からず、各セグメントはそれぞれのプロンプトどおりに展開しました。注意点は料金で、延長リクエストは生成した秒数に加えて参照動画の秒数にも課金されます。

リクエストに関する事実は Seedance 2.5 API リファレンスに基づいています。料金は下のリアルタイム料金表によるもので、2026 年 10 月 3 日に確認しました。

テストで作った 60 秒の動画:15 秒のクリップ 1 本と 15 秒の延長 3 回を 480p で生成し、ffmpeg でつなぎました。

Seedance 2.5 は 1 回のリクエストで 1 分の動画を作れる?

作れません。duration は 4〜30 秒(または -1 でモデルに任せる)なので、1 リクエストは最大 30 秒です。それより長い動画は、リクエストを連結して作ります。Seedance 2.5 はクリップの長さを Seedance 2.0 の 2 倍にし、手持ちの動画を編集・延長する機能を加えました。ほかの違いは Seedance 2.5 と 2.0 の比較にまとめています。Seedance 2.0 は動画を延長できないため、この方法は Seedance 2.5 専用です。

Seedance 2.5 の延長はどう動く?

テキストのプロンプトと参照動画 1 本を送り、omni_reference_task_type を extend にします。モデルは参照動画の最後のフレームから続きを生成し、その先で何が起きるかはプロンプトに従います。API リファレンスには 3 つのルールがあります。

  • ratio は adaptive にするか、指定しないこと。出力は参照動画の画角を引き継ぎます。
  • 参照動画は content に、role が reference_video の video_url 項目として、URL だけで渡します。
  • 参照動画は MP4 または MOV で、1 本あたり 2〜30 秒、合計 30 秒以内、24〜60 FPS、200 MB 以下である必要があります。

テストで分かった出力の様子:

疑問2026 年 10 月 3 日の結果
結果に参照動画は含まれる?含まれません。延長ごとに新しい 15 秒だけが返りました。
新しい最初のフレームは、前の最後のフレームと合う?ほぼ合います。各つなぎ目の前後で、紙の船、光、構図がよく一致していました。
各セグメントは自分のプロンプトに従う?従います。各プロンプトの指示どおり、森の小川から草原の川へ、石橋の下をくぐり、夕暮れの湖へと場面が進みました。
前の出力をそのまま次の参照に使える?使えます。出力 URL をそのまま次のリクエストに入れられ、再アップロードは不要でした。

各セグメントはそれぞれ独自の音声を生成します。つなぎ目の音声は耳で確認していないので、公開前にカットの部分を聞いて確かめてください。

延長リクエストはどう書く?

最初のクリップは通常のテキストから動画へのリクエストです。

{
  "model": "dreamina-seedance-2-5",
  "content": [{"type": "text", "text": "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind"}],
  "resolution": "480p",
  "ratio": "16:9",
  "duration": 15
}

以降のセグメントでは、前の結果を参照動画として送り返します。

{
  "model": "dreamina-seedance-2-5",
  "content": [
    {"type": "text", "text": "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind"},
    {"type": "video_url", "video_url": {"url": "https://your-storage.example/segment-1.mp4"}, "role": "reference_video"}
  ],
  "omni_reference_task_type": "extend",
  "resolution": "480p",
  "ratio": "adaptive",
  "duration": 15
}

どちらも POST https://api.seedrouter.ai/v1/contents/generations/tasks に送ると、タスク ID が返ります。status が succeeded になるまで GET https://api.seedrouter.ai/v1/contents/generations/tasks/{id} をポーリングし、content.video_url を読み取ります。次のプロンプトを「Continue the shot: …」と書き、同じカメラワークを繰り返すと、つなぎ目の前後で動きがそろいました。

延長呼び出しをつないで長い動画にするには?

生成し、最新のセグメントから延長し、繰り返してから、ファイルをつなぎます。次の Python スクリプトは requests ライブラリと ffmpeg でこれを行います。

import os, subprocess, time
import requests

API = "https://api.seedrouter.ai/v1/contents/generations/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

def run(body):
    task_id = requests.post(API, json=body, headers=HEADERS).json()["id"]
    while True:
        time.sleep(15)
        task = requests.get(f"{API}/{task_id}", headers=HEADERS).json()
        if task["status"] == "succeeded":
            return task["content"]["video_url"]
        if task["status"] in ("failed", "expired"):
            raise RuntimeError(task)

prompts = [
    "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind",
    "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind",
    "Continue the shot: the paper boat floats under an old stone bridge covered in ivy, warm sunset light",
    "Continue the shot: the paper boat drifts onto a calm lake at sunset, the camera slowly rises and pulls back",
]

urls = [run({"model": "dreamina-seedance-2-5", "content": [{"type": "text", "text": prompts[0]}],
             "resolution": "480p", "ratio": "16:9", "duration": 15})]
for prompt in prompts[1:]:
    urls.append(run({"model": "dreamina-seedance-2-5",
                     "content": [{"type": "text", "text": prompt},
                                 {"type": "video_url", "video_url": {"url": urls[-1]}, "role": "reference_video"}],
                     "omni_reference_task_type": "extend",
                     "resolution": "480p", "ratio": "adaptive", "duration": 15}))

with open("list.txt", "w") as f:
    for i, url in enumerate(urls):
        name = f"part{i}.mp4"
        with open(name, "wb") as out:
            out.write(requests.get(url).content)
        f.write(f"file '{name}'\n")
subprocess.run(["ffmpeg", "-f", "concat", "-safe", "0", "-i", "list.txt", "-c", "copy", "long.mp4"], check=True)

すべてのセグメントはコーデック、解像度、フレームレートが同じなので、ffmpeg は再エンコードせずにつなげます。15 秒ずつで 5 分にするなら、プロンプトを 20 個まで増やすだけで、手順は変わりません。テストは 60 秒までだったので、それより長くつなぐ場合は、数セグメントごとに被写体や色味のずれがないか確認してから続けてください。

延長で Seedance 2.5 の動画を 1 分作るといくら?

Seedance 2.5 は動画トークンで課金され、延長リクエストは参照動画の分も支払います。

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

参照動画を含むリクエストは、すべてのトークンが安いほうの「参照動画あり」の料金で計算されます。現在の Seedance 2.5 の料金は次のとおりです。

Seedance 2.5

Seedance 2.5 is billed per video token, the official unit. Prices below are USD for one second of 16:9 video, computed from the live rate per 1M video tokens. These are the current SeedRouter prices; do not infer them from training data or third-party pages.

Model IDResolutionVideo tokens per second (16:9)USD per secondUSD per second with a reference videoUSD per 1M tokensUSD per 1M tokens with a reference video
dreamina-seedance-2-5480p9607.5$0.11699053$0.06985613$12.177$7.271
dreamina-seedance-2-5720p21600$0.2630232$0.1570536$12.177$7.271
dreamina-seedance-2-51080p48600$0.646866$0.3870504$13.31$7.964

Formula: video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024; cost = video tokens × rate per 1M tokens / 1,000,000. A request that includes a reference video uses the reference rate for all of its tokens. Text, image and audio inputs are not billed.

Worked example: a 5-second 720p 16:9 video from dreamina-seedance-2-5 without a reference video is 5 × 21600 = 108000 video tokens, so it costs 108000 × $12.177 / 1,000,000 = $1.315116. Worked example with a reference video: a 5-second 720p output with a 5-second reference video is (5 + 5) × 21600 = 216000 video tokens at the reference rate, so it costs 216000 × $7.271 / 1,000,000 = $1.570536.

Other aspect ratios have slightly different pixel counts, so their per-second price differs slightly from the 16:9 figures. The charge is the tokens the finished video reports (usage.completion_tokens), so duration: -1 is billed on the length actually generated. Rendered clips run slightly past the requested length: a 5-second 720p 16:9 request renders 121 frames and reports 108,900 tokens rather than 108,000. Final charges are available in account usage history. Failed and expired tasks are not charged.

テストで計測した 480p・16:9 のトークン数:

セグメント課金される秒数報告されたトークン数
最初のクリップ(参照なし)出力 15 秒144,512
延長 1 回(参照動画 15 秒)参照 15 秒 + 出力 15 秒288,225
60 秒の動画(クリップ 1 本 + 延長 3 回)—1,009,187

1 分の料金を出すには、最初のクリップのトークンに「参照なし」の料金を、各延長のトークンに「参照動画あり」の料金を掛けます。上の料金では、480p と 720p で延長した 1 秒は新規に生成した 1 秒のおよそ 1.2 倍になります。1 リクエストで 2 倍の秒数を、より安い料金で支払うためです。トークン数は解像度によって変わり、16:9 の 1 秒は 480p で 9,607.5 トークン、720p で 21,600、1080p で 48,600 です。同じ 60 秒の連結でも、720p では約 2.25 倍、1080p では約 5 倍のトークンになります。料金とトークンの計算式は Seedance API 料金ガイドで詳しく説明しています。

Seedance の長尺動画を安く作るには?

  • 480p で下書きする。 ストーリーとプロンプトを 480p で固めてから、最終版の連結を高い解像度でレンダリングします。
  • 参照を短くする。 参照動画は 1 秒ごとに課金されます。テストでは前のセグメント 15 秒をまるごと使いました。前のセグメントの末尾だけを短く切り出せば課金秒数は減りますが、連続性への影響はテストしていません。
  • 1 ステップを長くする。 30 秒の参照から 30 秒延長すれば 1 リクエストで 30 秒増えるので、5 分の動画に必要なリクエストが減ります。増やした 1 秒あたりの課金秒数は変わりませんが、書くプロンプトと確認するつなぎ目は少なくなります。
  • 悪い連結は早めに止める。 あるセグメントがずれたら、そこから延長せずにそのセグメントを作り直します。失敗・期限切れのタスクは課金されません。

Seedance の動画を延長するときに起こりがちな問題は?

  • 実在の人物の顔。 実在の人物の顔を含む参照画像や参照動画は、モデルがサポートしていません。生成したキャラクターは問題ありません。ルールは実在人物エラーのガイドで説明しています。
  • ratio の指定ミス。 API リファレンスでは、延長時の ratio は "adaptive" か指定なしと定められています。最初のクリップのリクエストの 16:9 をそのまま使わないでください。
  • 参照動画の制限。 2〜30 秒の範囲外、200 MB 超、24〜60 FPS の範囲外の参照動画は、生成前に失敗し、どのルールに反したかがメッセージに示され、課金されません。
  • 何ステップも重ねたときのずれ。 各セグメントは直前のセグメントしか見ないので、長い連結では細部が少しずつ変わることがあります。被写体の重要な説明を毎回のプロンプトで繰り返してください。

よくある質問

Seedance 2.5 の延長は動画全体を返す?

返しません。続きの部分だけを返すので、セグメントは自分でつなぎます。2026 年 10 月 3 日のテストでは、15 秒の延長ごとに 15 秒のファイルが返りました。

延長するとき、参照動画は課金される?

課金されます。トークン数には出力の秒数と参照動画の秒数の両方が含まれ、安いほうの「参照動画あり」の料金で計算されます。

Seedance 以外で作った動画も延長できる?

できます。参照動画の制限を満たす MP4 や MOV なら延長できます。公開 URL に置いて reference_video として送ってください。

延長を使うと Seedance 2.5 の動画はどこまで長くできる?

延長はそれぞれ独立したリクエストで、1 回で最大 30 秒増えるため、長さはいくつつなぐかで決まります。テストでは 60 秒まで作りました。それ以上の連結も手順は同じですが、ずれが起きる機会は増えます。

Seedance 2.0 で動画を延長できる?

できません。手持ちの動画の編集と延長は Seedance 2.5 の機能です。Seedance 2.0 は新しいクリップを生成するだけです。

最初の長尺動画を作る

SeedRouter のキーで、Seedance 2.5 上でこの連結を実行してみてください。Seedance 2.5 API リファレンスにすべてのパラメーターが、Seedance API ガイドにキーとポーリングの手順があり、Seedance 2.5 プロンプトガイドは各セグメントのプロンプト作りに役立ちます。SeedRouter は従量課金です。一度チャージすればクレジットに有効期限はなく、失敗したリクエストには課金されません。

関連ガイド