MiniMax H3 Easy Output
The node that turns H3 context back into wires ComfyUI actually understands
- h3_context
- positive
- latent
- video_vae
- audio_vae
- fps
Why a "context" needs unpacking at all
The MiniMax H3 Easy node is deliberately compact: it outputs just model and h3_context. The context is a bundle holding everything else the graph needs - the conditioning, the latent, both VAEs, and the frame rate - all tucked into one custom type. That's tidy until you remember the rest of ComfyUI doesn't speak MINIMAX_H3_CONTEXT. Your KSampler wants CONDITIONING and LATENT, your video save node wants a VAE and an FPS, and none of them will touch a bundle. MiniMaxH3EasyOutput is the adapter that unpacks it back into the standard wires everyone else expects.
It's the node you'll always have downstream of the main Easy node, and it's dead simple: one input, five outputs, no settings.
Inputs
h3_context- connect theh3_contextoutput from MiniMax H3 Easy. That's it. If you feed it anything else, it errors with a pointed "Connect the H3 Context output from a MiniMax H3 Easy node" rather than silently misbehaving.
Outputs
positive(CONDITIONING) - the encoded prompt conditioning. This goes into your sampler's guider (BasicGuiderin the included workflow).latent(LATENT) - the empty AV latent the sampler denoises. H3's video latent carries the audio track alongside the frames, which is why it looks unusual next to SD-style 4-channel latents.video_vae(VAE) - the H3 video VAE, used when decoding frames or when a second pass needs to re-encode.audio_vae(VAE) - the H3 audio VAE. It comes out separately so audio-aware nodes (and the included pass-2 workflow's latent split) can use it directly.fps(FLOAT) - the frame rate you set on the main node, forwarded as a plain number for the video save node.
In the stock workflow the wiring is: MiniMaxH3Easy → MiniMaxH3EasyOutput, then positive → BasicGuider, latent → SamplerCustomAdvanced, and video_vae + fps → the video saver. If you're using the second-pass refinement graph, latent and the VAEs are also what feed the latent split and re-encode steps upstream of the second sampler.
Install
Same as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/nkxx188/ComfyUI-MiniMaxH3-Easy
or search "MiniMax H3 Easy" in ComfyUI Manager, then restart ComfyUI. It has no extra Python dependencies worth mentioning - the models you already downloaded for the loader are the ones it passes through.
Things worth knowing
This node does no generation and holds no state; it's pure plumbing, and that's exactly the point. Because the main node keeps its outputs bundled, you can't accidentally wire the wrong thing to the sampler - the type mismatch stops you. The one trap is conceptual: h3_context is a snapshot. If you change something on the main node (resolution, mode, prompt) and want the downstream graph to match, the output node re-fires on the next run like any cached node. Nothing to clean, nothing to reset.
One genuine footgun that isn't this node's fault: it hands you an fps value, but H3 frames are aligned to 5 + 17n counts, so fps is the requested rate, not an exact frame-count guarantee. Save nodes that compute duration from frames / fps will show the slight rounding - it's the model's constraint, not a broken wire.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_context | MINIMAX_H3_CONTEXT | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |
| video_vae | VAE | — |
| audio_vae | VAE | — |
| fps | FLOAT | — |