Nodes/wlsh_nodes/Upscale by Factor with Model (WLSH)
ComfyUI Node

Upscale by Factor with Model (WLSH)

Upscale by Factor with Model (WLSH)

By wallish77·Created 3 years ago·Updated 2 years ago· 144
Upscale by Factor with Model (WLSH)
  • upscale_model
  • image
  • IMAGE
upscale_method
factor2.0

Stock ComfyUI's "Upscale Image (using Model)" node has one annoying habit: it upscales by whatever factor the model was trained for, full stop. Load a 4x-UltraSharp model and you're getting a 4x image whether you wanted it or not, and then you need a second resize node to bring it back down to something sane. This node exists to remove that step. It runs the upscale model like normal, then rescales the result to hit the exact factor you asked for, so "I want 1.5x, not 4x" becomes one node instead of two.

That distinction matters more than it sounds. Model upscalers (ESRGAN-family things like 4x-UltraSharp, Remacri, or the anime-tuned variants) are the "more pixels" job - they add resolution without inventing content, run fast, and can't hallucinate detail the way a generative upscaler like SUPIR or SeedVR2 can. But they're baked to one scale factor. If your workflow wants a controlled 1.5x or 2x bump rather than whatever the model natively does, you either eat the full-size output and downscale after, or you reach for a node like this one that folds the two steps together.

Inputs that matter: upscale_model comes from a Load Upscale Model node - point it at whatever .pth you've got in your models/upscale_models folder. image is your source. upscale_method (nearest-exact / bilinear / area) is the interpolation used for the resize step that gets you from the model's native output down (or occasionally further up) to your target - bilinear is the safe default for photographic content, nearest-exact if you're dealing with flat colors or pixel art. factor is the actual number you care about, 0.1 to 8, default 2. The output is a single IMAGE.

Mechanism, roughly: the model does its native-scale pass first (that's where all the real detail-adding work happens), then the node resizes the result to your requested factor using the method you picked. That means if you ask for a factor smaller than the model's native scale, you're just downscaling a bigger image - fine, and often looks great since the model already sharpened it. If you ask for a factor larger than the model's native output, the extra size beyond what the model produced is plain interpolation, not new detail, so don't expect it to look like a second generative pass.

Installing it: through ComfyUI Manager, search "wlsh_nodes" or the pack title "WLSH Nodes" and install. Manually, it's:

cd ComfyUI/custom_nodes
git clone https://github.com/wallish77/wlsh_nodes

then restart ComfyUI. No extra Python dependencies or model downloads are called out in the pack's own README - the only thing you need to supply yourself is the upscale model checkpoint, same as any other model-based upscale node.

Where people trip up: the most common confusion is expecting the factor to change what the model does - it doesn't, the model always runs at its own trained scale internally, this node just controls the final output size. If your result looks softer than a plain 4x pass, that's the downscale step doing its job (which is usually what you want - a full 4x on top of an already-decent 1024px image is often overkill and slow). And because this is a personal-annoyance pack rather than a heavily maintained one - it's a small, low-traffic project from a single author - if something looks off, check the upstream repo's issues before assuming your workflow is wrong. If you just want a no-model resize (say, prepping an image before a ControlNet pass), you don't need this node at all - WLSH ships a separate Image Scale by Shortside for that job.

CategoryWLSH Nodes/upscaling

Inputs (4)

NameTypeDefaultDescription
upscale_modelUPSCALE_MODEL
imageIMAGE
upscale_methodCOMBO3 options: nearest-exact, bilinear, area
factorFLOAT2.00.1–8

Outputs (1)

NameTypeDescription
IMAGEIMAGE