Image tools

Upscale image

Double an image's resolution with a super-resolution model rather than a plain resize. The model is served from this site and runs on your device.

Runs on your device. The file is never uploaded.

Upscale image runs the Swin2SR lightweight x2 model over a photo and returns it at double the width and height, named with a -2x suffix. Nothing is fetched until you tick the download box, and the 32MB model is held by your browser cache alone, never stored by the app. Anything over 1.0 megapixels is refused before a tensor is built.

Input

Options

Questions

How much bigger does it make the image?

Exactly twice the width and twice the height. The scale factor is fixed by the model rather than offered as an option, so there is no 4x setting. A 600x400 photo comes back at 1200x800, named with a -2x suffix in the original format, such as photo-2x.jpg. Run it twice for 4x, accepting that the second pass works from the first result.

Why does it refuse my photo for being too large?

Because the model is a transformer whose cost and memory both scale with the input, and there is no streaming path. Anything over 1.0 megapixels is refused up front with a message giving your dimensions and megapixel count and suggesting you shrink it with image-resize first or crop the part you need. Refusing beats allocating a huge tensor and taking the tab down.

Why do I have to approve a download?

Because the upscaling model is a 32MB download. Until the download option is enabled the tool stops with "Upscaling an image needs a 32MB model downloaded to this device", and adds that it is served from this site, never a third party, and is not part of the offline bundle. The app stores the model nowhere, so it is requested again on each run and your browser HTTP cache absorbs the repeat.

Which model is used?

Swin2SR, the lightweight x2 variant, in full-precision ONNX, run through transformers.js on ONNX Runtime inside a Web Worker on your device. Before inference the image is padded by mirror reflection up to a multiple of 8 pixels, the model window size, and the padding is cropped straight back off the result.

Does it keep transparency?

Yes, by carrying it across separately. The model works on red, green and blue only, so if any pixel in your file is not fully opaque, the alpha channel is resized to the new dimensions and copied onto the result, and the report ends with "transparency preserved". Without that, a transparent PNG would come back on a black rectangle.

How is this different from resizing to 200%?

Resize image resamples what is there, which gives you a larger, softer copy. This runs a super-resolution network that reconstructs plausible detail, which takes far longer and needs the model download. Use Resize image when you only need different dimensions, and this when you want the detail back. JPG and WebP outputs use the Quality option, default 90.

Related Image tools