Image Upscale With Model
The whole ESRGAN upscale chain, collapsed into one node
- image
- image
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 inComfyUI/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 onlanczosunless you have a reason not to.image- the input, and it happily takes a batch, returning anIMAGElist 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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| model_name | COMBO | Upscale model from models/upscale_models/. Models run at their native scale (e.g. 4× for RealESRGAN x4). | |
| upscale_by | FLOAT | 0.000–16 | Target 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. |
| resampling | COMBO | lanczos | Resampling filter used for the optional post-model rescale step. Only applied when upscale_by > 0 and target size differs from model output. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |