ToolsTray

Star a tool to keep it here.

AI Image Upscaler

AI image upscaler that enlarges a photo 2× or 4×, or works back from the exact print size you type in. Rebuilds detail instead of stretching pixels.

Downloads the upscaling model the first time you run it, then works offline.

Image

Drop the picture here, paste one, or choose a file

JPEG, PNG, WebP, GIF, AVIF · up to 12 MP with WebGPU, 2 MP without

Rebuilds a picture at twice or four times the size

Enlarge by

Two for most photos — the conservative one that still holds up at full size.

PNG — lossless, largest · JPEG — smallest · WebP — small, modern. A 4× photo is enormous as PNG, so JPEG or WebP is usually the sane choice. The resolution below is written into PNG and JPEG so a printer knows the size you meant.

JPEG and WebP only — pick PNG and this row says lossless instead.

2xNomosUni_span_multijpg_ldl and 4xNomosUni_span_multijpgCC-BY-4.0Philip HofmannConverted from safetensors to ONNX at a fixed 256×256 input, and provided as-is without warranties. The licence asks that the author, the licence and the change are named, so they are — the models are fetched once and cached, and the picture is never uploaded.

Download

—

Nothing loaded yet

Add a picture and the plan gets its real numbers — the size that comes out, the tile count and the seconds it takes here.

How to use

  1. Choose a picture. It lands in the well, and the plan beside it lists the size you'll get back, how many 256-pixel tiles the run takes, and whether they go to the graphics card or the processor, with the seconds that costs.
  2. Press 2× or 4×, or press Exact size and fill in what you actually need. If the shape you asked for differs from the source, a row offers Auto, Crop to fill, Fit inside or Stretch, the well draws the frame with the picture where it will land, and a Border colour field appears when padding is involved.
  3. Set the download format and quality and press Upscale. The working button counts the tiles with the seconds left. The result opens at 1:1 with a divider between the browser's own enlargement and the model's; Fit shows the whole frame, but drag the divider at 1:1 before you download, because an upscale judged at a third of its size tells you nothing.

About this tool

Enlarging a photo the ordinary way spreads the pixels you already have across more area, which is why a small picture blown up looks soft. The upscaler does something else. A super-resolution network reads the image in 256-pixel tiles and paints in detail consistent with what it can see, so edges hold together at 2× and at 4×. The two models were trained on pictures that had been JPEG-compressed and resized half to death, which is what happens to anything forwarded through a chat app, so blocking and ringing tend to clear up on the way rather than get magnified.

Next to 2× and 4× there's a third button that turns out to be the one most people want. Exact size takes a paper or photo size from the list, or a width and height you type in pixels, millimetres, centimetres or inches, converted through the DPI box that starts at 300. The fit decides how far the picture has to grow. The network only knows two factors, so it runs the smaller one that clears that and resamples onto the number, which is sharper than stretching straight there; a picture already large enough for the size runs no model at all and is simply resampled. Below that you choose PNG, JPEG or WebP with a quality from 1 to 100, and the DPI you set gets written into the PNG and JPEG file so a print shop reads the size you meant.

Good to know

  • It rebuilds plausible detail. It cannot recover what the camera never recorded, so text too small to read stays unreadable and a face a dozen pixels across won't turn into someone you recognise.
  • Speed depends entirely on WebGPU. A tile takes about 0.075 seconds on the graphics card and about 1.15 seconds on the processor, which is the difference between four seconds and a minute for the same photo. Once a run is under way, the seconds left come from the tiles it has already timed.
  • Input is capped at 12 megapixels with WebGPU and 2 megapixels without. Past the cap the refusal sits where the plan's numbers are, Upscale is held, and the page names the size that would fit, with Shrink it in the Resizer beside the button.
  • Asking Exact size for more than 4× works, but everything beyond the model's factor is plain enlargement and the plan says so. Detail stops improving at that point. Asking for less than the picture already has runs no model: the plan says it is already large enough, and the press only resamples.
  • Transparency survives as PNG or WebP only. JPEG has no alpha channel, so a cut-out saved that way comes back sitting on a solid colour.
  • It's a general photo model. Faces get no special treatment, small type gets no special treatment, and motion blur or a missed focus stays exactly as blurred as it arrived.

Things people ask

Should I choose 2× or 4×?

Two for most photos. It's the more conservative of the pair and the result holds up at full size. Four earns its place when the source is genuinely small, an old avatar or a tight crop, and you need the pixel count. Running 2× twice is not the same operation and usually looks worse than one 4× pass.

Why is it fast on one laptop and slow on another?

WebGPU decides it. Where the browser exposes the graphics card, each tile takes roughly a fifteenth of a second. Where it doesn't, the same model runs on the CPU at about a second per tile. The badge and the plan name the path before you press anything, and the picture that comes out is the same either way, to within one level.

How do I get a photo ready for a 4x6 print?

Press Exact size and pick Photo 4 × 6 in from the paper list. The width and height fill in at your chosen DPI, 300 by default, which works out to 1200 × 1800 pixels. A photo already bigger than that is resampled with no model run. If your photo is a different shape, the fit row appears and Crop to fill is usually what a lab expects. A wide-colour photo, such as an iPhone's, comes back converted to standard sRGB, which is what most labs print from.

It says my image is too large. What now?

The cap is 12 megapixels on the WebGPU path and 2 without it, because tiling a bigger source would keep a machine busy for minutes. Crop to the part you actually want, or press Shrink it in the Resizer beside the button, then bring the smaller copy back here.

Can I use the enlarged photo commercially?

The two models are 2xNomosUni and 4xNomosUni by Philip Hofmann, released under CC-BY-4.0, which permits commercial use, and the credit card under the plan names the author, the licence and what was changed. Rights to the photo itself are unaffected by putting it through here.

Missing something in AI Image Upscaler? Suggest a feature →

Tell someone who needs this.