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.
Runs entirely in your browser — your files and text never leave your device. The AI model downloads the first time you run this tool, then stays on this device — so later runs work offline.
Downloads the upscaling model (~2 MB) the first time you run it, then works offline.
Drag & drop or paste an image here, or
The model works at 2× or 4×; the exact number you ask for is reached by resampling down from whichever of those clears it, which is sharper than enlarging straight to it.
A 4× photo is enormous as PNG — JPEG or WebP is usually the sane choice. The resolution is written into PNG and JPEG so a printer knows the intended size.
2xNomosUni_span_multijpg_ldl by Philip Hofmann · 4xNomosUni_span_multijpg by Philip Hofmann, licensed CC-BY-4.0; converted from safetensors to ONNX at a fixed 256×256 input. Provided as-is, without warranties. Downloaded once (4.0 MB) and then cached; the image itself is never uploaded.
How to use
- Choose a picture. The hint line under the size buttons then reads out its dimensions, the dimensions you'll get back, whether the job will run on the graphics card, and a rough time in seconds.
- 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 appears offering Auto, Crop to fill, Fit inside or Stretch, with a colour picker for the border when padding is involved.
- Set the download format and quality, press Upscale, and wait out the tile counter. Drag the compare slider at 100% zoom before you download, because an upscale judged at 30% zoom 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 network only knows two factors, so it runs whichever of them clears your target and then resamples down to land on the number, which is sharper than stretching straight there. 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 CPU fallback, which is the difference between two seconds and a minute for the same photo.
- Input is capped at 12 megapixels with WebGPU and 2 megapixels without. Past the cap the Upscale button switches itself off and the hint line reports the megapixel count it measured.
- Asking Exact size for more than 4× works, but everything beyond the model's factor is plain enlargement and the hint line warns you. Detail stops improving at that point.
- 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 hint line tells you which path you're on before you press anything, and the picture that comes out is identical either way.
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. If your photo is a different shape, the fit row appears and Crop to fill is usually what a lab expects.
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 shrink the image first with the resizer, then bring it 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 line sits at the bottom of the tool. Rights to the photo itself are unaffected by putting it through here.
Missing something in AI Image Upscaler? Suggest a feature →