Enlarge a photo

About EnlargePicture

This site does one thing. It takes a picture that is too small and makes it bigger as well as that is possible without pretending to know things it does not know.

Why a whole site for one operation

Enlarging looks like a slider and is not. It is a resampling kernel, an order of operations, a set of ceilings imposed by browser canvases, and a genuinely difficult conversation about what a result means. A tool that offers it alongside twenty other features gives it a dropdown and a progress bar. We gave it a magnifier, a comparison you have to hold down, and a paragraph above the picture describing exactly which passes ran.

Everything else lives somewhere else on purpose. Setting an exact width and height is a different question with a different right answer, and so is working in centimetres or preparing something for a printer. Growing the canvas rather than the picture is the opposite operation entirely. Keeping the line tight is what lets this one get the depth.

What we will not claim

There is no arrangement of arithmetic that returns information a camera never recorded. Any site telling you otherwise is describing a substitution and calling it a recovery.
  • We ship two models and do not pretend they recover anything.A trained network genuinely beats arithmetic on soft sources, and two of them now run at /ai-upscale-image — 240,078 bytes at 3× and 4,866,396 bytes at 4×, downloaded once, on request, onto your own machine. What they add is invented detail, plausible rather than recorded, and the page says so above the tool rather than in a footnote. They are kept off the main enlarger so that pressing a factor here never quietly costs you fourteen megabytes.
  • We do not promise quality is preserved.Recorded detail per pixel falls every time a picture is enlarged. That is arithmetic, not pessimism. What we can promise is that the spreading is done with a real kernel rather than a browser default, and that you can check the result at 1:1 before you commit to it.
  • We do not keep anything.There is no account, no upload, no server-side processing and no storage. The picture is decoded into memory in your own tab, and closing the tab is the entire clean-up procedure.

How it is built

Static pages, and nothing running anywhere but your own tab. The enlarger is hand-written TypeScript running in a Web Worker: separable convolution with precomputed weight tables, premultiplied alpha so cutouts keep clean edges, and a directional method that tests which way each edge runs before it interpolates. The clean-up pass targets the eight-pixel grid a JPEG encoder leaves behind and the colour channels it stores at half resolution, and it runs before the enlargement because afterwards is too late.

Preview and save call the same function with different input sizes. Nothing about the method changes between what you approved and what lands in your downloads folder.

Licences

Everything here that someone else wrote, and the terms it is used under:

  • ONNX Runtime Web — runs the two trained models in the browser. MIT; notice. Source
  • ESPCN (sub-pixel CNN) weights — the Fast enlarge model, 3×. Apache-2.0; notice and source link. Source
  • Real-ESRGAN general x4v3 weights — the Detail enlarge model, 4×. BSD-3-Clause; notice. Source
  • libheif-js (libheif) — decodes iPhone HEIC files, loaded only when one is opened. LGPL-3.0; notice; shipped unmodified as a separate, replaceable file. Source
  • Bitter — the display typeface. SIL Open Font License 1.1; notice. Source
  • Figtree — the text typeface. SIL Open Font License 1.1; notice. Source
  • Next.js, React — the page framework. MIT; notice. Source
  • clsx — class-name helper. MIT; notice. Source

Where to start

Photographic visual for About

About