Remove Image Background
Cut the subject out of a photo and save a transparent PNG. The model runs in your browser — the image never leaves your device.
Remove Image Background
Drop a file here, or click to choose
The first run downloads a 4.4 MB model and a 14 MB runtime and keeps both in your browser’s cache — later runs, in this tab or after a reload, download nothing. The image itself is never uploaded.
Cut-off 0 keeps the model’s soft mask, which suits fur and motion blur; a higher cut-off gives a cleaner, harder edge. Edge softness blurs that edge afterwards.
Runs entirely in your browser. Your input never leaves your device.
What next?
How it works
The tool is one button, but the result depends almost entirely on the photo you give it and on two settings afterwards. This is the order that gets a usable cutout the first time.
1. Pick a photo the model can handle
u2netp finds the single most prominent object in a frame. It does that well when the subject and the background differ in colour or brightness, and badly when they do not. Before running anything, look at your image and ask whether you could trace the subject's outline in one stroke. A shoe on a wooden floor, a person against a wall, a bottle on a table: yes. A grey cat on a grey sofa, a wine glass, a person with flyaway hair against a busy street: expect to be disappointed.
If the subject is small in the frame, crop closer first with Crop Image. The model works at 320×320 regardless of your image size, so a subject that occupies a tenth of the frame is being judged from a very small number of pixels.
2. Run it, and wait out the first download
The first run fetches the 14 MB WebAssembly engine and then the 4.4 MB model, and the progress bar names whichever is arriving. A Cancel download button sits beside the main one while that is happening, in case you would rather not spend the bytes right now; nothing is changed if you use it. Both files are stored in your browser's cache afterwards, so the download happens once, not once per image and not once per visit. On the runs that follow, the bar barely appears and the whole thing takes a second or two — during which the page will not respond to clicks, because the model runs on the same thread that draws it.
3. Read the numbers, not just the picture
Under the preview the tool reports how much of the image it kept and how much it removed. That line catches the two failure modes a checkerboard preview hides on a small screen: a mask that kept almost everything (the background was not removed at all) and one that kept almost nothing (the subject was treated as background). If either number looks absurd for your photo, the mask is wrong, and the next two steps will not save it — change the photo instead.
The same line reports the output size, and says so explicitly when the cutout came out smaller than what you supplied. Anything above 8 megapixels is produced at a reduced size: the mask is predicted at 320×320 whatever you feed in, so the extra pixels sharpen nothing about the edge while costing memory and a longer pause.
4. Set the cut-off
The cut-off decides how confident the model has to be before a pixel is kept. 50% is a sensible default and gives a clean, fully transparent background.
- Raise it (60–80%) when a halo of background survives around the subject.
- Lower it (20–40%) when parts of the subject have been eaten away.
- Set it to 0 to keep the raw soft mask. Fur, feathers, and motion-blurred edges look more natural this way, at the cost of a background that is faintly translucent rather than truly gone.
5. Soften the edge
A hard cut leaves a stair-stepped outline, visible as soon as the cutout is placed on a different background. One or two pixels of edge softness fixes it. More than about four starts to make the subject look like a sticker with a glow, and — because the blur samples from outside the canvas — it will fade the edges where the subject runs off the side of the frame.
6. Choose transparency or a colour
Leave the background transparent for logos, product shots and anything you will place onto another design. Choose white for marketplace listings that require it, or a solid colour to make a quick badge or avatar. The file is a PNG either way, since that is the only common format here that stores transparency at all.
7. Download, then tidy up
The download is a PNG at the size named in the result panel — your original resolution, or the 8-megapixel ceiling if you were above it. Transparent PNGs are large — an 8-megapixel cutout can be 8 MB or more — so Compress Image is usually the next stop, and it keeps the alpha channel if you choose WebP or PNG. If you cut out a series of products, Image to PDF collects them into one document in the order you set.
When to stop trying
If two or three attempts with different cut-offs all give the wrong shape, the model cannot see your subject and no setting will change that. That is a real limitation of a 4 MB model with a licence permissive enough to run in your browser, not something you have configured wrongly.
FAQ
What actually runs when I press the button?
A neural network called u2netp, running inside your browser tab on WebAssembly. It takes a 320×320 version of your image, predicts which pixels belong to the most prominent object, and that prediction becomes the alpha channel of a PNG. Nothing is sent anywhere: the image is decoded, resized, fed to the model and composited entirely on your machine, which you can confirm by opening the Network tab in developer tools and watching a cutout complete without a single request.
u2netp is the small variant of U-2-Net, published in 2020 alongside the paper U²-Net: Going Deeper with Nested U-Structure for Salient Object Detection. The weights are Apache-2.0 licensed, which is why this site can serve them. The model file is 4.4 MB and the ONNX Runtime that executes it is about 14 MB.
Why is the first run slow, and the second one fast?
Because those ~19 MB have to arrive before anything can happen. Both files are put into your browser's Cache Storage as they download, so a second cutout — in the same tab, in a new tab, or after a reload — sends nothing at all: not the model, not the runtime, not a loader script. Clearing site data removes the cached copies, and the next run fetches them again. The model file's SHA-256 is checked against a pinned value before it is stored, so a truncated or tampered download is refused rather than run.
You can cancel while those bytes are moving — the button appears next to the main one during the download and stops it cleanly. Once the model starts running there is nothing left to cancel: that step is a single call into WebAssembly on the page's main thread, which cannot be interrupted by this tool or by the browser. Expect the tab to be unresponsive for about a second while it happens.
Does it work offline?
Partly, and it is worth being exact about which part. Once the model and runtime are cached, producing a cutout needs no network — disconnect after your first run and the next one still works, which you can verify in developer tools. What does not work offline is opening the page: this site installs no service worker, so reloading or navigating here without a connection gets you the browser's "no internet" screen. Keep the tab open and you keep the tool.
Inference itself takes roughly one to three seconds on a laptop. It could be faster: the runtime supports multi-threading, but threads require the site to send COOP and COEP headers, and those headers break the ad frames this site is funded by. Single-threaded is the honest trade — about twice the time, no change to the result.
When does it fail?
Often enough that you should look at the result before using it. This is a small 2020 model and it is a salient object detector, not a person or product segmenter, so:
- Hair, fur and fine detail come out as a blob. Individual strands need alpha matting, which this model does not do.
- Glass, smoke, water and anything semi-transparent are treated as opaque or dropped entirely.
- A background the same colour or brightness as the subject confuses it — a white mug on a white table is the classic failure.
- Several equally prominent objects may give you one of them, or a mask spanning all of them; the model picks what stands out, and cannot be told what to pick.
- Low-contrast, low-light or heavily compressed photos produce ragged edges.
Where it does work well: one clear subject against a background that differs from it — a person photographed against a wall, a product on a plain surface, a pet on grass.
Why not use a better model?
Because the better-known ones cannot be used here. BRIA's RMBG-1.4 and 2.0 are licensed for non-commercial use only. MODNet's weights carry the same restriction. The popular @imgly/background-removal package is AGPL, which this MIT-licensed site cannot take. Among models with a permissive licence and a size that a browser can download, u2netp is the strongest option available today rather than a compromise chosen for convenience. If that changes, the model here will change with it.
What do the cut-off and edge softness sliders do?
The model returns a soft mask — values between 0 and 1 rather than in-or-out. The cut-off turns that into a decision: everything above it is fully kept, everything below fully removed. Setting it to 0 keeps the soft mask as-is, which looks better on fur and motion blur but leaves the background faintly visible instead of properly transparent. Edge softness then blurs the resulting edge by a few pixels, which hides the stair-stepping you get from a hard cut.
Neither slider changes the model's opinion. If the mask has the wrong shape, no setting here will repair it.
Why is the download always a PNG?
Because JPEG has no alpha channel. Saving a cutout as JPEG would fill the transparent area with a colour and silently undo the work. If you picked a solid background colour instead of transparency, the result is still a PNG — run it through Compress Image to get a smaller JPEG or WebP once the transparency is no longer needed.
Is there a size limit?
Two of them. Above about 16.7 megapixels the file is rejected outright — that is where Safari's canvas stops working and returns blank output instead of an error, so the tool says so rather than handing back an empty image.
Between 8 and 16.7 megapixels the cutout is produced at a smaller size, and the result panel tells you the exact dimensions it used. The reason is that the mask is predicted at 320×320 no matter how large your photo is, so those extra pixels carry none of the detail that decides where the edge falls; what they do carry is several full-frame buffers of memory and a longer freeze while the page composites them. If you need the cutout at full resolution, the workaround is to take the alpha channel from this PNG into an editor and apply it to your original.
Can I do several images at once?
Not yet. Each run holds the full-size image, its mask and the output in memory at the same time, and doing that for a queue is the quickest way to exhaust a tab. One at a time, checking each result, is also the honest workflow with a model that fails as visibly as this one does.
What next?
Crop Image trims the empty space a cutout usually leaves behind, and Image to PDF lays a set of finished cutouts into one document.
More image tools
- Image to Text (OCR) — Read the text out of photos and screenshots in English, Vietnamese, Spanish or Portuguese.
- Compress Image — Shrink a photo to fit an upload limit, with the before and after shown side by side.
- Resize Image — Scale an image to exact pixels, a percentage, or to fit inside a box.
- Crop Image — Drag a box to crop, with presets for 1:1, 4:5 and 16:9.
- QR & Barcode Scanner — Read QR, Data Matrix, Aztec, PDF417, EAN, UPC, Code 39/93/128 and ITF from a photo or your camera.
- HEIC to JPG — Open the .