🔒 Your images never leave your device — inpainting runs locally as WebAssembly. You are responsible for having the right to modify the images you process.
Object Remover

Paint over the unwanted stuff

Paint a mask over anything you want gone — a tourist, a power line, a date stamp — and the inpainter fills the area from surrounding pixels. Runs locally in WebAssembly. No AI model, no upload, no watermark.

✦ Classical inpainting✦ Brush + eraser✦ Remove several objects✦ No upload
Drop an image here, or click to browseJPG · PNG · WebP — processed in your browser
How it works

Three quick steps

1 · Load

OpenCV.js is lazy-loaded as WebAssembly on first run, then cached by your browser.

2 · Paint & remove

Brush over the unwanted area. Switch to eraser to refine. Click Remove objects.

3 · Repeat or download

The cleaned photo stays loaded, so you can paint the next object straight away. Hold “see original” to compare, then download. Nothing left your device.

FAQ

About the object remover

Is this AI?

No. It uses OpenCV.js's classical inpainting (Telea or Navier–Stokes), which fills the masked area from surrounding pixels. It is fast and local, and it is "good enough to hide a tourist or a power line" — it is not generative AI that re-imagines the scene.

Why does the page load slowly the first time?

OpenCV.js is ~8 MB of WebAssembly. It downloads once, then is cached by your browser. Subsequent visits are fast.

What if the result has visible artifacts?

Try a smaller brush (mask only the unwanted object, not the background), or switch algorithms (Telea vs Navier–Stokes). Painting too much at once can confuse the inpainter.