What runs, and where
| Part | What it is | Size | From |
|---|---|---|---|
| Model | Real-ESRGAN general x4 v3 (BSD-3-Clause) | 4.6 MB | our model file server, once; then your browser's cache |
| Runtime | ONNX Runtime Web 1.29 (MIT), WebAssembly | 13.4 MB | this site |
| Your picture | decoded, tiled and rebuilt in this tab | — | never leaves the device |
The model file is checked against its recorded SHA-256 before it is run or cached. “Remove downloaded model” in the panel deletes it from your browser.
Reconstructed, not recorded
A classical kernel computes each new pixel from the recorded ones around it: soft, honest and repeatable. A super-resolution model predicts what the larger picture probably looked like. It can restore crisp edges and plausible texture, and it can also draw a confident detail that was never there — a letter in a blurred sign, a pattern in fabric, a feature in a face. The label on the result and the line in the receipt say so, and the side-by-side view puts the classical enlargement of the same patch next to it so you can judge.
Limits
- Source size: up to 1 MP at ×4 and 2 MP at ×2. Larger pictures go through the classical upscaler, or are downsized first.
- WebAssembly on the processor, single thread: no graphics-card acceleration in this version.
- No face restoration, denoising, colourisation or generative fill — enlargement only.
- Transparency is enlarged bilinearly beside the model's colour output; the model itself sees colour only.
Questions
Is my photo uploaded to an AI server?
No. The model runs inside this browser tab. The only download is the model file itself (4.6 MB, once, from our model file server, then cached by your browser) and the runtime that runs it (from this site). Neither request carries your picture, its name or anything about it.
What does the AI actually do?
It predicts detail. Real-ESRGAN was trained on pairs of small and large photographs, so given a small one it produces the large version it has learned is likely. The result is sharper than interpolation, and some of what it shows was never in front of the lens — which is why every result here is labelled “reconstructed” and a classical enlargement of the same patch is offered beside it.
What is the difference between ×2 and ×4?
The model enlarges by exactly four. ×4 gives you that output directly. ×2 runs the same pass and then averages each 2 × 2 block of its result, which halves the size and also calms the model's texture — often the better choice for photographs of people.
How big a picture can it take, and how long does it take?
Up to 1 megapixel for ×4 and 2 megapixels for ×2, so the result stays inside what a browser tab can hold. It runs on the processor through WebAssembly, one tile of 128 px at a time, and shows its progress; a 0.5-megapixel picture typically takes from several seconds to a minute or two depending on the device. You can cancel at any point.
When should I use the classical upscaler instead?
When the file has to be a faithful record — evidence, a scan for a form, a document where an invented detail would matter — or when the picture is larger than this mode takes. Classical kernels add no detail and invent nothing, and they have no size limit beyond the browser's.
Neighbouring measurements
Need an enlargement that invents nothing? The classical upscaler names its kernel and counts the computed pixels. Only need a bigger print? Check whether the DPI alone can do it.
- Upscale an imageEnlarge through a named kernel, with the share of computed pixels stated.
- Image resamplingA percentage-led pixel resize with the interpolation cost stated before export.
- Resize an image for printingA4, photo and frame sizes: retag, lower DPI, or short by N pixels.
- Why upscaling loses detailInterpolation fills between samples. It does not recover absent ones.



