ComfyUI Node

Image Scale @zn123

A plain pixel upscaler — and an honest look at why you might not need it

By zn123·Created 9 months ago·Updated 5 months ago· 0
Image Scale @zn123
  • image
  • upscaled_image
scale_by2.0
upscale_methodbicubic

Image Scale @zn123 is a "more pixels, no new detail" upscaler from the image/processor pack: you feed it an image, a multiplier, and a resize method, and it comes back bigger. That's the entire job. If you're expecting it to invent detail the way SUPIR or a 4x ESRGAN model does, stop right there - it can't and isn't trying to. This is the interpolation category of upscaling, the one that's fast, free and incapable of hallucinating a face.

What it actually does

The mechanism is dead simple. The node computes new_width = width × scale_by and new_height = height × scale_by, then calls ComfyUI's own common_upscale with your chosen method. That means it uses the exact same resize machinery as ComfyUI's built-in image nodes - same code path, same results. A couple of details worth knowing:

  • scale_by is a FLOAT from 0.1 to 10 (default 2, step 0.1). It scales both dimensions, so 2x means four times the pixels.
  • upscale_method offers the five standard choices: nearest, bilinear, bicubic, area, lanczos (default bicubic).
  • If scale_by is exactly 1.0, the node returns the image untouched - no wasted work.

It outputs a single upscaled_image (type IMAGE). Wire it into SaveImage, into a hi-res fix second pass, or into any node that wants a bigger input.

And here's the bit the README lies about: it claims ImageUpscale has a "Crop: Optional cropping to maintain aspect ratio" parameter. It does not. The shipped code has no crop input - scaling a factor up doesn't change aspect ratio anyway, so there's nothing to crop. The docs mention a parameter that doesn't exist; trust the node's actual widget list.

Which method when

  • nearest - pixel art, sprites, anything where you want crisp hard edges. Blurry garbage on photos.
  • area - genuinely the best for downscaling (i.e. scale_by below 1) because it averages neighborhoods instead of guessing.
  • lanczos - highest quality for upscaling photos, slowest.
  • bicubic - the balanced default; most of the time it's the right call.

The community's rule of thumb holds here: a plain interpolator like this belongs in the "more pixels" job, not "more detail." If your source is soft or compressed and you want it restored, reach for a real upscaler like SeedVR2 or an ESRGAN model instead - and keep recognisable faces out of purely generative upscalers. If your source is already sharp and you just need it bigger for print or a tiling pass, this node is perfect and runs in milliseconds.

Installing it

Part of the ComfyUI-image-processor-zn123 pack:

  • ComfyUI Manager - search "ComfyUI-image-processor-zn123", install, restart.
  • Manual - from ComfyUI/custom_nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/zn123/ComfyUI-image-processor-zn123

Restart, and it's under image/processor. No models to fetch, no dependencies beyond torch/numpy/Pillow (all already present in ComfyUI).

Gotchas

  • The honest take: ComfyUI already ships equivalent nodes. ImageScale and ImageScaleByFactor do this exact job with the same interpolation list, and ImageScaleToTotalPixels is arguably more useful. You're not missing anything by skipping this one - it only earns its keep if you've installed the pack anyway for the smart short/long-side scaling nodes and want everything in one place.
  • Memory climbs fast: 4x on a large input is 16x the pixels. Keep scale_by sane if you're piping straight into a VRAM-hungry node.
  • This adds zero detail. Don't use it as a substitute for hi-res fix - that's a second generation pass with low denoising strength, a different tool entirely.

Simple, honest, slightly redundant. If you want pixels and nothing else, it'll do exactly that - just know the built-in nodes were already doing it.

Categoryimage/processor

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
scale_byFLOAT2.00.1–10
upscale_methodCOMBObicubic5 options: nearest, bilinear, bicubic, area, lanczos

Outputs (1)

NameTypeDescription
upscaled_imageIMAGE