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.
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.
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.