はじめに
Vidu Q3 の画像→動画は、開始フレーム 1 枚と文章による指示から、540p・720p・1080p のいずれかで 1〜16 秒(整数秒)のクリップを生成します。入力は 2 つとも必須です。image_url は被写体、衣装、セット、そして出力の形を決め、prompt はそのフレームの後に起きること、つまり動き、カメラワーク、音を担います。アスペクト比を指定するフィールドはなく、クリップは送った画像の縦横比のまま返ります。画像の比率は 1:4〜4:1 の範囲に収めてください。音声は映像と同じ生成で作られ、既定でオンです。
主な機能とハイライト
フレームに忠実に従う
モデルは静止画に写っているもの、つまり顔、衣装、セット、構図からそのまま動き始めます。そのため、承認済みの画像と一致させる必要があるクリップでは、無検閲の元フレームも含めて頼れる選択肢になります。裏を返せば、フレームに写っていないものはモデルが補って作るしかありません。衣装の背中が見える振り向きや、静止画の外にある部屋の一角へのカメラ移動は、ずれが出やすい場面です。
動きの大きさは独立したコントロール
movement_amplitude は auto・small・medium・large の 4 段階です。auto では開始フレームを読み取ってモデルが判断します。静かな場面をもっと動かしたいときは上げ、指示で動きを禁じているときは低く保ってください。公開しているブラインドの例では光以外は何も動かず、高い設定にするとまさにその指示が排除している動きが生まれてしまいます。そのうえでプロンプトは、重心の移動、半身の振り向き、フレームの外へ歩き去る動作など、具体的な一拍に使えます。
音も同じ生成で
generate_audio の既定値は true なので、ルームトーン、フォーリー、環境音が映像と一緒に生成され、同期した状態で届きます。光を描写するのと同じように、海鳴りと風、揺れるカーテンといった音もプロンプトに書いてください。自分でミックスした音を重ねるクリップでは false にします。別スイッチの bgm(既定でオン)が BGM を付けます。音楽が不要ならオフにしてください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
image_url | はい | 開始フレームです。被写体と構図を固定し、出力の形も決めます。 |
prompt | はい | 必須です。フレームのあとに変わるもの——動作、カメラ、音——を書いてください。 1 文字以上 |
duration_seconds | いいえ | 1〜16 の整数秒。 |
resolution | いいえ | 540p、720p、1080p から選びます。 |
movement_amplitude | いいえ | auto、small、medium、large の 4 段階です。auto は開始フレームから判断します。 |
generate_audio | いいえ | 既定でオン。無音のクリップにするなら false にしてください。 デフォルト値: |
bgm | いいえ | クリップに BGM を付けます。既定でオンです。 デフォルト値: |
seed | いいえ | 2 回の実行を条件を揃えて比べるために使います。 |
料金
| 仕様 | 料金 |
|---|---|
| $0.07 / 秒 |
| $0.15 / 秒 |
| $0.16 / 秒 |
ユースケース
ずれてはいけない承認済みの静止画
承認済みのキャンペーン写真、キャラクターシート、絵コンテのコマが起点のまま保たれます。クリップはそこから始まるため、顔、衣装、セットはそのまま引き継がれ、確認すべき点は「動きが成立しているか」の 1 点に絞られます。大きく見せたいものはプロンプトに作らせるのではなく、静止画の中に入れておきます。
同じ場面を縦と横で
出力はフレームの形を引き継ぐため、同じ場面を 9:16 と 16:9 に切り出せば、他のフィールドを変えずにストーリー用とフィード用のカットが得られます。切り出しはアップロード前、画像の段階で行ってください。
光と空気感だけのショット
被写体は静止したまま、別の何かだけを変えたいショットがあります。8 秒・1080p の例では、2 人が動かず、日が沈むにつれて、ブラインドのくっきりした縞が二人の肩の上を移ります。「光以外は何も動かない」と書いたプロンプト、控えめな movement_amplitude、オフにした generate_audio の組み合わせで成り立っています。
短いカットから 1 シーンまで同じエンドポイントで
duration_seconds は 1〜16 秒なので、1 秒のリアクションカットも、始まりと終わりのある 16 秒のシーンも同じフィールドで作れます。料金を左右するのは長さと解像度の 2 つで、どちらを変えても見積もりがその場で更新されます。
プロンプトガイドと実践のヒント
開始フレームを準備する
クリップは画像の形を引き継ぐので、まず納品したい形に切り出し、比率は 1:4〜4:1 に収めます。被写体、衣装、セットなど、必ず映したいものはすべて画像に入れてください。モデルはフレームに写っているものから始め、それ以外は補って作ることになります。
動きを起きる順に書く
フレームの後に起きることを、動き、カメラ、光、音の順に、静止画を描き直さずに書きます。明るいハイキーの朝の寝室の例では、5 秒の中で三つの動きをつなぎます。伸びをし、白いベッドにゆっくり倒れ込み、それからカメラへ顔を向けて微笑みます。締めくくりは光とカメラで、日差しの中の薄いカーテン、光の筋に舞うほこり、ゆっくりした手持ちの揺れです。これらの動作はどれもフレームには写っておらず、すべてプロンプトに書かれています。
公開している例を応用する
公開している崖の上の例は、海を見下ろす白いドレスの女性の静止画から、generate_audio を既定のまま 5 秒・720p で生成したものです。「1 つの力、複数の素材、1 つのカメラの動き」という構成を保ったまま、被写体と場所を自分のものに置き換えてください。
The wind gusts and the long grass runs in waves across the clifftop; her white dress and hair stream sideways and snap. She turns from the sea into the wind toward the camera, catching the hair off her face with one hand and laughing, then spreads both arms and leans into the gust. Gulls cross far below. Slow steadicam arc around her, bright overcast daylight, cool green and pale blue, sea roar and wind.
主役は風です。長い草が波打ち、ドレスと髪が横になびいてはためき、彼女が突風に身を預ける間、ステディカムが周りを弧を描いて回ります。3 種類の素材に 1 つの連続した力が働くため、人物がただ振り向くだけの場合よりも、静止画を動かす力が厳しく試されます。
540p で試し、1080p で納品する
動きが納得できるまで 540p で繰り返し、その後、同じフレーム、プロンプト、seed のまま 1080p で生成し直します。こうすれば変わったのは解像度だけになります。固定した seed は 2 回の生成を比べやすくするものであり、フレーム単位で同一の結果を保証するものではありません。ずれが出たときは、まず衣装の背中や部屋の端など、静止画に写っていなかった部分を確認し、その見せ場はプロンプトを書き足すのではなく新しい開始フレームに入れてください。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "vidu/q3/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"movement_amplitude": "auto",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。













