MiniMax H3 Hybrid to Video
The MiniMax H3 node that finally lets you use keyframes AND references in one shot
- clip
- vae
- audio_vae
- first_frame
- last_frame
- ref_images
- ref_videos
- ref_video_audios
- ref_audios
- positive
- LATENT
MiniMax H3 workflows have a structural annoyance baked into ComfyUI's stock nodes, and this node exists to fix it. The stock MiniMax H3 Image to Video node pins a first/last frame as keyframes but builds its own latent and sets only its conditioning key; MiniMax H3 Reference to Video handles <Picture i> / <Video k> / <Audio j> references but does the same on a different key, with its own latent. They cannot be chained - you get keyframes or references, and you choose at graph-build time.
Here's the thing: H3 the model doesn't work that way. Its whole selling point is omni-modal unified context - keyframes and references were trained to sit together in one conditioning. Arisu MiniMax H3 Hybrid to Video is the node that stops pretending otherwise: it sets both conditioning keys on a single conditioning and returns one empty AV latent, so you can pin your opening frame, feed a reference image for the look, a reference clip for the motion, and reference audio for the sound, all in one shot. It's a drop-in replacement for either stock node - delete one, drop this in, reconnect the same wires.
The inputs and outputs that matter
clip,vae- your H3 text encoder and video VAE from the H3 loaders.audio_vaeis optional and only needed when a reference audio (or a reference video's soundtrack) is actually connected.prompt- refer to your inputs by tag. Reference order in the prompt is fixed: images, then videos (each soundtrack's<Audio j>right before its<Video k>), then standalone audio. Ordinals are 1-based per type.width,height,length- the canvas on the 32-pixel grid and the frame count on the 17k+5 grid (124 ≈ 5s; the trained range is roughly 124–362). Wire these from a MiniMax H3 Video Settings node, or let one advertise.ref_image_size- how reference images are sized.matchscales each ref down to the generation's pixel area;maxuses the reference pipeline's 2048px short edge for best identity fidelity. The catch: reference tokens ride through every sampling step, somaxcan be several times slower. For a character whose face must stay intact it's often worth it; for a general vibe shot,match.frame_picture_tags- how the keyframes appear to the text encoder.after_refs(default) keeps reference images as<Picture 1..n>with frames following, so prompts written for the stock Reference to Video node stay valid;before_refsmatches the stock Image to Video numbering;nonepins the frames to the video only, invisible to the prompt.first_frame,last_frame- optional keyframes pinned at frame 0 and the last frame. Note the asymmetry: first frame is stretched to the canvas, last frame is center-cropped.- Autogrow inputs:
ref_images(up to 9),ref_videos(up to 3, frame batches at 24 fps, 2–15s),ref_video_audiosandref_audios(up to 3 each). Every one is optional. - Outputs:
positive(CONDITIONING) andlatent(the empty H3 AV latent) - wire them to the sampler like any stock H3 node.
Wiring it
The keyframes are sent to the model once, as real keyframes - never as extra reference blocks - so frame 0 and the end frame genuinely pin the clip. The output conditioning is compatible with Add Guide for MiniMax H3, which you can chain after this node to anchor more frames. Pair it with the usual ModelSamplingMiniMaxH3 setup (video shift 12.0, audio shift 3.0) as with the stock nodes, and note batch size is 1.
Installing it
Part of ComfyUI-Arisu-Nodes (swqa7697, GPL-3.0, released September 2026) - a zero-dependency pack: no pip install, nothing downloaded on your behalf. It needs ComfyUI ≥ 0.30.0 (the build that added H3 support; developed against 0.34.5) plus the H3 models themselves - the same checkpoint, CLIP, video VAE, and audio VAE the stock H3 nodes need. Manager: Install Custom Nodes → "ComfyUI-Arisu-Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/swqa7697/ComfyUI-Arisu-Nodes.git
Restart, then it's under Add Node → Arisu Nodes.
Gotchas
Two worth knowing. First, the H3 licence is territorial - the MiniMax H3 Community License excludes the US, EU, UK, and South Korea from running the local weights, and nothing here bypasses that; if you're in an excluded region the API is your licensed path. Second, this node doesn't renumber your prompt for you: if your references don't appear in the fixed image-then-video-then-audio order, the tags won't match what the model sees. Everything is optional and combinable, but the order isn't.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | Video VAE; encodes keyframes and visual references. | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | Frame count at 24 fps, snapped up to the model's 17k+5 grid (124 = ~5s; trained range is ~124-362). |
| ref_image_size | COMBO | match | Reference image sizing. 'match' scales each ref (down only, keeping aspect) to the generation's pixel area; 'max' uses the reference pipeline's 2048px short edge for best identity fidelity. Reference tokens ride through every sampling step, so 'max' can be several times slower. |
| frame_picture_tags | COMBO | after_refs | How the first/last frames appear to the text encoder. 'after_refs': reference images keep <Picture 1..n> and the frames follow as <Picture n+1..>. 'before_refs': the frames take <Picture 1..> and references are numbered after them. 'none': the frames only pin the video and are invisible to the prompt. |
| audio_vaeopt | VAE | Audio VAE, needed only when a reference audio or a reference video soundtrack is connected. | |
| first_frameopt | IMAGE | Keyframe pinned at frame 0; stretched to the canvas. | |
| last_frameopt | IMAGE | Keyframe pinned at the last frame; center-cropped to the canvas. | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | COMFY_AUTOGROW_V3 | — | |
| ref_video_audiosopt | COMFY_AUTOGROW_V3 | — | |
| ref_audiosopt | COMFY_AUTOGROW_V3 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| LATENT | LATENT | — |