Remove unwanted objects and repair images without uploading anything
Built for precise, believable cleanups
SlimSAM one-click selection, automatic engine routing, region-of-interest inference, and feathered compositing — so the result survives a second look.
LaMa large-mask inpainting
A generative model with 51M parameters reconstructs the structure behind the mark instead of smearing the surroundings into a blur.
Magic Select (Pro)
Click an object and SlimSAM segments it right on your device — add points to include, Alt-click to exclude, then apply it to your mask. A one-time download of about 14 MB, nothing is uploaded.
Auto engine, no guesswork
Every run measures your selection: tiny marks on smooth backgrounds are repaired in milliseconds by Fast mode, while larger or textured regions go to LaMa automatically.
Nothing leaves your device
Inference runs on WebGPU or WebAssembly inside this tab. No upload, no queue, no account, no image history.
Three steps, entirely on-device
- 01
Import a photo
Drag it in, paste from the clipboard, or pick a file. JPEG, PNG, and WebP up to 2048 px on the long edge for free, 4096 px with Pro.
- 02
Paint what to remove
Cover the mark with the brush, box, or lasso — or click the object once with Magic Select (Pro). Purple is what gets rebuilt — press E to erase part of the selection.
- 03
Erase and export
Run it, compare before and after with the split slider, then export PNG, JPG, or WebP at full resolution.
Fast mode
Fast-marching repair. Best for small marks, thin text, and date stamps on smooth backgrounds. Nothing to download.
AI HD mode
LaMa neural inpainting. Best for larger objects, textured backgrounds, and anything that needs new structure.
Auto engine
The default: each run measures your mark and routes it to Fast or LaMa automatically. You can still pin either engine manually.
Batch at the same position (Pro)
Paint a shared mark once and erase it from up to 10 same-size photos in one run — the mask keeps the same relative position and the results come back as a ZIP.
About the watermark and object eraser
Eraser is a free AI watermark remover and object remover that runs entirely in your browser. Paint over the thing you want gone — a logo burned into a corner, a date stamp, a stranger in the background, a cable crossing a product shot — or click it once with Magic Select (Pro), and the tool reconstructs what was behind it. Three engine settings are offered: Auto (the default, which chooses per mark), a zero-download Fast Marching inpainter, and a LaMa neural inpainter — plus a Pro batch mode that erases the same mark from up to 10 photos. Nothing is uploaded, there is no sign-up, and there is no per-image fee.
It is built for the jobs where an online removal service is the wrong answer: cleaning a client's photos you are not allowed to put on someone else's server, stripping watermarks from images you own, removing an exif date stamp from a personal archive, or clearing background clutter from a product photo before it goes into a catalogue. The image goes into your browser's memory and never leaves it. Free accounts edit photos up to 2048 px on the long edge; Pro raises that to 4096 px and unlocks Magic Select and batch processing.
How LaMa fills a hole
The AI engine is LaMa (Large Mask Inpainting), a Fourier-convolution network with roughly 51 million parameters, exported to ONNX and run with ONNX Runtime Web. LaMa was trained specifically for large-mask inpainting: rather than cloning nearby pixels, it learns the structure of the scene — the continuation of a wall texture, the geometry of a floor, the rhythm of a repeated pattern — and synthesises a plausible fill. That is what lets it remove an object that spans a large part of the frame without smearing.
The model receives two tensors: the RGB image and a single-channel mask where painted pixels are marked. It returns a complete image, and the tool blends only the masked region back into the original, so untouched pixels are bit-for-bit identical to what you imported. Edges are feathered with a Gaussian falloff so the seam is invisible even on smooth gradients like sky or skin.
Three engine settings: Auto, Fast, AI
Auto is the default and measures every painted mark just before the run: when its bounding box is at most 96 px on the long edge and it covers 1% or less of the image, the job goes to Fast; anything larger or more textured goes to LaMa. Ties resolve to Fast because it is instant and downloads nothing, and you can override the decision per run with the manual Fast / AI HD switch.
Fast mode uses OpenCV's classic Fast Marching and Telea inpainting algorithms, reimplemented in TypeScript with a binary heap. They propagate pixel values inward from the boundary of the hole along an approximate geodesic front. There is no model download and the result is instant, which makes it ideal for watermarks sitting on flat or lightly textured areas — a semi-transparent logo over a gradient, a timestamp over sky.
AI mode downloads LaMa (~210 MB) once and caches it in IndexedDB, so every later run is offline-capable. It is the right choice for structured scenes: removing a person from a street, deleting a fence from a field, erasing text over bricks. If the two produce a similar result on your image, prefer Fast — it costs nothing and finishes in milliseconds.
Masking tools, hardness and precision
Four selection tools are provided. Brush is freehand painting with an adjustable radius and hardness (25–100%), so a soft-edged mark can be feathered as you paint; Box drags a rectangle, the fastest way to cover a corner watermark; Lasso traces an arbitrary outline for irregular objects; Erase Mask removes painted pixels you got wrong. Undo and redo cover every stroke, and the mask is drawn as a translucent overlay so you always see exactly what will be filled. A five-step result history sits behind stroke undo: once stroke history is exhausted, ⌘Z rolls back a whole eraser run, restoring both the image and the mask.
Mask quality decides output quality more than anything else. Paint a little beyond the object — a few pixels of margin on all sides — so the network has context on every side of the hole. Painting too tightly leaves a halo; painting far too widely makes the model invent more of the scene than necessary. For large subjects, erase in passes: remove the main body, then clean up the residue.
Magic Select: click instead of paint (Pro)
Magic Select is a Pro tool built on SlimSAM (Apache-2.0), a distilled Segment Anything model. When you enter the tool, a vision encoder runs once over your working photo — after a one-time download of about 14 MB of quantized weights for WASM, or 21 MB of fp16 weights for WebGPU — and the image embedding stays cached until the image changes. Every click after that is a millisecond decoder query.
A plain click inside an object is a positive point; Alt-click (or right-click) adds a negative point that pushes the selection off the background. You can place several of each. The decoder proposes three candidate masks and the one with the highest IoU score is shown as a temporary emerald overlay, separate from painted pixels. Enter — or Apply to mask — unions it into your mask and returns you to the brush for touch-ups; Clear points restarts the selection; Esc leaves without changing anything. SlimSAM runs entirely in this tab through transformers.js and ONNX Runtime Web: no coordinates or pixels are ever sent anywhere.
Batch: one mask, many photos (Pro)
Batch mode targets the same mark repeated across a shoot — a station ID burned into event photos, a scanner's dated border. You paint the shared mask once on a reference photo; at run time it is resampled to each queued image's dimensions (bilinear scaling, then a 128 threshold back to a hard mask) and erased at the same relative position. The Auto decision is taken once from the reference and applies to the whole queue, as does the GPU preference. Pro queues up to 10 images per run; the free plan accepts one. Because the mask is positioned relatively, same-size frames align exactly; different aspect ratios still run, but the shared spot may drift a little.
Queue items are independent: one image that fails is marked failed and can be retried on its own without rerunning the others. The cleaned PNGs download together as a ZIP, each file named after its source. As in single mode, every image stays on the device.
Resolution, memory and why we crop
Running a 51M-parameter model at full resolution on a 24-megapixel photo would need many gigabytes of memory. Instead the tool computes the bounding box of your mask, expands it with padding, and runs inference only on that region — a technique called region-of-interest inference. The rest of the image is never touched by the model. The ROI is then composited back with feathered edges.
The ROI is further scaled so its long edge is 1024 px on desktop and 512 px on phones and low-core machines, then padded to a multiple of 8 for the graph. Your export is unaffected: only the patch is downscaled for inference and upscaled back into the full-resolution original, so a 6000 × 4000 photo exports at 6000 × 4000.
WebGPU and the WASM fallback
Inference runs on WebGPU when the browser exposes it, and falls back to WebAssembly (CPU) when it does not. WebGPU is typically several times faster; the fallback still works, just slower. Some drivers report WebGPU support and then fail at the first real dispatch, so the tool catches those errors at runtime, disables the GPU for the session and retries on WASM automatically rather than leaving you with a stuck progress bar.
Source images are decoded with the browser's own decode pipeline. The free plan pre-shrinks anything larger than 2048 px on the long edge before editing; Pro accepts up to 4096 px. The cap is comfortably above what the inpainting model can usefully process inside the ROI patch and keeps memory predictable on mobile Safari.
Limits & requirements
Inpainting is reconstruction, not recovery. What was behind a watermark is genuinely gone, and the model guesses it from surrounding context. Large removals in highly structured scenes — a face half-occluded by a logo, dense text, fine regular patterns like chain-link fencing — can produce plausible-looking but wrong detail. Try Fast mode, shrink the mask, or work in smaller passes when that happens.
AI mode needs a one-time ~210 MB download and a device with enough free memory for a 1024 px fp32 graph; very old phones should stay on Fast mode. Nothing is queued on a server, so there is no rate limit and no queue — but there is also no cloud GPU, so a large fill can take a few seconds on CPU.
The free plan covers single images up to 2048 px on the long edge with both Fast and AI engines. Pro raises the input limit to 4096 px and unlocks Magic Select and batches of up to 10 images; everything else stays identical — no watermark, the same export formats (PNG, JPEG, WebP), and the same privacy.
Privacy
Your image never leaves your device. Decoding, masking, inference and export all happen in the page. There is no upload endpoint, no account, no analytics on your image, and no server-side log of what you removed. The only network requests are the one-time model downloads from a model CDN (LaMa, and SlimSAM for Pro Magic Select); once the models are cached in IndexedDB the tool works fully offline.