Nodes/ComfyUI-Light-Tool/Light-Tool: Upscale Image
ComfyUI Node

Light-Tool: Upscale Image

A no-model upscaler with a sharpen toggle — and it knows when not to use it

By ihmily·Created 2 years ago·Updated 4 months ago· 20
Light-Tool: Upscale Image
  • image
  • image
width1024
height1024
modeAUTO
R255
G255
B255
A255
aligncenter
resampleLANCZOS
aspect_tolerance0.01
sharpentrue

If you're coming from the "real" upscaling world - ESRGAN models, tiled diffusion, SUPIR - this node is a different animal, and it's important to know which one you're getting. Light-Tool's Upscale Image is a geometric upscaler: it makes an image bigger with interpolation and optionally sharpens it. It adds zero new detail. It's the fast, deterministic, VRAM-free path from the first bucket of the upscaling essay, and for a lot of jobs that's exactly what you want.

The modes

Same four-mode family as its sibling Scale Image, driven by a target width and height (default 1024×1024):

  • AUTO - stretches if the source aspect is within aspect_tolerance (0.01) of the target, pads otherwise.
  • STRETCH - forces exact width×height, distortion be damned.
  • FILL - scales until it covers the box, crops the center.
  • PAD - fits inside and letterboxes with the RGBA R/G/B/A color, positioned by align.

resample runs LANCZOS through HAMMING (LANCZOS default). Nothing here is a secret - the interesting knob is the one the name advertises.

The sharpen toggle

sharpen defaults to on, and it's where this node earns a little nuance. It applies a plain PIL SHARPEN filter - and only when you're actually upscaling (the code checks that the target is larger than the source before touching it). So downscaling won't get a gratuitous sharpen pass. Real talk: PIL's SHARPEN is a blunt instrument. On a clean photo it can look crisp; on noisy or already-sharp sources it can look crunchy. For serious upscales the community's generic advice still holds - a light sharpen after interpolation is a taste thing, and you should A/B it with the toggle off before you commit.

Where it fits

This is the "make it bigger without a model" node: preparing a small image for a fixed-size canvas, bumping a detail pass's input, or doubling a reference before sending it somewhere that demands pixels. It is not the path to genuine detail - if the image is soft and you want the model to invent texture, that's the ESRGAN / tile-ControlNet lineage, not this node. If you want a model-driven upscale, this isn't it; keep this one for speed.

Installing it

Part of ComfyUI-Light-Tool by Hmily. ComfyUI Manager → search "ComfyUI-Light-Tool" → Install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/ihmily/ComfyUI-Light-Tool
pip install -r requirements.txt
# restart ComfyUI

Pillow-only, no model files, works offline.

Where people get burned

  • Expecting detail. The biggest trap in the whole category. Interpolation can't invent pores or fabric weave - that's the model's job. If the result looks "bigger but softer," that's physics, not a bug.
  • Over-sharpening. Leave sharpen on for organic sources and you may see halos. Turn it off for noisy or synthetic images.
  • Output size. Same as Scale Image: if your target isn't a multiple of 8, pair this with the pack's Safe Image Crop so the VAE stays happy downstream.

Right tool, right job: if "more pixels, nothing invented" is the job, this is a perfectly good one - and it's free.

CategoryComfyUI-Light-Tool/image/transform

Inputs (12)

NameTypeDefaultDescription
imageIMAGE
widthINT1024
heightINT1024
modeCOMBOAUTO4 options: AUTO, STRETCH, FILL, PAD
RINT2550–255
GINT2550–255
BINT2550–255
AINT2550–255
alignCOMBOcenter5 options: center, top-left, top-right, bottom-left, bottom-right
resampleCOMBOLANCZOS6 options: LANCZOS, NEAREST, BILINEAR, BICUBIC, BOX, HAMMING
aspect_toleranceFLOAT0.01
sharpenBOOLEANtrue

Outputs (1)

NameTypeDescription
imageIMAGE