Multi Resize
A ComfyUI node in Zuellni/Multi with 5 inputs and 3 outputs.
- images
- latents
- masks
- IMAGES
- LATENTS
- MASKS
Upscaling in ComfyUI usually means one of three things: a hi-res fix pass, a dedicated upscaler model, or just making the tensor bigger so a node will accept it. Multi Resize is that third kind - it resizes images, latents, and masks by a scale factor with your choice of interpolation mode. The README sums it up: it's like LatentUpscale but you give it a multiplier instead of absolute width/height.
What it is
A scale-factor resize across all three tensor types at once. scale runs 0.01–10 (default 2), and mode picks the interpolation: area, bicubic, bilinear, nearest, nearest-exact. The output dimensions snap to multiples of 8 (via a center crop after resizing), which keeps downstream samplers and VAE decoders happy.
The mode you actually want
The default is nearest-exact, which is a fair choice for latents - it avoids the weird color fringing that bilinear/bicubic can introduce when resampling a compressed latent space. That's also why core ComfyUI's LatentUpscale defaults to "nearest-exact" by area. The practical guidance:
- Latents:
nearest-exactorarea- interpolation modes that don't invent structure. This is the "safe" resize for before a sampler. - Images you'll look at:
bicubicorbilinear- smooth, no pixel edges.areais good for downscaling (it averages, so it anti-aliases). - Masks:
nearest- hard edges, no fuzzy antialiasing bleeding into the mask.
So yes, you'll want to switch modes depending on what you're resizing - the default isn't wrong for latents, but it's not what you want for viewing an image.
Why you'd reach for it
The classic use is the pre-sampler upscale: take a 512×512 latent, upscale 2× before a second-pass sampler at higher resolution (the "latent upscale before resampling" pattern that's lighter than a full img2img pass). Because it handles images and masks in the same node, it's also great for keeping a whole pipeline aligned - crop, resize, and feed everything at matching dimensions before a KSampler or ControlNet.
The center-crop-to-multiple-of-8 step means the output isn't exactly scale × in edge cases - a 100×100 image at 2× lands at 192×192, not 200×200, because 200 isn't divisible by 8. For nearly all downstream uses that's the correct behavior (samplers want multiples of 8); just don't expect pixel-perfect scale factors.
Install
Part of Zuellni/ComfyUI-Custom-Nodes, via ComfyUI Manager (search "Zuellni") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Zuellni/ComfyUI-Custom-Nodes
No extra requirements, no downloads - pure torch interpolation. The pack is archived but this is dependency-free, stable code. If you need aspect-ratio-aware resizing, per-type modes, or exact dimensions, core nodes plus this cover it; if you want the scale-factor convenience in one node for all three tensor types, this is the one.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| scale | FLOAT | 2.000.01–10 | — |
| mode | COMBO | nearest-exact | 5 options: area, bicubic, bilinear, nearest, nearest-exact |
| imagesopt | IMAGE | — | |
| latentsopt | LATENT | — | |
| masksopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGES | IMAGE | — |
| LATENTS | LATENT | — |
| MASKS | MASK | — |