Nodes/NIX ComfyUI Plugin/NIX_ImageUpscaleProportionally
ComfyUI Node

NIX_ImageUpscaleProportionally

Proportionally scale to a target side and keep the numbers divisible by 8

By J-ChenX·Created 11 months ago·Updated 11 months ago· 2
NIX_ImageUpscaleProportionally
  • image
  • IMAGE
side_length1024
sideLongest
eight_multiplestrue

NIX_ImageUpscaleProportionally is the resize node you reach for when you want one image (or a batch) normalized to a target size without stretching it into a funhouse mirror. It scales to a chosen side, preserves the aspect ratio, and - the useful part - rounds the result to multiples of 8. That last bit is what makes it ComfyUI-native: latents want dimensions that divide cleanly, and this node handles it for you.

Let's be clear about what it is not, because the name oversells it: this is not a generative upscaler. It won't invent detail, restore a damaged face, or turn a blurry thumbnail into a sharp render. It adds pixels - plain Lanczos interpolation, nothing invented. That's a feature, not a bug. In the upscaling world this is the "more pixels" rung, and it's the one that's quietly making a comeback because it's instant, free, and can't hallucinate.

How it works

Feed an image and set side_length (default 1024, up to 8192) and side. The side dropdown decides which dimension the target applies to:

  • Longest / Shortest - scale so the longest (or shortest) edge hits side_length. The "fit it in a box" option; safest default.
  • Width / Height - fix one edge exactly and derive the other from the aspect ratio.

eight_multiples (default on) rounds the final width and height to the nearest multiple of 8. Leave it on unless you have a specific reason not to - most models want latent sizes that divide by 8, and SDXL-class models are happiest when the numbers also fit their preferred resolutions. One caveat: it guarantees multiples of 8, not the 64-multiple convention Flux and friends prefer, so if you're feeding a Flux latent you may still want to hand-tune the target.

The output is a single IMAGE, resized. Feed it to a VAE encode, an img2img pass, or a save node.

When you'd actually use it

The boring jobs, mostly, and they come up constantly:

  • Normalize a batch of source images to the same resolution before an img2img or video pass, so the batch doesn't fight over canvas size.
  • Up-scale before a hi-res fix - feed the sampler a properly-sized base instead of hoping it handles an odd resolution.
  • Downscale to native resolution first, the classic troubleshooting move: generate at the model's native size, then upscale after sampling rather than trying to generate big directly (which is how you get tiling and duplicated anatomy).

Getting it installed

Same story as every node in this pack - one install, all NIX nodes.

  • ComfyUI Manager: search "NIX" (or "NIX ComfyUI Plugin"); if the search misses, use the Git URL tab with https://github.com/J-ChenX/ComfyUI-NIX, then restart.
  • By hand:
    cd ComfyUI/custom_nodes
    git clone https://github.com/J-ChenX/ComfyUI-NIX
    
    Restart ComfyUI. No model downloads. It's under the "NIX" category.

Gotchas

  • Not a detail upscaler. If you resize a soft image and it comes out looking soft, that's interpolation being honest. For real detail, pair the resize with a generative step - ESRGAN-family for clean upscales, SeedVR2 if you want it to add detail and you can spare the VRAM.
  • Multiples of 8, not 64. Fine for SD 1.5/SDXL; double-check for Flux-class latents.
  • Image space, not latent space. This node resizes pixels. If you want to upscale a latent, that's a different node entirely.
  • Quiet pack. No meaningful community discussion around this one as of mid-2026; the source is a single readable file if you ever want to see exactly what side does.
CategoryNIX

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
side_lengthINT10241–8192
sideCOMBOLongest4 options: Longest, Shortest, Width, Height
eight_multiplesBOOLEANtrue

Outputs (1)

NameTypeDescription
IMAGEIMAGE