MiniMax H3 Easy 3D Latent Upscale (Built-in)
Upscale a MiniMax H3 video without ever leaving latent space
- latent
- latent
You've got a decent MiniMax H3 clip but you want it bigger. Your options: decode the whole thing, pixel-upscale it, re-encode it (slow, and you've left the model's world), or upscale the latent before you even finish sampling, so the model itself works at the higher resolution. The last one is what MiniMax H3 Easy 3D Latent Upscale (Built-in) does - and it's "built-in" in the sense that the ComfyUI-MiniMaxH3-Easy pack bundles it so you don't need a second custom-node repo for the job.
Why latent upscaling for video
Upscaling is really three different jobs - more pixels, more detail, more pixels over time - and the video one is the least settled. With H3 you're dealing with a latent that represents a whole temporal stack, not a single frame. Resize that stack in pixel space and you've broken the relationship the VAE baked in. This node operates on H3's 24-channel video latent and only changes the spatial grid; the temporal axis is preserved. That's why it's called "3D" - it upscales across width, height, and time as one tensor rather than frame by frame.
Mechanically it normalizes the latent using per-channel mean/std stats tuned for H3, runs the neural upscaler checkpoint, then de-normalizes back. It's the same engine the pack's Segment Refine node uses for its latent_upscale mode, but exposed standalone so you can also stick it in the middle of a regular single-clip workflow between a sampler and a decode.
The inputs that matter
latent- the MiniMax H3 latent you want bigger. This is the only thing you have to connect; everything else is a widget.model_name- the upscaler checkpoint, pulled fromComfyUI/models/latent_upscale_models/. No model, no upscaling; the node errors until you drop one in there.mode- how the output size is chosen: scale by (a multiplier, default 2.0), target dimensions (explicit width/height in pixels), or megapixels (a target MP count that preserves the source aspect).align- output pixel-grid alignment. The tooltip says it: 32 is recommended for H3. Leave it.enable_chunking- temporal overlap blending for long clips. On by default, and the reason long videos don't fall apart into visibly stitched chunks.device(cuda/rocm/cpu) andprecision(fp32/fp16/bf16) - mostly set-and-forget.fp16on a CUDA card is the sane default.
The output is a single latent socket - an upscaled H3 latent - which feeds straight into a VAE decode. The node returns the input untouched if you pick a scale of 1.0 or a target that matches the source, and it refuses to downscale, so you can't accidentally shrink your clip.
Gotchas
The checkpoint is the whole game. The model folder is registered by the pack, but you have to actually put a compatible H3 latent upscaler file there - this node can't invent detail it wasn't trained for. Precision and device choices are per-run widgets, so if you're on ROCm or running the upscaler on CPU, change them before queueing. And if you're using this inside a context-segment pipeline, remember the pack's broader rule: segment sampling re-runs every queue, so the upscale runs again too - that's expected, not a bug.
Installing
Same drill as the rest of the pack - update ComfyUI to a build with official MiniMax H3 nodes, then install via ComfyUI Manager (search ComfyUI-MiniMaxH3-Easy, pick Nightly) or:
cd ComfyUI/custom_nodes
git clone https://github.com/nkxx188/ComfyUI-MiniMaxH3-Easy.git
Restart ComfyUI, put the upscaler checkpoint in models/latent_upscale_models/, and you're set.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | * | Input MiniMax H3 latent. | |
| model_name | COMBO | Latent upscaler checkpoint. | |
| mode | COMBO | How the output size is selected. | |
| align | INT | 321–512 | Output pixel-grid alignment; 32 is recommended for H3. |
| enable_chunking | BOOLEAN | true | Use temporal overlap blending for long clips. |
| device | COMBO | cuda | 3 options: cuda, rocm, cpu |
| precision | COMBO | fp16 | 3 options: fp32, fp16, bf16 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | * | Upscaled H3 latent. |