Upscale an image 2x — without uploading it
A real super-resolution model, running on your machine. You get the full-size result, with no watermark and no credits to buy.
Every online upscaler does one of three things: uploads your photo, stamps a watermark on the result, or shows you a small preview and asks for a credit before the real download. All three exist because the model runs on their hardware. This one downloads a 20MB model to yours, cuts the picture into overlapping tiles so a browser tab can cope, and hands back the whole thing. Best on small pictures — an old photo, a logo, a thumbnail, a screenshot.
Original
Upscaled 2x
Questions people ask
Is my image uploaded?
No. The model is downloaded to your browser and runs on your own device, and the uploads counter in the top bar stays at 0. What you download is the full-size result — there is no preview tier and no watermark, because there is nothing here to sell you.
How much bigger does it get?
Twice the width and twice the height, so four times the pixels. Unlike a plain resize, which just smears the pixels it already has, a super-resolution model reconstructs edges and texture — which is why small text and fine detail survive.
Why is there a limit on the input size?
Because the work grows with the pixel count and all of it happens on your CPU. Small pictures are what this is for: an old scan, a logo, a thumbnail, a screenshot. A large modern photo would take a very long time in a browser tab, so it is refused rather than left to freeze.
Why does it work in tiles?
Running a super-resolution transformer over a whole photo at once would exhaust the tab’s memory. The image is cut into overlapping tiles, each one is upscaled, and the overlaps are cross-faded so no grid appears along the seams.
Does it work offline?
After the first run, yes. The model is cached by your browser and by this site’s service worker.
How this works & why it’s private
This is Swin2SR, an open-source (Apache-2.0) super-resolution transformer, run through ONNX Runtime compiled to WebAssembly. The model weights and the runtime are both served from this domain rather than a CDN, so no third party sees your picture or your IP address. The image is cut into overlapping tiles because a transformer of this kind allocates memory in proportion to the area it is given; each tile is padded out to a multiple of eight pixels (what the model requires), upscaled, then composited back with a cross-faded edge so the seams do not show. Nothing is transmitted at any point — open your dev-tools Network tab and watch.