↗️ Upscale Image
One node for fit, resize, or scale, with an optional real upscale model
- image
- IMAGE
Upscale Image covers the three ways people actually want to resize an image, in one node, with an optional real upscale model bolted on instead of a plain resize. It's the pack's answer to "I have three different resize nodes and can never remember which one I need."
The three modes map onto three genuinely different jobs: Maxsize fits the image within a bound without exceeding it and without distorting the aspect ratio (handy as a safety cap before a heavy downstream step). Resize forces an exact width × height, aspect ratio be damned. Scale multiplies the current size by a factor. Pick the mode that matches what you actually mean by "resize this," rather than fighting one general-purpose node into doing all three.
How it works
If model_name is left on None, this is a plain interpolation resize - fast, and this is the "more pixels" job in the community's usual three-way upscaling split: non-generative, adds no detail that wasn't already there, cannot hallucinate anything. Pick an actual upscale model - the list includes names like 4x-UltraSharp.ckpt, a long-standing community favorite for general-purpose upscaling - and the node runs the image through it first, which is the difference between "bigger and slightly softer" and "bigger with detail the plain resize would have thrown away." Per the pack's README, popular upscale models get auto-downloaded on first use, so picking a name from the dropdown is generally enough; you don't need to go hunting for the .pth/.ckpt file yourself first.
Inputs and outputs
mode(enum: Maxsize / Resize / Scale) - decide the job first; it changes which of the other fields actually apply.model_name(enum, default None) - an upscale model to run before resizing, or none for a plain interpolation resize.scale(FLOAT, default 1, up to 10) - used in Scale mode: the multiplier.width/height(INT, default 1024, up to 4096) - used in Maxsize/Resize mode: the target bound or exact size.image(IMAGE, required) - the source.IMAGE(single output) - the resized result, ready for Save Image or the next stage of your pipeline.
Common issues
Leaving model_name on None is the easy trap. If you expected UltraSharp-grade detail and the output looks soft, check that you actually picked a model - the default is a bare resize with nothing extra applied.
width/height cap at 4096. If you need bigger than that, Scale mode goes up to 10x instead, or chain two upscale passes - the width/height fields simply can't go past their max.
Model auto-download needs aria2c on Windows and macOS. The README is explicit that those platforms require installing aria2c manually for any node that automatically fetches models - if a model pick silently never finishes downloading, that's the first thing to check before assuming the model itself is broken.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | Chọn chế độ phóng to: Maxsize (giới hạn dài nhất), Resize (đặt kích thước), Scale (phóng theo tỉ lệ). | |
| model_name | COMBO | None | Chọn model phóng to (nếu có). |
| scale | FLOAT | 1.000–10 | Tỉ lệ phóng to ảnh (chỉ dùng khi chọn chế độ Scale). |
| width | INT | 10240–4096 | Chiều rộng ảnh đầu ra. |
| height | INT | 10240–4096 | Chiều cao ảnh đầu ra. |
| image | IMAGE | Ảnh đầu vào cần phóng to. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |