Nodes/IAMCCS-nodes/MiniMax H3 R40 · Cached Scout → Isolated Stage-2 Delivery
ComfyUI Node

MiniMax H3 R40 · Cached Scout → Isolated Stage-2 Delivery

Where your winning H3 take gets the expensive pass

By IAMCCS·Created 11 months ago·Updated a day ago· 113
MiniMax H3 R40 · Cached Scout → Isolated Stage-2 Delivery
  • model
  • video_vae
  • sampled_latent
  • conditioning
  • cine_linx
  • shot_lab
  • native_frames
  • native_audio
  • video_path
  • report
resolved_render_id
native_saved_report
current_segment
total_segments
context_trim_frames
join_trim_frames
queue_next_segmenttrue

This is the node that finishes an R40 Shot Lab render. If you've scouted cheap seed candidates, picked a winning take, and decoded it natively with its audio, this is where the "isolated stage-2" quality pass actually happens - upscale and refine the chosen take, then write the segment mp4. The display name spells out the whole philosophy: Cached Scout → Isolated Stage-2 Delivery. The word "isolated" is doing real work, and it's the thing to understand first.

MiniMax H3 generates video and native stereo audio in one pass. That audio is the precious, hard-won part of an H3 render, so the R40 pipeline treats it as untouchable. Stage-2 is video-only refinement: it upscales and re-samples the picture while carrying the native audio latent through untouched. Look at the code and you'll see it refuses to proceed if the H3 audio latent changed between stages - a literal "refusing desynchronised delivery" guard. You don't get to reroll audio on a whim; you get to make the picture better.

Mechanically this node runs a windowed refine. The selected stage-2 latent gets upscaled toward your delivery size, then denoised again in overlapping windows (roughly 136-frame chunks with ~22 frames of overlap by default) using ComfyUI's looping sampler with mask carry between windows. Frames are encoded via a streaming save node rather than one giant image batch in RAM, models get unloaded and the cache emptied between decode/upscale/refine passes to keep VRAM sane. When the last segment finishes it concatenates everything into a final film and - if queue_next_segment is on - queues the next segment itself. This is a self-chaining delivery node, not a one-shot saver.

The inputs that matter

There are a lot of sockets, but the ones you actually touch:

  • sampled_latent - the stage-2 latent to refine. Wire this from the upscale path off the winning candidate.
  • conditioning + model - the stage-2 denoise model and prompt conditioning.
  • cine_linx and shot_lab - the two framework objects. cine_linx carries the whole shot plan (upscale mode, window sizes, RTX settings); shot_lab comes from IAMCCS_MiniMaxH3ShotLabControlR40 and holds stage-2-only controls.
  • native_frames, native_audio, native_saved_report - the checkpointed native take, which this node uses for AV bookkeeping and as proof it runs after the native pass.
  • current_segment / total_segments, plus context_trim_frames and join_trim_frames for the AV join.
  • queue_next_segment - defaults on; turn it off if you want to babysit each segment.

Outputs are just video_path (where the segment or final film landed, under output/IAMCCS/MiniMaxH3/R40/) and report.

Install and reality check

Install the pack once - ComfyUI Manager (search "IAMCCS") or:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes

then restart ComfyUI. The README wants a current ComfyUI (≥ 3.x), Python ≥ 3.12, PyTorch ≥ 2.8 on CUDA 12.6/12.8. On top of that you need the MiniMax H3 model itself - roughly 42 GB of weights for the 33B omni-modal model - plus its video and audio VAEs, and H3 running natively in your ComfyUI. Check the licence before you go far: MiniMax's H3 community licence excludes the US, EU, UK and Korea, so in those regions the hosted API is the only legal path.

Where people get burned

  • "Segment already exists" is a hard error. This node refuses to overwrite. If you rerun, start a new render id rather than fighting it.
  • It demands native_saved_report - it has to run after the native checkpoint, and it will tell you loudly if you've bypassed the R40 flow.
  • If the shot plan's upscale mode isn't h3_pixel_refine, it raises on purpose. R40 wires Native/RTX → H3 and nothing else, and RIFE isn't available here - it preserves native 24 fps.
  • Face Detailer enabled but its R38B face branch wasn't applied upstream? Another deliberate error.

This node is not standalone. It's a delivery layer for the IAMCCS Shotboard framework, and the settings that drive it live in the CineLinX shot plan built by upstream IAMCCS planner nodes. Pull in the author's reference workflows (companion comfyui-iamccs-workflows repo) to see the intended wiring, because hand-rolling the graph from scratch is a rough week.

CategoryIAMCCS/MiniMax H3/R40 Shot Lab

Inputs (15)

NameTypeDefaultDescription
modelMODEL
video_vaeVAE
sampled_latentLATENT
conditioningCONDITIONING
cine_linxIAMCCS_SUPERNODE_LINX
shot_labIAMCCS_H3_R40_SHOT_LAB
native_framesIMAGE
native_audioAUDIO
resolved_render_idSTRING
native_saved_reportSTRING
current_segmentINT
total_segmentsINT
context_trim_framesINT
join_trim_framesINT
queue_next_segmentBOOLEANtrue

Outputs (2)

NameTypeDescription
video_pathSTRING
reportSTRING