MiniMax H3 R38 Lazy Delivery
Native, latent-upres, or RTX frames for delivery
- cine_linx
- native_frames
- native_audio
- bridge_last_frame
- h3_upres_frames
- h3_upres_rtx_frames
- delivery_frames
- audio
- bridge_last_frame
- delivery_fps
- upscale_applied
- report
At the end of an R38 chunked shot there are up to three candidate video sources: the native frames straight out of stage-1 decode, the frames refined through H3 latent upres, and - if RTX is in the plan - the further-upscaled RTX frames. IAMCCS_MiniMaxH3DeliveryRouterR38 picks exactly one, lazily, so the branches you don't use never get computed. It's the valve between "we rendered a shot" and "here is the master for delivery."
How it works
The decision rule, in plain terms:
- If
master_readyis false (master still assembling) or the plan isn't inh3_latent_upresmode → native frames win. - If the plan requests RTX → the
h3_upres_rtx_framesbranch is the one it requests. - Otherwise →
h3_upres_frames(the latent-upres output) wins.
Both upscale inputs are lazy, and check_lazy_status asks ComfyUI to evaluate only the selected branch - the same trick as the R37 backend lazy switch, so a delivery decision doesn't drag a full upscale pipeline along with it. When it has selected an upscale branch it also unloads all models and empties the cache before handing off, which keeps VRAM sane while the master is being finalized or encoded.
After selection it can run the frames through the optional RIFE interpolation stage (rife_mode from the plan) to change the delivery frame rate, then center-crops exactly to delivery dimensions and returns.
One guard worth knowing: if the plan claims an upscale mode that this R38 delivery graph doesn't wire (something other than off or h3_latent_upres), the router raises and tells you to use the existing LTX/Wan workflow for that route instead of silently delivering the wrong thing.
Inputs
cine_linx,native_frames,native_audio,bridge_last_frame- required, the native results.master_ready- required boolean from the chunk checkpoint.h3_upres_frames,h3_upres_rtx_frames- optional lazy IMAGE branches.
Outputs
delivery_frames,audio,bridge_last_frame,delivery_fps- the final master + audio, with the last-frame bridge preserved for the next shot and the fps after any RIFE step.upscale_applied- a string naming which route won ("off/native", "H3 Latent Upres R38", or "+ NVIDIA RTX VSR"). Read this when you're unsure what actually shipped.report- the full story including RIFE status.
Install
Pack install (git clone https://github.com/IAMCCS/IAMCCS-nodes.git) plus MiniMax H3 support and whichever delivery branch the plan uses (upscaler checkpoint, RTX runtime, RIFE).
Gotchas
master_readyis a hard gate. False → you get native frames, period. If the upscaled output never appears, check the accumulator finished, not the router.- Don't manually connect both lazy branches and expect the router to "prefer" one - the plan decides, and the report/
upscale_appliedstring tells you what it picked. - The deliberate raise on unsupported upscale modes is a feature: it stops you from silently delivering native footage when you think you're getting the upscale. If that error hits, change the plan mode, don't fight the node.
- The router unloads models on the upscale path - your next run will re-load them. That's the cost of a clean handoff, not a bug.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — | |
| native_frames | IMAGE | — | |
| native_audio | AUDIO | — | |
| bridge_last_frame | IMAGE | — | |
| master_ready | BOOLEAN | true | — |
| h3_upres_framesopt | IMAGE | — | |
| h3_upres_rtx_framesopt | IMAGE | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| delivery_frames | IMAGE | — |
| audio | AUDIO | — |
| bridge_last_frame | IMAGE | — |
| delivery_fps | INT | — |
| upscale_applied | STRING | — |
| report | STRING | — |