写真やイラストからキャラクターのファイルを作り、動画を生成するときに繰り返し呼び出せます。
RefModは、人物やキャラクターを繰り返し使うためのカスタムノードです。LoRAの学習を行わずに作成でき、ComfyUI上でファイルを選んで動画生成へ組み込めます。
開発者はこれを「Light LoRA」と紹介しています。使い方もLoRAローダーに近く、保存したファイルを選び、強度を調整する構成です。キャラクターの画像に加え、動作を含む動画や音声も素材として扱えます。

写真やイラストを、呼び出して使えるキャラクターファイルに
通常の画像参照では、生成の材料となる写真やイラストを読み込みます。RefModでは、その素材をあらかじめ変換し、.safetensorsファイルに保存しておきます。次に動画を作るときは、このファイルをロードして使います。
保存するのは、VAEが画像や動画を数値データへ変換した潜在表現です。H3のモデルが扱える形にした素材を保存するため、作成にはH3用のVAEを使います。動画生成用モデルの重みは、そのまま使います。
同じ素材を繰り返し使う際には、VAEによる変換工程を省けます。さらに圧縮モードを選ぶと、生成時に処理する素材のデータ量も減らせます。
人物だけでなく、動きやスタイルも素材にできる
画像は人物の外見や衣装、画風などの材料として、動画は時間とともに変わる動作の材料として使えます。複数のRefModを読み込むことで、人物の画像と動作の動画を組み合わせる構成も作れます。
生成したい内容はプロンプトで指定します。人物の外見を使うのか、衣装やスタイルを使うのか、動画の動きを使うのかを文章で示し、読み込んだ素材と指示を組み合わせます。
素材を細かく残す設定と、情報量を抑える設定は次の2種類です。
| モード | 保存する情報 | 用途の出発点 |
|---|---|---|
| Full Reference | リサイズ後にVAEで変換した潜在表現 | 顔や衣装の細部を含む人物・キャラクター |
| Compressed Reference | 小さいグリッドへ圧縮した潜在表現 | 情報量を抑えて使いたいスタイルや動画素材 |
ComfyUIへ導入する
custom_nodes フォルダーの空いている場所を右クリックし、ターミナルで開く を選びます。
開いたターミナルで、次のコマンドを実行します。
git clone https://github.com/Luisacaotica/ComfyUI-MiniMaxH3Mod
追加後はComfyUIを再起動します。
RefModを作成する
RefModにはいくつかのノードがあります。
- Create H3 RefMod:画像や動画を参照
- Create H3 RefMod Master:画像、動画、音声を参照
- Create H3 Audio RefMod:音声だけを参照
- Load H3 RefMod Folder:フォルダからまとめて参照
- Inspect H3 RefMod:保存された参照の情報表示
今回は、個別に読み込む方法を取り上げます。
1. 空のワークフローにノードを追加する
キャンバスの空いている場所をダブルクリックし、次のノードを追加します。
- Load Image:RefModに保存する参照画像を読み込みます。画像の枚数に合わせて追加します。
- Load VAE:参照画像をMiniMax H3のデータへ変換する映像VAEを読み込みます。
- Create H3 RefMod:画像を変換し、RefModとして保存します。
- Preview as Text:作成結果を文字で表示します。ComfyUI標準のノードで、必須ではありません。
画像は、RefModへまとめたい参照内容に合わせて用意します。同じ対象の複数の画像をまとめる場合は、各画像を個別の Load Image で読み込みます。
2. 画像とVAEを接続する
Load ImageのIMAGE出力を、Create H3 RefModの最初のref_image_0入力へ接続します。- 接続すると次の画像入力が現れます。複数枚を使う場合は、追加した
Load Imageを順に接続します。 Load VAEのVAE出力を、Create H3 RefModのvae入力へ接続します。Create H3 RefModのdetails出力を、Preview as Textのsource入力へ接続します。
Load VAE は minimax_h3_video_vae_int8_convrot.safetensors を選択します。

3. Create H3 RefModを設定する
- name:保存するファイルの名前です。任意の名前を入力します。同じ保存先で同じ名前を使うと上書きされるため、別のRefModとして残すときは名前を変えます。
- mode:保存する参照データの圧縮方法です。初期値の
Compressed Referenceは、変換したデータを小さい格子へ圧縮します。Full ReferenceはVAE変換後のデータを保存します。細部を残すことを優先する構成ではFull Referenceを選択します。参照情報量と処理負荷を抑えたい場合はCompressed Referenceを選択します。 - concept_type:参照内容の分類をファイルへ記録します。人物・キャラクターなら
identity、ポーズ・動きならpose_motion、服装ならclothing、背景ならbackground、画風ならstyle、分類を指定しない内容や混合した参照ならgenericを選択します。Full Referenceの画像変換処理は、これらの分類で共通です。 - background_retention:マスクを接続したとき、指定領域の外側をどの程度残すかを調整します。0では外側を強くぼかし、1では元の情報を残します。
- ref_resolution:変換前の参照画像の短辺に対する解像度の上限です。256~2048、64刻みで設定します。短辺が設定値より大きい画像を縮小し、縦横を32ピクセル単位へ調整します。複数画像は最初の画像に処理サイズをそろえ、必要に応じて中央を切り抜きます。
- pool_h / pool_w:Compressed Referenceで保存する格子の縦・横のサイズです。初期値は各16です。Full Referenceの構成では初期値を維持します。
- latent_frames:動画参照のフレーム数を制御します。初期値は16、最小値は1です。静止画は1枚につき1フレームとして処理されます。
- Refinement Steps:Compressed Referenceで、圧縮したデータを元の変換データへ近づける調整回数です。0~2000、50刻みで設定します。Full Referenceの構成では初期値の500を維持します。
- merge:Compressed Referenceで複数の参照をまとめる方法です。
stackは各参照を順に保持し、mergeは共有するデータへまとめます。Full Referenceの構成では初期状態のstackを維持します。 - motion_only:Compressed Referenceで動画のフレーム間変化を取り出す実験的な設定です。画像を使う構成では初期状態の
fullを維持します。 - multiplier:作成した参照データを繰り返す回数です。1~10で設定し、増やすと保存するデータ量とトークン数も増えます。
- max_tokens:保存する参照データのトークン数の上限です。初期値は5120、0で上限を解除します。
- extraction_preset:作成設定のプリセットです。用途別のプリセットを選ぶと、対象項目がプリセットの値で上書きされます。個別に設定した値を使う構成では
manualを選択します。 - subfolder:RefModの保存先に作るサブフォルダーです。直下へ保存するときは空欄にします。
- description:参照内容の説明を保存する任意の欄です。必要に応じて記入します。
- save:ファイルへ保存する設定です。後から読み込んで使う場合は有効にします。
- budget_policy:トークン上限を超えた場合の処理です。初期値の
truncateは保持するフレームを減らして上限へ収めます。errorは保存を止め、上限超過をエラーで知らせます。
modeがFull Referenceでの作成では、name を入力し、concept_type を参照内容に合わせます。そのほかは初期値で始め、トークン上限を作成結果に合わせて調整します。
4. 実行して保存先と作成結果を確認する
save を有効にしている場合は Create H3 RefMod は、作成とファイル保存まで実行します。
保存先は ComfyUI\models\refmods です。ファイル名は name に入力した名前に .safetensors を付けたものになります。subfolder を指定した場合は、その下のフォルダーへ保存します。extra_model_paths.yaml で refmods の保存先を登録している環境では、登録された保存先が使われます。実際の保存場所は結果の saved_paths で確認できます。
Preview as Text に表示された結果を、次の項目で確認します。
| 項目 | 確認する内容 |
|---|---|
| name | 保存名 |
| kind | 保存形式。1フレームはimage、複数フレームはvideo |
| latent_frames | 実際に保存されたフレーム数 |
| tokens | 実際に保存されたトークン数 |
| source_shape | 入力ごとのVAE変換直後の形状 |
| saved_paths | 保存されたファイルの絶対パス |
複数の静止画を保存した場合は、latent_frames と入力枚数を照合します。truncate によって枚数が減っていたら、max_tokens を調整して再実行します。
source_shape の各項目は フレーム数×高さ×幅 です。各項目の積を合計し、4で割ると、VAE変換直後の参照データに必要なトークン数を求められます。multiplier が1の構成では、この値以上になるように max_tokens を512刻みで設定します。再実行後に latent_frames と tokens を確認します。
保存を別ノードへ分ける場合は Save H3 RefMods を使います。Create H3 RefMod の save を無効にし、mods 出力を Save H3 RefMods の mods 入力へ接続して保存します。上記の構成は、作成ノード内の保存機能を使います。
トークンの算出
Create H3 RefModノードのdtailsにPreview as Textノードを接続するとRefModの作成結果が表示されます。
source_shapeに「1x64x64 +1x64x64 +1x64x64 +1x64x64 +1x64x64」のような式が出ますので、そのままgoogleで検索すると電卓と計算結果の20480が表示されます。これを4で割って出た5120がトークン数となります。
"latent_frames": 3,
"tokens": 4524,
"source_shape": "1x58x104 +1x58x104 +1x58x104 +1x58x104 +1x58x104",
上記の場合7540トークンで設定よりオーバーして2つの画像が欠落してるのでmax_tokensに7680(512刻み)を入力して調整。
公式T2VワークフローにRefModを組み込む
生成モデルは Ref2VA を使用します。
ApplyとText Encodeの違い
Apply H3 RefMod は、プロンプトをエンコードした後の生成条件へ参照データを追加します。H3 RefMod Text Encode は、保存した画像・映像の参照を復元して画像・テキストエンコーダーにも渡し、プロンプトと参照を一緒にエンコードします。
Apply・Text Encodeの両方式で、subject_definitionsに人物と参照元の対応を定義し、<Subject 1>・<Subject 2>で人物ごとの配置や動作を指定します。
Applyを使う接続
サブグラフ内に Load H3 RefMods と Apply H3 RefMod を追加します。
| 接続元 | 接続先 |
|---|---|
| MiniMax H3 Image to Video:positive | Apply H3 RefMod:conditioning |
| Load H3 RefMods:mods | Apply H3 RefMod:mods |
| Apply H3 RefMod:conditioning | Basic Guider:conditioning |
プロンプトは既存の MiniMax H3 Image to Video に記述します。
Text Encodeを使う接続
Applyを使う接続に代えて、H3 RefMod Text Encode でプロンプトと参照をエンコードします。
| 接続元 | 接続先 |
|---|---|
| Load CLIP:CLIP | H3 RefMod Text Encode:clip |
| Load VAE:VAE | H3 RefMod Text Encode:vae |
| Load H3 RefMods:mods | H3 RefMod Text Encode:mods |
| H3 RefMod Text Encode:conditioning | Basic Guider:conditioning |
プロンプトの入力先は H3 RefMod Text Encode、生成用LATENTの供給元は既存の MiniMax H3 Image to Video です。Text Encodeの conditioning は参照データを含み、Basic Guider へ直接接続する構成です。
読み込むRefModと強度
Load H3 RefMods の RefMod library は、保存したRefModを一覧で選ぶ画面です。読み込み先の欄(mod_1 など)を選び、対象ファイルの Use を押すと選択が反映されます。保存時の concept_type は分類、description は説明として表示されます。
読み込み欄は + Add RefMod で増やせます。作成直後のファイルは Refresh RefMods またはライブラリ内の Refresh で一覧を更新します。
以下は、各参照を強度1・1組ずつ読み込む設定例です。
| 項目 | 値 | 動作 |
|---|---|---|
| strength | 1 | 保存した参照を元の強度で渡す |
| copies | 1 | 各参照を1組渡す |
| components | All | 保存された画像・映像・音声を読み込む |
| visual_strength | 1 | 画像・映像側の追加倍率 |
| audio_strength | 1 | 音声側の追加倍率 |
| max_total_tokens | 0 | 読み込み全体の上限を解除 |
画像参照の強度を下げると、ぼかした参照データが混ざります。copies を増やすと同じ参照が複製され、トークン数も増えます。画像だけを保存したファイルは、components=All で画像参照が読み込まれます。
Apply H3 RefModの設定
参照全体を強度1で渡す設定例です。
| 項目 | 値 | 動作 |
|---|---|---|
| override | false | ノード上の設定を使用 |
| retention | 1 | 読み込み側の強度に掛ける倍率 |
| curve_direction | constant | 各参照フレームへ一定の強度を適用 |
| curve_shape | linear | constantと組み合わせて強度を維持 |
| curve_value | 1 | カーブ側の強度 |
| scramble_seed | -1 | 参照の順序を維持 |
| graph_preset | (none) | 上記のカーブ設定を使用 |
| max_total_tokens | 0 | Apply側の上限を解除 |
scramble_seed=-1 では、並べ替えの設定は実行されません。この設定例の save_preset_as は空欄です。
RefModのプロンプトの書き方
人物と参照元の対応を subject_definitions で定義し、本文の detailed_description では <Subject 1>・<Subject 2> を使って衣装や動作を書き分けます。
参照番号と人物の対応
参照番号は kind=image が <Picture n>、kind=video が <Video n> です。番号は種類ごとの読み込み順で付き、強度0の参照を除外し、copies による複製も数えます。複数の画像を kind=video として作成したRefModも、1件の <Video n> として扱います。
MiniMax H3の参照用プロンプトの書式
MiniMax H3のRef2VA用の書式は、次の6項目から成ります。
subject_definitions:参照する人物や物体と、参照元の対応。summary:生成する動画と参照の用途の要約。retention_analysis:参照から引き継ぐ内容と、登場するショット。detailed_description:映像・動作・音をショット順に記述する本文。overall_soundscape:環境音。non_diegetic_music:BGM。
人物には <Subject n>、参照元には <Picture n>・<Video n> を使います。subject_definitions で人物と参照元を対応付け、以降は同じSubjectラベルでその人物を記述します。
RefModの参照番号
RefModの参照番号は、kind=image が <Picture n>、kind=video が <Video n> です。種類ごとの読み込み順で番号が付き、強度0の参照を除外し、copies による複製も数えます。複数の画像から作成した kind=video のRefModは、1件の <Video n> に対応します。
検証で使った書き換え例
この検証例では、元の場面・構図・動作を引き継ぎ、T2Vの3項目から上記の6項目へ変更しました。subject_definitions・summary・retention_analysis を加え、本文の項目名を integrated_multimodal_description から detailed_description に変更しています。
参照には、画像5枚ずつから作成した kind=video のRefModを2件使いました。人物の髪型・服装の列挙を省き、人物定義を次のように記述しました。検証で使ったプロンプトからの抜粋です。
subject_definitions:
<Subject 1> is the woman in <Video 1>.
<Subject 2> is the woman in <Video 2>.
元の本文では、左右の位置で人物の動作を書き分けていました。
From 0 to 2 seconds, the left woman gives a small wave toward the camera.
From 2 to 5 seconds, the right woman nods once and smiles.
書き換え後の本文では、配置と動作をSubjectラベルで指定しました。この作例では、1人目を左、2人目を右に配置しています。
[Shot 1] <Subject 1> stands on the left beside <Subject 2> on the right on a quiet Japanese city sidewalk.
From 0 to 2 seconds, <Subject 1> gives a small wave toward the camera.
From 2 to 5 seconds, <Subject 2> nods once and smiles.
この6項目のプロンプトをApply版とText Encode版で使用しました。それぞれの生成動画で、参照1の人物が左で手を振り、参照2の人物が右でうなずき、左右の配置を全尺で維持しました。



