HiAPI
ブログ

使用ガイド

API で Kling AI ショート動画を活用:kling-3.0-omni テキストto動画のエンドツーエンドワークフロー

ネイティブ同期オーディオ付きの縦型 9:16 クリップを送信・ポーリング・ダウンロード——記事に埋め込まれた各動画はすべて一発撮りの実出力で、正確なプロンプトとコストを併記しています。

Jul 8, 2026
API で Kling AI ショート動画を活用:kling-3.0-omni テキストto動画のエンドツーエンドワークフロー

ショート動画は数量のゲームです。フィードは毎日投稿するアカウントを優遇しますが、誰も毎日手作業で撮影・編集・1本ごとのサウンドデザインはできません。kling-3.0-omni/text-to-video は、1 回の API 呼び出しでショート動画のチェックリスト全体——縦型 9:16 出力、シネマティックな動き、マルチショットシーケンス、ネイティブ同期オーディオ——をカバーできる数少ないモデルです。だからこそパイプライン全体を「プロンプトを書く、タスクをポーリングする、そのまま公開できる .mp4 をダウンロードする」に簡略化できます。

このガイドでは hiapi API 上のワークフローをエンドツーエンドで順を追います:非同期タスクの送信、フィードのスクロールで視聴者を引き止めるプロンプトの設計、ネイティブオーディオの有効化、マルチショット叙事への拡張、バリアントのバッチ生成。以下に埋め込まれた各クリップは、本番 API からの実際の未編集の初回出力です——この記事のために生成され、正確なプロンプトと設定が隣に示されています。

使用するツール

kling-3.0-omni/text-to-video(Kuaishou の Kling 3.0 Omni、テキストto動画エンドポイント)は hiapi の非同期タスクインターフェース上で動作します。課金は出力秒数に基づき、解像度とネイティブオーディオの有無によって決まります。以下の料金は執筆時点の hiapi 料金ページ のものです:

ティア 1 秒あたりの料金 5 秒クリップ 10 秒クリップ
720p $0.10 $0.50 $1.00
720p + オーディオ $0.143 $0.72 $1.43
1080p $0.129 $0.65 $1.29
1080p + オーディオ $0.193 $0.97 $1.93
4K $0.479 $2.40 $4.79

フィード向けの縦型動画では、720p が正直な選択です。TikTok と Reels はどのみちすべてを再圧縮しますし、プロンプトを反復するのに最も安い方法です。1080p/4K は、別のフォーマットに編集するクリップに取っておきましょう。

この記事で実際に検証した入力スキーマ:prompt(文字列)、duration(整数秒——5 秒と 10 秒を実行)、resolution(720p / 1080p / 4K)、aspect_ratio(縦型は 9:16)、そして sound(真偽値、デフォルトはオフ)。これを中心に構築する前に知っておくべき挙動が 1 つあります:sound を省略すると、返される .mp4 にはオーディオトラックがまったくありません——無音トラックではなく、トラック自体がないのです。下流の編集パイプラインがすべてのファイルにオーディオストリームがあることを前提としているなら、常に sound: true を設定するか、トラックなしのファイルを明示的に処理してください。

送信 → ポーリング → ダウンロード:タスクのライフサイクル

すべては POST /v1/tasks を通ります。タスクを送信し、すぐにタスク ID を受け取り、完了までポーリングしてから出力をダウンロードします。5 秒 720p のクリップは通常数分でレンダリングが完了します。

curl で送信:

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-3.0-omni/text-to-video",
    "input": {
      "prompt": "Vertical short-form video. A barista in a sunlit specialty coffee bar pours a perfect rosetta latte art in one smooth motion, steam rising, morning light through the window, shallow depth of field, crisp photoreal detail, subtle slow push-in.",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "9:16"
    }
  }'

レスポンスは即座に返ります:

{"code": 200, "data": {"taskId": "tk-hiapi-01KWZYC1VKGV2CCSBK6AY9862H"}, "message": "success"}

次に GET /v1/tasks/{taskId} を status が success(または fail)になるまでポーリングし、output[0].url をダウンロードします。以下は完全な Python ヘルパースクリプトです——これはこのガイドの各クリップを生成したときに使った実際のパターンです:

import json, subprocess, time, os

API = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]

def submit(input_fields: dict) -> str:
    payload = {"model": "kling-3.0-omni/text-to-video", "input": input_fields}
    out = subprocess.run(
        ["curl", "-s", "-X", "POST", API,
         "-H", f"Authorization: Bearer {TOKEN}",
         "-H", "Content-Type: application/json",
         "-d", json.dumps(payload)],
        capture_output=True, text=True, timeout=70).stdout
    return json.loads(out)["data"]["taskId"]

def wait(task_id: str, timeout_s: int = 900) -> dict:
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        out = subprocess.run(
            ["curl", "-s", f"{API}/{task_id}",
             "-H", f"Authorization: Bearer {TOKEN}"],
            capture_output=True, text=True, timeout=40).stdout
        task = json.loads(out)["data"]
        if task["status"] == "success":
            return task
        if task["status"] == "fail":
            raise RuntimeError(f"task failed: {task.get('error')}")
        time.sleep(8)
    raise TimeoutError(task_id)

task_id = submit({
    "prompt": "...",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
})
task = wait(task_id)
video_url = task["output"][0]["url"]
subprocess.run(["curl", "-s", "-o", "clip.mp4", video_url], timeout=120)

本番環境で重要な運用上の注意:受け取る output[0].url は期限付き署名リンク(有効期限あり)です。タスク成功後すぐにバイトをダウンロードし、自分のバケットや CDN に保存してください——生のタスク URL をデータベースや CMS に保存してはいけません。

3 秒のフックのためにプロンプトを設計する

ショート動画の成否は、画面の最初の 1 秒で決まります。縦型フックで一貫して効果のあるプロンプトのパターンは:1 つの主体、1 つの連続する満足感のある動作、明示的に描写された光、そしてカメラ言語で表現されたカメラワーク。以下が上の curl 例の正確なプロンプトと、それが生成したクリップです:

Vertical short-form video. A barista in a sunlit specialty coffee bar pours a
perfect rosetta latte art in one smooth motion, steam rising, morning light
through the window, shallow depth of field, crisp photoreal detail, subtle
slow push-in.

実際の出力——kling-3.0-omni/text-to-video、5 秒 @ 720p、9:16、オーディオなし。初回出力、未編集。

各要素の役割:

  • 「Vertical short-form video」(縦型ショート動画)を冒頭に置くことで、単なるピクセル比率ではなく構図の判断が固定されます——モデルはスマホ画面向けに構図します。
  • 1 つの連続した動作(「pours ... in one smooth motion」、つまり「1 つの滑らかな動きで注ぐ」)は、ランダムなカットを挿入するのではなく、モデルに 1 本の弧を描かせます。
  • 「Subtle slow push-in」(微妙なゆっくりしたプッシュイン)は本物のカメラ指示です。曖昧な感情語(「dynamic」「engaging」)はモデルに即興させますが、カメラ用語は軌道を保ちます。
  • 光は 1 文を占める(「morning light through the window」、つまり「窓から差し込む朝の光」)——光は「AI クリップ」と「実際のロケ撮影」の違いです。

ネイティブオーディオ:sound: true を設定し、サウンドスケープを描写する

Kling 3.0 Omni の看板機能はネイティブ同期オーディオです——モデルが映像に合ったサウンドトラックをレンダリングし、フード、ASMR、ストリート系コンテンツではリテンションの大部分を占めます。2 つのことを同時に行う必要があります:入力で "sound": true を設定し(+オーディオ料金で課金、720p で $0.143/秒)、映像と同じようにプロンプトでオーディオを描写すること:

Vertical short-form video. Close-up of a street food vendor's wok at night:
diced garlic and chili hit sizzling oil with a burst of steam, flames lick up
the wok's edge as the vendor tosses noodles in rhythmic flips, neon signs
glowing bokeh in the background. Handheld feel, appetizing, high energy.
Native audio: loud sizzle, wok clangs, distant street chatter.

実際の出力——kling-3.0-omni/text-to-video、5 秒 @ 720p、9:16、sound: true。音量を上げてください:ジュージューという音と鍋のぶつかる音は、モデルが生成し、炒め動作と同期させたものです。

「Native audio:」サフィックスパターン——カンマ区切りで 2〜3 の主要な音を短く列挙する——は、「with realistic sound effects」(リアルな効果音付き)のような散文的描写より確実に勝ります。音を名指しすれば、モデルはそれを対応する視覚的イベントに同期させます。

実際の出力で ffprobe を使って課金の境界を検証しました:sound を設定せずに送信したクリップには H.264 ビデオストリームのみが含まれ、sound: true のクリップには追加の AAC オーディオトラックが付きます。オーディオを要求したクリップにのみオーディオ料金を支払います。

1 つのプロンプトでマルチショット叙事を実現する

Omni のもう 1 つの差別化機能はマルチショットシーケンスです:3 つの独立したクリップをつなぎ合わせるのではなく、1 回の生成で明示的なカットを書き込めます。プロンプトでショットに番号を振り、シーケンス全体に共通のカラーグレードを与えて、事故ではなく編集に見えるようにします:

Vertical short-form video, three-shot sequence. Shot 1: a young woman in a
yellow rain jacket steps out of a subway exit into light rain, opens a clear
umbrella. Shot 2: close-up of her boots splashing through a neon-reflecting
puddle in slow motion. Shot 3: she stops at a food cart, smiles as warm steam
drifts past, city lights bokeh behind. Cohesive teal-and-amber grade,
cinematic handheld energy. Native audio: soft rain, city ambience, distant
traffic hum.

実際の出力——kling-3.0-omni/text-to-video、10 秒 @ 720p、9:16、sound: true。3 つのスクリプト化されたショットを 1 回の生成で:$1.43。

おおよそ 1 ショット 3 秒で見積もりましょう——10 秒の尺は 3 拍の物語に適しています。繰り返し現れるアンカー(黄色いレインジャケット)がカット間で同一性を保つ鍵です。すべてのマルチショットプロンプトに目立つ視覚的定数を 1 つ与えてください。さもないと主体がショット間でずれてしまいます。

バッチ制作:1 つのテンプレート、複数のバリアント

規模を大きくすると経済性が面白くなります。1 週間分の毎日投稿は、可変スロットを持つプロンプトテンプレートを並行して送信するだけです——タスクは並列でレンダリングされるため、バッチはおよそ 1 クリップ分の時間で完了します。ラテのフックテンプレートを使って主体を差し替えました:

Vertical short-form video. A ceramic bowl of matcha being whisked into a vivid
green froth with a bamboo whisk, in a sunlit specialty tea bar, steam rising,
morning light through the window, shallow depth of field, crisp photoreal
detail, subtle slow push-in.

実際の出力——ラテのクリップと同じテンプレートで、変数を 1 つだけ変更。5 秒 @ 720p、9:16:$0.50。

プッシュイン、窓の光、浅い被写界深度はそのまま保持されます——これこそが望む視覚的に一貫したアカウントです。コードでは、バッチは待機の前にまとめて送信することです:

TEMPLATE = ("Vertical short-form video. {subject}, in a sunlit specialty {venue}, "
            "steam rising, morning light through the window, shallow depth of field, "
            "crisp photoreal detail, subtle slow push-in.")

VARIANTS = [
    {"subject": "A barista pouring a perfect rosetta latte art in one smooth motion", "venue": "coffee bar"},
    {"subject": "A ceramic bowl of matcha being whisked into a vivid green froth with a bamboo whisk", "venue": "tea bar"},
    {"subject": "A croissant being pulled apart to reveal steaming, glossy layers", "venue": "bakery"},
]

task_ids = [submit({
    "prompt": TEMPLATE.format(**v),
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
}) for v in VARIANTS]          # all rendering in parallel

clips = [wait(tid) for tid in task_ids]

720p でのコスト計画:1 か月に 30 本の 5 秒無音フッククリップで $15。同じ 1 か月をネイティブオーディオ付きにすると $21.45。かなり攻めたスケジュール——毎日 10 秒のオーディオクリップ——でも $42.90/月で、動画編集者の 1 時間分より安いです。結果が返るたびにポーリングし、あるタスクの fail 状態はバッチ全体ではなくそのバリアントだけを再試行するものとして扱ってください。

この記事のすべての内容は動画生成に合計 $3.15 かかりました:4 つのクリップ、25 秒の素材、すべて初回出力です。

次のステップ

これで完全なループが手に入りました:9:16 のタスクを送信し、ポーリングし、.mp4 を取得し、テンプレートで拡張する。次に進むためのヒント:

  • hiapi ドキュメント で API キーと完全なエンドポイントリファレンスを入手しましょう——上のタスクライフサイクルはプラットフォーム上のすべての動画モデルで同じです。
  • 大量のバッチを予算化する前に、料金ページ ですべてのティアの現在の秒単価を確認してください。
  • このユースケースでモデルを比較検討しているなら、Short-Form Video with seedance-2.0-mini で同じショート動画ワークフローを低予算モデル上で実行しました——Kling と比較する価格/品質のベースラインとして使えます。

まず自分の主体で $0.50 の試験クリップから始め、フィードで実証済みのプロンプト要素を保ち、それから kling-3.0-omni/text-to-video モデルページ でテンプレートをバッチタスクに変えてください。

永続的なAIアーティファクトで開発を始める

APIキーを取得して、タスクベースの1つのAPIで画像・動画・音声モデルを呼び出せます。

APIドキュメントを読む