This is the only tool here that runs a neural network, and it is worth saying plainly what that means: a 54 MB model downloads the first time you use this page. Every comparable service uploads your photo to a server instead, because the model is easier to run there. This one runs it on your machine, which is slower and heavier — and means the photo never leaves your device.
Why the size is unavoidable
Separating a subject from its background is not something that can be done with a formula. It requires a model that has learned what objects look like, and that knowledge has to be stored somewhere. The version used here is the smallest of the three available — a quantised model that trades a little accuracy for less than half the size of the standard one.
The download happens once and is then cached by your browser, so the first image is slow and every one after that starts immediately. Inference itself takes a few seconds on a laptop and longer on a phone. If nothing appears to be happening, it is working.
What it handles well
- People photographed against a background that differs from them in colour or focus. This is what the model was trained for and it is genuinely good at it.
- Products on plain or simple backgrounds — the marketplace listing case.
- Animals, vehicles and objects with a definite outline.
- Portraits where the subject is in focus and the background is not.
Where it struggles
Hair and fur are the classic failure. Fine strands are semi-transparent and finer than the model resolves, so wispy edges come out either chopped off or with a halo of background colour. Glass, water, smoke and anything genuinely transparent are worse, because the correct answer is partial transparency and the model tends to pick one side or the other.
Low contrast is the other one. A subject wearing something close in colour to the wall behind them gives the model very little to work with, and pieces of the subject go missing. Cluttered backgrounds with several plausible subjects produce arbitrary choices about which is the main one.
Always look at the edges at full size before using the result. This kind of tool is confident even when it is wrong, and a cut-out that looks fine as a thumbnail can be visibly ragged when placed on a coloured background.
Nothing is uploaded, including the model
The model is served from this site rather than from a third-party CDN, which is a deliberate choice. It would have been easier to let the library fetch it from its own servers, but that would make this the one page on the site that talks to someone else while you are working. Every request stays on this domain, and your photo stays in this tab.
The output is PNG, because it is the format that can carry the transparency the whole exercise produces. Converting the result to JPEG afterwards would fill the transparent area back in with a solid colour and undo the work.