HiAPI
ブログ

使用ガイド

FLUX 3 Max ショート動画:ショットごとに1つのモード、APIでバッチ処理

テキストから動画生成、画像から動画生成、キーフレームで構築した縦型9:16の広告キャンペーンを、1回の並列バッチとして投入。実際の出力と検証済みの料金を含みます。

Nov 3, 2026
FLUX 3 Max ショート動画:ショットごとに1つのモード、APIでバッチ処理

FLUX 3 Max は hiapi 上で3つの動画エンドポイントを提供しています。ショート動画制作で役立つ問いは「どれが最良か」ではなく「このショットにはどれが合うか」です。本ガイドでは小さな縦型広告キャンペーン(アイス抹茶カフェの投稿用に3つの9:16クリップを制作)を例に、ショットごとに異なるモードを使い、3つすべてを1回の並列バッチとして投入する流れを解説します。以下に示す各クリップは、いずれも実際の未編集の出力です。

完全なパラメータリファレンスとバリデーションエラーの説明が必要な場合は、まず FLUX 3 Max API ガイドをお読みください。本記事はすでにタスクを投入できる方を想定し、ショート動画のワークフローに焦点を当てます。

プロジェクト単位ではなくショット単位でモードを選ぶ

ショート動画の編集は通常、フック、商品ビート、締めくくりで構成されます。これらのビートは入力が異なるため、対応する FLUX 3 Max の id も異なります:

編集内のショット 手元にあるもの 使用するもの 主要な入力
フック / B-roll アイデアだけ flux-3-max/text-to-video prompt
商品ビート 承認済みで変更不可の商品写真 flux-3-max/image-to-video image_url(単一の文字列)、任意で end_image_url
転換 / 締めくくり つなげたい2つのシーン flux-3-max/keyframes-to-video keyframes: [{image_url, frame_index}]

3つは duration(5〜20秒)、resolution(720p / 1080p)、aspect_ratio(縦型なら 9:16 を設定)、generate_audio を共有しています。リクエストボディがほぼ同じなので、1つのバッチスクリプトで3つすべてを送信できます。モデルページ:テキストから動画生成、画像から動画生成、キーフレームから動画生成。

ショット1:フック、テキストのみ

フックは最初の1秒で動きが必要で、特定の素材要件もないため、テキストから動画生成が正しい選択です。

{
  "model": "flux-3-max/text-to-video",
  "input": {
    "prompt": "縦型の手持ちクローズアップ:バリスタが冷たいミルクを高透明のグラスに入ったアイス抹茶に注ぐ。緑と白がスローモーションで絡み合いながら回転し、朝の光がカフェの窓から差し込む。浅い被写界深度、氷がぶつかる澄んだ音、静かなカフェの環境音。",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "generate_audio": true
  }
}

戻ってきた結果:注ぎは最初のフレームから始まり、終盤には渦がグラスを満たします。これはまさにフックに必要なものです。テキストから動画生成ができないのは、自分のシーンに合わせることです。カフェを指定したのにモデルは木製カウンターを選びましたが、私の商品写真(次のショット)は大理石でした。フックとしては許容範囲です。ブランド資産と一致させる必要があるショットでは、いずれかの画像モードを使ってください。

ショット2:商品ビート、静止画にアンカー

これは承認済みの商品写真です。事前に9:16の静止画として生成し、最初のフレームとしてモデルに渡します。

{
  "model": "flux-3-max/image-to-video",
  "input": {
    "prompt": "グラスへゆっくりと寄っていく;ミルクの渦が漂いながら沈み、氷がわずかに動き、光が大理石のカウンターで優しく揺らめき、ミントの葉は動かない。静かなカフェの環境音。",
    "image_url": "https://static.hiapi.ai/blog/flux-3-max-short-form-video/still-a.jpg",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "generate_audio": true
  }
}

構図は固定されたままです。同じグラス、同じミントの枝、同じ大理石と窓の光が最初から最後まで続きます。ただし動きは控えめです。指示した寄りは5秒ではほとんど分からず、動きの大部分は液体と光の中にあります。商品ビートとしては良い結果です。商品ショットはリアルなまま保ちたいからです。より強いカメラワークが必要なら、秒数を増やすかプロンプトで強調し、バッチを拡大する前に結果を確認してください。

フィールド名に注意してください。image-to-video は単一の image_url 文字列を受け取ります。image_urls 配列を渡すと(他の一部の hiapi 動画モデルが期待するように)、投入時に拒否されます。

ショット3:締めくくり、2つのキーフレームで

締めくくりはカフェと通りをつなぎます。同じ飲み物を屋外で掲げた2枚目の静止画があり、両方をキーフレームとして使います。

{
  "model": "flux-3-max/keyframes-to-video",
  "input": {
    "prompt": "連続ショット:手がカフェのカウンターからアイス抹茶を取り上げて外へ運び、最後に日差しの明るい通りで明るい青空へ掲げる。滑らかな手持ちカメラ、自然光が暖かい室内から明るい日光へと移行する。",
    "keyframes": [
      {"image_url": "https://static.hiapi.ai/blog/flux-3-max-short-form-video/still-a.jpg", "frame_index": 0},
      {"image_url": "https://static.hiapi.ai/blog/flux-3-max-short-form-video/still-b.jpg", "frame_index": 120}
    ],
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "generate_audio": true
  }
}

frame_index は24 fpsでフレームを数えるため、5秒クリップは0から120までです。アンカーを0と120に置くことで、クリップはちょうどカウンターのショットから始まり、ちょうど通りのショットで終わります。その間、モデルは転換を自ら発明します。クリップの中盤、手が入口でグラスを掲げ、その後通りが現れます。これがキーフレームのトレードオフです。あなたはアンカーの瞬間を制御し、モデルが残りを埋めます。中間が特定の見た目でなければならないなら、3つ目のキーフレームを追加してください(最大10個まで許容)。

バッチ処理:1つのスクリプト、3つのモード、並列

ショート動画制作は大量のバリエーションを意味するので、まずすべてを投入し、後でポーリングします。これが私が使ったスクリプトを簡略化したものです:

import json, os, time, requests
from concurrent.futures import ThreadPoolExecutor

API = "https://api.hiapi.ai/v1/tasks"
HEAD = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}
BASE = {"duration": 5, "resolution": "720p", "aspect_ratio": "9:16", "generate_audio": True}

jobs = {
    "hook":    ("flux-3-max/text-to-video",      {"prompt": HOOK_PROMPT}),
    "product": ("flux-3-max/image-to-video",     {"prompt": PRODUCT_PROMPT, "image_url": STILL_A}),
    "payoff":  ("flux-3-max/keyframes-to-video", {"prompt": PAYOFF_PROMPT, "keyframes": [
                    {"image_url": STILL_A, "frame_index": 0},
                    {"image_url": STILL_B, "frame_index": 120}]}),
}

def run(name):
    model, extra = jobs[name]
    r = requests.post(API, headers=HEAD, json={"model": model, "input": {**BASE, **extra}}).json()
    task_id = r["data"]["taskId"]          # save this before polling
    deadline = time.time() + 900
    while time.time() < deadline:
        time.sleep(10)
        d = requests.get(f"{API}/{task_id}", headers=HEAD).json()["data"]
        if d["status"] == "success":
            url = d["output"][0]["url"]
            open(f"{name}.mp4", "wb").write(requests.get(url).content)  # download now
            return name, "success"
        if d["status"] == "fail":
            return name, d.get("error")
    return name, f"timeout {task_id}"

with ThreadPoolExecutor(len(jobs)) as pool:
    for result in pool.map(run, jobs):
        print(result)

2026年11月3日、3つすべてを一度に送信したときに見たもの:

  • 各 POST /v1/tasks は2秒以内に taskId を返しました。
  • ポーリングでは、各タスクが同じ順序をたどりました:handling、次に archiving、そして success。
  • タスク記録では、3つのクリップが created から completed までいずれも20秒でした。並列で実行しても、1つだけ実行するよりも長くはかかりませんでした。
  • 各出力は5.04秒の H.264 ファイルで、704 × 1280、24 fps、AAC 音声トラック付き。幅に注意:9:16 の720p は704 px になり、720 px ではありません。編集テンプレートがちょうど720 × 1280を要求する場合は、インポート時にスケールするかパディングしてください。
  • 出力 URL は一時ドメイン上にあり、expireAt は完了後7日です。すぐにダウンロードして自分でファイルを保存してください。

より大きなバッチ(数十のフックバリエーション)では、タスク API の callback を when: "final" と組み合わせて使い、ポーリング不要にし、各 taskId を記録してクラッシュで課金済みの作業を失わないようにしてください。

バッチのコスト

FLUX 3 Max は出力秒数と解像度に基づいて課金され、3つのモードは同じ料率です。2026年11月時点で、料金ページには720p が $0.0608/秒、1080p が $0.1036/秒と記載されています。モデルページには、音声とキーフレームの数は価格に影響しないと説明されています。

プラン クリップあたり 3クリップのバッチ
5秒、720p(私が実行したもの) $0.304 $0.912
5秒、1080p $0.518 $1.554
15秒、1080p $1.554 $4.662

実用的なサイクル:5秒・720p でプロンプトをテストし、勝者を残し、それだけを1080p またはより長くレンダリングします。料率の詳細については、FLUX 3 Max API 料金をご覧ください。

ショート動画チェックリスト

  1. まず編集をショットとして書き、次に上の表を使って各ショットにモードを割り当てます。
  2. 静止画も9:16で作ります。画像モードは渡したフレームをアニメーション化するので、横長の静止画は最初から構図の問題になります。
  3. 各リクエストで aspect_ratio: "9:16" を明示的に設定し、auto に頼りません。
  4. キーフレーム画像の見た目を揃え(同じ商品、同じ照明の系統)、投入前に frame_index ≤ duration × 24 を検証します。誤ったタイムラインは投入時に受け入れられ、しばらくしてから失敗します。
  5. 並列で投入し、ポーリングまたはコールバックを使い、すぐにダウンロードします。
  6. 下書き段階では音声をオンにしておきます。追加料金はなく、編集でミュートできます。

このキャンペーン以外のプロンプトのアイデアについては、FLUX 3 Max 動画プロンプトガイドをご覧ください。同じワークフローを別のモデルで使うには、Kling 3.0 画像から動画生成のショート動画ワークフローを比較してください。

よくある質問

FLUX 3 Max は縦型9:16の動画を制作できますか? はい。3つのエンドポイントすべてが aspect_ratio: "9:16" を受け付けます。720p では、私が得た出力は704 × 1280でした。

商品動画にはどの FLUX 3 Max モードを使うべきですか? 商品写真が承認時の見た目を完全に保たなければならない場合は、画像から動画生成を使います。私のテストでは、グラス、飾り、背景がクリップ全体を通して変わりませんでした。商品が2つのシーンの間を移動する必要がある場合は、キーフレームを使います。

FLUX 3 Max のクリップ生成にはどれくらいかかりますか? 私の実行では、5秒・720p の3つのクリップを一緒に投入し、いずれも created から completed まで20秒でした。より長いクリップや1080p のクリップはさらに時間がかかるかもしれません。それらは計測していません。

同じバッチでテキストから動画生成、画像から動画生成、キーフレームを混在できますか? はい。それらは同じ /v1/tasks エンドポイント上の独立したモデル id で、同じフィールドを共有しているため、1つのスクリプトで並べて投入できます。

FLUX 3 Max のショート動画クリップはどれくらいの長さにできますか? 5〜20秒の間で、秒単位です。コストは長さに比例して増加します。

構築を始める

最も必要なショットを選び、対応するモデルページ(テキストから動画生成、画像から動画生成、またはキーフレームから動画生成)を開き、残りの編集をバッチ処理する前に5秒・720p のテストを1回実行してください。

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

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

APIドキュメントを読む