Three unrelated operations share one button name
Your 1024-pixel image needs to be a poster. You press Upscale. What happens next depends entirely on which of three completely different things that button does, and the tools rarely tell you.
One: resampling. Honest and useless
Bicubic and Lanczos interpolation. More pixels, no new information, mathematically averaged from what was already there. The result is bigger and softer.
It never lies to you and it never helps. Use it when you need a specific pixel dimension and the detail is already sufficient. Free in Photopea, GIMP, Krita, and every phone gallery app.
Two: super-resolution models. Conservative invention
Real-ESRGAN, SwinIR, 4x-UltraSharp, and Topaz Gigapixel on the paid side. These are networks trained on pairs of degraded and clean images, so they have learned what blur usually hides. Given a soft edge they predict a sharp one.
They do invent, but locally and conservatively. Fabric becomes plausible fabric weave. Hair becomes plausible hair. Straight lines get straight. The invention stays inside the shapes that were already there.
Free and excellent: Upscayl, a desktop app that wraps these models — download, drag the image in, choose a model, done. It runs on a GPU if you have one and on a CPU slowly if you do not. chaiNNer and ComfyUI's upscale nodes give you the same models with more control.
For faces specifically, GFPGAN and CodeFormer restore facial detail well, with a caution: CodeFormer at high fidelity settings smooths skin into plastic. Back the strength off.
Three: diffusion re-generation. Heavy invention
Ultimate SD Upscale, tiled diffusion, and anything a hosted tool labels "creative upscale" or "enhance". These cut the image into overlapping tiles, run image-to-image on each tile at a higher resolution, and stitch them back together.
The results can be spectacular. They are also substantially a new image. Small text becomes different text — plausible letterforms, wrong words. A distant face becomes a different face. A watch gains numerals that were never there. A pattern of tiles on a roof reorganises itself.
The mechanism behind the classic artefact: each tile is denoised knowing only its own contents plus a little overlap. A repeating pattern crossing a tile boundary has no way to stay consistent, and a large face split across two tiles gets two different skin textures. Larger tiles, more overlap, and a lower denoise (0.2-0.35) reduce it. They do not eliminate it.
The rule that follows
The more an upscaler invents, the less you can point it at anything that carries information. Text, logos, product detail, a recognisable face, a diagram, a map. For those, use resampling or a conservative super-resolution model, and put real type back over the top.
For a landscape, a texture, an abstract background — let it invent. That is where the spectacular results come from and nothing is lost.
Order of operations
Upscale last. Always.
Fix defects at the base resolution, do your colour and contrast pass, and only then enlarge. Two reasons, both practical: upscaling bakes errors in at four times the size, and if you have to re-run anything, every step after the upscale costs four times as much time and money.
The print reality nobody mentions
At 300 dpi, an A4 page is roughly 3500 × 2480 pixels. A 1024 × 1024 generation printed at 300 dpi is about 8.7 cm square — smaller than a postcard.
So anything destined for print needs real enlargement, and that means the invention question above is not optional, it is the job. For logos and anything with type, the answer is not to upscale at all but to rebuild it as vector. Vector and print covers that properly, including why a printer's grey box appears behind your transparent logo.
Large-format printing is more forgiving than people assume — a billboard is viewed from thirty metres and 30 dpi is fine. A brochure held in the hand is not forgiving at all.
Today: take one generated image and enlarge it 4× twice — once in Upscayl with a standard model, once with any "creative" upscale you have access to. Zoom to 100% on the smallest detail in each. The difference will make the rule permanent.
Before you move on