弱いAI逃走シーン動画の多くは、生成が始まる前から失敗しています。プロンプトには誰かが「映画のように」走ると書かれていても、走る人物の体重移動、カメラが捉えるもの、動きの終点が指定されていないことがあります。その結果、速い動きは含まれていても、追跡劇らしく感じられないことが少なくありません。
ここで目指すのは具体的なものです。手持ちカメラが女性を追跡する、15秒間のワンテイクの街中の追走シーンです。カメラは2人の追跡者を一時的に映し、少しの間フォーカスを失った後、再び彼女を捉えます。このカメラのミスは意図的なものです。ショットをシミュレーションではなく、実際に撮影された映像のように見せます。
この映画的な逃走シーン動画ガイドでは、シーンを物理的な時間軸に変換します。完成したSeedance 2.0プロンプトをコピーし、GPT Protoでショットを生成し、APIの例を使って同じワークフローをアプリケーションに組み込めます。
Seedance 2.0のモデルと設定を選ぶ
GPT ProtoにはStandardとFastの両方のルートがあります。おすすめのワークフローは、まずFastでプロンプトの構成をテストし、選んだプロンプトをStandardモデルで比較してから、最終テイクを決める方法です。これはワークフロー上の推奨であり、常に一方のルートがより良い映像を生成するという主張ではありません。品質差は、ご自身の素材で判断してください。
| ルート |
モデルID |
掲載開始価格 |
推奨用途 |
| Standard |
dreamina-seedance-2-0-260128 |
$0.2957/実行 |
最終比較レンダリング |
| Fast |
dreamina-seedance-2-0-fast-260128 |
$0.2365/実行 |
プロンプトの反復改善 |
この例では、Seedance 2.0モデルページを開き、次の設定を使用します。
| 設定 |
値 |
理由 |
| 長さ |
15秒 |
状況の導入、追跡者の登場、再捕捉に十分な時間 |
| 解像度 |
720p |
動きの確認に適した実用的な下書き解像度 |
| アスペクト比 |
16:9 |
逃げる人物と追跡者の横方向の距離を維持 |
| 音声を生成 |
true |
足音、呼吸、街の環境音を生成 |
| カメラ固定 |
false |
手持ちによる追跡動作を可能にする |
| シード |
-1 |
新しいバリエーションを生成。比較を制御したい場合は固定シードを使用 |
執筆時点で、モデルページには15秒、720p、16:9の実行料金として$2.4948が掲載されています。料金は長さ、解像度、比率によって変わるため、大規模なバッチを開始する前に最新の料金表を確認してください。
ステップ1 — 追走シーンの物語上の目的を定義する
まず、カメラが動く理由から始めます。
カメラは、彼女が主役だからというだけの理由で走る人物を追うのではありません。速度と緊迫感を伝えるために彼女を追います。脅威を見せるために追跡者へ向きを変えます。その後、再び走る人物を見つけることで、2者の距離がどれほどあるのかを視聴者に伝えます。
動きを説明する前に、登場人物を固定します。
- 逃げる人物: 濃い色のデニムジャケットと黒いジーンズを着た女性。右手に重いタン色のキャンバス製旅行バッグを持っている。
- 追跡者: 濃い色のカジュアルな服を着た2人の男性。常に逃げる人物の後ろにいる。
- 目的地: ショットの遠端にある歩行者専用道路の入口。
プロンプト全体で同じラベルを使ってください。「逃げる人物」を後の段落で「女性」「少女」「登場人物」などに置き換えないようにします。複数の人物が同じフレームにいる場合、名前を一貫させることで人物の同一性の揺らぎを減らせます。
ステップ2 — 物理的な舞台を構築する
追走には奥行きが必要です。奥行きがなければ、モデルは脚だけを速く動かし、他のすべての物体を平面的な背景のように振る舞わせることがあります。
| 空間レイヤー |
内容 |
もたらす効果 |
| 被写体面 |
逃げる人物と重い旅行バッグ |
速度、緊迫感、身体の動き |
| 中景 |
カフェのテーブル、椅子、歩行者、追跡者 |
障害物と迫り来る脅威 |
| 背景 |
歩行者専用道路の入口 |
ショットに方向性を与える目的地 |
これらの関係を安定させてください。追跡者は逃げる人物の後ろに留まり、目的地は前方にあり続けます。歩行者は、彼女が到着する前から進路を予測して現れるのではなく、彼女に気づいてから脇へよけます。
この最後の細部は重要です。すべての通行人が早すぎる段階で道を空けると、リアルなAI逃走シーン動画は人工的に見えてしまいます。
ステップ3 — 正確なタイムスタンプではなく、順序付けたビートを書く
BytePlusのSeedance 2.0公式プロンプトガイドでは、複雑な動画には順序付けた説明を推奨していますが、「0〜3秒」のような厳密なタイミングは不安定になる可能性があると警告しています。代わりに、物語上のビートを使いましょう。
これは連続したワンテイクなので、「ショット1」「ショット2」ではなく、ビート1、ビート2、ビート3とラベル付けします。前者は編集を促す可能性があります。
ビート1 — 逃げる人物を導入する。 カメラは彼女の横を横方向に追跡します。足が地面を踏み込み、蹴り出し、腕が反対方向に振られます。バッグは重さがあるため、わずかに遅れて反応します。
ビート2 — 追跡者を見せる。 前進を続けながら、カメラは一時的に2人の男性へ向き直ります。ためらうように動き、逃げる人物をほとんど見失います。この瞬間が追走の位置関係を作ります。
ビート3 — 再捕捉して終える。 フォーカスがさらに前方にいる逃げる人物へ移ります。カメラは横方向の追跡に戻り、彼女は椅子を避けながら歩行者専用道路の入口へ進み続けます。
シーケンスは時系列ですが、1秒ごとに細かく指示しているわけではありません。Seedanceに明確な順序を伝えつつ、動きのテンポには余地を残しています。
ステップ4 — 身体の動き、カメラの動き、フォーカスを分ける
公式ガイドでは、身体の部位、速度、力、動作間の移行を説明することが推奨されています。「彼女は速く走る」では抽象的すぎます。動きの仕組みを書きましょう。
- 足が目に見える形で地面に接触し、蹴り出す。
- 膝が上がり、腕が反対方向に振られる。
- 加速中、胴体が少し前へ傾く。
- 旅行バッグが一歩ごとに遅れてついてきた後、前方へ振られる。
- 椅子を避けた後、目に見える勢いを保ったまま走り方を取り戻す。
次にカメラを別に説明します。主要な動きは1つ、未完成さのある手持ちの横方向追跡にします。追跡者へ一時的に向き直る動きは、同じ追跡動作の方向転換であり、ドリー、クレーン、旋回、ズームを同じ指示に重ねたものではありません。
フォーカスには独自の物語上の役割があります。追跡者の顔から始まり、彼の横を通り過ぎ、遠くにいる逃げる人物へ到達し、再び彼女にロックします。短いフォーカスハントは、カメラオペレーターの補正として伝わります。常にぼけたままだと失敗に見えます。
ステップ5 — 空間音声とネガティブ制約を追加する
generate_audioをtrueに設定し、音の視点がどのように変化するかをモデルに伝えます。
カメラが逃げる人物を追っている間は、彼女の足音、呼吸、動く服、バッグの金具音をミックスの中心に置きます。カメラが後方へ向きを変えると、それらの音は遠ざかり、追跡者の足音が前面に出ます。再び彼女を捉えたら、呼吸と足音を前景に戻します。
環境音のレイヤーは途切れさせません。カフェの話し声、椅子を引く音、舗道を踏む靴音、街の反響を維持します。音楽は必要ありません。移動する音場そのものが緊張感を担います。
最後に境界条件を指定します。このシーンでは、カット、時間跳躍、テレポート、足の滑り、不可能なカメラ移動、手足の融合、人物の重複、重さのないバッグ、固まった通行人、テキスト、ロゴ、透かしを禁止します。
コピー&ペースト用:映画的な逃走シーン動画プロンプト
上記の設定で、このプロンプトをSeedance 2.0に貼り付けます。
基本指示
1回の連続したテイクで、15秒間のフォトリアルな逃走シーンを作成する。アクションから離れるカットは入れない。
登場人物と一貫性
- 逃げる人物:濃い色のデニムジャケットと黒いジーンズを着た女性。右手に重いタン色のキャンバス製旅行バッグを持っている。
- バッグの物理特性:バッグには目に見える重さがある。彼女の腕を下へ引き、遅れのある慣性で揺れる。
- 追跡者:濃い色の服を着た2人の男性が後ろから追いかける。
- 一貫性:動画全体を通して、3人の人物、服装、相対位置を一貫させる。
場所と空間配置
- 日中の、混雑した歩行者専用道路を舞台にする。
- 逃げる人物を被写体面に置く。
- カフェのテーブル、椅子、歩行者、追跡者を中景に配置する。
- 前方に目的地として歩行者専用道路の入口が見える状態を保つ。
アクションのタイムライン
ビート1 — 逃げる人物を導入
不完全さのある手持ちカメラが、左から右へ疾走する逃げる人物の横を追跡する。
- 足が自然に舗道を踏み、蹴り出す。
- 膝が上がり、腕が反対方向に振られ、胴体が前へ傾く。
- 髪と服が速度に反応する。
- 重いバッグが一歩ごとに遅れてついてくる。
- 歩行者はまず彼女に気づき、その後自然に脇へよける。
ビート2 — 追跡者を見せる
カットせず、同じ追跡カメラが前進を続けながら一時的に後方へ向き直る。
- 追跡者がカフェの家具の間を縫って進む様子を映す。
- オペレーターが逃げる人物をほとんど見失うようにする。
- フォーカスを1人の追跡者へ移し、彼の横を通り過ぎ、さらに前方にいる逃げる人物へ移す。
ビート3 — 再捕捉して終える
カメラが再び逃げる人物を捉え、横方向の追跡を再開する。
- 彼女はテレポートせずに椅子を避ける。
- 目に見える勢いを保ったまま走り方を取り戻す。
- 歩行者専用道路の入口に到達する。
- 追跡者が同じ空間軸上の後方に残る中、彼女が走り続けている状態で終える。
カメラとフォーカス
- 主要な動きは1つ、ドキュメンタリー風の手持ち横方向追跡にする。
- 自然なオペレーターの揺れと適度なモーションブラーを加える。
- 不自然に滑らかなジンバル映像のような見た目は避ける。
- 短いフォーカスハントと、その後の素早い回復を含める。
- 現実的な被写界深度、35mmレンズ、目線の高さのフレーミング、自然光を使用する。
- すべての動きを物理的に正確に保つ。
サウンドデザイン
変化する音の視点を持つ、ネイティブの同期音声を生成する。
- 逃げる人物を追っている間は、彼女の足音、呼吸、バッグの金具音、動く服を中心にする。
- 後方へ向きを変えている間は、それらの音を遠ざけ、追跡者の足音と息遣いを前面に出す。
- カメラが再び逃げる人物を捉えたら、彼女の呼吸と足音を前景に戻す。
- カフェの話し声、椅子を引く音、街の残響は途切れさせない。
制約
1回の連続したテイクを維持する。次の要素は生成しない。
- カット、モンタージュ、時間跳躍。
- テレポート、急激なズーム、不可能なカメラ移動。
- 足の滑り、浮遊する身体。
- 重複した人物、融合した手足、歪んだ手。
- 人物の同一性の揺らぎ、家具をすり抜ける身体。
- 重さのないバッグ、固まった歩行者。
- 字幕、テキスト、ロゴ、透かし、ナレーション、背景音楽。
このプロンプトが機能するのは、各ブロックが人物の同一性、空間、時系列のアクション、カメラの反応、フォーカス、音、失敗条件という異なるシステムを制御するためです。別の出発点が必要なら、Seedance 2.0プロンプトギャラリーで完成動画を閲覧し、例を開いて、このタイムライン構造を崩さずに登場人物や設定をアレンジしてください。
Seedance 2.0 API経由で追走シーンを生成する
GPT Protoでは、次のテキスト・トゥ・ビデオルートを利用できます。
POST /api/v3/doubao/dreamina-seedance-2-0-260128/text-to-video
v3のドキュメントでは、APIキーをAuthorizationヘッダーに直接送信します。以下の例にBearerを追加しないでください。
cURLでテストを送信する
export GPTPROTO_API_KEY="your-api-key"
curl --request POST \
"https://gptproto.com/api/v3/doubao/dreamina-seedance-2-0-260128/text-to-video" \
--header "Authorization: $GPTPROTO_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"prompt": "One continuous 15-second handheld lateral tracking shot of a woman sprinting through a crowded pedestrian street while two men chase her; realistic foot strikes, weighted travel bag inertia, brief focus hunt, synchronized footsteps and breathing, no cuts or foot sliding.",
"aspect_ratio": "16:9",
"duration": 15,
"resolution": "720p",
"generate_audio": true,
"camera_fixed": false,
"seed": -1
}'
レスポンスには予測IDがdata.idに含まれます。/api/v3/predictions/{id}/resultにアクセスし、data.statusが成功を示すまで確認します。
Pythonで送信とポーリングを行う
必要な依存関係は1つだけです。
pip install requests
次に実行します。
import json
import os
import time
import requests
API_KEY = os.environ["GPTPROTO_API_KEY"]
SUBMIT_URL = (
"https://gptproto.com/api/v3/doubao/"
"dreamina-seedance-2-0-260128/text-to-video"
)
PROMPT = """One continuous 15-second photorealistic running chase.
A handheld camera tracks laterally beside a woman sprinting through a crowded
pedestrian street while two men pursue her. Her feet strike and push off the
ground naturally; a heavy canvas bag swings with delayed inertia. The camera
briefly reorients toward the pursuers, hunts focus, then recaptures the runner
as she avoids a café chair and reaches the pedestrian-street entrance.
Synchronized footsteps, breathing, bag hardware, chair scrapes, and street
ambience change perspective with the camera. No cuts, time jumps, teleporting,
foot sliding, fused limbs, duplicated people, text, logos, or watermark."""
headers = {
"Authorization": API_KEY,
"Content-Type": "application/json",
}
payload = {
"prompt": PROMPT,
"aspect_ratio": "16:9",
"duration": 15,
"resolution": "720p",
"generate_audio": True,
"camera_fixed": False,
"seed": -1,
}
submitted = requests.post(
SUBMIT_URL,
headers=headers,
json=payload,
timeout=60,
)
submitted.raise_for_status()
submission = submitted.json()
prediction_id = submission["data"]["id"]
result_url = (
f"https://gptproto.com/api/v3/predictions/{prediction_id}/result"
)
while True:
response = requests.get(result_url, headers=headers, timeout=60)
response.raise_for_status()
result = response.json()
data = result.get("data", {})
status = str(data.get("status", "")).lower()
if status in {"succeed", "success", "completed"}:
print(json.dumps(data.get("outputs", []), indent=2))
break
if status in {"failed", "error", "canceled", "cancelled"}:
raise RuntimeError(data.get("error") or result)
print(f"Status: {status or 'pending'}")
time.sleep(5)
このコードは実際の非同期ジョブを送信し、生成に成功すると出力項目を表示します。本番環境ではポーリング間隔を維持してください。遅延なしで繰り返しクエリを送ると、不要なトラフィックが発生します。
よくある逃走シーンの失敗を修正する
| 問題 |
考えられる原因 |
プロンプトの修正 |
| 逃げる人物が滑る |
「速く走る」では身体の動きが不足している |
足の接地、蹴り出し、膝の上げ方、勢いを追加する |
| バッグが浮く |
重さが定義されていない |
遅れて揺れる動き、下向きの引力、腕の反応を追加する |
| カメラが逃げる人物を永久に見失う |
回復するイベントがない |
フォーカスがどこへ移り、いつ追跡を再開するかを指定する |
| 動画がカットされる |
プロンプトが別々のショットのように読める |
順序付けたビートを使い、「1回の連続したテイク」を繰り返す |
| 手足が融合する |
同時に指示する動作が多すぎる |
二次的なジェスチャーを削り、群衆との接触を減らす |
| 通行人が早く動きすぎる |
反応に因果関係がない |
通行人が逃げる人物に気づいてから脇へよけると明記する |
| 追走が遅く感じられる |
スタイルワードが動きに置き換わっている |
歩幅の仕組み、障害物、カメラとの距離を指定する |
一度に1つのレイヤーを変更します。まず被写体の動きを修正し、次にカメラの挙動、そしてフォーカスと音を修正します。結果が出るたびにプロンプト全体を書き直すと、動画の何が改善されたのか特定しにくくなります。
プロンプトを作り直さずに3つのバリエーションを作る
夜の追走シーンでは、日中という設定を濡れた舗道、店舗の照明、控えめなネオンの反射に置き換えます。登場人物、空間軸、ビートは同じに保ちます。
縦型のソーシャル動画では、アスペクト比を9:16に変更し、カメラを近づけ、逃げる人物と追跡者の横方向の距離を縮めます。生成後に16:9の構図を単純に切り抜くだけにはしないでください。
よりドキュメンタリーらしい見た目にするには、35mmレンズの指示を削除し、オペレーターの補正がより強い、肩載せ式のニュースカメラの雰囲気を指定します。主要な追跡動作は1つに保ちます。
再利用できる部分は服装や街ではありません。因果関係の連鎖です。
雰囲気ではなくタイムラインとして追走シーンを構築する
説得力のある追走には、速さだけでは不十分です。重さ、障害物、カメラの判断、フォーカスの回復、目的地が必要です。これらが因果関係のあるタイムラインを形成すると、Seedance 2.0が実行できる内容になります。
上のプロンプトをコピーし、さらにSeedance 2.0のプロンプト例を確認するか、ご自身のワークフローからSeedance 2.0 APIを呼び出してください。