使用ガイド
Veo 3.1 Lite 画像から動画へのプロンプトレシピ:コピー&ペースト可能なプロンプトと実際の出力
実戦で検証済みの veo-3.1-lite/image-to-video モーションプロンプト3選。それぞれにソース画像、実際のレンダリングクリップ、正確なコストを添えています。
一言まとめ
- veo-3.1-lite/image-to-video は1枚の静止画像を短い動画に変換でき、hiapi 上でネイティブ同期音声(
generate_audio: true)をサポートする数少ない画像から動画へのモデルの1つです——効果音を別途用意する必要はありません。 - クリップの長さは固定:4、6、8秒、解像度は720p または 1080p。アスペクト比パラメータはなく、出力フレームはソース画像にそのまま従います。
- 以下は実戦で検証済みのモーションプロンプト3選——人物の振り向き、製品の unveiling、環境の前進——それぞれにソース画像とオンライン API 上で実際に生成されたクリップを掲載しています。
- 音声は実際にコストを増やします:
generate_audioを有効にすると、720p は毎秒 $0.06 から $0.10 に、1080p は毎秒 $0.10 から $0.14 に上がります。無音の製品ループ動画では音声をオフにしてください。 - 本記事の3枚のソース画像はすべて本記事用に新規生成され、3本のクリップもすべて、あなた自身が呼び出すのと同じ
/v1/tasksエンドポイントでレンダリングされています——プラットフォームのデモ素材は1つもありません。
これらのレシピの作り方
各レシピは同じ2ステップのサイクルに従います:
- テキストから画像へのモデルでクリーンなソース画像を生成する(私たちは
gpt-image-2/text-to-imageを使用)。この静止画像が最初のフレームです——ここで固定した構図、光、被写体のポーズが動画アニメーションの出発点になります。 - その静止画像の公開 URL とモーションプロンプトを一緒に
veo-3.1-lite/image-to-videoに渡す。プロンプトは次の数秒間に起こるべき変化——振り向き、蓋の開放、カメラの前進——を記述します。モデルは新しいシーンを勝手に作らず、与えられた画像を動かすだけです。
実際のクリップを生成してお金を使う前に、スキーマを探る中でいくつかの点に気づきました:
image_urlは単一の文字列のみを受け付け、配列は不可です——クリップごとに参照画像は1枚で、複数画像の合成はサポートされません。aspect_ratioフィールドはありません。レンダリングされる動画はソース画像のフレーミングを保持します。durationは4、6、8のみを受け付けます——5 や 10 を渡すと即座に拒否されます。generate_audioは通常のブール値ですが、価格帯を変えるため(下のコスト表を参照)、実行前にクリップに音声が必要かどうかを決めてください。
レシピ 1——人物の振り向きと微笑み
ソース画像——スタジオポートレート、斜め45度のアングル、穏やかな表情:

この女性はゆっくりと頭と肩を回してカメラに正面を向き、表情が穏やかな状態から温かく誠実な微笑みに変わり、カメラと目を合わせる。彼女の赤褐色のカーリーヘアは動きに合わせて軽く揺れる。柔らかなスタジオの環境ノイズ、彼女が微笑むときに小さな吐息が聞こえる。
veo-3.1-lite/image-to-video · 6秒 · 720p · generate_audio: true · $0.60
なぜ効果的か:プロンプトはモデルに1つの動作(振り向き)と1つの表情変化(穏やかから微笑みへ)だけを与えています——ソースのポーズが支えられないことは要求していません。音声を明示すること(「柔らかなスタジオの環境ノイズ」「小さな吐息」)がここでは重要です:ヒントがなければ、generate_audio: true はしばしば画面のリズムに合わない汎用的な環境音をデフォルトで生成してしまいます。
レシピ 2——製品 unveiling 回転
ソース画像——大理石の台座に置かれた閉じたイヤホンケース:

充電ケースの蓋がヒンジに沿ってゆっくりと開き、同時にケースが大理石の台座の上で軽く時計回りに回転し、中に収められたイヤホンが現れる。回転に合わせてスタジオのリムライトがマットブラックの表面を一瞬走る。カメラは固定され、被写体の動きだけがある。
veo-3.1-lite/image-to-video · 4秒 · 1080p · generate_audio: false · $0.40
なぜ効果的か:Eコマースのループ動画で音声が必要になることはほとんどありません——ほとんどの購入者は製品動画を無音で見ます——そのためこのレシピは音声を完全にオフにし、クリップを短く(4秒)保ち、複合的な動作を1つだけ(蓋開け+回転)使っています。「カメラは固定」と明示することで、モデルが要求していないドリフトするドリーショットを勝手に追加するのを防げます。これは製品ショットでよくある失敗ポイントです。
レシピ 3——環境の薄霧が立ち上る
ソース画像——夜明けの薄霧に包まれた湖上の桟橋:

カメラは木製の桟橋に沿ってゆっくりと前進し、誰も座っていないベンチに向かう。朝霧が湖面を漂いながら徐々に薄れ、日光がピンクの空を突き抜け始め、水面のさざ波に映り込む。かすかな環境音景:鳥のさえずりと、穏やかな波が桟橋の杭を打つ音。
veo-3.1-lite/image-to-video · 6秒 · 720p · generate_audio: true · $0.60
なぜ効果的か:環境ショットではカメラの動き(前進)と環境の動き(霧が薄れる、光が変化する)を組み合わせるのが適しています——片方だけでは静止して見えますが、両方を重ねることで生きているシーンのように感じられます。環境音のヒント(「鳥のさえずり」「波が打つ音」)により、音声トラックが画面内容に結びつき、汎用的な背景ノイズにならずに済みます。
秒単位の課金を抑える
veo-3.1-lite/image-to-video は解像度と音声の有無で価格が決まり、オンラインの /api/pricing エンドポイントで確認済みです:
| 解像度 | 音声 | 1秒あたりの価格 | 6秒クリップの費用 |
|---|---|---|---|
| 720p | オフ | $0.06/秒 | $0.36 |
| 720p | オン | $0.10/秒 | $0.60 |
| 1080p | オフ | $0.10/秒 | $0.60 |
| 1080p | オン | $0.14/秒 | $0.84 |
2つの結論:より長いまたは高解像度のレンダリングに本格的に投資する前に、720p で音声オフのままプロンプトを反復するのが最も安価な方法です。そして 720p 無音から 1080p 音声付きへのアップグレードは、毎秒の料金がほぼ倍増します($0.14 対 無音 720p の $0.10)——1080p+音声の組み合わせは本当に納品するクリップに取っておきましょう。
自分で実行する:送信、ポーリング、ダウンロード
import time
import requests
API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = "YOUR_HIAPI_API_KEY"
def submit(prompt, image_url, duration=6, resolution="720p", generate_audio=True):
resp = requests.post(
API_BASE,
headers={"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"},
json={
"model": "veo-3.1-lite/image-to-video",
"input": {
"prompt": prompt,
"image_url": image_url,
"duration": duration,
"resolution": resolution,
"generate_audio": generate_audio,
},
},
timeout=30,
)
resp.raise_for_status()
return resp.json()["data"]["taskId"]
def poll(task_id, interval=8, timeout=300):
deadline = time.time() + timeout
while time.time() < deadline:
r = requests.get(f"{API_BASE}/{task_id}",
headers={"Authorization": f"Bearer {TOKEN}"}, timeout=30)
data = r.json()["data"]
if data["status"] == "success":
return data["output"][0]["url"]
if data["status"] in ("failed", "error"):
raise RuntimeError(f"task failed: {data}")
time.sleep(interval)
raise TimeoutError("task did not finish in time")
task_id = submit(
prompt="被写体はゆっくりとカメラの方を向いて微笑む。",
image_url="https://your-public-image-url.jpg",
duration=6,
resolution="720p",
generate_audio=True,
)
video_url = poll(task_id)
# 出力 URL は期限付き——すぐにバイトをダウンロードする
video_bytes = requests.get(video_url, timeout=60).content
with open("clip.mp4", "wb") as f:
f.write(video_bytes)
出力 URL は期限切れになります——タスクが success を報告したらすぐにダウンロードしてバイトを保存し、その参照を長期間保持しないでください。
hiapi のタスクベースの生成フローに慣れていない方は、veo-3.1-lite/image-to-video モデル詳細ページに最新のスキーマリファレンスがあり、料金ページは常にスナップショットではなくモデルごとのリアルタイム料金を反映しています。より完全な画像から動画へのプロンプトライブラリを構築する場合は、Grok Imagine 1.5 画像から動画へのレシピの記事が別のモデルとその独自のモーションプロンプトパターンおよびコストトレードオフを扱っています。
スキーマクイックリファレンス
| フィールド | 型 | 値 | 説明 |
|---|---|---|---|
prompt |
string | 自由テキスト | シーン全体ではなく、動き/変化を記述する |
image_url |
string | 公開 URL | 単一画像のみ、配列は不可 |
duration |
integer | 4、6、8 |
他の値は拒否される |
resolution |
string | "720p"、"1080p" |
480p の段階はない |
generate_audio |
boolean | true / false |
価格帯が変わる |
はじめに
クリーンなソース画像を生成し、望む変化を1つか2つ明確に示すモーションプロンプトを書き、クリップに音声が必要かどうかを事前に決める——これがワークフロー全体です。veo-3.1-lite/image-to-video モデルページに進んで API キーを取得し、レンダリングを開始してください。