Nodes/ComfyUI-UtilsCollection/MiniMax H3 First/Last Frame + References
ComfyUI Node

MiniMax H3 First/Last Frame + References

First frame, last frame, and a stack of references

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
MiniMax H3 First/Last Frame + References
  • model
  • clip
  • vae
  • first_frame
  • last_frame
  • reference_images
  • model
  • positive
  • LATENT
prompt
width1344
height768
length124
ref_image_sizematch
vlm_resolution384

MiniMax H3's strongest trick is image-to-video with real control, and UC_MiniMaxH3FirstFrameReferences is the pack's one-stop node for it. Give it a first frame (the frame-zero anchor), optionally a last frame, and up to a stack of ordered reference images, and it builds all three things a video run needs: the patched model, the positive conditioning, and the latent. Wire all three into the sampler together and you get a video that starts from your frame, moves toward your last frame, and borrows look, subject and composition from your references along the way.

It's part of silveroxides/ComfyUI-UtilsCollection's MiniMax H3 tooling, and it's marked experimental - which is fair, because the picture-to-picture mapping is the fiddly bit. The first frame is a real anchor: it's both Qwen's <Picture 1> and the VAE-encoded keyframe, so the model actually starts from it. The last frame, when connected, becomes <Picture 2>, and your ordered references start at <Picture 3>. That numbering isn't cosmetic - H3's Qwen encoder reads pictures in order, so the assignment decides the whole narrative sequence.

What's on the node

  • model / clip / vae - the H3 diffusion model, the Qwen3-VL 32B text encoder (qwen3vl_32b), and the H3 video VAE used for the first frame and every reference.
  • first_frame - exactly one image. This is your anchor; make it good.
  • last_frame (optional) - the final-frame anchor. Connect it and everything shifts up a picture number.
  • reference_images - an autogrow list of ordered references (up to 16 sockets, batches expand in order). This is your storyboard.
  • prompt - raw H3 prompt. Important: no image placeholders or aliases are interpreted here; the picture labels come from the node's own wiring.
  • width / height - defaults 1344×768, the H3-friendly starting geometry.
  • length - frame count at 24fps (default 124), snapped upward to H3's 17k+5 temporal grid.
  • ref_image_size - match limits each reference to the generation's pixel area; max allows up to 2048 on the short edge. Both keep aspect ratio and align to 32px.
  • vlm_resolution - equivalent-square Qwen3-VL target (default 384); out-of-range values keep the original image resolution.

Outputs

  • model - the patched clone. Must feed the sampler, along with the other two outputs; the node description hammers this because people connect positive+latent and wonder why the anchors don't apply.
  • positive - the conditioning to feed the sampler's positive input.
  • LATENT - the latent to sample.

Installing it

Via the pack:

  • ComfyUI Manager: search "ComfyUI-UtilsCollection".
  • Or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection

Restart ComfyUI. The node needs no extra pip packages, but you need H3 itself plus the VAE - a heavy, license-gated download, with the US/EU/UK/Korea outside the applicable territory.

Gotchas

The top failure is forgetting the patched model must go to the sampler - this node returns a patched model, not the same one you put in. Second: reference timing is a prompt-level instruction, not a hard frame map, so results are stochastic; the README's own example "reproduced the main framing" rather than matching frames exactly. Third, keep references ordered and consistent in style, or the encoder gets confused about which one to follow. And vlm_resolution is independent of VAE sizing - cranking it up improves what Qwen sees in your references but costs tokens and time, so treat 384 as the sane default and raise it only when the model is misreading your storyboard.

Categorymodel/conditioning/minimax

Inputs (12)

NameTypeDefaultDescription
modelMODELMiniMax H3 diffusion model. The returned patched clone must feed the sampler.
clipCLIPMiniMax H3 Qwen3-VL 32B text encoder (qwen3vl_32b).
vaeVAEMiniMax H3 video VAE used for the first frame and every image reference.
first_frameIMAGEExactly one frame-zero image. It is Qwen <Picture 1> and the VAE keyframe anchor.
promptSTRINGRaw MiniMax H3 prompt; no image placeholders or aliases are interpreted.
widthINT134432–16384
heightINT76832–16384
lengthINT1245–3600Frame count at 24 fps, snapped upward to MiniMax H3's 17k+5 temporal grid.
ref_image_sizeCOMBOmatchMatch limits each reference to the generation pixel area; max limits its short edge to 2048 pixels. Both preserve aspect ratio and align to 32 pixels.
vlm_resolutionINT3840–4096Equivalent-square Qwen3-VL target from 256 to 3584. Values outside that range preserve the original image resolution. This is independent of VAE frame and reference sizing.
last_frameoptIMAGEOptional final-frame anchor. When connected it becomes Qwen <Picture 2>, and references start at <Picture 3>.
reference_imagesoptCOMFY_AUTOGROW_V3Optional one-based ordered references. Socket order is numeric and images inside a batch retain batch order. reference_image_1 is Qwen <Picture 2>.

Outputs (3)

NameTypeDescription
modelMODEL
positiveCONDITIONING
LATENTLATENT