Remove background from image
Cuts the subject out of a photo in this tab. One image at a time, no sign-up, no watermark.
The first cut-out of the session downloads about 17 MB: the WebAssembly runtime (12.7 MB) and the segmentation model (4.4 MB). Both come from toolchamp.app and are then cached by your browser. Your photo is not part of that request.
Your photo never leaves this tab: it is decoded by a canvas, segmented by U²-Net running in WebAssembly on your own CPU, and written back out as a PNG blob. The only network requests are for the runtime and the model file, both served from toolchamp.app.
This page removes the background from one photo at a time without sending it anywhere. The first time you use it, the browser downloads a 12.7 MB WebAssembly runtime and a 4.4 MB neural network from toolchamp.app and keeps both in its cache; from then on the cut-out is computed on your own processor, in this tab, with no request that carries a single pixel of your image. The network is U-2-Net, a salient-object detector: it decides which object a person would look at first and marks everything else as background. You get a PNG with a real alpha channel at the original resolution, optionally flattened onto a colour, and two sliders that reshape the mask without re-running anything. There is no account, no credit counter, no watermark and no paid tier - the honest trade is that a 4.7-million-parameter model running on a CPU is not as sharp around hair as a paid service running a much larger one on a GPU.
Key facts about Remove background from image
| Model | U-2-Net in its small u2netp form: 4.7 million parameters, exported to ONNX. The weights are Apache-2.0 (Xuebin Qin et al.) and the ONNX export is MIT (rembg); the file is /models/bgremove/u2netp.onnx, 4,574,861 bytes on disk, served from this domain. |
|---|---|
| Where it runs | onnxruntime-web's WebAssembly backend on one thread - the site sends no COOP/COEP headers, so SharedArrayBuffer and multi-threading are simply not available to it. |
| First-run download | 17.2 MB once per browser: a 12.7 MB WebAssembly runtime plus the 4.4 MB model, both served from toolchamp.app. |
| Mask resolution | 320x320 always. Your photo is squashed to that size for the network and the resulting mask is scaled back up to full size. |
| Measured speed | a 4000x3000 photo went from click to finished PNG in about one second on desktop Chrome, once the model was cached. |
| Output | PNG with an 8-bit alpha channel at the source resolution - not downscaled, not watermarked, not preview-quality. |
| Input ceiling | 24 megapixels and 50 MB per image, one image per run; anything larger is refused with the actual number rather than silently resized. |
| What the network looks for | the single most salient object. Two equally prominent subjects, or a subject that runs off the edge of the frame, are where it misses. |
| Hair and fur | decided at 320x320, so strands come back as a soft edge rather than as separate hairs. This is the clearest quality gap against paid services. |
| Solid-colour mode | the subject is composited onto the colour with straight alpha, so edge pixels blend into the new colour instead of keeping a rim of the old background. |
| The two sliders | cut-out tightness and edge softness reshape the stored mask and redraw in place - neither one re-runs the network. |
What happens to your file
Your image never leaves the browser. It becomes a blob: URL, an <img> element decodes it, a 320x320 <canvas> in this tab produces the tensor the network reads, onnxruntime-web runs that network as WebAssembly on your CPU, and a second canvas writes the alpha channel and encodes the PNG. There is no Pages Function, no API call and no upload anywhere in that chain. Two files are fetched over the network on the first run and only on the first run: the 12.7 MB onnxruntime-web WebAssembly runtime (MIT, Microsoft) and the 4,574,861-byte u2netp model (U-2-Net weights, Apache-2.0), both from toolchamp.app itself rather than from a third-party CDN, so no other company sees that you used this page either - and neither request carries anything about your photo, because they are the same two files for every visitor. After that first run the page works with the network disconnected. Nothing is stored beyond the browser's own HTTP cache for those two files; closing the tab discards the photo, the mask and the result.
About this tool
- 1
Add one photo
Drop a PNG, JPG, WebP, AVIF, GIF, BMP or iPhone HEIC file, or browse for it. HEIC is decoded to JPEG first, in the browser.
- 2
Press Remove background
On the first run a progress bar counts through the 17.2 MB of runtime and model. After that the bar is gone and the cut-out takes about a second.
- 3
Check the edge with the slider
Drag the divider across the preview. The left half is your original, the right half is the cut-out on a checkerboard, so any leftover background shows immediately.
- 4
Tune the two controls if needed
Raise cut-out tightness to shave off a halo, lower it to rescue an edge that was cut too close. Edge softness feathers the boundary. Both redraw instantly.
- 5
Pick transparent or a colour, then download
Transparent keeps the alpha channel. Solid colour flattens onto white, black or any hex value - useful for ID photos and marketplace listings that reject transparency.
| Input formats | PNG, JPG, WebP, AVIF, GIF, BMP and HEIC/HEIF; HEIC is converted to JPEG by libheif compiled to WebAssembly before anything else happens. |
|---|---|
| Output format | PNG only, 8-bit RGBA. There is no JPG option because JPEG has no alpha channel - use the solid-colour mode and then a PNG-to-JPG converter if you need one. |
| Limits | 50 MB and 24 megapixels per image, one image per run. The megapixel cap exists because the composite holds the full frame in page memory. |
| Browser support | any browser with WebAssembly and canvas: Chrome, Edge, Firefox, Safari 15+, and their mobile versions. No extension, no install, no WebGL or WebGPU required. |
| Phones and tablets | works, but a phone with 3-4 GB of RAM will usually fail somewhere above 10-12 megapixels; the failure is reported, not hidden. Resize the photo first if it does. |
| Offline | after the first successful run, the runtime and the model sit in the browser cache and the tool works with no connection at all. |
| Licensing | Every piece is permissively licensed: the U-2-Net weights Apache-2.0 (Xuebin Qin et al.), the ONNX export MIT (rembg), the onnxruntime-web runtime MIT (Microsoft). Full licence text ships next to the model at /models/bgremove/. The AGPL-3.0 imgly background-removal package is not used and is not installed - its section 13 would oblige this site to hand its own source to every visitor. |
| Not possible here | batch runs, video, per-pixel manual brushing, shadow reconstruction and generative fill. Those need either a much larger model or a different tool. |
- One clear subject against a background that differs from it is the case this model was trained for; a group photo or a flat-lay of ten objects is the case it was not.
- If a pale halo survives on a dark background, push cut-out tightness up a few percent before reaching for anything else - it is the fastest fix.
- Edge softness above about 40 is for compositing onto a busy background; on a flat colour it reads as a blur and looks worse than a hard edge.
- For a marketplace or passport photo, use the solid-colour mode rather than exporting transparent and flattening later - the edge pixels blend into the colour properly this way.
- Run the big download once on a good connection. After that the 17.2 MB is cached and the tool is usable on a train.
- The mask is computed at 320x320 whatever you feed it, so a 24-megapixel file gains nothing in edge quality over the same photo at 2000 px - but it does cost memory.
- Getting a product shot onto a plain white background for a marketplace listing that rejects busy photos.
- Cutting a person or an object out for a slide, a poster or a collage without paying per image.
- Making a transparent PNG logo or sticker out of a photograph of an object.
- Preparing a headshot on a flat colour for a badge, a CV or a team page.
- Removing the background from a photo that is confidential enough that uploading it to a third-party service is not an option - a document, a prototype, a medical or legal image.
Related tools
View allWorks well with this5
More in Images12
Updated