Got Convert

Upscale low-res photos in your browser.

Free image upscaler. Turn small or blurry images into sharper, higher-resolution versions — 2× or 4× — without uploading.

Drop an image

PNG, JPG, WebP, BMP, HEIC · or paste with ⌘V

Works best on phone photos, scans, and web images.

How it works

  1. Drop an image — JPG, PNG, WebP, BMP, or HEIC.

  2. Pick 2× or 4× upscale.

  3. Model runs locally via WebAssembly.

  4. Download the upscaled image as PNG, JPG, or WebP.

How it works

The model is realesr-general-x4v3 — a compact variant of Real-ESRGAN trained on synthetic real-world degradations (blur, noise, JPEG compression, downsampling). It runs entirely in your browser via onnxruntime-web and is about 5 MB on disk — the same size class as our background-removal model. Large images are processed in tiles so memory stays bounded even on mobile devices.

When to use this vs. plain resize

Use this when you want the result to look better, not just bigger — small photos getting reprinted larger, old scans you want to actually read, low-resolution images you want to drop into a high-DPI design. For simple "make this image these exact pixel dimensions" needs, use Resize image instead — it's instant and doesn't need a model.

Frequently asked

How do I upscale an image for free without uploading it?

Drop your photo into the dropzone, pick 2× or 4×, and click Upscale. The model (realesr-general-x4v3) downloads to your browser on first use (~5 MB), then runs entirely on your device. Subsequent runs reuse the cached model and are quick.

How is this different from just stretching the image?

Naïve enlargement (the kind built into image viewers and editors) just spreads existing pixels — the result looks softer, not actually clearer. This tool uses a neural network trained on real-world photo degradations to invent plausible new pixels and reconstruct sharper edges, cleaner text, and reduced JPEG noise. The improvement over bicubic is clearly visible on phone photos and old web images.

How long does it take?

On a modern laptop, a 512×512 input upscales in about 1–2 seconds. Larger images take proportionally longer because they're processed in tiles. The first run also includes a one-time ~5 MB model download.

What images does it work best on?

Phone photos, scans of older photos, low-resolution web images, and JPEG-compressed images. The model was trained on real-world degradations rather than anime, so general photos are its strong suit. Heavily stylized illustrations or anime may upscale slightly less cleanly than they would with an anime-specific model.

What's the maximum image size?

For 4× output, we cap the input at 2048 px on the longest edge (since the output is 4× larger and can hit memory limits on phones). For 2× the cap is more generous. If your image is bigger, resize it first or pick 2× instead.

Which formats are supported?

Input: JPG, PNG, WebP, BMP, HEIC. Output: PNG, JPG, or WebP — pick PNG to preserve every pixel exactly, JPG to keep file size small, WebP for the best balance.

What model does it use?

realesr-general-x4v3, a small variant of Real-ESRGAN built on the SRVGGNetCompact architecture. It's about 5 MB on disk, fast on WebAssembly, and trained specifically for real-world photo degradations (blur, noise, JPEG artifacts).