Upscale

About

Upscale is a small side project: one page, one job, no account. It doubles the resolution of a picture and hands it back.

How it works

The uploaded file is decoded and checked before anything else touches it. If it is a valid PNG, JPEG or WebP no larger than 1000×1000 pixels, it joins a queue. A single worker resizes it to twice the width and height using a Lanczos filter, applies a small unsharp mask to recover the local contrast that resampling costs, strips metadata, and writes a PNG.

What it is not

There is no neural network here. Tools built on diffusion models invent detail that was never in the source — often convincingly, sometimes disastrously, and always slowly. This one only redistributes the information the file already contains. For a screenshot, a logo, a small product photo or a low-resolution scan, that is usually what you want. For a blurry face you hoped to recover, it will not help.

Your files

Storage
The upload and the result live in a temporary directory and are deleted 30 minutes after the job finishes, whichever comes first.
Logs
The web server keeps standard access logs for 7 days. Addresses are truncated before they are written.
Rate limiting
The daily quota is counted against a salted hash of your address. The salt is regenerated every night, so yesterday's counters cannot be linked back to anyone.
Third parties
No analytics, no trackers, no CDN in front of the site. Web fonts are the only external request the page makes.

Roadmap

In rough order: 4× output, larger inputs, a batch endpoint, and an option to keep the original format instead of always returning PNG. None of it has a date.