使用ガイド
HiAPI API で Kling 4.0 テキスト・トゥ・ビデオを使う:ショート動画ワークフロー
プロンプトから公開クリップまで:リクエストパターン、同期オーディオ、長時間出力
ショート動画で kling-4.0/text-to-video が選ばれる理由
ショート動画制作には固有の形がある。縦画面の構図、最初の1秒のフック、短い尺の中で注意を保つリズム、そして映像と同時に着地し、遅れてドリフトしないオーディオが必要だ。ほとんどのテキスト・トゥ・ビデオモデルは映画的な横画面シーン向けに構築・調整されているため、モデルのデフォルトの構図感や時間感と常に格闘することになる。
HiAPI API 上の kling-4.0/text-to-video は、映画優先のワークフローではなく、クリップ優先のワークフローを指向している。この違いは単一の機能よりも重要だ。実務上、それはパイプラインにとって次の3つを意味する:
- モンタージュではなく1本のクリップ。 複数の短い無音生成をつなぎ合わせ、トランジションが持つことを祈るのではなく、1回の呼び出しで整合性のある長時間出力を生成できる。
- オーディオはクリップとともに生成される。 同期オーディオは出力の一部であり、手動で整列させる後工程のレイヤーではない。
- 動きとビートに最適化されたプロンプトインターフェース。 ショート動画のプロンプトは動作、カメラの挙動、テンポを記述する——形容詞を積み上げた静的なシーン記述ではない。
パイプラインはシンプルに保たれる:プロンプトを入力し、映像と音声トラックを伴うクリップが返り、クリップは後処理と公開のステップへ進む。プロンプトと公開判断の間のすべてこそがエンジニアリング作業の場であり、本ガイドの残りで扱う内容だ。
すでに他の生成ステップ——画像、音声、その他——を運用しているなら、ここでの価値は、テキスト・トゥ・ビデオ段階がスタックの残りと同じ API 方言を使うことにある。そのため、プロンプト処理、リトライ、アセット保存の足場を共有できる。
HiAPI テキスト・トゥ・ビデオリクエストの構造
1回の kling-4.0/text-to-video 呼び出しには3つの構造的部分がある:モデル識別子、プロンプト、出力設定。同じペイロードで送られるとしても、コード上では分けて扱うべきだ。3者はそれぞれ異なる失敗の仕方をし、それぞれが反復の中で調整する対象だからだ。
モデル識別子
モデル文字列 kling-4.0/text-to-video がリクエストのルーティングを担う。コードベース内の定数として扱い、呼び出し箇所に散らばる文字列にしてはならない——後でパイプライン全体を探し回らずに差し替えたり A/B テストしたりしたくなるからだ。
プロンプト
プロンプトは主要な制御面だ。主体、動作、カメラの挙動、テンポ、オーディオの意図を、モデルが実行できる形で運ぶ必要がある。曖昧なプロンプトは曖昧な動きを生み、詰め込みすぎたプロンプトは一貫性のない動きを生む。次の節でそのパターンを扱う。
出力設定
出力設定はクリップの尺とオーディオの挙動を決める。これらのつまみが、そのままタイムラインに置けるものを返すか、再リクエストが必要なものを返すかを左右する。尺とオーディオの意図はプロンプトを書く前に決めるべきだ。プロンプトはその尺とそのオーディオ計画に合わせて書く必要があるからだ。
返されるもの
リクエストからは生成されたクリップが返る。他の非同期生成呼び出しと同様にレスポンス処理を計画せよ:結果を永続化し、それを生んだ正確なプロンプトと設定を記録し、リクエストパラメータとアセットを一緒に置く。この記録こそが、当て推量ではなく反復を可能にする。
有用なメンタルモデル:ペイロードは、あなたが要求した内容と後で測定できる内容との間の契約だ。保存されたパラメータから生成を再構築できなければ、反復ループは壊れている。
ショート動画のテンポで生き残るプロンプトからクリップへのパターン
ショート動画のプロンプトは予測可能な形で失敗する:ショットを記述すべきところでシーンを記述してしまう。シーン記述はモデルに自分で発明させるものを増やしすぎる。ショット記述は動きの計画を与える。
パターン1:動作を先に、文脈を後に
動きの内容から始める。「手がコーヒーカップを持ち上げ、湯気が上へ立ちのぼり、カメラがゆっくり寄る」は「温かい光の居心地よいキッチン、カウンターにコーヒーカップ」に勝る。最初の文が動きを設定する。2番目の文で環境を設定できる。順序を逆にすると、モデルは動きの予算を雰囲気に費やす。
パターン2:1クリップにつき1つのカメラ指示
カメラの挙動を1つ選び——寄る、引く、周回、手持ち追従、固定——一度だけ述べる。カメラワークを積み重ねると自己矛盾のように読まれ、ドリフトを生む。縦画面のショート動画では、ゆっくりした寄りや固定フレーム+主体の動きが、複雑な動きよりも良く読まれることが多い。クロップがすでにタイトだからだ。
パターン3:要求した尺に合わせて書く
長いクリップ向けに書かれたプロンプトは、それを埋めるだけのビートを持つべきだ。出力設定で長い尺を要求したのに、プロンプトが一瞬だけを記述していると、モデルは静止画に留まるか、要求していない動きを発明する。尺をビートに分解せよ:冒頭の動作、展開、終わりの状態。2〜4のビートが、ほとんどのショート動画の尺によく対応する。
パターン4:オーディオは暗示せず、明示する
同期オーディオが欲しいなら、オーディオが何をしているかを述べる——環境のルームトーン、見せ場での一撃、歩調に合う足音。感情的な形容詞(「映画的」「エネルギッシュ」)で記述されたオーディオは、モデルに同期させる対象を与えない。時間的関係を伴うイベントとして記述されたオーディオは、目標を与える。
パターン5:縦画面の構図を明示的な制約にする
縦画面の構図を宣言し、主体がフレームを埋めることを期待せよ。横画面思考のプロンプト——広い風景、群衆の配置、流れるような確立ショット——はフォーマットと衝突する。縦長フレームの中央を占める単一の主体向けに書け。
プロンプトライブラリは内容ではなくフックの種類で索引化して維持せよ。フックの種類(製品の見せ場、プロセスショット、反応、変化)はプロジェクト間で移植できる。具体的な内容はほとんど移植できない。
同期オーディオと長時間出力
オーディオと尺は結合している。それらを別々の設定として扱うのは、最もよくある計画ミスだ。
同期オーディオが計画をどう変えるか
オーディオがクリップとともに生成されるとき、プロンプトは音そのものではなく、音のタイムラインを記述しなければならない。モデルは、オーディオが視覚イベントと同じ瞬間に着地するよう、何かがいつ起きるかを知る必要がある。具体的には:
- イベントを明示的にアンカーする。 「最後にドアが閉まる」はモデルに同期点を与える。「どこかでドアが閉まる」は与えない。
- 音のパレットは狭く保つ。 明瞭な時間関係を持つ2〜3のクリアな音は同期できる。十数の重なり合う要素を含む密なサウンドスケープは同期できず、決して収束しないアラインメントに反復を浪費することになる。
- オーディオのエネルギーを動きのエネルギーに合わせる。 固定ショットに爆発的なインパクトは誤りのように聞こえる。映像が静かなら、オーディオも静かであるべきだ。
なぜ長時間出力が結合より優れるか
短い無音クリップを結合するのは、モデルが数秒を超えて整合性を保てないことへの回避策だ。それには3つの代償がある:各カット点での継ぎ目のアーティファクト、個別に生成・整列しなければならないオーディオ、そしてクリップごとのスタイルのドリフトが目に見える不連続として現れること。単一の長時間生成はこの3つを避け、1つのリクエストが1つのアセットに対応する——より単純なリトライ、より単純な保存、より単純な来歴追跡。
尺を中心に計画する
まず尺を決め、それを埋めるプロンプトを書き、次にオーディオイベントを決める。尺を最後に決めると、過剰生成してトリミングするか(実行時間の無駄)、不足生成して結局結合することになる。ショート動画では、フック+展開1ビートをカバーする尺を目指せ——確立するのに十分長く、保つのに十分短い。
より長い編集のために複数のクリップが必要なときは、共有のプロンプトテンプレートと共有のスタイルアンカーでそれぞれを生成し、後工程でそれらの間を切り替える。これは整合性のための結合とは異なる:モデルの限界を継ぎ当てするのではなく、意識的に編集しているのだ。
実行可能なエンドツーエンドのリクエスト
以下は適応可能な完全なフローの形だ。構造は、クライアントライブラリが使う正確なフィールド名よりも重要——自分の SDK にマッピングせよ。
ステップ1:リクエストを構築する
import os
from hiapi import Client # your HiAPI client
client = Client(api_key=os.environ["HIAPI_API_KEY"])
payload = {
"model": "kling-4.0/text-to-video",
"prompt": (
"Vertical shot. A hand lifts a glass bottle from a table, "
"condensation running down the side. Camera slowly pushes in. "
"Ambient room tone; a soft glass clink as the bottle lifts; "
"quiet settle at the end."
),
# duration and audio settings go here, per output requirements
}
result = client.generate(**payload)
注目すべき点が3つある。モデル文字列はリテラル定数だ。プロンプトは構図、動作、カメラ、オーディオイベントを順に述べている。尺とオーディオの設定は明示的なフィールドであり、プロンプトのテキストで暗示されるものではない。
ステップ2:パラメータを結果とともに永続化する
record = {
"request": payload,
"result_id": result.id,
"asset": result.output_url,
}
プロンプトだけでなく完全なリクエストを保存せよ。クリップが使えたときは再現する必要があり、失敗したときはどの設定が失敗を招いたかを知る必要がある。
ステップ3:レスポンスを処理する
返されたアセットを信頼できる唯一の情報源として扱え。一時 URL に頼らず、自分のアセットバケットにダウンロードして保存し、プロジェクトデータベースで同じリクエスト記録に対してアセットパスを索引化せよ。これによりプロンプトから公開済みクリップまでの再現可能な連鎖が得られる。
ステップ4:後工程へ進む
目標の尺にトリミングし、フォーマットが必要なら字幕を追加し、公開する。オーディオはすでに同期しているので、後工程はトリミングとタイトル付け——整列ではない。
このフローは意図的に退屈に作られている。退屈なフローこそがコンテンツカレンダーの試練に耐えるフローだ。
失敗モードと反復の規律
無駄にされる生成のほとんどは4つの失敗モードから来る。それらに名前を付けることで、実行時間を費やす前に捕捉しやすくなる。
プロンプト/オーディオの不一致
静かなシーンを記述したのに、インパクトのある音声トラックが返る。あるいは同期イベントを要求したのに、オーディオがドリフトする。解決策はプロンプトを読み直し、各オーディオイベントが同じ瞬間に明示的な視覚アンカーを持つか確認することだ。音に対応する視覚イベントがなければ、その音を削除するかイベントを追加せよ。再抽選して祈ってはいけない。
尺の超過
短い一瞬向けに書かれたプロンプトで長いクリップを生成すると、静止したままになるか、動きを発明する。要求した尺に対してビート数を確認せよ。クリップが水増しされた感じなら、それはモデルの挙動異常ではなく、実行時間に対してプロンプトの仕様が不足しているのだ。
横画面思考の構図
横に広い配置、群衆シーン、確立ショットは縦画面の構図と衝突する。出力で主体がいつも余白に埋もれるなら、単一の中央主体とタイトなクロップを中心にプロンプトを書き直せ。
規律のない再抽選
これが高くつくものだ。同じプロンプトを再抽選して祈るのは反復ではない——サンプリングノイズだ。意識的なループはこうだ:
- 各試行で1つの変数だけを変える——プロンプトの動作、プロンプトのオーディオ、カメラ指示、またはある設定。
- リクエスト履歴にその変更を記録する。
- 設定した基準で結果を比較する:オーディオが着地したか、主体がフレーム内に留まったか、クリップが尺を埋めたか。
- 勝ったバリアントをプロンプトライブラリに昇格させる。
各セッションで大規模な盲目的スイープではなく小さなバッチのバリアントでこのループを回し、結果を並べてレビューせよ。規律ある2〜3回の反復は、十数回の再抽選にたいてい勝り、しかも各反復は幸運なクリップではなく再利用可能なパターンを残す。
本番スタックにおける位置づけ
kling-4.0/text-to-video はクリップ優先パイプラインの生成段階であり、パイプライン全体ではない。正しい統合はきれいな境界だ:オーケストレーション層がペイロードを構築し、リトライと保存を処理し、完成したアセットを後工程に渡す。
実用的な統合の注意点が3つある:
- 生成タイプ間で足場を共有する。 プロンプトのテンプレート化、リクエストログ、アセット保存、リトライロジックは、動画・画像・音声のどれを生成していても同じだ。それらを1か所に置けば、動画段階は新しいサブシステムではなく設定変更になる。
- モデル文字列を設定可能に保つ。 このモデルを標準使用していても設定経由で配線せよ。パイプラインコードに触れずに代替案やフォールバックをテストできる。
- 試行回数ではなく意図で予算を測る。 公開済みクリップ1本あたり何回の生成を消費したかを追跡せよ。生のリクエスト量ではなく、この数字がプロンプトの規律が改善しているかを教えてくれる。
いつ採用するか:動き、同期音、単一の整合した尺を必要とする縦画面のショート動画クリップ。いつ他を探すか:長い物語、正確な文字レンダリング、またはすでに素材ライブラリを持つショット。このモデルは前者には良いデフォルトであり、他には不向きだ——どちらがどちらかを知ることが、どんなプロンプトのコツよりも実行時間を節約する。
プロンプトライブラリからフックの種類を1つ選び、リクエストから公開までのフローを一度エンドツーエンドで実行せよ。その1つの動くループがスタックの残りを定義する。