How On-Device AI Upscaling Works, and What It Cannot Do
An AI upscaler does not recover detail. It invents detail that is statistically plausible given what it can see. Most of the time that is exactly what you want, and occasionally it is dangerous. Understanding which situation you are in is the difference between a great result and a confidently wrong one.
Step-by-step: see our guide to upscaling images with AI for the walkthrough. This article explains the mechanism and the honest limits.
Traditional resizing versus super resolution
Classic enlargement algorithms - nearest neighbour, bilinear, bicubic - are pure arithmetic. To create a new pixel they average the ones around it. Averaging never adds information, so the enlarged image is mathematically faithful and visually soft, with edges that turn into gentle ramps.
A super-resolution model works differently. It was trained on millions of pairs of images: a full resolution original and a shrunken copy. Over that training it learned what kinds of high-resolution structure typically produce a given low-resolution patch - how a real eyelash tends to look before downsampling, how a brick edge behaves, how text strokes terminate. At inference it applies that learned prior, producing a sharp result that looks like a photograph rather than an enlargement.
The critical word is typically. The model outputs the most likely detail, not the true detail. Where the two coincide, the result is superb. Where they do not, the model produces a convincing fiction.
Why it runs in tiles
Our AI Upscaler loads a neural network through TensorFlow.js and runs it directly in your browser tab, doubling the image's width and height in a single pass. Rather than feeding the whole photo through at once, it processes the image in small patches of 64 pixels and reassembles them. That keeps peak memory manageable, since a browser tab has far less headroom than a desktop application, and it is why a large image takes noticeably longer than a small one - the work grows with the number of tiles.
The model file is downloaded to your machine on first use. Your photo goes the other way: nowhere. It is decoded locally, inferred against locally, and written back out as a PNG. Old family photographs, medical scans, and unreleased artwork are exactly the material people hesitate to upload to an enhancement service, and here there is nothing to hesitate about.
Where it performs well
- Small web images you need larger. A 600 pixel product shot for a banner is the classic case.
- Mild JPEG artefacts. Blocking and ringing from heavy compression are patterns the model has seen constantly and tends to clean up.
- Textures and organic surfaces. Foliage, fabric, stone, and hair regain a convincing sense of detail.
- Illustrations and flat art. Clean line work enlarges beautifully because the underlying structure is simple and predictable.
The limits worth stating plainly
It cannot read what was never captured
If a number plate is fifteen pixels wide, those pixels do not encode the characters. An upscaler will produce sharp, legible-looking glyphs that are essentially guesses. The same applies to distant faces, small text, and serial numbers. Never treat upscaled output as evidence of anything.
Faces change
Facial detail is where invented structure is most noticeable, because humans are exquisitely tuned to it. Skin can take on a smooth, waxy quality and fine features can shift slightly. For portraits, compare against the original at full size before you commit.
Heavy damage gets amplified
Motion blur, extreme noise, and severe compression damage are not undone. The model sharpens whatever structure it finds, including the artefacts, so a badly degraded source often comes back sharper and worse.
The ceiling is real
Each pass doubles the dimensions. Pushing far beyond that, by repeatedly re-upscaling output, compounds every invented detail from the previous round and the image drifts steadily away from the original. One pass on a decent source is where the value lives.
Getting the best out of it
Start from the largest original you have. A screenshot of a photo is a worse input than the photo, even if both look similar on screen.
Do not sharpen first. Pre-sharpening feeds the model halos it will faithfully enlarge. Upscale first, adjust afterwards if needed.
Check the print maths before you assume you need it. At 300 dpi, a 1000 pixel wide image prints cleanly at about 3.3 inches. Doubling to 2000 pixels takes that to roughly 6.7 inches. If your target print is smaller than the original already supports, upscaling adds nothing.
Add a little grain if the result looks plastic. Super-resolution output is sometimes unnaturally clean. A light pass of film grain restores the texture your eye expects from a photograph and hides the smoothness.
And if what you actually need is a smaller file rather than a bigger picture, our notes on resizing versus compressing cover the opposite direction.
Back to blog