使用ガイド
Veo 3.1 イメージ・トゥ・ビデオ:API で一枚の静止画をショート動画広告に変える
0.03 ドルの商品静止画から、ネイティブ音声付きの 9:16 縦型ショートクリップまで、わずか 115 秒——hiapi タスク API 上で完全な veo-3.1/image-to-video ワークフローを実行。実際の出力、高速ティアのドラフトループ、バッチ処理パイプラインを含みます。
ショート動画には厳しい制作コストの現実があります。TikTok や Reels は投稿量で勝負が決まりますが、洗練された商品ショートクリップ一本に撮影・編集・音響設計で丸々半日かかることがあります。Google の Veo 3.1 イメージ・トゥ・ビデオモデル(veo-3.1/image-to-video)は、このパイプラインを 2 回の API 呼び出しに圧縮します——安価な静止画 1 枚、動画タスク 1 件——そしてネイティブ音声が既にミックスされた縦型ショートクリップを返します。
以下は本パイプラインがこの記事のために生成した完全な出力です。0.03 ドルのソース画像 1 枚、API 呼び出し 1 回、115 秒の待機:
音声をオンにしてください——着地の鈍い音、環境低周波のパルス、霧のシューという音はすべてモデルが生成したものです。ここには人手による編集、カラーグレーディング、音響設計は一切ありません。本ガイドでは、hiapi タスク API を通じてこのクリップをエンドツーエンドで構築し、その後同じワークフローをバッチパイプラインに拡張して、ショートフォーマットのバリエーションを量産します。
なぜイメージ・トゥ・ビデオがショートフォーマットに適したツールなのか
テキスト・トゥ・ビデオは探索には最適ですが、ショートフォーマットの商業コンテンツは通常、すでに手中にある素材から始まります。商品写真、パッケージ画像、ポスターフレームなどです。イメージ・トゥ・ビデオはその視覚的アイデンティティを維持したまま動きを加えます。TikTok/Reels フォーマットでは、veo-3.1/image-to-video の 3 つの特性が特に重要です:
- 出力は入力したアスペクト比に従います。
aspect_ratioパラメータは存在せず、モデルは提供した画像から構図を継承します。9:16 の縦型静止画を渡せば、9:16 の縦型動画が得られます。本記事の 2 本のクリップはどちらもソース静止画が 9:16 であるため、正確に 1080×1920 と 720×1280 で出力されています。構図の決定は画像段階で一度だけ行えば済みます。 - ネイティブ音声。各クリップにはプロンプトに基づいて生成された 48 kHz AAC 音声トラックが付属します——フォーリー、環境音、音楽的な質感。ショートフォーマットでは、ミュート自動再生よりも音声付きコンテンツの方がコンバージョンが高いため、編集工程を丸ごと省けます。
- プラットフォームに適した解像度。
720pはドラフト用、1080pはフィード品質の縦型用、4kはクリップが他の配置場所のマスターにもなる場合用です。
入力パラメータ構造(ライブ API で検証済み)
本ガイドを執筆する前に、ライブエンドポイントをプローブしました。パラメータ構造は厳格で、未知のフィールドは 400 で拒否されるため、推測しないでください:
| フィールド | 必須 | 型 | 値 |
|---|---|---|---|
prompt |
推奨 | string | 動き、カメラ、音声の指示 |
image_url |
必須 | string | 公開アクセス可能な画像 URL |
resolution |
必須 | string | 720p、1080p、4k |
duration |
必須 | integer | 4、6、8(秒) |
事前に知っておくべき 2 つの注意点:image_url は単数形です——これは単一参照モデルであり、複数画像ミキサーではありません——そして URL は公開取得可能でなければなりません(自身の CDN またはオブジェクトストレージにホストしてください。署名付き localhost リンクは不可です)。
ステップ 1——ソース静止画を生成する
任意の 9:16 画像が使用可能で、実際の商品写真も含まれます。私たちは gpt-image-2 で 0.03 ドルのソース画像を生成し、パイプライン全体を 1 つの API 内に収めました:

curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2/text-to-image",
"input": {
"prompt": "Vertical product hero shot of a chunky retro basketball sneaker in wolf-gray suede with volt yellow laces, floating at a slight tilt above a wet concrete pedestal, dramatic teal-to-amber gradient backdrop, fine mist and dust particles suspended in hard rim light, ultra-sharp commercial product photography, no text, no logos",
"aspect_ratio": "9:16",
"resolution": "1K"
}
}'
優れた i2v ソース画像の構図ルールは、静物写真家に与えるルールと同じですが、1 つ追加があります:動きの余白を残すこと。私たちのスニーカーが台座の上に浮かんでいるのは、動画モデルに明白で物理的な動作——靴が石の上に着地する——を与えるためです。動作の途中で静止した被写体は Veo に完成可能なストーリーを与えますが、静的に中央配置されたパッケージ画像は何も与えず、ドリフトショットの埋め草しか得られません。
ステップ 2——動画タスクを送信する
同じ /v1/tasks エンドポイントで、モデルだけが異なります。プロンプトは被写体の動き、カメラ、音声の 3 チャンネルを同時に指示すべきです。
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1/image-to-video",
"input": {
"prompt": "The sneaker slowly rotates about 90 degrees as the camera pushes in from a low angle. Dust particles drift through the rim light. The shoe settles onto the wet stone pedestal with a deep, satisfying thud, sending a soft ring of mist rolling off the edges. A warm light sweep travels across the suede texture. Subtle bass-heavy electronic pulse builds in the background with a low whoosh on the landing. Cinematic product commercial, smooth stabilized motion, no text overlays.",
"image_url": "https://your-cdn.example.com/stills/sneaker-916.jpg",
"resolution": "1080p",
"duration": 6
}
}'
レスポンスは即座にタスク ID を返します:
{"code": 200, "data": {"taskId": "tk-hiapi-01KXCTHP6F6VXQ9XZCSCCEEEMM"}, "message": "success"}
プロンプトはクリップの再生順に書かれていることに注意してください:回転 → プッシュイン → 着地 → 光の掃引、そして音声キューはそれが属する瞬間に添えられています(着地時の「鈍い音」、その下のパルス)。Veo はプロンプト内のイベント順序に非常に忠実に従います——まさにそれがスクリプト化可能である理由です。
ステップ 3——ポーリングしてダウンロードする
動画タスクは非同期です。status が success に変わるまでタスクをポーリングし、その後すぐに出力をダウンロードしてください——その URL は expireAt タイムスタンプ付きの一時リンクであり、永久ストレージではありません:
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
def wait_and_download(task_id: str, out_path: str, timeout_s: int = 900):
deadline = time.time() + timeout_s
while time.time() < deadline:
task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if task["status"] == "success":
url = task["output"][0]["url"] # temp link — expires!
clip = requests.get(url, timeout=120).content
with open(out_path, "wb") as f:
f.write(clip) # persist to your own storage now
return out_path
if task["status"] == "fail":
raise RuntimeError(task.get("error"))
time.sleep(10)
raise TimeoutError(task_id)
私たちの実行では、6 秒 1080p クリップは送信から完了まで 115 秒かかりました。これはコンテンツパイプラインにキューを前置きせずに配置できるほど高速です。
安価にドラフトし、仕上げに磨く:二層ワークフロー
Veo 3.1 には高速ティア——veo-3.1-fast/image-to-video——があり、入力構造はまったく同じで、1 秒あたりの価格は半分以下です。これにより、フィルムを焼く前にポラロイドを撮るという写真由来のワークフローが可能になります。高速ティアで 720p のモーションプロンプトを反復し、勝ったプロンプトだけを標準ティアで再レンダリングします。
以下はまったく同じプロンプトとソース静止画による高速ティアのドラフトです(6 秒、720p、1.50 ドル、58 秒で完了):
ドラフトは同じビート——回転、着地、霧——を捉えていますが、テクスチャの細部は明らかに簡素で、音声ミックスはより平坦です。プロンプトの反復にはそれで十分です。確認するのは振り付けであり、最終的な磨き込みではないからです。本記事の 2 本のクリップはどちらも一発撮りです。高速ティアは、標準ティアの撮影が唯一課金される撮影であることを確実にする方法です。
量産にスケールする
ショートフォーマット戦略は量のゲームです——各商品につきフックをテストするために 5〜10 のバリエーションが欲しくなります。すべてが 1 つの非同期エンドポイント上にあるため、バッチ処理は単なるループです:まずすべてのタスクを送信し、その後収集します。
STILLS = [
("sneaker-916.jpg", "rotates and lands on the pedestal with a deep thud..."),
("bottle-916.jpg", "condensation beads race down the glass as camera orbits..."),
("headphones-916.jpg","earcup unfolds in slow motion, soft click, synth swell..."),
]
task_ids = []
for still, motion in STILLS:
r = requests.post(API, headers=HEADERS, json={
"model": "veo-3.1-fast/image-to-video", # draft tier for the first sweep
"input": {
"prompt": motion,
"image_url": f"https://your-cdn.example.com/stills/{still}",
"resolution": "720p",
"duration": 6,
},
}, timeout=60).json()
task_ids.append(r["data"]["taskId"])
for i, tid in enumerate(task_ids):
wait_and_download(tid, f"draft-{i}.mp4")
先に送信してから収集することが重要です:クリップはプラットフォーム側で並行生成されるため、10 本のドラフトは約 10 倍ではなく約 1 本分の時間で済みます。
費用はいくらか
hiapi の料金によると、両ティアとも出力動画の秒数で課金されます:
| モデル | 価格 | 4 秒クリップ | 6 秒クリップ | 8 秒クリップ |
|---|---|---|---|---|
veo-3.1/image-to-video |
$0.57/s | $2.28 | $3.42 | $4.56 |
veo-3.1-fast/image-to-video |
$0.25/s | $1.00 | $1.50 | $2.00 |
本記事で紹介したすべて——ソース静止画 1 枚、カバー画像 1 枚、高速ドラフト 1 本、1080p 最終版 1 本——の API 費用は 4.98 ドルです。高速ドラフト 3 本と標準最終版 1 本のワークフローでは、完成した縦型 1 本あたり約 8 ドルかかり、これは撮影 1 日とはまったく異なる桁のコストです。
よくある質問
アスペクト比はどうやって制御しますか? できません——出力は入力画像のアスペクト比を継承します。TikTok/Reels 用には、送信前にソース静止画を 9:16 で生成またはクロップしてください。私たちの 9:16 静止画は正確に 1080×1920 の出力を生成しました。
音声は本当に生成されたものですか? はい。上記の 2 本のクリップにはどちらもモデルが生成した 48 kHz AAC 音声トラック——フォーリー(着地の鈍い音)、環境音、音楽的な質感——が付属し、すべてプロンプトで誘導されています。プロンプト内で、音が発生すべき瞬間に音を記述してください。
生成にはどのくらい時間がかかりますか? 私たちの実測実行では:6 秒/720p の高速ティアクリップが 58 秒、6 秒/1080p の標準ティアクリップが 115 秒でした。クリップごとに数分を見込み、バッチ処理には先にすべて送信してから収集するパターンを使用してください。
生成した静止画の代わりに実際の商品写真を使えますか? もちろんです——それが主なユースケースです。画像は URL で公開取得可能である必要があるだけです。被写体を明確にし、動きの余白を残し、望む動きをプロンプトで記述してください。
いつ 4k に課金すべきですか? 縦型が同時にマスターアセットとして機能する場合です——4k ソースをクロップしてフィード広告、ウェブヒーロー、有料ユニットに使用します。フィード配信のみの場合は、1080p がプラットフォームの最終トランスコード解像度です。
最初のクリップを公開する
パイプライン全体は 2 回の POST と 1 回のポーリングです:静止画を入力し、音声付きの縦型広告を出力するまで約 2 分。API キーを取得し、上記のコードスニペットを最高の商品写真に向け、720p の高速ティアドラフトを実行してください——6 秒で 1.50 ドル、これは委託できる最も安価なオーディションです。完全なパラメータとライブ例はveo-3.1/image-to-video モデルページにあり、i2v エンジンを比較しているなら、私たちのHailuo 2.3 イメージ・トゥ・ビデオ プロンプトレシピが並べて比較するのに最適です。