手元の画像をSeedance 2.5で動かしたいときは、生成前に画像の役割を決めます。そのまま先頭フレームにするのか、モデルが新しく構図を作るショットの参照画像にするのかで、使うタスクが変わります。役割を間違えると、意図したものとは違う始まりになることがあります。
結論から:画像を先頭フレームにするならimage-to-video、人物・衣装・セットを新しい構図に引き継ぐならreference-to-videoを使います。基本版Seedance 2.5は両方に対応し、Spicyは開始静止画のアニメーション化のみです。2026年9月のテストでは、どちらも検閲なしの成人向け制作に対応しました。Spicyにはアップスケールによる4Kが加わり、1秒あたりの料金は56%〜75%高くなります(比較)。ただし、Seedance自体の入力チェックでは、識別可能な顔やキスに関するリクエストが拒否されることがあります。
使うタスクを選ぶ
| 「この画像を動画にする」で意図すること | 使用するタスク | 送るもの | 最低料金(5 s、480p) |
|---|---|---|---|
| 「この画像そのものから始めて動かす」 | Seedance 2.5 image-to-video | image_url、任意のプロンプト、任意のlast_image_url | $0.62 |
| 「同じことを4Kファイルで行う」 | Seedance 2.5 Spicy image-to-video | 同じ項目。クリップの縦横比は静止画に従います | $1.08(4K:$10.80) |
| 「画像の人物・衣装・セットを使い、新しい開始構図を作る」 | Seedance 2.5 reference-to-video | 最大30枚の画像、10本のクリップ、10個の音声ファイル、必須のプロンプト | $0.62(参照クリップなし) |
| 「Aから始めてBに着地する」 | どちらかのモデルのimage-to-video | image_urlとlast_image_url | 上記と同じ |
参照モードとフレーム指定モードは同時に使えません。reference-to-videoには先頭・最終フレームの項目がなく、image-to-videoに最終フレームを追加しても、先頭画像が自由な参照画像に変わるわけではありません。タスクを決めるのはファイル数ではなく、画像の役割です。
先頭フレームがショットになる様子を見る
例1:構図が完成した静止画(Seedance 2.5)

ガラス、雨、広い構図は、入力した開始静止画にすでに含まれています。
静止画がドレス、破片、雨、冷たい光、広い画角を担います。5秒の720p動画の動きの指示では、場面を一瞬静止させてから、ガラスと雨が動き始めるのに合わせてカメラを勢いよく前進させています。
例2:穏やかな動きを一つ加えるSpicyの先頭フレーム
官能的なファッションクリップでは、スタイリング、ポーズ、雰囲気を静止画で決め、プロンプトは人物の動き一つとカメラの動き一つに使います。

Seedream 5.0 Pro、1k、16:9。下のSpicyクリップで使った開始静止画そのものです。
出演者、赤いコート、屋上は見分けられる状態を保ち、ショットの中でコートやポーズが動きます。ただし、プロンプトにある2歩の移動はほとんど分かりません。重要な動作には専用の時間帯を与え(時間指定プロンプトを参照)、他の動きと同じ文に詰め込まないようにします。
先頭フレームを準備する
品質の上限は静止画で決まります。問題はプロンプトではなく、この段階で直します。
- 被写体がはっきり見える。顔、ポーズ、動作に必要な物が画面内に収まり、切り抜きの端で欠けていないことを確認します。
- カメラ位置がすでに適切。後ろ姿には、カメラに向いたポートレートとは違う動作が必要です。先にトリミングし、新しい視点をモデルに考えさせないようにします。
- 動作のための余白がある。寄ったポートレートなら視線やゆっくりした傾きが適しています。歩行には進む方向の床が必要です。
- 雰囲気が画面にある。照明、場所、スタイリングの方が、プロンプトの形容詞よりもトーンを左右します。新しい部屋や大幅な衣装変更は、形容詞を増やすより、新しい静止画や相性のよい終了フレームを準備した方が明確です。
入力と出力の制限:長さは4〜30秒(既定5秒)。480p、720p(既定)、1080pに対応し、Spicyでは4Kも使えます。画像の各辺は300〜6,000ピクセル、最大10 MB、形式はJPG、PNG、WEBP、GIFです。アップロード前に納品する縦横比へトリミングしてください。基本版image-to-videoはadaptiveのみで、Spicyにはアスペクト比の項目がありません。Seedanceは識別可能な顔の入力を拒否する場合があります。説明のない422だけでは原因は分かりません。静止画の作成にはSeedance 2.5プロンプトガイドを使ってください。
動きのプロンプトを書く
image-to-videoではプロンプトは任意ですが、ここでショットを演出します。静止画の内容を説明し直すのではなく、観客が見る順番に変化を書きます。動作、カメラ、音の順です。カメラの主要な指示は一つにし、段階には「then」を加え、維持する内容を伝えます(「keep her face, outfit and rooftop unchanged」)。
最初の短い試案:
Start on the supplied rooftop portrait. The adult woman turns toward the camera as the wind lifts her coat, takes two measured steps to camera-right, then holds eye contact. One slow camera push; keep her face, outfit and rooftop recognisable. Soft city ambience.
時間指定プロンプト。Seedanceは整数秒の区間を受け付け、モデルページでも動作に段階がある場合に推奨しています。区間を隙間なく連続させ、最後をduration_secondsで終え、各区間の動作は一つにします。
Continue from the supplied rooftop portrait in one continuous shot.
0-2s: The adult woman turns toward the camera as the wind lifts her coat. Camera fixed.
2-4s: She takes two measured steps to camera-right. Slow push in.
4-5s: She holds eye contact and the coat settles. Hold the framing.
Keep her face, outfit and the rooftop unchanged. Sound: soft wind and distant city ambience, no music.クリップが意図からずれたら、画角、動作、長さの順に一つずつ修正します。プロンプトの変更を比較するときはseedを固定します。延長や短いテイクのつなぎ合わせに進む前に、5秒で方向性を決めます。
先頭と最終フレーム:ループと変化の見せ方
last_image_urlを追加すると、モデルは最初の静止画から次の静止画へ動かします。同じアスペクト比で両方を準備し、カメラと光を一定にして、閉じた状態から開いた状態、衣装Aから衣装Bなど、明確な変化を一つだけ与えます。そうしないと、途中がカットになってしまいます。到達点だけでなく移行の過程を書き、最後の静止にも専用の時間帯を与えます。同じ静止画を2回送るとループの戻り先を指定できます。先頭と末尾が合わなければ、つなぎ目を確認してトリミングやクロスフェードを行ってください。最終フレームはimage_urlと組み合わせた場合のみ受け付けられます。
1テイクより長く続ける場合、基本版2.5はクリップの最終フレームを返せます(return_last_frame: true、料金変更なし)。そのフレームを次のimage-to-videoタスクの開始静止画に使います。Spicyでは自分で最終フレームを書き出します。長い検閲なし動画では一連のつなぎ方を解説しています。
Reference-to-video:素材から新しいショットを作る
最初の画角より、人物、衣装、セットを重視する場合に使います。参照画像は送信順に番号が付き、プロンプトで役割を割り当てるため、どの画像が何かを明記します。ByteDanceのSeedance 2.5発表では、名前付きの画像参照の使い方が紹介されています。
Use the adult performer from @Image1 and the rooftop from @Image2. Compose a new opening shot as she steps from the entrance, pauses, turns to camera, then holds. One continuous medium shot with a slow push and soft wind ambience.
このプロンプトをSeedance 2.5 reference-to-videoで開く

左は人物と衣装の参照、右は場所と照明の参照です。どちらも新しい始まりを導くもので、先頭フレームそのものを指定してはいません。
結果は新しく構成された出入口のショットから始まり、赤いコート、黒いドレス、屋上を引き継いでカメラに向かって歩きます。参照画像が人物、衣装、セットを導きます。演出が重要なら、それぞれの役割を分けて書いてください。
参照入力の制限:
- 画像:最大30枚で、制限は上記と同じです。似たフレームを大量に使うのではなく、一人の人物を異なる角度から見た少数の画像で始めます。衣装は人物の画像に含めます。
- クリップ:最大10本、各2〜30秒、合計30秒、MP4、WEBM、QuickTimeで、各最大90 MBです。動作、テンポ、カメラ表現を伝え、参照の秒数は課金対象に加算されます。クリップを付けると1秒あたりの単価は下がります(480pは$0.0738、720pは$0.1659、1080pは$0.4082。なしの場合は$0.1234、$0.2773、$0.6823)が、出力時間と課金される参照時間の合計に適用されます。5秒の出力には4秒の参照最低課金があり、2秒の参照でも4秒として課金されます。つまり(5 + 4) × $0.0738 = $0.6642、約$0.66です。10秒の参照は10秒のままなので、(5 + 10) × $0.0738 = $1.11となり、クリップなしの$0.62とは異なります。素材動画自体の編集やスタイル変更を求めないでください。Seedanceが動画編集として扱い、タスクが失敗します。
- 音声:最大10個のMP3またはWAV、各2〜30秒、合計30秒です。テンポを導きますが、出力に音声を付けるかは引き続き
generate_audioで決まります。 - アスペクト比:既定は
adaptiveです。納品形式が必須の場合だけ比率(21:9〜9:16)を指定し、必要な被写体が出力のトリミング範囲に収まるか確認してください。
クリップの料金と最初に使うモデル
料金は秒単位で、音声は追加料金なしで含まれます。送信前に各モデルページで現在の価格が提示されます。
| 解像度 | 基本版2.5 · 5 s | Spicy · 5 s | 基本版2.5 · 30 s | Spicy · 30 s | Spicyの追加料金 |
|---|---|---|---|---|---|
| 480p | $0.62 | $1.08 | $3.70 | $6.48 | +75% |
| 720p | $1.39 | $2.16 | $8.32 | $12.96 | +56% |
| 1080p | $3.41 | $5.40 | $20.47 | $32.40 | +58% |
| 4K | 提供なし | $10.80 | 提供なし | $64.80 | Spicyのみ |
基本版で仕上げるなら、基本版2.5の480p・5秒で試作します。Spicyの4Kで納品する場合は、まずSpicyの480pのテイクを確認してください。モデルを変えると演出も変わる場合があります。4Kは1080pの生成結果を拡大するもので、ぼやけた元画像を修復する機能ではありません。どちらも数分を見込んでください。Spicyはテキストからの生成にも参照素材からの生成にも対応していません。
Playgroundで試してからAPIを使う
- Seedance 2.5 image-to-video Playgroundを開き、Input imageに先頭フレームを追加します。Closing frameは任意です。
- 動きのプロンプトを貼り付け、Durationを5秒、Resolutionを480pに設定します。音が必要な場合だけGenerate audioをオンにし、Run modelを選びます。
- 同じモデルで動きを調整します。新しい構図を作るならreference-to-video PlaygroundでReference imagesに画像を追加します。
環境にSPICY_API_KEYを設定し、SPICY_IMAGE_URIには開始画像のアクセス可能なURLか、アップロードしたspicy:// URIを設定します。このPython 3の例は、料金の確認後に新しいショットを一つ送信します。
import json
import os
import urllib.request
import uuid
base = "https://api.spicyapi.ai/api/v1"
headers = {"Authorization": "Bearer " + os.environ["SPICY_API_KEY"],
"Content-Type": "application/json", "User-Agent": "SpicyAPI-Blog/1.0"}
settings = {
"duration_seconds": 5,
"resolution": "480p",
"generate_audio": False
}
settings["prompt"] = 'A slow camera push toward the subject. Keep the setting and clothing unchanged. One continuous shot.'
settings["image_url"] = os.environ["SPICY_IMAGE_URI"]
payload = {"model": "bytedance/seedance-2.5/image-to-video", "input": settings}
def post(path, body):
request = urllib.request.Request(base + path, json.dumps(body).encode(), headers)
with urllib.request.urlopen(request, timeout=60) as response:
result = json.load(response)
if result.get("code") != 200:
raise RuntimeError(result)
return result["data"]
quote = post("/jobs/quote", payload)
if input(f"Maximum charge ${quote['maxCharge']}. Type yes to generate: ") != "yes":
raise SystemExit("Stopped before generation")
headers["Idempotency-Key"] = str(uuid.uuid4())
print("Request key:", headers["Idempotency-Key"], flush=True)
task = post("/jobs/createTask", {**payload, "quoteId": quote["quoteId"],
"expectedCost": quote["estimatedCost"]})
print("Task ID:", task["taskId"])表示されたリクエストキーは、同じリクエストを復旧するために保存してください。新しいショットには新しいキーを使います。reference-to-videoではmodelをbytedance/seedance-2.5/reference-to-videoに変え、image_urlをreference_image_urlsのリストに置き換え、必須となるプロンプトを残します。結果の受け取りと復旧はタスクAPIドキュメントを参照してください。
繰り返しショットを作るなら、承認済みの入力ファイルをAgentに使わせます。CLIはspicyapi tasks create --model bytedance/seedance-2.5/image-to-video --input-file input.json --wait、MCPでは同じモデルと入力でspicyapi_task_createを呼ぶよう依頼します。Skillには「Use the spicyapi Skill to generate this approved shot and return the result.」と依頼します。CLIとMCPは作成前に料金を表示します。Agent連携ドキュメントも参照してください。
クリップを確認して見えた問題を直す
サムネイルではなく動画全体を見て、順番に確認します。先頭フレームは静止画と一致するか、最初の動きは指示どおりか、人物は見分けられるか、必要な内容は画面内にあるか、終わり方は編集に合うか。完了したタスクでも、親密な動作が依頼より穏やかに表現される場合があります。状態ではなくフレームを評価してください。プロンプト、静止画、モデル、選んだ出力を一緒に保存し、試行の間に何が変わったか分かるようにします。
| 見える問題 | 次の修正 |
|---|---|
| 開始時のトリミングやポーズが不適切 | 静止画を修正し、アップロード前に最終形式へトリミングする |
| 衣装、部屋、外見が早い段階で変わる | 静止画と矛盾する指示を削除し、求める外見を新しい開始画像に入れる |
| 静止画を一瞬見せて別の場面に切り替わる | プロンプトが別の場面を説明しているため、静止画の場面を書き、「one continuous shot, no cuts」を加える |
| カメラが動作から離れる | 画角と維持する動作を一つ指定し、競合するカメラ移動を削る |
| 動きがほぼ止まっている | 禁止事項に偏っているため、実際に起こることを段階ごとに書く |
| 長いクリップが逸脱したり停滞したりする | 4〜5秒で一つの動作を試し、つながるテイクを計画する |
| 成人向け場面が弱められる | 静止画で強度を設定し、指示とフレームを比較して変数を一つ変える |
| クリップができる前に拒否される | 画像が成人で、生成人物または同意を得た人物か、タスクが画像の役割に合うか確認する。失敗時は通常、確保された金額が解放されます。エラー一覧に例外があります |
よくある質問
Image-to-videoにプロンプトは必要ですか?
いいえ。必須の入力は静止画だけです。プロンプトがないとモデルが動きを選ぶため、動作やカメラを指定したい場合は書いてください。
先頭フレームに複数の画像を使えますか?
いいえ。Image-to-videoは開始静止画一つと、任意の終了静止画一つを受け取ります。複数の画像にはreference-to-videoを使います。最大30枚で、順番に名前が付きます(@Image1、@Image2)。
ループを作れますか?
はい。同じ静止画をimage_urlとlast_image_urlに送り、つなぎ目を確認します(先頭と最終フレームの節を参照)。
Seedance 2.5はNSFW動画を生成できますか?
はい。基本版2.5とSpicyはどちらも、静止画から検閲なしの成人向けアニメーションを作れます。Spicyが内容を解禁すると期待するのではなく、入力の役割と出力の要件で選んでください。バージョン比較と検閲なしSeedanceのテストを参照できます。
動画が生成される前にリクエストが失敗したのはなぜですか?
送信時の拒否と、作成後に失敗したタスクを区別し、エラー一覧でコードを確認します。タスクが画像の役割に合うか、画像のサイズと形式が制限内か、URLを公開アクセスで取得できるかを確認してください。Playgroundではアップロード完了も確認します。タイムアウトし、受理されたか不明な場合は、同じ冪等性キーでのみ再送してください。
どのタスクを選ぶべきですか?
画像を先頭フレームにするならSeedance 2.5 image-to-videoを使い、480pで試作します。画像、クリップ、音声から新しく構成するショットを導くならSeedance 2.5 reference-to-videoを使います。4Kが必要な場合だけ、Seedance 2.5 Spicy image-to-videoで別の低解像度試作を作ってください。







