MiniMax H3 R40 · Selected AV Decode
Where the winning R40 take becomes real frames and locked audio
- sampled_latent
- video_vae
- audio_vae
- cine_linx
- native_frames
- native_audio
- bridge_last_frame
- sampled_latent
- native_fps
- report
Scouting gives you a winner; this node makes it real. IAMCCS_MiniMaxH3SelectedDecodeR40 is where the R40 Shot Lab finally stops living in latent space and produces actual video frames with audio - the full native decode of the take you chose, ready to become the checkpoint that everything downstream builds on.
Decode is the wrong word for what makes this node special, though. It's the moment the pipeline commits. It takes the winning candidate's sampled latent and decodes both halves of the H3 nested latent: video through the video VAE and audio through the audio VAE, in one go. That's a MiniMax H3-specific capability - audio isn't bolted on later, it's generated with the picture and lives in the same latent, so a proper H3 decode needs both VAEs. This node has two VAE sockets for exactly that reason, which is a good smell test for whether a node actually understands H3.
The trim logic matters too. Video segments in this framework carry context/overlap frames from the previous chunk, and nobody wants those in the delivered shot. The node trims the front (trim_frames), then cuts to exactly the visible frame count the planner promised - and if the decode somehow comes up short of what the planner requires, it raises rather than silently delivering a truncated clip. Audio gets fitted to the visible frames at the framework's 24 fps. You get a bridge_last_frame out the side, a copy of the final visible frame that the next segment can use for continuity. For long multi-chunk renders that bridge frame is how the next chunk knows where the story is.
Inputs and outputs
Inputs: sampled_latent (the winner, from SeedSelectR40), video_vae and audio_vae, cine_linx (for the shot plan and chunk metadata), chunk_index, and trim_frames - the last two forced in from the planner so the trim always matches the plan.
Outputs:
native_frames(IMAGE) andnative_audio(AUDIO) - the decoded take, the heart of the output.bridge_last_frame(IMAGE) - the continuity frame for the next segment.sampled_latent- passed through so downstream nodes keep a handle on the latent it came from.native_fps(INT, always 24) andreport.
Those native_frames / native_audio outputs are what feed the native checkpoint and, from there, whichever delivery branch your render uses.
Things worth knowing
VRAM is the real story here. H3 decode is memory-hungry, and if the shot plan enables it, the node cleans VRAM before decoding to avoid an OOM right at the finish line. On a long or 2K shot that pre-decode cleanup is often the difference between a clean commit and a crash after twenty minutes of sampling.
Also note what this node is not: it's not the final deliverable. It decodes the native take at its native resolution. The stage-2 upscale/refine pass (PixelRefineR40) happens afterward on a separate path. Native stays native - that's the design - and if you want a sharper final file, that's stage-2's job, not this node's.
Install
It ships in IAMCCS-nodes, installable via ComfyUI Manager (search "IAMCCS") or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes
restart, and you're done with the pack. The surrounding requirements are the usual H3 stack: current ComfyUI (≥ 3.x) with native H3 support, Python ≥ 3.12, PyTorch ≥ 2.8, the ~42 GB MiniMax H3 weights plus its video and audio VAEs. And again, the licence: H3's community terms exclude the US, EU, UK and Korea.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| sampled_latent | LATENT | — | |
| video_vae | VAE | — | |
| audio_vae | VAE | — | |
| cine_linx | IAMCCS_SUPERNODE_LINX | — | |
| chunk_index | INT | — | |
| trim_frames | INT | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| native_frames | IMAGE | — |
| native_audio | AUDIO | — |
| bridge_last_frame | IMAGE | — |
| sampled_latent | LATENT | — |
| native_fps | INT | — |
| report | STRING | — |