# MiniMax H3参照動画の使い方：カメラだけ借りる書き方と課金の実測

> MiniMax H3の参照動画は役割を一つに絞り、人物や背景を持ち込まないと書きます。2026年11月2日の実測ではカメラワークだけが移り、6.06秒の参照は7秒分課金でした。

- URL: https://blog.laozhang.ai/ja/posts/minimax-h3-reference-video
- Published: 2026-11-03
- Updated: 2026-11-03
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ja/about)
- Topic: AI 動画生成
- Tags: MiniMax H3, 参照動画, Ref2VA, R2V, AI動画生成, プロンプト

---
MiniMax H3の参照動画から動きやカメラワークだけを借りたいときは、プロンプトで参照動画ごとに役割を一つだけ与え、持ち込みたくないもの（人物、服装、動物、場所）を名指しで除外します。たとえば「Use reference video 1 only for its camera movement… Do not copy the person, clothing, animals or field from reference video 1.」と書き、続けて新しい場面を描写します。リクエストは`text`と`reference_video`ロールの`video_url`だけで組み、先頭フレーム（`first_frame`）は同時に使えません。

2026年11月2日（UTC）、LaoZhang APIが公開ウェイトで自前運用しているH3（MiniMax公式APIではない経路）に、ピンクのスーツの男性が子羊を抱く6.06秒の手持ちプッシュイン映像を参照として渡し、この書き方で雨の桟橋の漁師を生成しました。出力にはスーツの男性も子羊も草原も出ず、ゆっくり寄るカメラの動きだけが移りました。課金は出力4秒と参照7秒の合計11秒分で$0.55です。1回だけの結果なので、毎回同じになる保証ではありません。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

送る前には素材を仕様内に収めます。参照動画は3本まで、1本2〜15秒、合計15秒以内です。この範囲を外れた素材は、経路によっては「一時的なエラー」に見える失敗で落ちたり、黙って受け付けられたりします。参照秒の端数が切り上げで課金される経路もあるので、ffmpegで6.00秒のようにちょうどの長さに切ってから送ると無駄がありません。

## 参照動画（Ref2VA・R2V）とは：公式APIの「Reference Generation」

参照動画は、MiniMax H3に「この動画の何を新しい動画に使うか」を文章で指示して渡す入力です。MiniMax公式APIではこのモードを「Reference Generation」と呼び、公開ウェイトでは「Ref2VA」、APIのリクエスト例では「r2va」、ComfyUIの日本語ドキュメントでは「リファレンスからビデオ (R2V)」と表記されていますが、どれも同じ機能です。

[MiniMax公式の動画生成ガイド](https://platform.minimax.io/docs/guides/video-generation)は、このモードの用途を人物、動き、カメラ、スタイル、声、編集のリズムの参照と説明しています。参照動画は参照画像や参照音声と同じリクエストに混ぜられ、出力は768Pか2K、長さは4〜15秒の整数秒で、ステレオ音声つきで生成されます。H3を使うかどうか自体をまだ決めていない場合は、[Wan 3.0・MiniMax H3・Seedance 2.5の選び方：最初の1本で見極める](https://blog.laozhang.ai/ja/posts/wan-3-vs-minimax-h3-vs-seedance-2-5)で他モデルとの分担を先に確認してください。

できないことも決まっています。参照モードと先頭・末尾フレーム指定（Image-to-Video）は併用できず、空でないテキストが必ず1つ必要です。MiniMaxの[モデルカードとSGLangの手順](https://huggingface.co/MiniMaxAI/MiniMax-H3)によると、参照動画はピクセル単位で位置を合わせる編集ではなく、video-to-videoのような変化量（denoise）の調整もありません。元の映像をなぞって一部だけ差し替える用途には向かず、あくまで「何を借りるか」を言葉で伝える仕組みです。

## 参照動画に与える役割：カメラ・動き・編集元・続き・音

参照動画に何を担わせるかで、プロンプトの書き方と持ち込まれるものが変わります。カメラワークやカットのリズムだけを借りる場合は、MiniMaxの[参照モード用プロンプトガイド](https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/docs/VIDEO_PROMPT_WRITING_GUIDE_ref_en.md)でも通常の「reference generation」に分類され、元の動画そのものを書き換える「video editing」や続きを作る「video continuation」とは区別されています。

| 借りたいもの | ガイド上の分類 | プロンプトの書き方 | 混ざりやすいもの |
| --- | --- | --- | --- |
| カメラワーク・カット・リズム | reference generation | 「reference video 1はカメラの動きだけに使う」と限定し、参照の人物・服装・場所をコピーしないと列挙する | 参照の人物や場所、照明と色調 |
| 動き（ダンス、歩き方） | reference generation | 動作が一つだけ映ったクリップを使い、「Video 1の[動作]を[Image 1の人物]に移す」と書く | 参照の演者の見た目 |
| 編集元（元動画を直接変える） | video editing | 元動画のどこを変え、何を残すかを書く | 元の音声（残すならaudio reuseも併記） |
| 続き | video continuation | 元動画の終わりの状態から何が起きるかを書く | 元動画の音（続けるだけならaudio referenceを併記） |
| 声・音 | audio reference / audio reuse | 声質だけを借りると書き、新しい台詞は全文書く | 参照に入っている元の台詞 |

ガイドは、参照動画の中の人物や物を新しい動画に「見える形で」再利用する場合は、それを動画全体の参照とは分けて扱う考え方を取っています。つまり、カメラだけ借りたいのに人物がコピーされるときは、参照動画の役割を「カメラの動き」と言葉で狭め、人物は別の参照画像か文章で指定するのが筋です。同じガイドには、参照の残し方を表す`fully_preserved`（完全に保持）、`partially_preserved`（一部だけ保持）、`attribute_transfer`（特徴を別の人物や物に移す）、`weak_reference`（雰囲気や構図が似る程度）という区分もあります。これは後述のH3-Context-IRが出力する整理済みプロンプトの形式で、自分で書くプロンプトに必須ではありません。2026年11月2日の実測も普通の英文プロンプトで通っています。

表の「混ざりやすいもの」はプラットフォーム各社の報告にもとづきます。DomoAIのガイドは「Video 1 controls motion and camera only; ignore its performer and setting」のように参照ごとに仕事を一つ割り当てる書き方を勧め、RunDiffusionのガイドは、人物や場所がコピーされたら除外するものを列挙し、参照は一つずつ追加して確かめるよう案内しています。[Atlas Cloudの検証記事](https://www.atlascloud.ai/blog/tips/minimax-h3-reference-to-video)（2026年8月）では、「明るい昼光」と「参照クリップの色調を引き継ぐ」を同時に指示したところ参照動画の夜の色調が勝ち、明るい場面になりませんでした。照明を変えたいなら、色調を引き継ぐ指示を外すのが先です。音については、プロンプトガイドが「音の入った普通の参照動画は、それだけでは音声参照にならない」と明記しているので、声を使いたいなら声質を借りると書く必要があります。

## 参照動画の条件：3本・各2〜15秒・合計15秒以内

2026年11月2日時点の[MiniMax公式APIリファレンス](https://platform.minimax.io/docs/api-reference/video-generation-v2-create)では、参照動画は3本まで、1本あたり2〜15秒、合計15秒以内です。形式はMP4かMOV、コーデックはH.264かH.265で、1ファイル50MB以下と決まっています。参照画像・参照音声の条件と並べると次のとおりです。

| 項目 | 参照動画 | 参照画像 | 参照音声 |
| --- | --- | --- | --- |
| 数 | 3本まで | 9枚まで | 3本まで |
| 長さ | 1本2〜15秒、合計15秒以内 | なし | 1本2〜15秒、合計15秒以内 |
| 形式 | MP4・MOV（H.264/H.265、音声AAC/MP3） | JPG・JPEG・PNG・WEBP・HEIC・HEIF | WAV・MP3 |
| 1ファイルの上限 | 50MB | 30MB | 15MB |
| 縦・横のピクセル | 256〜5760px | 256〜5760px | なし |
| 縦横比（幅÷高さ） | 0.4〜2.5 | 0.4〜2.5 | なし |
| フレームレート | 23.976〜60fps | なし | なし |

このほか、画像・動画・音声を合わせたファイル数は12まで、リクエスト本体は64MBまで、プロンプトは7,000文字までです。参照動画は公開URL、`mm_file://{file_id}`、`data:video/mp4;base64,…`のいずれかで渡せますが、Base64はサイズが約33%増えるため、公式も大きな動画はURLかファイルIDで渡すよう勧めています。経路によっては受け付ける形式が狭く、LaoZhang APIのドキュメントは動画と音声を公開HTTPSの直リンクに限っています。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

## リクエストとプロンプトの書き方：カメラワークだけ借りる手順

カメラワークだけを借りるリクエストは、テキスト1つと参照動画1本で組めます。以下の手順は、2026年11月2日に実際に成功したリクエストをそのまま元にしています。

1. 参照動画に担わせる役割を一つ決め、持ち込みたくないもの（人物、服装、動物、場所など）を書き出します。
2. 参照動画を仕様内に収めます。長さと形式の確認は次の「送信前チェック」の節のスクリプトで行えます。
3. 参照動画を公開HTTPSのURLに置きます。公式APIではアップロード済みのファイルID（`mm_file://`）も使えます。
4. `content`に`text`を1つと、`role`が`reference_video`の`video_url`を入れます。`first_frame`と`last_frame`は入れません。
5. `resolution`、`duration`（4〜15の整数）、`ratio`を指定します。参照モードの`ratio`は省略すると`adaptive`です。
6. 送信して返ってきた`task_id`を10秒おきに問い合わせ、`succeeded`になったら`task.content.url`から動画を取得します。
7. 出力をコマ送りで見て、参照の人物や場所が混ざっていないかを確かめます。

実際に送ったリクエスト本体です。参照動画はMiniMaxが公式APIリファレンスの例に載せているデモ素材（6.06秒、1920×1080、24fps）を使いました。

```json
{
  "model": "MiniMax-H3",
  "content": [
    {
      "type": "text",
      "text": "Use reference video 1 only for its camera movement: a slow handheld push-in that drifts slightly around the subject. Do not copy the person, clothing, animals or field from reference video 1. New scene: an elderly fisherman in a yellow raincoat mends a net on a wooden pier at dawn, light rain, sea in the background."
    },
    {
      "type": "video_url",
      "role": "reference_video",
      "video_url": {
        "url": "https://cdn.hailuoai.com/prod/hailuo_demo/testsets/h3_promo_eval_ref2va/gallery/sr_v2p26_trio_seed42_20260724/inputs/297573323635_00_%E8%A7%86%E9%A2%911_YnyRbxEwio_video_20260525_163755_1927e9d3.mp4"
      }
    }
  ],
  "resolution": "768P",
  "duration": 4,
  "ratio": "16:9"
}
```

このJSONを`h3-camera-ref.json`として保存し、curlで送ります。MiniMax公式APIとLaoZhang APIでは、リクエスト本体の形は同じで、エンドポイントだけが違います。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

```bash
# MiniMax公式API
curl -s -X POST https://api.minimax.io/v2/video_generation \
  -H "Authorization: Bearer $MINIMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d @h3-camera-ref.json
# → {"task_id": "..."}

curl -s https://api.minimax.io/v2/query/video_generation/$TASK_ID \
  -H "Authorization: Bearer $MINIMAX_API_KEY"

# LaoZhang API（実測で使った経路）は次のパスになる
# POST https://api.laozhang.ai/hailuo/v2/video_generation
# GET  https://api.laozhang.ai/hailuo/v2/query/video_generation/$TASK_ID
```

プロンプト中の参照動画の呼び方は、使う場所によって表記が違います。MiniMax公式APIのドキュメントの例文は自然文の「reference video 1」、LaoZhang APIとComfyUIの`MiniMaxH3ReferenceToVideo`ノードは`<Video 1>`タグ、fal・RunDiffusion・ComfyUIのAPIノードは`Video 1`、Hailuoアプリは`@Video1`です。番号は画像・動画・音声の種類ごとに1から数えるのが公式APIとComfyUIの扱いで、`content`に入れた順に「reference video 1」「reference video 2」となります。LaoZhang APIのドキュメントは`<Video 1>`形式を案内していますが、上のリクエストは自然文の「reference video 1」で送り、問題なく参照されました。どの書き方でも、どの動画を何に使うかが一文で特定できることが大事です。

## 2026年11月2日の実測：漁師の場面にカメラワークだけが移った

実測では、参照動画の人物・子羊・草原は出力に現れず、ゆっくり寄りながら少し回り込むカメラの動きだけが移りました。タスクは送信から45秒後の確認で完了し、課金は$0.55でした。

送信は2026年11月2日15時54分（UTC）で、10秒おきの問い合わせでは11秒・22秒・33秒の時点が`running`、45秒の時点で`succeeded`でした。サーバー側の記録では作成から完了まで26秒です。問い合わせ結果の`usage`は`total_seconds` 11、`input_seconds` 7、`output_seconds` 4で、アカウントの利用額もちょうど55セント増えました。つまり6.06秒の参照動画は7秒として数えられ、(4 + 7) × $0.05 = $0.55です。

出力は1344×768、24fps、4.46秒のH.264動画で、AACのステレオ音声（32kHz）が付いていました。1秒ごとに切り出したコマでは、黄色いレインコートの年配の漁師、木の桟橋、夜明けの海が映り、ピンクのスーツも子羊も草原もありません。漁師は画面の左3分の1から中央へ寄りつつ少しずつ大きくなり、参照と同じ「横に流れながら寄る」動きになっていました。一方、プロンプトにあった小雨ははっきり見えませんでした。判定は目視で、試したのはこの1回だけです。

この実測の経路は[LaoZhang APIのMiniMax H3ドキュメント](https://docs.laozhang.ai/api-capabilities/minimax-h3-video-generation)にあるとおり、MiniMaxが公開したH3のウェイトを独自に運用したもので、MiniMax公式APIを経由していません。2026年10月24日からの価格は768Pが1秒$0.05、2Kが1秒$0.08です。公式APIでは試していないため、画質や応答時間が同じになるとは限りません。なお、結果のURLは7日間保持され、Pythonの`urllib`の既定のUser-Agentではダウンロードが403で拒否されましたが、ブラウザのUser-Agentを付けたcurlでは取得できました。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

## 「一時的なエラー」で失敗する参照動画：送信時400と受付後の失敗

仕様外の参照動画には、送信した時点でHTTP 400で拒否されるものと、いったん受け付けられてから「temporary service error … Please retry」で失敗するものがあります。2026年11月2日にLaoZhang経路で試した範囲では、少なくとも合計18.95秒のケースは、再試行で直る一時的な障害ではなく素材の長さが原因でした。

いずれも`MiniMax-H3`、768P、4秒、16:9で送りました。エラーメッセージはゲートウェイが返した原文で、MiniMax公式APIの文言ではありません。

| 送った内容 | 結果 | 課金 |
| --- | --- | --- |
| 参照動画4本 | 送信時にHTTP 400「参考图片、视频或音频数量超过支持上限。」（参照素材の数が上限超え） | なし |
| 参照動画＋`first_frame` | 送信時にHTTP 400「首尾帧图片不能与参考素材混合使用。」（先頭・末尾フレームと参照素材は混在不可） | なし |
| 参照動画のみでテキストなし | 送信時にHTTP 400「内容中必须至少包含一项非空文本。」（空でないテキストが1つ必要） | なし |
| テキスト＋参照音声だけ | 送信時にHTTP 400 `bad_request_error`「Invalid request parameters. … This request is not charged.」 | なし |
| 1.5秒の参照動画（Base64で送信） | HTTP 200で受付、約3秒後に`generation_failed`「Video generation failed because of a temporary service error. This request is not charged. Please retry.」 | 作成時に仮押さえ、失敗後に全額戻る |
| 9.47秒の参照動画2本（合計18.95秒） | 上と同じく受付後約3秒で`generation_failed`、同じメッセージ | 作成時に仮押さえ、失敗後に全額戻る |

紛らわしいのは最後の2行です。9.47秒の動画は1本ずつなら条件を満たしており、変えたのは合計が15秒を超えたことだけです。数分後に送った仕様内のリクエストは成功したので、「temporary（一時的）」という文言どおりの障害ではありません。同じリクエストを再試行してはいませんが、原因が素材にある以上、再試行しても同じように失敗すると考えるのが自然です。1.5秒の動画は長さ不足とBase64での送信が重なっているため、どちらが原因かは切り分けられていません。この2件では作成時に4秒×$0.05＝$0.20ずつ、合計$0.40が仮押さえされ、失敗後に元の利用額へ戻りました。

![仕様外の参照動画が送信時にHTTP 400で拒否される場合と、受付後にgeneration_failedで失敗して仮押さえが戻る場合の比較](https://blog.laozhang.ai/posts/ja/minimax-h3-reference-video/img/h3-reference-error-paths.webp)

仕様外のリクエストをどこで止めるかは経路ごとに違います。Atlas Cloudが2026年8月に自社の経路で試した報告では、誤ったリクエストはすべて送信時にHTTP 200を返し、エラーは2〜3分後の生成段階で出ました。先頭フレームと参照素材を混ぜたリクエストは、LaoZhang経路では送信時に拒否されたのに対し、Atlas Cloudではエラーにならず片方が黙って捨てられたうえ$0.40課金されています。また、Atlas Cloudでは約8秒の参照音声2本（合計16.1秒）が、参照音声の合計15秒の上限を超えたまま完成し、$0.40課金されました。参照動画の合計15秒超えはAtlas Cloudでは試されておらず、LaoZhang経路で確かめたのは上の表の参照動画合計18.95秒が失敗・返金になったことだけです。どの経路の検証にも頼らず、送る前に仕様内へ収めるのが確実です。

## 送信前チェック：ffprobeで長さと形式を確かめ、ffmpegで切る

失敗の多くは送信前に防げます。ffprobeで参照動画の長さ・解像度・fps・コーデックを読み、公式の上限と照らし合わせる小さなスクリプトを用意しておくと、HTTP 400も「一時的なエラー」も起きる前に止められます。次の`h3_ref_check.py`は、2026年11月2日時点の公式APIリファレンスの数値をそのまま判定に使い、課金される秒数（端数切り上げ）も表示します。

```python
#!/usr/bin/env python3
# 使い方: python3 h3_ref_check.py clip1.mp4 [clip2.mp4 clip3.mp4]
import json, math, subprocess, sys

def probe(path):
    out = subprocess.run(["ffprobe", "-v", "error", "-show_entries",
        "format=duration,size,format_name:stream=codec_type,codec_name,width,height,avg_frame_rate",
        "-of", "json", path], capture_output=True, text=True, check=True).stdout
    return json.loads(out)

def check(paths):
    problems, total = [], 0.0
    if len(paths) > 3:
        problems.append(f"{len(paths)} clips: H3 accepts at most 3 reference videos")
    for p in paths:
        info = probe(p)
        fmt = info["format"]
        v = next(s for s in info["streams"] if s["codec_type"] == "video")
        dur, size_mb = float(fmt["duration"]), int(fmt["size"]) / 1e6
        num, den = map(int, v["avg_frame_rate"].split("/"))
        fps = num / den if den else 0
        w, h = v["width"], v["height"]
        total += dur
        print(f"{p}: {dur:.2f}s (billed {math.ceil(dur)}s), {w}x{h}, {fps:.3f} fps, "
              f"{v['codec_name']}, {size_mb:.1f} MB")
        if not 2 <= dur <= 15: problems.append(f"{p}: {dur:.2f}s is outside 2-15 s")
        if v["codec_name"] not in ("h264", "hevc"): problems.append(f"{p}: codec {v['codec_name']} is not H.264/H.265")
        if not ("mp4" in fmt["format_name"] or "mov" in fmt["format_name"]): problems.append(f"{p}: container is not MP4/MOV")
        if size_mb > 50: problems.append(f"{p}: {size_mb:.1f} MB is over 50 MB")
        if not (256 <= w <= 5760 and 256 <= h <= 5760): problems.append(f"{p}: {w}x{h} outside 256-5760 px")
        if not 0.4 <= w / h <= 2.5: problems.append(f"{p}: aspect ratio {w/h:.2f} outside 0.4-2.5")
        if not 23.976 <= round(fps, 3) <= 60: problems.append(f"{p}: {fps:.2f} fps outside 23.976-60")
    if total > 15: problems.append(f"total {total:.2f}s is over 15 s")
    print(f"total reference length {total:.2f}s")
    print("OK" if not problems else "FIX BEFORE SUBMITTING:\n- " + "\n- ".join(problems))
    return not problems

if __name__ == "__main__":
    sys.exit(0 if check(sys.argv[1:]) else 1)
```

2026年11月2日にmacOS 26.1とffprobe 9.0.2で、上の実測と失敗例に使った素材を通した結果です。成功したタスクの参照動画は通り、受付後に失敗した2件はどちらも送信前に引っかかります。

```text
ref-video.mp4: 6.06s (billed 7s), 1920x1080, 24.000 fps, h264, 4.4 MB
total reference length 6.06s
OK

short-1.5s.mp4: 1.50s (billed 2s), 640x360, 24.000 fps, h264, 0.1 MB
total reference length 1.50s
FIX BEFORE SUBMITTING:
- short-1.5s.mp4: 1.50s is outside 2-15 s

dance.mp4: 9.47s (billed 10s), 1080x1922, 30.000 fps, h264, 12.2 MB
dance.mp4: 9.47s (billed 10s), 1080x1922, 30.000 fps, h264, 12.2 MB
total reference length 18.95s
FIX BEFORE SUBMITTING:
- total 18.95s is over 15 s
```

合計が15秒を超えたら、借りたい部分だけを切り出します。9.47秒のダンス動画は、1秒目から6秒間を再エンコードで切り出すとちょうど6.00秒になり、先ほどの6.06秒の動画と合わせても合計12.06秒でチェックを通りました。

```bash
ffmpeg -ss 1 -i dance.mp4 -t 6 -c:v libx264 -crf 20 -preset veryfast -c:a aac dance-6s.mp4
```

このスクリプトが確かめるのは公開されている上限だけで、生成の出来やコンテンツの審査結果までは予測できません。ローカルのComfyUIで使う場合はfpsの扱いが違うので、後述の注意も合わせて確認してください。

## 参照動画の料金：出力秒＋参照秒×秒単価

MiniMax公式APIでは、参照動画は「選んだモデルの出力解像度の秒単価」で入力秒数分が課金されます。つまり費用は「（出力秒＋参照動画の秒数）×秒単価」です。[MiniMaxの従量課金ページ](https://platform.minimax.io/docs/guides/pricing-paygo)によると、2026年11月2日時点で`MiniMax-H3`は768Pが1秒$0.08、2Kが1秒$0.13で、参照動画にも同じ単価がかかります。参照音声は無料、参照画像は1タスク5枚まで無料で、6枚目から1枚$0.04です。

例外は`MiniMax-H3-Max`で、768Pの出力が1秒$0.08なのに対し参照動画は1秒$0.143、480Pでも出力$0.05に対し参照動画$0.0553と、参照動画の単価のほうが高く設定されています。長い参照動画をMaxで使うと、出力より参照のほうが高くつくことがあります。

計算例として、上の実測と同じ条件で比べます。LaoZhang経路は「1秒未満は1秒に切り上げ」とドキュメントに明記しており、実測でも6.06秒の参照が7秒になって(4 + 7) × $0.05 = $0.55でした。同じ素材を6.00秒に切っておけば(4 + 6) × $0.05 = $0.50です。MiniMax公式APIで6.00秒の参照を使うと、768Pで(4 + 6) × $0.08 = $0.80、2Kで(4 + 6) × $0.13 = $1.30になります。ただし公式の料金ページには参照秒の丸め方が書かれていないため、公式の金額は整数秒で数えると仮定した推定です。

![出力4秒の費用比較：参照6.06秒が7秒で課金されて$0.55、6.00秒に切ると$0.50、公式API 768Pでは推定$0.80](https://blog.laozhang.ai/posts/ja/minimax-h3-reference-video/img/h3-reference-billing.webp)

参照動画の課金方法は経路ごとに違います。falの通常版H3は参照動画を別料金にせず出力秒（768pで1秒$0.06）だけで課金し、falのH3 Maxはトークン課金で、768pの5秒・24fps・16:9の参照動画は32,256トークン、追加で約$0.56と案内しています。Atlas Cloudも参照動画を別料金にしていません。LaoZhang経路では作成時に出力分を仮押さえし、参照動画の秒数分は完了後に精算、失敗したタスクは全額返金されます。他の動画モデルを含めた秒単価と1本あたりの相場は、[AI動画生成の料金相場：1秒あたりと1本あたりのコスト](https://blog.laozhang.ai/ja/posts/how-much-does-ai-video-generator-cost)で比べられます。

## ComfyUI（ローカル）で参照動画を使うときの注意

ローカルのComfyUIで公開ウェイトを使う場合は、R2V用の`ref2va`モデルを選び、VAEを接続し、参照動画を24fpsにそろえておくことが前提になります。以下は[ComfyUIのMiniMax H3チュートリアル](https://docs.comfy.org/tutorials/video/minimax/minimax-h3-native)と[`MiniMaxH3ReferenceToVideo`ノードのドキュメント](https://docs.comfy.org/built-in-nodes/MiniMaxH3ReferenceToVideo)、MiniMaxのモデルカードに書かれている挙動です。

- R2Vには`minimax_h3_ref2va_pruned_int8_convrot`などの`ref2va`モデルを使います。`fl2va`モデルはテキスト・画像からの生成用で、R2Vには使いません。
- `MiniMaxH3ReferenceToVideo`ノードに`vae`をつながないと、参照画像と参照動画はテキストエンコーダーの条件づけにしか使われず、参照の映像情報が生成に入りません。音声の場合は`audio_vae`が同じ役割です。
- 参照動画はメタデータを見ずに24fpsとして読み込まれます。30fpsなどの素材は読み込む前に24fpsへ変換してください。公式APIが23.976〜60fpsを受け付けるのとは扱いが違います。
- 生成する長さ（`length`、既定は124フレームで約5秒）を超える参照動画のフレームは切り捨てられます。参照動画は5フレーム以上が必要です。
- 参照動画に入っている音声は、`ref_video_audio_N`を対応する`ref_video_N`と同じ番号でつないだときだけ使われます。
- 4ステップのTurbo LoRAは速い代わりに参照と音声の効きが弱くなるため、参照を効かせたいときは20〜25ステップが推奨されています。スタイルLoRAも参照と競合するので、強さは0.5前後に抑えます。
- プロンプトでは`<Picture 1>`、`<Video 1>`、`<Audio 1>`のタグを種類ごとに1から数え、モデルには画像、動画、音声の順で渡されます。

公開ウェイトの出力は768p・24fps・4〜15秒で、2K化のモジュールは公開されていません。ローカルで2Kまで仕上げるには、MiniMaxのホスト型APIであるH3-Context-IRとH3-Regenerate-2Kを組み合わせる構成になります。SGLangで動かす場合は`--model-variant ref2va`を指定し、リクエストの`start_time_seconds`で長い動画の一部区間だけを参照に使えます。SGLangのガイドが挙げる構成は4×H200、4×H100、2×RTX 5090（ホストRAM 384GiB）などで、同ガイドの例では参照つきの生成に260秒、テキストからの生成に37秒かかっています。

## MiniMax H3参照動画のよくある質問

### MiniMax H3-Maxでも参照動画は使えますか？

MiniMax公式APIでは使えます。2026年11月2日時点のAPIリファレンスでは、`MiniMax-H3`、`MiniMax-H3-Highspeed`、`MiniMax-H3-Lite`、`MiniMax-H3-Max`の4モデルすべてが参照画像・動画・音声に対応しており、Maxは480Pか768P、5〜15秒で、2Kはありません。一方、Hailuoのウェブアプリのページに含まれる文言では「参照動画に対応するのはH3だけで、H3 Maxはテキストか先頭・末尾フレーム」とされており、アプリとAPIで扱いが分かれています。使う場所の仕様を個別に確認してください。

### 参照動画の長さで生成される動画の長さは決まりますか？

APIでは決まりません。出力の長さはリクエストの`duration`（4〜15秒の整数）で指定し、2026年11月2日の実測でも6.06秒の参照動画に対して`duration`を4にすると、4.46秒の動画が返りました。ComfyUIでは生成する長さ`length`が基準になり、それより長い参照動画のフレームは切り捨てられます。

### 768Pで作った結果を2Kにできますか？

MiniMax公式APIのVideo Regenerationを使えば、768PのH3の結果を2Kにできます。元のリクエストの`content`をすべて繰り返し、生成済みの動画を`role`が`base_video`の`video_url`として1つ加えて送る仕組みで、タスク種別は`regeneration`です。手順は[MiniMax公式の動画生成ガイド](https://platform.minimax.io/docs/guides/video-generation)に載っています。

### 参照素材の役割をプロンプトに整理してもらう方法はありますか？

MiniMax公式APIのH3-Context-IRに参照素材とプロンプトを送ると、各素材の関係を読み取った強化プロンプトだけが返ります（`task_type`は`h3_context_ir`、結果は`content.prompt`）。動画は生成されないので、返ってきたプロンプトを確認・修正してから、あらためて参照動画つきの生成リクエストに使います。出力の形式は前述のプロンプトガイドの書式に沿っています。

## 参考資料

本文で参照している外部ページを、登場順に並べています。最終更新日：2026-11-03。

- [MiniMax公式の動画生成ガイド](https://platform.minimax.io/docs/guides/video-generation) (platform.minimax.io)
- [モデルカードとSGLangの手順](https://huggingface.co/MiniMaxAI/MiniMax-H3) (huggingface.co)
- [参照モード用プロンプトガイド](https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/docs/VIDEO_PROMPT_WRITING_GUIDE_ref_en.md) (huggingface.co)
- [Atlas Cloudの検証記事](https://www.atlascloud.ai/blog/tips/minimax-h3-reference-to-video) (atlascloud.ai)
- [MiniMax公式APIリファレンス](https://platform.minimax.io/docs/api-reference/video-generation-v2-create) (platform.minimax.io)
- [MiniMaxの従量課金ページ](https://platform.minimax.io/docs/guides/pricing-paygo) (platform.minimax.io)
- [ComfyUIのMiniMax H3チュートリアル](https://docs.comfy.org/tutorials/video/minimax/minimax-h3-native) (docs.comfy.org)
- [MiniMaxH3ReferenceToVideoノードのドキュメント](https://docs.comfy.org/built-in-nodes/MiniMaxH3ReferenceToVideo) (docs.comfy.org)
