ComfyUI custom node for latent spatial upscaling between MiniMax H3 samplers.
Not a learned AI upscaler. Stock LatentUpscaleBy / AddNoise break on MiniMax’s ComfyUI NestedTensor AV latents (video [B,24,T,H/16,W/16] + audio [B,32,2,T_audio]).
MiniMax H3 Latent Upscale Combined (latent/minimax_h3)
Required inputs: LATENT, scale_by, method, MODEL, NOISE, SIGMAS
Optional inputs: positive, negative (CONDITIONING)
Outputs: latent, positive, negative
Does:
- Upscale NestedTensor video
H,WviaF.interpolate(audio tensor passed through) - Re-noise video at
sigmas[0](noise_scaling+inverse_noise_scaling) audio_denoise(0–1): how much to re-noise audio for pass 20= lock pass-1 audio1= full remix so sampler 2 can improve audio0.25–0.5= light polish
- If CONDITIONING is connected: spatially upscale
minimax_refs/minimax_keyframesvisual latents and synclatent_h/latent_w - Park LATENT on CPU +
soft_empty_cache(no model unload)
- SamplerCustomAdvanced #1 → high/majority σ at low res
- Take
denoised_output - MiniMax H3 Latent Upscale Combined
- latent = denoised_output
- positive/negative = same cond used for pass 1
- RandomNoise + low sigmas + model
audio_denoise=1.0(or0.35for gentler audio edits)
- Build a new Guider from Combined’s returned
positive/negative - SamplerCustomAdvanced #2 — DisableNoise + low sigmas + Combined latent + new Guider
If audio garbles with audio_denoise>0, run more of the schedule in pass 1 (audio settles late) or lower audio_denoise.
minimax_refs packs each ref with its own latent + latent_h/latent_w. After the target canvas grows 2×, refs sized for the 0.5MP “match” canvas sit at the wrong relative scale and RoPE row layout vs the new target — classic identity warp. Combined doubles ref visual latents and metadata together.
Avoid Easy-Use Empty Cache / force-unload between passes (especially with --disable-dynamic-vram + quantized MiniMax + SageAttention).
ComfyUI/custom_nodes/MiniMaxH3_LatentUpscaler/ — restart or reload custom nodes.