MiniMax H3がオープンウェイトで公開!プロンプトの書き方も紹介【ComfyUI v0.30】

MiniMax H3が公開されたので試してみた AIラボ

MiniMax H3は、映像とステレオ音声を完全に同期させて一括生成できる最新の動画生成AIモデルです。ComfyUI v0.30でMiniMax H3がネイティブ対応されたので試してみました。プロンプトの書き方も紹介します。

【MiniMax H3】公式スキルで難解なプロンプト記法から解放される|Codex・Claude Code対応
MiniMax H3のプロンプトは3フィールド構成とタグ記法が独特で、手書きの負担が導入のハードルになっていました。公式配布のスキルを入れれば、日本語で伝えるだけで清書されます。導入から仕組みまで解説します。

MiniMax H3とは

MiniMax H3は、MiniMaxがオープンウェイトで公開した動画生成モデルでで、テキスト・画像・動画・音声をまとめて理解し、映像と32kHzのステレオ音声を同時に生成します。

  • T2V(Text to video): テキストからの動画生成
  • I2V(Image to Video): 開始・終了画像を指定した動画生成
  • R2V(Reference to Video): 画像・動画・音声の参照による動画生成

出力は24fps、4~15秒で、会話・効果音・音楽もプロンプト内で指定できます。

ワークフロー

ComfyUIを v0.30にアップデートすることで公式テンプレートのワークフローが読み込めます。

MiniMax H3は、テキスト・画像・動画・音声をひとつのコンテキストで扱う汎用オムニモーダル生成モデルです。映像だけを生成して後から音声を重ねる構成ではなく、音声・効果音・音楽を映像と一緒に単一の生成処理でモデル化します。完成動画にはネイティブのステレオ音声が含まれます。

ダウンロードするファイル

T2V・I2V用のモデルファイルは共通です。

種類ファイルサイズ用途
Diffusion Modelminimax_h3_fl2va_pruned_int8_convrot.safetensors21.0 GBT2V・I2V用
Diffusion Modelminimax_h3_ref2va_pruned_int8_convrot.safetensors21.0 GBR2V用
Text Encoderqwen3vl_32b_minimax_h3_nvfp4_awq.safetensors15.7 GB共通
Video VAEminimax_h3_video_vae_fp16.safetensors5.21 GB共通
Audio VAEminimax_h3_audio_vae_fp32.safetensors605 MB共通

ファイルの保存場所

📂 ComfyUI/
├── 📂 models/
│   ├── 📂 vae/
│   │   ├── minimax_h3_video_vae_fp16.safetensors
│   │   └── minimax_h3_audio_vae_fp32.safetensors
│   ├── 📂 diffusion_models/
│   │   └── minimax_h3_fl2va_pruned_int8_convrot.safetensors (T2V・I2V用)
│   │   └── minimax_h3_ref2va_pruned_int8_convrot.safetensors (R2V用)
│   └── 📂 text_encoders/
│       └── qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors
Comfy-Org/MiniMax-H3 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

プロンプトの構成と生成結果

MiniMax H3の公式テンプレートは、映像、カメラ、音声をラベルごとに分けた構成です。
テンプレートのプロンプトと設定で生成してみました。
VRAM16GB環境でのメモリ消費は、VRAM13GB、共有メモリ25GBほどでした。

公式テンプレートの入力画像は基本的にここにあります。
https://github.com/Comfy-Org/workflow_templates/tree/main/input

T2V:時間ごとにショットを指定

  • Scene overview::場所、登場人物、状況、シーンの目的
  • Storyboard::時間ごとのショット構成
  • [0s-1.5s]:ショットの開始時間と終了時間
  • Shot 1::構図、被写体の動き、背景の変化
  • Camera::アングル、カット方法、カメラの揺れ
  • Audio::環境音、足音、音楽、効果音
  • プロンプト末尾:字幕、ロゴ、透かしなどの除外項目

864 x 480px 生成時間110秒

I2V:入力画像からショットを展開

  • The environment is constant throughout.:背景、照明、色調の統一
  • SHOT 1::入力画像と同じ構図から開始
  • The scene opens exactly on image 1:開始フレームの指定
  • SHOT 2::スクロールホイールと内部部品のマクロ撮影
  • SHOT 3::ローアングル、浮遊、回転
  • Audio::機械音、カット時の効果音、音楽

640×640px 5秒 初回117秒、2回目107秒

first_framelast_frame

  • 任意のキーフレーム
  • 2つを接続した場合はフレーム間の動きを生成

R2V:参照素材をカットごとに指定

参照タグ:

  • <Picture 1>:1番目に接続した参照画像
  • <Picture 2>:2番目に接続した参照画像
  • <Video 1>:1番目に接続した参照動画
  • <Audio 1>:1番目に接続した参照音声

各項目の役割:

  • Use ... as reference frames:使用する参照画像の指定
  • CUT 1::少年の構図、ポーズ、表情、カメラワーク、セリフ、文字演出
  • TRANSITION::ホイップパンによる場面転換
  • CUT 2::メカ怪獣の構図、咆哮、発光、稲妻、衝撃波
  • exactly as it is:参照音声の使用指定

864 x 480px 初回165秒 2回目123秒

配布テンプレートの音声入力:

  • ref_audio_0:未接続
  • <Audio 1>を使用する場合:音声ファイルをref_audio_0へ接続

日本語で話すプロンプトの書き方

Subject、話者ID、言語タグを組み合わせて、日本語を含む11言語の会話を生成できます。

<d>[Japanese] 電源を入れます。起動シーケンス開始。</d>

セリフは<d>[Japanese] ...</d>で指定し、話者ごとに(S1)(S2)のIDを付けます。

話者の外見、声質、動作は<d>の外側、実際に発音させる言葉は内側へ記述し、セリフの文字と句読点は変更せず、そのまま入れます。プロンプト全体は英語で記述し、セリフ、歌詞、画面に表示する文字は元の言語を維持します。

T2V、I2Vのプロンプトの書き方

  • T2VA(テキストから映像・音声生成)
  • I2VA(初フレーム参照)
  • FL2VA(初・終フレーム参照)
  • L2VA(終フレーム参照)

入力画像の位置を指定する指示行と、映像・音声を記述する3つのフィールドを組み合わせます。

3つの共通フィールド

プロンプト本体は次の3項目で構成します。

  • integrated_multimodal_description:
    統合型マルチモーダル記述
  • overall_soundscape:
    全体的な音の風景
  • non_diegetic_music:
    劇外音楽(登場人物には聞こえないBGM等)

integrated_multimodal_description

映像と同期する音を、ショット単位で時系列に記述するメイン部分です。

  1. 映像スタイル
  2. 最初の構図
  3. 被写体の外見と位置
  4. 背景や小道具
  5. 被写体の動きと反応
  6. ショットの切り替え
  7. カメラワーク
  8. セリフや歌
  9. 画面内で鳴る効果音や音楽

最初のショットは[Shot 1]から始め、映像スタイルと開始時の構図を書きます。

integrated_multimodal_description: [Shot 1] Live-action, cinematic, a medium-wide shot frames...

2つ目以降のショットには、カットが入る時刻を指定します。

[Shot 2] At 00:03.500, the camera cuts to...

[Shot 1]には時刻を付けません。後続ショットの時刻は動画内で昇順に並べます。

overall_soundscape

動画全体の環境音、動作音、言葉以外の人の声を1~4文でまとめます。

  • 風や雨
  • 街や室内の環境音
  • 足音
  • 衣擦れ
  • 衝突音
  • 呼吸
  • 笑い声
  • 喘ぎ声

セリフ、歌、登場人物にも聞こえる音楽はintegrated_multimodal_descriptionへ入れます。

overall_soundscape: Steady rain taps against the café windows while low room ambience continues underneath. The entrance bell rings once, followed by wet footsteps and the soft scrape of a chair.

絶え間なく降る雨がカフェの窓を叩き、その下で店内の静かな気配が続いている。入り口のベルが一度鳴り、続いて濡れた足音と、椅子が静かに擦れる音が聞こえてくる。

non_diegetic_music

登場人物には聞こえず、動画の視聴者だけに聞こえるBGMを1~3文で記述します。

non_diegetic_music: Sparse piano notes at a slow tempo, joined by sustained low strings that gradually increase in volume before fading out.

非劇音楽:遅いテンポでまばらに奏でられるピアノの音色に、持続する低音の弦楽器の音が重なる。その音量は徐々に大きくなり、やがてフェードアウトしていく。

  • 楽器
  • テンポ
  • リズム
  • 音量の変化
  • 曲の始まり方と終わり方

BGMを入れない場合はN/Aとします。

non_diegetic_music: N/A

R2Vのプロンプトの書き方

R2Vは次の6項目で構成されています。

subject_definitions:
summary:
retention_analysis:
detailed_description:
overall_soundscape:
non_diegetic_music:
項目内容
subject_definitions参照素材と役割を定義
summary生成する動画と参照関係を要約
retention_analysis引き継ぐ特徴と保持レベルを指定
detailed_descriptionショット、動き、カメラ、セリフ、音声
overall_soundscape環境音と動作音
non_diegetic_music視聴者だけに聞こえるBGM

参照ラベル

<Subject N>:人物、物体、背景、衣装、動き、スタイル
<Picture N>:先頭・末尾・キーフレーム、構図
<Video N>:編集元、続きの起点、カットやカメラ
<Audio N>:声質、セリフ、効果音、音楽、リズム

人物の外見を画像、動きを動画から取得する場合は、1つのSubjectへまとめます。

<Subject 1> is the woman whose appearance comes from <Picture 1> and whose walking motion comes from <Video 1>.

保持方法

映像にはfully_preservedpartially_preservedattribute_transferweak_referenceを指定します。

<Subject 1> (appears in [Shot 1], [Shot 2]): fully_preserved - the character's face, hairstyle, and clothing are retained.

音声にはfully_copypartially_copyreferenceweak_referenceを指定します。

<Audio 1>: reference - the target speaker follows <Audio 1>'s voice timbre and delivery.

ショットと日本語のセリフ

detailed_descriptionでは、映像スタイルを最初に書き、その後にショットを並べます。

detailed_description:
The target video uses a cinematic live-action style with cool lighting.

[Shot 1] ...
[Shot 2] At 00:05.000, ...

MiniMax H3 プロンプト ライティング ガイド
https://huggingface.co/MiniMaxAI/MiniMax-H3/tree/main/docs

動画時間とフレーム数(duration)

外側のサブグラフにはdurationがあり、初期値は5秒です。入力欄では秒数を指定しますが、モデルへ渡す際は24fpsのフレーム数へ変換されます。

MiniMax H3のフレーム数は任意の数値ではなく、17k+5の規則へ合わせます。公式テンプレートではComfyMathExpressionが秒数をフレーム数へ変換します。

max(5, round(a * 24))
+ (5 - (max(5, round(a * 24)) % 17)) % 17

5秒を24fpsへ変換すると120フレームですが、規則に合う次の値へ補正されて124フレームになります。

124フレーム ÷ 24fps = 約5.17秒

そのため、durationで指定した秒数と完成動画の再生時間にはわずかな差が生じます。

RandomNoiseでノイズを作成し、BasicGuiderBasicSchedulerKSamplerSelectの出力をSamplerCustomAdvancedへ送ります。

サンプリング対象は映像だけではなく、MiniMax H3の映像・音声統合Latentです。

映像と音声のデコード

SamplerCustomAdvancedから出力された同じLatentが、2つのデコード処理へ分岐します。

  • VAEDecode:映像フレームへ変換
  • VAEDecodeAudio:ステレオ音声へ変換

映像と音声はCreateVideoで再び合流します。

完成した音声付き動画はSaveVideoへ送られ、初期設定ではvideo/MiniMax_H3というファイル名プレフィックスで保存されます。フォーマットとコーデックはautoです。

「Use Image Size」グループの扱い

I2Vのテンプレート下部には初期状態では生成経路へ接続されていません補助ノードがあります。

  • Scale Image to Total Pixels
  • GetImageSize

入力画像の比率を出力動画へ引き継ぐ場合は、次のように配線します。

  1. LoadImageScale Image to Total Pixelsへ接続
  2. 拡大縮小後の画像をfirst_frameへ接続
  3. 同じ画像をGetImageSizeへ接続
  4. GetImageSizeの幅と高さをサブグラフへ接続
  5. ResolutionSelectorからの幅・高さを外す

ImageScaleToTotalPixelsの初期値は1MP・32の倍数・nearest-exactです。公式テンプレートでは、このグループを入力画像のアスペクト比で生成したい場合の選択肢として置いています。