Skip to content
Enhance Picture

About Enhance Picture

Enhance Picture is a free, no-signup web tool that rescues flat, dark, soft or undersized photographs — with instant corrections for tone problems and an on-device Real-ESRGAN network for missing detail. This page spells out what each engine actually computes and what happens to the files you feed it.

The corrections it applies

The Quick fix engine offers five controls plus a one-click Auto fix that sets sensible values for all of them. Auto levels rebuilds contrast in a washed-out shot. Brightness and contrast handle exposure that missed. The colour slider adds or removes saturation. Sharpness re-defines edges that came out soft. Upscale re-renders the picture at up to four times its original pixel dimensions. Presets for the four common cases — dull, dark, soft, too small — are one tap away, and a split preview keeps the untouched original beside the result while you work.

The AI enhance engine runs Real-ESRGAN (realesr-general-x4v3), a 1.2-million- parameter super-resolution network released under the BSD-3-Clause license, natively a ×4 upscaler; 2× and 1× "clean up" outputs are derived from the same pass with an exact box reduction. The same fine-tune sliders then operate on the reconstructed image.

A batch of up to 20 pictures shares one set of settings, which is what you want when a whole shoot came off the same camera under the same light. Output stays in the input format, so a PNG with transparency comes back as a PNG with transparency.

What happens to the pixels

On the Quick fix path the picture passes through four stages, in this order:

  1. Scale. The decoded bitmap is drawn onto a canvas at the requested size with imageSmoothingQuality set to high. Output is capped at 40 megapixels so the browser can always allocate the buffer.
  2. Auto levels. A sampled 256-bin histogram per colour channel locates the 0.4% and 99.6% points; each channel is then stretched so those become 0 and 255. Channels with almost no spread are left alone, which stops monochrome and heavily tinted images from being wrecked.
  3. Tone and colour. Brightness and contrast are folded into the same three lookup tables as the level stretch, so the whole tonal pass is one walk over the buffer. Saturation is applied against Rec. 709 luma, which keeps skin tones from sliding orange as you push it.
  4. Sharpen. An unsharp mask subtracts a 3×3 box blur from the original and adds the difference back, scaled by the slider. This raises local edge contrast — it does not synthesise detail that was never recorded.

The AI enhance path replaces stage one with a neural pass, still on your device:

  1. Tile. A background worker cuts the picture into 128–256 px tiles, each carrying a 12 px ring of surrounding context. Photos above 4 megapixels (0.7 MP without GPU acceleration) are downscaled first so the pass finishes in reasonable time.
  2. Infer. Every tile becomes a float tensor and runs through Real-ESRGAN under onnxruntime — on your graphics card via WebGPU where the browser offers it, otherwise on the CPU via WebAssembly. The context ring is thrown away afterwards, which is what makes the tile seams invisible.
  3. Assemble. The ×4 tiles are stitched into the final image; for 2× and 1× outputs each tile is reduced with an exact box average before stitching, so no resampling ever crosses a tile boundary. Transparency from the original is re-attached at the end, and the tone stages above run on top if you move the sliders.

The result is re-encoded by the browser: JPEG at quality 0.92, PNG losslessly, WebP at 0.92. There is no server anywhere in that description — the only machine-learning model involved is the one your own device just ran.

What happens to your files

They stay with you. Every stage above runs in the browser tab you have open, so no photograph, filename or byte of pixel data is transmitted to Enhance Picture — there is no upload endpoint to transmit it to.

That also means no upload wait on a slow connection. The one download the AI engine does perform goes the other way: about 4.9 MB of model weights plus the onnxruntime runtime arrive in your browser on first use and are cached from then on. Close the tab or drop a picture from the batch and the in-memory copies are released; nothing is written to disk, so a later visit starts from an empty queue with no trace of what you enhanced before.

This describes what the tool itself does. It says nothing about what a browser extension, a corporate proxy or the device you are holding might be doing — only that our side of the exchange never receives your pictures at all.

Got a photo that needs rescuing?

Take it to the picture enhancer and start with Auto fix.