MiniMax H3 Optional Upscale Router
A lazy switcher so MiniMax H3 doesn't pay for an upscale it isn't using
- native_frames
- audio
- ltx23_frames
- wan22_frames
- frames
- audio
- report
Here's the trap the IAMCCS_MiniMaxH3UpscaleRouter exists to stop you falling into. MiniMax H3 gives you an optional finishing pass - you can push a shot up to higher resolution with an LTX 2.3 or a Wan 2.2 5B model instead of leaving it at native. If you wire an upscaler into the graph unconditionally, ComfyUI loads a whole extra diffusion model on every render, even the drafts you're just iterating on. This tiny node is a lazy switch: it picks which frame branch actually flows through based on a mode you set once in the Shotboard.
How it works
It's about as simple as a router gets. Three IMAGE inputs arrive - native_frames (the H3 output), ltx23_frames, and wan22_frames (the two upscale branches) - along with the audio that travels alongside. The upscale_mode widget (off / ltx23 / wan22_5b) decides which is returned. Crucially, it honors planned_upscale_mode if a STRING is wired in, so the decision can live in the Shotboard's plan and get passed down instead of being a widget you forget to change. The Lora of it: because the router is optional-input, ComfyUI's lazy evaluation means the LTX/Wan upscale branches aren't even loaded unless the mode asks for them. Upscale off = zero upscaler cost.
Two of the three branches being unconnected is the intended state. The node validates that the branch you selected is actually connected - ask for ltx23 with nothing on ltx23_frames and it raises a clear error rather than silently giving you native frames.
What comes out
Three outputs: frames (the winning branch's IMAGE), audio (passed through untouched), and report (a STRING telling you which route ran, e.g. "Upscale router: Wan 2.2 5B"). Wire frames and audio into whatever consumes the shot - a VAE decode, a saver, or the RTX 4K post node.
The bigger picture
This node is the delivery end of the Shotboard's upscale_mode decision. The Shotboard (IAMCCS_MiniMaxH3ShotPlanner) sets upscale_mode to off/ltx23/wan22_5b and the upscale target resolution; the router just executes it at the branch point. The practical rule: keep upscale_mode off for your draft runs, flip it on for the final pass. The router then behaves like a manual switch - you're choosing the upscaler per shot rather than paying for it per render.
Install
It's part of IAMCCS-nodes - ComfyUI Manager → search "IAMCCS", or cd ComfyUI/custom_nodes && git clone https://github.com/IAMCCS/IAMCCS-nodes.git, restart, done. The upscale branches themselves are not this node's job: they're LTX 2.3 / Wan 2.2 5B sampling graphs you supply, which is why the node stays dependency-light and just routes frames.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| native_frames | IMAGE | — | |
| audio | AUDIO | — | |
| upscale_mode | COMBO | off | 3 options: off, ltx23, wan22_5b |
| planned_upscale_modeopt | STRING | — | |
| ltx23_framesopt | IMAGE | — | |
| wan22_framesopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |
| audio | AUDIO | — |
| report | STRING | — |