Nodes/ComfyUI-PainterNodes/Minimax H3 Latent Upscaler (3D)
ComfyUI Node

Minimax H3 Latent Upscaler (3D)

Upscale in latent space, not pixels

By princepainter·Created 7 months ago·Updated 5 days ago· 194
Minimax H3 Latent Upscaler (3D)
  • latent
  • LATENT
model_name
width1376
height768
devicecuda
precisionfp32

Most upscalers work on pixels. PainterMinimaxH3LatentUpscaler works before that - it takes an H3 video latent and blows it up in latent space using a dedicated 3D upscale model, so the sampler downstream runs at a higher resolution from the start instead of you upscaling a finished video and hoping. It's a specialist tool for one model family, but for H3 users it's the difference between "generate at low-res and upscale" and "generate at the res you actually want."

What it is

A PainterNodes/latent node with one job: input a video LATENT, a target width/height, and a model file, and output an upscaled LATENT. It's purpose-built for MiniMax H3's VAE, which compresses space by a factor of 16 - the node converts your target pixel resolution into the matching latent dimensions (width // 16) so the 3D convolution model knows exactly how much to grow the tensor.

How it works

The mechanism is a pure 3D convolution upscale over the latent's time, height, and width axes. You give it the target video resolution in pixels; it aligns both to multiples of 16, computes the implied scale factor, normalizes the latent, runs the 3D upscale model with an embedding derived from that scale, and denormalizes back. If the target already matches the input's latent size, it returns the latent untouched - a nice no-op safety check. Because it operates in latent space, it upscales all frames at once (that's the "3D" part - time is a dimension), and the sampler after it sees the larger latent natively.

The device (cuda/cpu) and precision (fp32/fp16/bf16) controls let you trade speed for memory: fp16/bf16 are the sane defaults on most cards, fp32 if you're chasing exactness.

The inputs that matter

  • latent - the H3 video latent to upscale.
  • model_name - a dropdown that scans your latent_upscale_models folder. No model files, and the dropdown shows a placeholder telling you (in Chinese) to drop the model there.
  • width / height - target pixel resolution (defaults 1376×768), snapped to multiples of 16.
  • device / precision - cuda vs cpu, and numeric precision.

Output: a single upscaled LATENT.

Install

Part of the PainterNodes pack. ComfyUI Manager → search "PainterNodes" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/princepainter/ComfyUI-PainterNodes
cd ComfyUI-PainterNodes
pip install -r requirements.txt

Then put the H3 latent upscale model file in your ComfyUI models/latent_upscale_models/ directory - the node's dropdown scans that exact folder, and an empty dropdown is the classic "I haven't downloaded the model" symptom.

Common issues

  • Empty model dropdown - no model in models/latent_upscale_models/. That's the number-one failure; the node scans that folder and no other.
  • "Please put the model file in the latent_upscale_models directory" - the Chinese-language error means exactly that; it raises when the placeholder option is still selected.
  • This isn't a pixel upscaler - if you feed it an ordinary image latent or expect a finished, detail-rich high-res video out, you'll be confused. It's a latent upscale for the H3 pipeline; the sampler does the rest. For pixel-level detail you'd still use an image/video upscaler afterward.

Latent-space upscaling is the hidden middle step in a lot of pro video workflows - cheaper than pixel upscaling, and it happens before the expensive part. For H3 specifically, this is the node that gets you there.

CategoryPainterNodes/latent

Inputs (6)

NameTypeDefaultDescription
latentLATENT
model_nameCOMBO1 options: (请将模型放入: /tmp/ComfyUI/models/latent_upscale_models)
widthINT137616–16384
heightINT76816–16384
deviceCOMBOcuda2 options: cuda, cpu
precisionCOMBOfp323 options: fp32, fp16, bf16

Outputs (1)

NameTypeDescription
LATENTLATENT