RunningHub MiniMax H3 FL2VA Encode (Legacy)
Turning Keyframes and a Prompt Into H3 Conditioning
- h3_text_encoder
- h3_vae_bundle
- target
- keyframes
- conditioning
If you want MiniMax H3 to animate between frames you give it - a first frame, or a first and last frame, with the model inventing the motion, and the audio, in between - this is the node that assembles the request. It's the FL2VA encode step: it takes your keyframes plus your text prompt, pushes them through H3's Qwen3-VL text encoder and video VAE, and emits the MINIMAX_H3_CONDITIONING that the Dual Sigma Sampler will denoise against.
Inputs
- h3_text_encoder - from the Qwen3-VL loader. This is what reads your prompt (and, because it's a vision-language model, can fuse the visual context too).
- h3_vae_bundle - the dual VAE bundle, needed here to encode your keyframe image(s) into H3's video latent space.
- target - the
MINIMAX_H3_TARGETfrom the FL2VA Target node. This pins resolution, duration and frame count, and it's what keeps conditioning, latent, and sampler all speaking the same shape. - keyframes - a
MINIMAX_H3_FL_KEYFRAMESobject fromFL2VAFirstFrameCondition(first, or first+last) orFL2VALastFrameCondition(last only). - prompt - your text direction. Multiline, and the place to describe the action, camera, and anything about the scene the frames don't already say.
Output: conditioning - the MINIMAX_H3_CONDITIONING object that feeds the sampler. This is the FL2VA analogue of "CLIP Text Encode" in an SD workflow, just carrying a lot more than text.
The FL2VA mental model
FL2VA = "First/Last Frame to Video with Audio." The first/last-frame conditioning nodes only package the image(s); this encode node is where the actual encoding happens - image into video-latent space, prompt into text embeddings, all fused into one conditioning tensor. Then RHMiniMaxH3FL2VATarget sets the canvas size and duration. The order in a graph is typically:
Load Image → FL2VA First/Last Frame Condition → (keyframes) → FL2VA Target → FL2VA Encode → Sampler
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, and the ~95 GiB INT8 ConvRot bundle into ComfyUI/models/MiniMax-H3-INT8-CONVROT/ (hf download Gluttony10/MiniMax-H3-INT8-CONVROT --local-dir ./models/MiniMax-H3-INT8-CONVROT, ModelScope in China). ComfyUI 0.27+, CUDA PyTorch. It's a legacy node - the modern RHMiniMaxH3VideoGen wraps FL2VA in one node - but the encode step is exactly what it does internally. License as pack-wide: H3's Community License excludes the US, EU, UK and South Korea from local-weights use.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_text_encoder | MINIMAX_H3_TEXT_ENCODER | — | |
| h3_vae_bundle | MINIMAX_H3_VAE_BUNDLE | — | |
| target | MINIMAX_H3_TARGET | — | |
| keyframes | MINIMAX_H3_FL_KEYFRAMES | — | |
| prompt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | MINIMAX_H3_CONDITIONING | — |