⭐ Star Minimax Latent Upscaler Option
The node that does nothing on its own — and that's exactly why you want it.
- model
- upscale_settings
If you look at ⭐ Star Minimax Latent Upscaler Option and think "this node doesn't do anything," you're right, and that's the whole trick. It's a settings bundle, not a processor: you configure it, it hands an upscale_settings bundle to the options input of ⭐ Star Minimax All In One, and the All In One runs the whole second-pass upscale-and-refine internally. Zero extra wires hanging off your main graph. If you're using the All In One node - and if you're doing MiniMax H3 in ComfyUI, you probably are - this is the variant you reach for. The standalone twin only makes sense when you've built your own H3 sampling chain and don't want the AIO node in the middle.
It's all local, by the way. No MiniMax API, no key, no credits - the AIO node loads the H3 diffusion model, the qwen3vl text encoder and both VAEs itself, and this Option node just steers the second pass.
What actually happens inside
When the AIO node sees the bundle, it runs the same pipeline the standalone node runs: the pass-1 video latent is upscaled with the selected 3D latent upscaler to your megapixel target (aspect kept, aligned, snapped to the VAE grid), the audio latent rides along unchanged, the combined latent is re-noised at the first sigma (~0.90) for a light remix, and a short 3/4/5-step refine pass cleans it up.
The two things you'd miss with the standalone node happen automatically here:
- Same conditioning and same seed as pass 1, so runs stay deterministic and the result feels like a natural continuation, not a reroll.
- Reference image/video latents are resolution-matched to the upscaled canvas automatically - your
<Picture i>/<Video k>reference tags keep working in the refine pass. That's the whole reason the Option twin exists; the standalone node only takes a plain prompt.
Inputs and output
The settings match the standalone node's widgets: upscale_model (from models/latent_upscale_models, default minimax_h3_latent_upscaler_3d_fp16.safetensors), megapixels (default 1.0 - pick something larger than pass 1), sigmas_preset (3/4/5 steps), sampler_name (euler), and upscale_pass_audio (keep "Use 1st pass audio" unless you want the soundtrack re-noised in the refine pass). Advanced: align (32), enable_chunking (on for long clips), device and precision (fp16 default).
One input worth knowing: an optional model port. Connect a turbo-LoRA-patched or attention-patched H3 model there and the refine pass uses it; leave it unplugged and it reuses the pass-1 model. The single output, upscale_settings (UPSCALE_SETTINGS), goes to the AIO node's options input.
Installing
Same pack as its twin - ComfyUI Manager, search Starnodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt
Restart and you're done. The one file you must place yourself is the 3D latent upscaler at models/latent_upscale_models/minimax_h3_latent_upscaler_3d_fp16.safetensors; the AIO node handles its own model, text encoder and VAE loads.
Gotchas
Set megapixels bigger than pass 1, or you're downscaling. The upscale pass is skipped entirely if the AIO node's own megapixels is set to "audio only," which is a useful escape hatch on tiny clips. It also works in image mode - the 9-frame still latent gets upscaled and refined before frame 8 is decoded. And the usual H3 caveat applies: MiniMax's community license excludes the US, EU, UK and South Korea, so running these local weights isn't licensed in those regions no matter how smooth the node makes it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| upscale_model | COMBO | (place models in: models/latent_upscale_models) | MiniMax H3 latent upscaler from models/latent_upscale_models. |
| megapixels | FLOAT | 1.00.1–8 | Target total megapixels for the upscaled video (aspect ratio of the pass-1 canvas is kept). |
| sigmas_preset | COMBO | 3 steps | Refine-pass noise schedule: 3 steps: 0.9035, 0.6316, 0.3158, 0.0000 | 4 steps: 0.9035, 0.8000, 0.6316, 0.3158, 0.0000 | 5 steps: 0.9231, 0.8780, 0.8000, 0.6316, 0.3158, 0.0000 |
| sampler_name | COMBO | euler | Sampler for the refine pass (euler matches the reference workflow, e.g. with a turbo LoRA on the refine model). |
| upscale_pass_audio | BOOLEAN | false | Which pass the audio output is decoded from. 'Use 1st pass audio' keeps the pass-1 soundtrack untouched; 'Upscale Pass Audio' decodes the audio after the refine pass (it is re-noised and rewritten there). |
| align | INT | 321–512 | Pixel-space alignment of the upscaled size. 32 is recommended to avoid light banding. |
| enable_chunking | BOOLEAN | true | Temporal chunking saves VRAM on long videos. Disable for short clips for pure full-context inference. |
| device | COMBO | cuda | Execution device for the upscaler model (ROCm uses 'cuda'). |
| precision | COMBO | fp16 | Precision the upscaler model runs at. |
| modelopt | MODEL | Optional diffusion model for the refine pass (e.g. with a turbo LoRA and/or attention patch applied). If not connected, the pass-1 model is reused. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscale_settings | UPSCALE_SETTINGS | Settings bundle for the 'options' input of ⭐ Star Minimax All In One. |