HiAPI
ブログ

使用ガイド

FLUX.3 動画ショート動画:API によるドラフト、レンダリング、継続生成

ネイティブ音声付きの縦向き 9:16 ショートフィルム:$0.45 のドラフトでアイデアをテストし、720p の完成版をレンダリングし、さらに 10 秒まで継続生成する。すべてを同一のモデル id 上で完結し、実際の出力を掲載。

Nov 4, 2026
FLUX.3 動画ショート動画:API によるドラフト、レンダリング、継続生成

FLUX.3 Video(hiapi 上では flux-3-video)は同一のモデル id で、ショート動画ワークフローに必要な 3 つの要素をカバーします。縦向き 9:16 出力、映像と同期して生成される音声トラック、そして既存クリップの最終フレームから続ける動画の継続生成です。本ガイドでは、小さなタスクでこれら 3 つの機能を使用します。深夜のラーメン店のための 10 秒の縦向きショートフィルムを制作します。まず安価なドラフトで概念を検証し、次に 720p で完成版をレンダリングし、その後継続生成によってショットを 5 秒以上に延長します。以下の各クリップはすべて実際の未編集の API 出力であり、各価格は hiapi のリアルタイム価格表に基づいています。

完全なパラメータリファレンスと初回リクエストの演習については、FLUX.3 Video API ガイド を参照してください。個別の画像から動画への変換とキーフレームエンドポイントを、より低い秒単価で利用したい場合は、FLUX 3 Max ショート動画ワークフロー でそのモデルを扱っています。本記事は flux-3-video が追加で提供するもの、すなわち音声、ドラフトプレビュー、継続生成について説明します。

3 回の呼び出しで完了するワークフロー

ステップ 役割 主要フィールド 価格(秒単位) 5 秒の費用
1. ドラフト プロンプトが期待通りに表現されるか確認する draft: true $0.09 $0.45
2. 完成版 公開するクリップをレンダリングする resolution: "720p" $0.25 $1.25
3. 継続生成 完成版クリップをさらに 5 秒延長する start_video + draft: true $0.18 $0.90

3 つすべてが同一のモデル id を使用し、非同期タスクエンドポイント上で同じリクエスト構造を使用します。今回の実行の総費用は $2.60 で、音声付きの 10 秒の縦向きショートフィルムが得られました。1080p では、通常のレンダリングの料金は $0.42/秒、継続生成は $0.76/秒、非ドラフトの 720p 継続生成は $0.59/秒に上昇します。現在の料金は flux-3-video モデルページ と 価格ページ を参照してください。

ステップ 1、2:ドラフトと完成版をバッチとして送信

プロンプトでは、1 つの文のブロックでショットを説明し、別の Audio: 行で音声を説明します。generate_audio: true を有効にすると、モデルは別個の音声ファイルではなく、AAC 音声トラックが埋め込まれた .mp4 を返します。

{
  "model": "flux-3-video",
  "input": {
    "prompt": "夜の縦向き手持ちショット:豚骨ラーメンの湯気が立ち上り、箸がつややかな麺をつかんでカメラに向かって持ち上げられる。奥には六席だけのラーメンカウンター、暖かな提灯、窓に雨が筋を描き、浅い被写界深度。オーディオ:スープが煮える音、静かな麺をすする音、雨がガラスを打つ音、低い談話。",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "draft": true,
    "generate_audio": true
  }
}

完成版のリクエストは、"draft": true を除いただけの同じリクエストボディです。2 つのリクエストは連続して送信されます。どちらも互いに待機しません。各呼び出しは即座に taskId を返すためです。

ドラフト 完成版 720p
作成 → 完了(サーバータイムスタンプ) 29 秒 64 秒
出力サイズ 704×1280 704×1280
長さ 5.04 秒 5.04 秒
音声ピークレベル −23 dB −5 dB
費用 $0.45 $1.25

以下がドラフトです。

そして同じプロンプトによる最終的な 720p 完成版です。

この 2 つのクリップは、ドラフトが何を伝えられ、何を伝えられないかを示しています。

  • ドラフトは別のバージョンであり、完成版の低解像度プレビューではありません。 ドラフトでは無地の白い器が使われ、麺はすでに持ち上げられています。完成版では模様のある器が選ばれ、半熟卵、ねぎ、カウンターの客、湯気が加わっています。リクエスト schema には seed フィールドがないため、ドラフトの構図を固定してフル品質で再レンダリングすることはできません。
  • ピクセルサイズはまったく同じです。 両方の出力は 704×1280 です。違いはディテールにあります。ドラフトは明らかに柔らかく、背景はぼやけていますが、完成版は麺や提灯の文字の質感を保っています。
  • ドラフトの音声トラックは音量がはるかに低くなります。 そのピークは約 −23 dB で、完成版は −5 dB です。ドラフトで音声ミックスを判断しないでください。

したがって、ドラフトを使って複数のプロンプトバリエーションにわたって概念を 1 件 $0.45 のコストで確認します(プロンプトは夜の縦向きで、麺をつかむ動作を伴うラーメンのクローズアップを生成できるか?)。その後、合格したプロンプトのみ完成版をレンダリングし、完成版の中から選びます。

ステップ 3:継続生成でショットを延長する

5 秒のフックは 1 本の投稿としてはしばしば短すぎます。無関係な別のクリップを生成する代わりに、完成版の公開 URL を start_video として渡し、次に何が起こるかを記述します。

{
  "model": "flux-3-video",
  "input": {
    "prompt": "同じショットを続ける:麺が画面外へ吸い込まれ、手持ちカメラは右上に漂い、湯気の立つ器を越えて、雨の筋がついた窓へ向かって移動する。光る提灯がガラスに映り、窓の外にはぼやけたネオンサイン。オーディオ:麺をすする音、続いて雨が窓を打つ音とカウンターの談話が静かに盛り上がる。",
    "start_video": "https://static.hiapi.ai/blog/flux-3-video-short-form-video/hook-final.mp4",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "draft": true,
    "generate_audio": true
  }
}

このタスクは作成から完了まで 119 秒かかり、費用は $0.90(5 秒 × $0.18 のドラフト継続生成)でした。返された結果は以下の通りです。

事前に計画しておくべき 2 つの動作があります。

  1. 出力には追加された秒数のみが含まれます。 返されたファイルは長さ 5.0 秒です。ソースクリップの最終フレーム(提灯の前で持ち上げられた麺)から始まり、リクエスト通り窓へパンします。元の 5 秒は含まれないため、2 つのファイルは自分で結合する必要があります。
  2. 最初のフレームが一致するため、結合はシームレスです。 単純な concat で連続した 10 秒のショットを生成できます。
ffmpeg -i hook-final.mp4 -i extend-draft.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" \
  -map "[v]" -map "[a]" -c:v libx264 -crf 20 -c:a aac -movflags +faststart cut-10s.mp4

ここでは費用を節約するため継続生成をドラフトモードでレンダリングしているため、後半は前半より柔らかくなります。これは単独のドラフトの場合と同じです。公開するクリップには、非ドラフトの 720p 継続生成が $0.59/秒(5 秒で $2.95)かかります。5 秒刻みで延長すれば、次のステップに支払う前にセグメントごとに確認できます。一方、20 秒の 720p 完成版を一括でレンダリングする場合は $5.00 を前払いする必要があります。

非同期バッチ処理スクリプト

以下のスクリプトは任意の数のタスクを並行して送信し、各 taskId を完了までポーリングし、出力を即座にダウンロードします。temp.hiapi.ai にある結果 URL には expireAt タイムスタンプが付いているため、直接リンクするのではなく、ファイルを自身のストレージにコピーしてください。エンドポイントのドキュメントは Create Task と Get Task Detail を参照してください。

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

BASE = {"duration": 5, "resolution": "720p", "aspect_ratio": "9:16",
        "generate_audio": True}

jobs = {
    "ramen_draft":  {**BASE, "draft": True,  "prompt": "夜の縦向き手持ちショット:……"},
    "coffee_draft": {**BASE, "draft": True,  "prompt": "縦向きクローズアップ:エスプレッソが滴り落ちる……"},
    "ramen_final":  {**BASE,                 "prompt": "夜の縦向き手持ちショット:……"},
}

# 1. すべて送信。各呼び出しは即座に taskId を返す
task_ids = {}
for name, inp in jobs.items():
    r = requests.post(API, headers=HEADERS,
                      json={"model": "flux-3-video", "input": inp}, timeout=60)
    r.raise_for_status()
    task_ids[name] = r.json()["data"]["taskId"]

# 2. 各タスクが最終状態に達するまでポーリング
pending = dict(task_ids)
while pending:
    time.sleep(10)
    for name, tid in list(pending.items()):
        data = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
        if data["status"] == "success":
            url = data["output"][0]["url"]
            with open(f"{name}.mp4", "wb") as f:
                f.write(requests.get(url, timeout=120).content)
            print(name, "保存済み")
            pending.pop(name)
        elif data["status"] in ("fail", "failed"):
            print(name, "失敗:", data.get("error"))
            pending.pop(name)

継続生成のステップでは、input に "start_video": "<承認済み完成版の公開 URL>" を追加します。その URL は公開アクセス可能である必要があるため、承認済みの完成版を先に自身のストレージへアップロードしてください。

バッチ送信前に知っておくべきリクエストのルール

これらのレスポンスは今回の実行中に API が返したものです。無効なリクエストは送信時に拒否され、400 INVALID_REQUEST が返され、タスクは作成されません。

  • aspect_ratio は auto、21:9、2:1、16:9、4:3、1:1、3:4、9:16 を受け付けます。それ以外の値は拒否されます。
  • duration の最大値は 20 です(maximum: got 99, want 20)。
  • start_video は文字列 URL である必要があります。
  • 未知のフィールドは拒否されます(additional properties ... not allowed)。そのため、タイプミスは無視されずに明確にエラーになります。

逆に、検証を通過したリクエストは実際に課金されるタスクです。draft: true なしで「テスト」プロンプトを送信しないでください。裸の {"prompt": "test"} は有効であり、フル価格のクリップをレンダリングします。

よくある質問

flux-3-video のプロンプトを試す最も安い方法は何ですか? 720p ドラフトモード:$0.09/秒なので、5 秒のクリップで $0.45 です。概念が実現可能かどうかを示しますが、完成版のレンダリングは別のバージョンになります。

flux-3-video は音声を生成しますか? はい。generate_audio: true を有効にすると、音声トラックは返される .mp4 に埋め込まれます。今回のテストでは、プロンプト内で別の Audio: 行で音声を説明することで、一致する環境音(煮える音、麺をすする音、雨音、談話)が得られました。

flux-3-video のクリップはどれくらい長くできますか? 1 リクエストあたり最大 20 秒です。start_video による継続生成を使えば、段階的に延長し、次のステップに支払う前に各ステップを承認できます。

継続生成は完全に結合された動画を返しますか? いいえ。今回のテストでは、新たに追加された 5 秒のみを、ソースクリップの最終フレームから始めて返しました。ファイルは自分で結合してください。

構築を始める

flux-3-video モデルページ を開いて現在の価格を確認し、プレイグラウンドを使用してください。その後、上記のバッチスクリプトでいくつかの縦向きフックを起草し、実現可能なものの完成版をレンダリングし、最良の 1 つを延長してください。

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

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

APIドキュメントを読む