Every background remover I used before this one asked for the same thing first: upload your photo. The photo goes to a server, a model runs there, a cut-out comes back. The privacy page says the file is deleted afterwards, and I have no way to check that.
There is a different way to build the same feature, and it is the one I ended up shipping: download the model to the browser, run it there, and never send the photo anywhere.
How it actually works
The tool is the Background Remover on ToolsByUs. It loads a segmentation model in the browser with ONNX Runtime Web — the model file downloads once into the browser, inference runs locally on your device, and the output is a transparent PNG. The photo's contents never leave the tab, because there is no upload step at all. There is no account, no API key, and no server that ever sees the image.
That is a narrower claim than "your photo is private". It is a checkable one: open the network tab, drop in a photo, and watch — nothing is posted.
A real run
I ran it on a real portrait: a 1280×1920 JPEG, about 400 KB — a woman, head and shoulders, against a plain light-grey background.
On the first run in a fresh browser, the tool downloaded the model file — the page's progress showed 25.5 MB in total — and from clicking "Remove background" to a finished result took under 30 seconds, download included. A second run with the model cached took under 10 seconds. The output was a transparent PNG at the photo's full 1280×1920 resolution, 4.7 MB, up from the 400 KB JPEG I started with.
At full zoom, the plain grey background is completely gone and the edges around the shoulders and neck are clean. The hair is good but not flawless: a few fine strands on the right side of the head carry a faint whitish halo where the light-grey background shows through, and there is a slight grey fringe along a couple of strands on the left. No part of the subject is cut away, and there are no leftover chunks of background — the flaws are the kind you only notice when you zoom in.
The part nobody mentions: the first run costs a download
The honest trade-off of running a model in the browser is that the model has to get there. The first time you open the tool, it downloads the model file — that is the price of never uploading your photo. On a slow connection that first load is noticeable; later runs reuse the cached model and start fast.
The other trade-off is your own hardware doing the work. There is no server GPU. A large photo takes longer and uses more memory than a small one, and if you close the tab mid-run, nothing is saved anywhere — there is no server copy to recover.
Honest caveats
- The model download happens once per browser (cached afterwards), but clearing site data means downloading it again.
- Edge quality on hair, fur, glass and thin objects is good, not perfect. Check the result at full zoom before you ship it.
- Transparent PNGs are usually larger than the JPEG you started from. That is the format, not a bug.
- No upload means no server-side anything: no queue, no faster GPU, no recovery if you close the tab.
- "Your file's contents never leave the browser" is the whole guarantee. Analytics, if any, is configured separately — the guarantee covers your file, not the page.
Why I keep building this way
ToolsByUs is 135 free tools, all client-side. The background remover is the clearest example of why: the privacy is in the architecture, not in a promise on a privacy page. You can verify it yourself in the network tab in about thirty seconds.
The tool is free, no signup: https://toolsbyus.com/remove-background