How watermark removal works when nothing gets uploaded

MarkWipe downloads a small AI model into your browser once, then runs it on your own device to rebuild whatever you paint over. The covered area is filled in using the pixels around it, every pixel outside your selection is copied through unchanged, and your file is never sent anywhere. You can confirm that last part yourself: open the Network tab before you start, and you will see the model arrive and nothing else leave.

What inpainting actually does to the pixels

Inpainting fills a hole in an image with content that matches its surroundings. You mark the badge, the marked area is treated as missing, and the model predicts what belongs there based on the texture, colour and structure around the edges of the hole.

It is a prediction, not a recovery. Whatever the watermark was covering is gone from the file, so the model invents something plausible instead. That works very well over a gradient, a sky, a wall, or blurred background. It works less well over a face, printed text, or a repeating pattern that has to line up on both sides of the patch, because those have structure the model has to guess exactly right rather than approximately.

MarkWipe crops a padded patch around your selection, runs the model on that patch alone, and composites the result back into the full-size image. Running on a small patch rather than the whole frame is what keeps this fast enough to do on a phone.

Why it runs on your device instead of a server

Because that is the only version of this tool that can honestly promise your files stay private. Every browser today can run a neural network directly, using the GPU through WebGPU, or the CPU through WebAssembly when the GPU is unavailable. Both paths ship, and the CPU one carries real traffic rather than sitting there as a fallback nobody uses.

Two things follow from that choice. There is no usage limit, because your electricity is paying for the computation and there is nothing for us to meter. And there is no account, because there is nothing to attach one to.

Why something still has to download

The model has to reach your device once. That is roughly the size of a short video, it happens in the background while you are picking a file, and it is cached for later visits.

There is no way around it. A tool that downloads nothing is a tool that sends your image somewhere that already has the model, which is the arrangement this one exists to replace. We would rather make the download quiet and, over time, smaller, than pretend it is not happening.

What stays exactly the same, and the one thing that might not

Outside the area you mark, nothing changes. The original decoded pixels are held in memory and only the marked region is written over, so the rest of the image comes out byte-identical after a lossless PNG export.

The exception is colour, and it depends on your browser. If your photo carries a wide-gamut profile, which most iPhone photos do, Safari converts it to sRGB while opening the file. That happens before any in-browser tool can see the pixels, so it is not something MarkWipe can prevent. Chrome, Edge and Firefox keep the original values. MarkWipe checks which of the two happened on your device and tells you before you download, rather than letting you find out later.

One more thing worth knowing: exporting re-encodes the file, which invalidates C2PA content credentials if the original carried any. That is true of any editor, and MarkWipe says so at export rather than leaving you to discover it.

Where the limits come from

A model running on your own hardware has a fixed budget, and the scope of this tool is drawn to fit inside it. Small marks that stay in one place are what fits. That is why MarkWipe does one job instead of advertising several.

So a badge in a corner is handled well. A mark that moves position between frames, a pattern tiled across the whole picture, and a large object that would have to be invented rather than patched are all outside what this does, and always will be. When something is beyond the tool, the page for it says so and points at what actually works.

How to remove a watermark in your browser

  1. Open your image

    Choose a file on the homepage. It is read by your browser directly, and the engine starts downloading quietly in the background while you look at your photo.

  2. Cover the mark

    Paint over the badge, drag a box around it, or pick your generator's preset to place the box for you. Cover it fully, including its soft edges.

  3. Remove and save

    Press Remove. The patch is rebuilt on your device, you compare before and after, then download a lossless PNG.

Try it on one of your own images

Opens the tool. Nothing uploads, and there is no limit on how many times you use it.

Use MarkWipe only on media you created or have the rights to edit. Read the acceptable-use terms

Questions about how it works

Do my images ever get uploaded?
No. Open your browser's Network tab before you start, then use the tool. You will see the model file download once, and after that no request carries your image. There is no server that receives your files because there is no server in the path at all.
Why does anything need to download at all?
The model that rebuilds the covered area has to reach your device once, because that is where the work happens. A version with no download would mean sending your image to a machine that already has the model, which is the thing this tool exists to avoid. The download happens quietly in the background while you are choosing a photo, and it is cached afterwards.
Will it stay cached so the next visit is instant?
Usually, but we will not promise it. Browsers evict caches when storage runs low, when you clear site data, and on some platforms after a period of not visiting. MarkWipe asks for persistent storage, and the browser is free to say no. If the cache has been cleared, the file downloads again.
Does removing the badge change the rest of my image?
Only inside the area you mark. Every pixel outside it is passed through untouched, and the default export is PNG, which is lossless. One honest exception is colour on Safari: see the section above on wide-gamut images.
What happens on a device with no GPU support?
It runs on the CPU instead, through WebAssembly. That path is slower but it produces the same result, and it is not a degraded mode kept around for show. It is what runs on a lot of real machines, including any device where the browser decides the GPU is not usable.
Why can it only handle small, fixed marks?
Because a model running on your own hardware has a fixed amount of work it can do, and rebuilding a small patch from the pixels around it is a problem that fits inside it. Reconstructing a large region, or tracking a mark that moves between frames, is a different and much bigger job. We chose the job that can be done well on-device rather than the one that would need a server.

Written and maintained by Yeasin Hossain · Developer, 10+ years

Updated — claims re-checked against the shipped engine, including the GPU and CPU paths and the colour behaviour