Nodes/IAMCCS-nodes/MiniMax H3 R40 · Selected AV Decode
ComfyUI Node

MiniMax H3 R40 · Selected AV Decode

Where the winning R40 take becomes real frames and locked audio

By IAMCCS·Created 11 months ago·Updated a day ago· 113
MiniMax H3 R40 · Selected AV Decode
  • sampled_latent
  • video_vae
  • audio_vae
  • cine_linx
  • native_frames
  • native_audio
  • bridge_last_frame
  • sampled_latent
  • native_fps
  • report
chunk_index
trim_frames

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) and native_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) and report.

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.

CategoryIAMCCS/MiniMax H3/R40 Shot Lab

Inputs (6)

NameTypeDefaultDescription
sampled_latentLATENT
video_vaeVAE
audio_vaeVAE
cine_linxIAMCCS_SUPERNODE_LINX
chunk_indexINT
trim_framesINT

Outputs (6)

NameTypeDescription
native_framesIMAGE
native_audioAUDIO
bridge_last_frameIMAGE
sampled_latentLATENT
native_fpsINT
reportSTRING