MiniMax H3 Image + Reference to Video
MiniMax H3 with a real anchor at both ends, not just vibes
- clip
- vae
- first_frame
- last_frame
- ref_images
- positive
- LATENT
Stock MiniMax H3 in ComfyUI handles image-to-video and it handles reference conditioning, but doing both at once usually means stitching conditioning nodes together and hoping the model reads them as one coherent instruction. MiniMax H3 Image + Reference to Video is the VRGameDevGirl convenience wrapper for that exact combo: it takes a first and/or last frame as hard anchors, adds any number of identity/outfit/reference images, and produces the conditioning plus the empty video latent in one node.
It's part of the Video Builder's H3 toolset - the pack that has been driving the local AI-music-video scene since the LTX days, now pointing the same scene-by-scene pipeline at MiniMax's open-weights omni-modal model.
Before you go further: the H3 caveats
Two things you need to know before this node is useful, because neither is a workflow issue:
The model is big and separately licensed. MiniMax H3 (~33B, roughly 42.5GB full precision reported) has to be downloaded and loaded through ComfyUI's MiniMax support - this node only builds conditioning and latents, it does not load the checkpoint. And the MiniMax H3 Community License excludes the EU, UK, South Korea and the United States from its applicable territory. If you're in one of those regions you aren't licensed to run the local weights at all; the hosted Hailuo API is the legal path there. This pack cheerfully assumes you've sorted that out. Worth knowing before you spend the download time.
How it works
Mechanically it's doing four jobs that the stock nodes split up:
- Empty latent - builds an
[frames, height, width]audio-video latent sized to yourlength/width/height. - Keyframes - your
first_frameis VAE-encoded and locked to frame 0;last_framegoes to the final frame. These becomeminimax_keyframesin the conditioning, so the model treats them as a start/end to tween, not as suggestions. - References - each image in
ref_imagesis resized to a reference canvas, VAE-encoded at its own latent resolution, and attached asminimax_refs. These preserve identity, clothing, props - but unlike the keyframes they don't pin position. - Prompt tokenization - the text is tokenized with the frame and reference images attached as context, which is how H3's unified text/image context actually consumes them.
Inputs and outputs that matter
clip/vae- wire these from whatever loads the H3 checkpoint in your graph. No loader here.prompt- free-form scene prompt.length- default 124, min 5, and it steps by 17. That's not an accident: H3's native frame counts follow a17n+5rule, and 124 is the top of the native window. If you stray off-convention the model gets unhappy, so use a number like 5, 22, 39, 56, 73, 90, 107, 124.first_frame/last_frame- optional IMAGE anchors. One alone (first only) is classic image-to-video; both give you the "tween between these two stills" shot that music videos love.ref_images- an auto-growing slot (up to 9) for extra reference images. This is your character-sheet input: same person, same outfit, scene references.ref_image_size-match(default) sizes references to the generation canvas and is faster;maxkeeps a larger identity reference and can eat substantially more VRAM.
Outputs are positive conditioning and a LATENT - both feed the MiniMax sampler; after sampling, VAE-decode to frames. Width/height default to 1344×768, which sits in H3's comfortable range.
Install
One clone, whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git
ComfyUI Manager users: search the pack title ("VRGameDevGirl"). Restart and hard-refresh the browser. The requirements file is the heavy one from the README (kornia, librosa, transformers, voxcpm, llama-cpp-python, …) - on Windows portable, install Cython + scikit-build-core first and prefer Python 3.12.
Where people get burned
- Expecting this to be the sampler. It isn't; it's the conditioning half. Missing the model-loading half means "node exists but nothing renders."
- Anchoring both frames but describing a different scene - H3 will fight itself and you'll get morphing. The frames are the contract; keep the prompt consistent with them.
- Ref images at huge resolution with
ref_image_size = maxon a mid card - that's the VRAM spike path. Start withmatch. - Checking out the first frame and last frame from the same source but not accounting for resolution - the node resizes both to your canvas, so source resolution differences get flattened silently. Feed frames at your target aspect.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | — |
| ref_image_size | COMBO | match | Reference image sizing: match the generation canvas or preserve a larger identity reference. |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| LATENT | LATENT | — |