使用ガイド
PixVerse V6 ショート動画:縦型クリップのテキストtoビデオワークフロー
ショート動画は量産ゲームだ。縦型クリップを絶えず生み出し続ける必要があり、ボトルネックになるのは華やかな一発のショットであることはまれで、むしろ低コストで素早くまとめて生産する方法にある。本記事は hiapi API 上で pixverse-v6/text-to-video を使ってこれを実現するエンドツーエンドのワークフローを解説する。1つのコンテンツアイデアから、Reels・Shorts・TikTok で使える完成品の 9:16 クリップまでを扱う。以下の各クリップは今回のデモ用に実際に生成された出力であり、ページ内で直接再生できる。
プロンプトごとのコツ(スタイルプリセット、カメラ言語、音声)については PixVerse V6 プロンプトレシピ を、生のリクエスト/レスポンスの仕組みについては PixVerse V6 テキストtoビデオ操作ガイド を参照してほしい。本記事はそれらを囲む制作パイプラインについての話だ。
ワークフロー概要
- ショート動画は1本のクリップではなく、一連のショットとして書く。ショート動画には最初の1秒で人を引きつけるフックと、最後の報酬が必要だ。pixverse-v6 の1回の生成上限は 15 秒なので、1本のショート動画はほぼ常に複数の調整されたクリップを繋ぎ合わせて作られる。
- ショットの一貫性を保つ。テキストtoビデオには入力フレームがないため、ショット間の連続性は各プロンプトで繰り返すアンカーフレーズに担わせるしかない。
- 非同期タスクをまとめて投入する。すべてのショットを一度に
POST /v1/tasks呼び出しとして発行し、まとめてポーリングする——ショットごとに待つのではなく、バッチ全体で一度だけ待てばよい。 - 低コストで下書き、高品質で完成品。低コストの
540p档で反復し、残すクリップだけを720p/1080pで再レンダリングする。 - 縦型で納品する。最初から
9:16を指定し、音声はプラットフォームに応じて決め、フックの位置で編集する。
記事の残りでは、1本のショート動画を例にこれらのステップを順にたどる。
ステップ 1——ショート動画を調整されたショットに絵コンテ化する
例:約 10 秒のアイス抹茶カフェのショート動画——フードやライフスタイル系フィードでよく伸びる、癒やし系プロダクトのビートだ。ショットは2つ:
- フック(0〜5 秒):スクロールを止めさせる極端なクローズアップ——抹茶が撹拌され、泡と湯気が立つ。
- 報酬(5〜10 秒):できあがった飲み物がカメラの前に差し出される。
テキストtoビデオで最も重要な規律は連続性だ。見た目を固定する参照フレームがないため、モデルは2つ目のショットを別のキッチン、別の光、別のスタイルで平気でレンダリングしてしまう——両方のプロンプトで同じアンカーを繰り返さない限り。ここでの共有アンカーは、鮮やかな翠色の抹茶、清潔でミニマルな日本式カフェ、柔らかな朝の光、浅い被写界深度。以下の2つのプロンプトはどちらもこの4項目すべてを含んでいる。
そして覚えておいてほしい:pixverse-v6 にはカメラやモーションのパラメータがない。カメラの動きはすべてプロンプトのテキストに書く——“the camera slowly pushes in”“holds steady then tilts down”。これがこのモデルの特徴的な点だ。
ステップ 2——調整されたプロンプトを書く
ショット 1——フック(コピー&ペースト可能):
Vertical 9:16 macro shot of bright green matcha being whisked in a cream ceramic bowl, fine jade-green foam forming, delicate steam curling up in soft morning window light. The camera slowly pushes in toward the frothy surface while a bamboo whisk moves in quick zig-zag strokes. Clean minimal Japanese cafe aesthetic, warm sunlight, shallow depth of field, crisp and appetizing.
ショット 2——報酬(コピー&ペースト可能):
Vertical 9:16 shot of a tall glass of iced matcha latte on a pale wooden cafe counter, layered jade green over milky white, fresh beads of condensation on the glass. A barista's hand slides the glass forward toward the camera and sets a paper straw into it. Bright airy morning light, soft bokeh of green plants behind, the camera holds steady then tilts down slightly. Clean minimal cafe look, fresh and inviting.
一貫して登場する要素に注目してほしい:翠色の抹茶、清潔でミニマルなカフェ、朝の光。この共有語彙こそが、2つのクリップを無関係な2本の動画ではなく1本のショート動画として読ませる。カメラの方向は意図的に変えている——プッシュインで始め、ステディに保ってからダウンチルトで商品を見せて締める——ショート動画は動きの変化がないと見続けてもらえないからだ。
ステップ 3——非同期タスクをバッチ処理する
上の2つのショットは1つずつ順番に生成されたのではない。非同期タスクとしてまとめて投入され、集合としてまとめてポーリングされた——まさにスケールして制作するときに /v1/tasks が設計された通りの使い方だ。クリップごとに待つのではなく、バッチ全体で約 60〜90 秒の生成待ちを一度だけ支払えばよい。
import requests, time
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
shots = {
"hook": "Vertical 9:16 macro shot of bright green matcha being whisked ...",
"payoff": "Vertical 9:16 shot of a tall glass of iced matcha latte ...",
}
common = {"aspect_ratio": "9:16", "duration": 5, "resolution": "540p"}
# 1) fire every shot as its own task, keep the returned taskIds
tasks = {}
for name, prompt in shots.items():
r = requests.post(API, headers=HEADERS, json={
"model": "pixverse-v6/text-to-video",
"input": {"prompt": prompt, **common},
})
tasks[name] = r.json()["data"]["taskId"]
# 2) poll the saved taskIds until each reports success
outputs = {}
while len(outputs) < len(tasks):
for name, tid in tasks.items():
if name in outputs:
continue
d = requests.get(f"{API}/{tid}", headers=HEADERS).json()["data"]
if d["status"] == "success":
outputs[name] = d["output"][0]["url"] # a temporary .mp4 URL
elif d["status"] == "fail":
raise RuntimeError(f"{name} failed: {d.get('error')}")
time.sleep(6)
実際にこのショート動画を制作する際、実践で本当に重要な点が2つある:
- 出力 URL は一時的だ。完了した各タスクは期限切れになる
output[0].urlを返す——すぐに.mp4をダウンロードして自分のストレージに移すこと。ホットリンクしてはいけない。 - ポーリングは一時的に失敗しても、タスクは失敗しない。あるタスクをポーリングするときの単発のネットワークの揺らぎは、その1回のリクエストの一時的なエラーとして現れる——タスクはサーバー上で動き続けている。対処法は、失敗したポーリングを「もう一度試す」と扱うことだ。「タスクが死んだ」とは扱わない:保存した
taskIdを再ポーリングし、バッチ全体を中断しない。本当の失敗はタスク本体のstatus: "fail"だけだ。
ステップ 4——低コストで下書き、高品質で完成品
上の2つのクリップはどちらも意図的に 540p で生成されている。pixverse-v6 は秒単位で課金され、解像度の档位の差が大きい:540p 無音が最も低コストの档で、1080p が最も高い档だ(現在の各档の秒単価は料金ページを参照——数字は変わるので、バッチ処理の前に確認してほしい)。
ショート動画にとって、この分割は贈り物だ。この作業が高くつくのは反復の部分——プロンプトを何度も引き直し、カメラの動きを書き換え、被写体を変える。これを 540p で実験する秒単価は 1080p のごく一部で、5 秒の 540p 縦型クリップは約 1〜2 MB の小さな 576×1024 .mp4 として返ってくるので、ダウンロードもレビューも速い。あるショットが確定したら、そのプロンプトだけを 720p または 1080p で最終編集用に再レンダリングする。フル解像度のコストは残すショットにだけ払えばよい。
経験則:
540pは下書きループ用、残すクリップは720p/1080pに上げて納品用に。1080pで反復してはいけない。
ステップ 5——同じパイプライン、異なるコンセプト
ワークフローはプロンプト → バッチ → 縦型出力なので、コンセプトに依存しない。同じ5ステップでまったく別のショート動画——ここではダイナミックなサイバーパンク・アクションのビート——を制作できる。変わるのはプロンプトと style だけだ:
そのクリップは aspect_ratio: "9:16"、style: "cyberpunk"、そして静的すぎる出力を押しのけるための negative_prompt を使っている——その完全なプロンプトとリクエストボディはプロンプトレシピにある。ここで重要なのはプロンプトではなく、バッチ下書きパイプラインさえあればテーマの差し替えは1行の変更で済むという点だ。これがこれを一回限りのレンダリングではなく制作ワークフローにしている。
ステップ 6——仕上げと納品
- 規模より先に形状。ネイティブに
9:16で生成する。16:9のレンダリングを切り抜いて縦型にするとピクセルの半分を失う。これから公開するアスペクト比を直接指定しよう。 - フックを先頭に置く。Reels/Shorts/TikTok は最初の1秒でリテンションが決まる——ゆっくりしたフェードインではなく、最も強い動きで始める(ここではプッシュイン)。
- 音声はプラットフォームに応じて決める。pixverse-v6 は
generate_audio: true(デフォルトfalse)で同期音声をレンダリングでき、これには独自の音声付き料金档がある。多くの視聴者が無音で見るフィードでは、無音の下書きに自分の音楽/字幕トラックを載せる方が安く済む。環境音そのものがコンテンツであるときに音声をオンにしよう。 - 後工程で繋ぎ、字幕を付ける。確定した
720p/1080pのショットを頭から末尾へ繋ぎ、字幕を加え、プラットフォームの最適な尺に編集する。モデルはきれいな5秒の積み木を提供する。それをショート動画に編成するのは編集ステップであり、生成ステップではない。
よくある質問
pixverse-v6 で 15 秒を超えるショート動画を作るには?
最長 15 秒の複数クリップとして生成し、後工程で繋ぎ合わせる。duration は 1 から 15 の整数だ——ショート動画は1回の長い生成ではなく、調整されたショット(ステップ 1〜2 のように)として計画しよう。
複数のショットを同じ動画に見せるには? 同じアンカーフレーズ——被写体、シーン、光、スタイル——を各プロンプトで繰り返す。テキストtoビデオには参照フレームがないため、共有アンカーがなければ各ショットは別々の見た目に流れてしまう。上の抹茶ショート動画では「翠色の抹茶、清潔でミニマルなカフェ、柔らかな朝の光」を両方のプロンプトで再利用している。
高解像度の最終成片が必要なら、なぜ 540p で生成するのか?
低コストで反復するためだ。課金は秒単位で、540p が最も低コストの档なので、プロンプトの引き直しはすべてそこで行い、残すクリップだけを 720p/1080p で再レンダリングする。現在の料率は料金ページを参照。
複数のクリップを並列生成できる?
できる——まさに非同期 /v1/tasks が設計された用途だ。各ショットを独立したタスクとして投入し、返された taskId を保存し、まとめてポーリングする(ステップ 3)。出力 URL は一時的なので、完了した .mp4 はすぐにダウンロードしよう。
ショート動画で音声をオンにする必要はある?
通常は不要だ。多くのフィードは自動でミュート再生されるので、無音クリップに自分の字幕/音楽トラックを載せる方が安く、かつ制御しやすいことが多い。レンダリングされた環境音そのものが主役であるときに generate_audio: true をオンにしよう。
自分で動かしてみる
PixVerse V6 テキストtoビデオモデルページから始めて最新のスキーマと API key を取得し、Create Task と Get Task Detail のドキュメントを開いたままバッチのリクエスト/ポーリング形式を確認し、セットをレンダリングする前に料金をチェックしよう。2つの抹茶プロンプトをコピーして 540p で下書きすれば、最初の縦型ショート動画を1バッチで完成させられる。