Minimax_H3-LatentUpscaler_Adv
This is the one to reach for
- samples
- conditioning
- latent
- conditioning
If you've been fighting MiniMax H3, you know the exact failure this node exists for. You upscale the latent, feed it back to the sampler, and ComfyUI dies on a shape mismatch - because the conditioning still carries the old latent height and width, plus reference latents and keyframes that describe the pre-upscale resolution. The plain Minimax_H3-LatentUpscaler in this pack does the math right; the _Adv version, added in the same v1.5.0 release, also fixes the conditioning so the whole graph keeps running.
Like its sibling, it resizes H3's latent by the correct 16x spatial compression factor (H3's VAE, unlike the 8x of most image models). Same width/height in pixels, same five upscale methods, same pass-through if you set both to 0. What's new is a knob called conditioning_mode, and it's the whole reason you'd pick the Adv over the base node:
pass_through- leave the conditioning alone. Standard H3 behavior; use this if you're only touching the latent and don't care about the metadata.NO_refs- updates the conditioning'slatent_h/latent_wto the new size and removes the reference latents and keyframes. This is the one that fixes the fl2va shape-mismatch crash, avoids ghosting, and costs zero extra text-encoder runs. It's also the author's default for a reason.refs- updates the size and actually rescales the refs/keyframes to match. The README's verdict: best visual quality, but it can reintroduce ghosting. Use it when the references matter more than cleanliness.
The author's tooltip is honest about the trade, which is refreshing. Wire the optional conditioning in, and the node returns both an upscaled latent and a patched conditioning output - feed that second one into the sampler and you skip re-running the image-to-video conditioning node entirely.
Two more inputs are worth knowing because they're why this node runs on hardware that isn't a datacenter GPU. chunk_size processes the video a few frames at a time (default 8) so a 3060 8GB doesn't OOM; set it to 0 to do all frames at once, faster but hungrier. safe_precision casts to FP32 during interpolation - leave it enabled unless you enjoy NaN snow in a 16-bit workflow. Everything else (install, no model downloads, the pack's requirements.txt being kornia/opencv for other nodes) is identical to the base node:
cd ComfyUI/custom_nodes
git clone https://github.com/supElement/ComfyUI_Element_easy
or install ComfyUI_Element_easy from ComfyUI Manager and restart.
Honest take: the base node is the utility; the Adv node is the one you'll actually keep in a working H3 workflow, because the conditioning sync is the difference between a working two-pass upscale and an error message. If you're generating H3 video with reference images (the ref2va flavor), you specifically want refs mode; for plain text/video generation, NO_refs is the safe daily driver. Start there, flip to refs only when you can see ghosting is the thing you're trading for quality.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| upscale_method | COMBO | 5 options: nearest-exact, bilinear, area, bicubic, bislerp | |
| width | INT | 5120–16384 | — |
| height | INT | 5120–16384 | — |
| crop | COMBO | 2 options: disabled, center | |
| chunk_size | INT | 80–128 | Frames per chunk for low-VRAM GPUs (e.g. RTX 3060 8GB). 0 = process all frames at once (faster but uses more VRAM). |
| safe_precision | COMBO | enable | Cast to FP32 during interpolation to prevent NaN artifacts on FP16/BF16. |
| conditioning_mode | COMBO | pass_through | pass_through = do not touch conditioning (standard H3). update_meta = update latent_h/w and REMOVE refs/keyframes (fixes fl2va shape mismatch + avoids ghosting, zero TE cost). full_sync = update latent_h/w AND upscale refs/keyframes (keeps visual references, may cause ghosting). |
| conditioningopt | CONDITIONING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| conditioning | CONDITIONING | — |