RunningHub MiniMax H3 Ref2VA Encode (Legacy)
Fusing References and Prompt Into H3 Conditioning
- h3_text_encoder
- h3_vae_bundle
- target
- references
- conditioning
This is where MiniMax H3's reference generation actually comes together. The reference nodes just build a list of images, audio and video; this node takes that ordered list plus your prompt and runs it through H3's Qwen3-VL encoder and VAEs to produce the MINIMAX_H3_CONDITIONING the sampler denoises against. If the reference nodes are the ingredients, this is the oven.
Inputs
- h3_text_encoder - the Qwen3-VL loader handle. It's doing the heavy lifting here, fusing text and multimodal references into one conditioning context - which is exactly the "omni-modal" design H3 was built around.
- h3_vae_bundle - the dual VAE bundle, needed to encode image and video references into H3's latent space.
- target - the
MINIMAX_H3_TARGETfrom the Ref2VA Target node. Resolution, duration, and the agreed contract for the whole graph. - references - the
MINIMAX_H3_REFERENCESlist from the chained reference nodes. Order matters; this is where it gets consumed. - prompt - your text direction, multiline. With references present, the prompt is where you describe what should happen - the action, motion, and any audio direction the references don't already dictate.
The one optional input worth knowing:
- ref_image_size -
match(default) scales reference images to the generation canvas by area (downscale only);maxruns the reference pipeline at an independent 2048 short edge for maximum fidelity. The tooltip is blunt about the cost: reference tokens sit in attention for every sampling step, somaxcan be several times slower. Use it when identity really matters - a face you need to keep - and usematchotherwise.
Output: conditioning - the MINIMAX_H3_CONDITIONING feeding the Dual Sigma Sampler.
Gotchas
The encode node is where fingerprint mismatches surface. It checks that the target's reference order matches what you're encoding - change the chain order between building the target and running the encode and you'll get a hard error rather than silently wrong output. That's the pack being helpful; chase it back to the reference chain, don't fight it.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI-RH-MiniMax-H3.git
pip install -r ComfyUI-RH-MiniMax-H3/requirements.txt
Restart, pull the ~95 GiB INT8 ConvRot bundle into ComfyUI/models/MiniMax-H3-INT8-CONVROT/, and have system ffmpeg/ffprobe for video/audio references. Legacy node - RHMiniMaxH3RefGen wraps this flow today - but the encode step and its ref_image_size tradeoff are the real mechanics either way. License as pack-wide: H3's Community License excludes the US, EU, UK and South Korea from local-weights use.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_text_encoder | MINIMAX_H3_TEXT_ENCODER | — | |
| h3_vae_bundle | MINIMAX_H3_VAE_BUNDLE | — | |
| target | MINIMAX_H3_TARGET | — | |
| references | MINIMAX_H3_REFERENCES | — | |
| prompt | STRING | — | |
| ref_image_sizeopt | COMBO | match | 参考图尺寸策略。match:按生成画布的像素面积等比只缩不放;max:参考管线独立的 2048 短边,identity 保真最好。参考 token 每个采样步都参与注意力,max 可能慢数倍。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | MINIMAX_H3_CONDITIONING | — |