Nodes/ComfyUI_Eclipse/Image Upscale With Model
ComfyUI Node

Image Upscale With Model

The whole ESRGAN upscale chain, collapsed into one node

By r-vage·Created 10 months ago·Updated a day ago· 31
Image Upscale With Model
  • image
  • image
model_name
upscale_by0.00
resamplinglanczos

If you've ever wired a model-based upscale by hand, you know the three-node dance: Load Upscale Model, feed it to Upscale Image using Model, then Upscale Image By to hit a target size. ComfyUI core is fine with that, but it's three nodes and three wires doing one job. Image Upscale With Model is Eclipse's answer - all three steps fused into a single node. Drop in an image, pick a model, get a bigger image out. That's the entire pitch, and it's a good one for a beginner because it removes the most common upscale failure point: wiring the wrong output into the wrong input.

What it actually does

Under the hood it's doing what you'd build manually: it loads the upscale model from models/upscale_models/ using the spandrel loader, runs tiled inference on your image so you don't blow up VRAM on a huge input, then - optionally - rescales the result to whatever multiplier you asked for. The tiled inference bit matters more than you'd think. A 4× model on a large source can explode your VRAM if it processes the whole image at once; running it in tiles keeps the memory footprint flat.

That last step is the part people don't expect. upscale_by set to 0 means "keep the model's native output." Point it at RealESRGAN x4 and you get 4×, no questions asked. Set it to 2.0 and it runs the 4× model, then downscales to exactly 2×. This is genuinely useful - a 4× output is often more than you need, and models don't always upscale to the exact size you want. The resampling combo (default lanczos) controls the filter for that post-model rescale step, and it only kicks in when upscale_by > 0 and the target actually differs from the model's output.

The inputs that matter

  • model_name - picks from whatever you've dropped in ComfyUI/models/upscale_models/. ESRGAN-family models (4x-UltraSharp, Remacri, the anime variants) are the usual suspects here.
  • upscale_by - 0 = native model scale, anything else = exact target multiplier. The one you'll actually fiddle with.
  • resampling - leave on lanczos unless you have a reason not to.
  • image - the input, and it happily takes a batch, returning an IMAGE list out.

One honest caveat from the wider upscaling picture: model upscalers like these add pixels, not detail. The "more pixels vs more detail" distinction is real - an ESRGAN upscaler can't invent pores or eyelashes that were never in the source. If your source is soft and you want detail generated, you want a generative upscaler (SeedVR2, SUPIR lineage), not this node. This is for the cheap, instant, no-hallucination rung of the ladder.

Install

It ships in the ComfyUI_Eclipse pack, so install the pack once and every Eclipse node comes with it:

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse

Or use ComfyUI Manager and search for ComfyUI_Eclipse. Then drop your upscale models into models/upscale_models/ and restart ComfyUI. The pack's own dependencies (torch, numpy, Pillow, opencv-python) are usually already present in a working ComfyUI install - if a node errors on an import, install the missing package into the same Python environment that runs ComfyUI. Nothing here downloads a model for you; the node only reads what you place in the folder.

That's the whole thing. If you want the fancier sibling - VAE-safe dimension rounding and built-in sharpening - look at Image Upscale w/wo Model v2 in the same pack. This one is the plain, honest version.

Category🌒 Eclipse/ Image/Transforms

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
model_nameCOMBOUpscale model from models/upscale_models/. Models run at their native scale (e.g. 4× for RealESRGAN x4).
upscale_byFLOAT0.000–16Target output multiplier relative to the original input size. 0.0 = keep the model's native output (e.g. 4× for a 4× model). Any other value rescales the model output to the exact target dimensions.
resamplingCOMBOlanczosResampling filter used for the optional post-model rescale step. Only applied when upscale_by > 0 and target size differs from model output.

Outputs (1)

NameTypeDescription
imageIMAGE