Remove the background from an image
A real AI salient-object model — u2netp on WebAssembly — running in this tab. Drop an image, press the scissors, get a transparent PNG. The photo never leaves your device.
Drop an image (PNG, JPEG, WebP, GIF, BMP — or camera RAW / HEIC / TIFF) anywhere on this page
The AI runs entirely in your browser. Images never leave your device.
“Remove background” tools are the textbook upload service: your photo goes to a server, a neural network runs on the provider’s GPUs, and the cutout comes back — along with a watermark, a sign-up wall, or a per-image charge. For a product photo that trade can be fine. For the photos people actually cut out — ID pictures, team headshots, shots of private documents — it is the wrong default, and it is no longer necessary: a browser tab can run the model itself.
That is what this page does. The *model* travels to you — U²-Net in its lightweight u2netp form, executed by onnxruntime-web on WebAssembly — and your photo never travels at all. The claim is checkable, not a slogan: open DevTools, cut an image out, and watch the Network tab — the only fetches are the one-time engine and model download (~19 MB total, from this site’s own domain, cached afterwards), and no request ever contains your image. Load the page, go offline, and cutouts still work.
How to remove a background here
Nothing to install, nothing to sign up for:
- Drop your image anywhere on this page (PNG, JPEG, WebP, GIF, BMP — camera RAW, HEIC, and TIFF work too) — or press Try an example image first.
- Click the image in the file list to open the viewer.
- Press the scissors button (✂ Remove background). The first run downloads the engine and model once (~19 MB, same-origin, cached); every later run starts immediately.
- The viewer swaps to the transparent cutout on a checkerboard — download it as a
.pngfrom the status bar, or flip back to the original.
Where the AI runs
On your machine, in this browser tab. The model is u2netp — the compact edition of U²-Net, a salient-object-detection network: it looks at the image and predicts, per pixel, how likely that pixel is to belong to the main subject. That prediction becomes an alpha channel, the mask is smoothly upscaled to your photo’s full resolution, and the result is encoded as a straight-alpha PNG — the format every design tool, store backend, and slide deck already accepts.
Everything in that pipeline is local: onnxruntime-web executes the network as WebAssembly (single-threaded — no cross-origin isolation headers, no shared-memory requirements), and the cutout is encoded with the browser’s own compression. Nothing about your image — not its pixels, its name, or its dimensions — is transmitted anywhere. This is the same posture as the photo culling workflow: the AI runs on your device or it does not run at all. The why client-side is safer than uploading page walks through how to falsify claims like this one.
Whole folders at once
Images rarely travel alone. If your photos live in a zip — a product shoot, a folder of headshots — drop the archive, open the folder, and the toolbar’s scissors button removes the background from every image in it (RAW, HEIC, and TIFF included, each decoding in-browser before the cutout stage; up to 50 per run, serially, with per-file progress and a cancel that stops between files). The cutouts download as one `<archive>-cutout.zip` with the folder structure kept, each file named <original>-cutout.png so it can never collide with a sibling .png.
The batch and the single-image viewer share one engine: the ~19 MB download happens once per browser, not once per photo.
Which images work
The raster set the browser can decode — PNG, JPEG, WebP, GIF (first frame), and BMP — plus camera RAW, HEIC, and TIFF files: each decodes in-browser first (the same full RAW develop, HEVC decode, and page decode the site’s viewers run) and the decoded pixels feed the identical cutout stage — a multi-page TIFF contributes its first page in a folder batch, while the viewer cuts out whichever page is on screen. Every format shares the 30-megapixel cap — for RAW that is the *developed* size, so a 45 MP camera’s files are refused with a clear message rather than quietly downscaled; raster inputs are also capped at 25 MB. SVG stays out: it is code, not pixels — it opens in the text viewer.
u2netp is a *salient-object* model: it shines when the photo has one clear main subject — a product on a plain-ish background, a portrait, a pet, a car. It has no notion of “remove exactly the sky” or “keep only the person on the left”; it cuts out what it judges to be the subject.
Honest limits
Real capability, real boundaries — stated up front.
- One-time engine download (~19 MB total: the WebAssembly runtime plus the model) from this site’s own domain, cached by your browser; afterwards cutouts work offline.
- Fine edges are the weak spot. The model works at 320×320 internally, so hair, fur, and motion-blurred boundaries come back soft or slightly haloed. Solid subjects cut out cleanly; flyaway hair does not — no marketing claim can change the model’s geometry.
- EXIF does not survive. The output is a re-encoded PNG; metadata stays readable in the viewer’s Info panel while the original is open.
- Size caps keep the tab alive: 30 MP per photo (raster inputs also 25 MB), 50 images per folder batch.
- Salient object, not instruction-following — no “remove only the background between these two people”, no manual brush-up pass (yet).
Credits
The model is U²-Net / u2netp (Apache-2.0), and the runtime is ONNX Runtime Web (MIT). Both are served from this site’s own domain as standalone, cacheable files — no third-party CDN, no model API. This page adds the viewer, the folder batch, and the archive integration; u2netp does the looking.
Frequently asked questions
Is my image really not uploaded anywhere?
Really. The AI model runs as WebAssembly in your browser, in this tab, on your device. The only network fetches are the one-time engine and model files (~19 MB) — code, served from this site’s own domain and cached afterwards. Verify it in DevTools: no request after that download contains your image, and removing backgrounds keeps working if you go offline.
Is this background remover free?
Yes — no account, no watermark, no per-image credits. The limits that exist (30 MP per photo, 25 MB for raster inputs, 50 images per folder batch) exist to keep your browser tab responsive, not to sell an upgrade.
How good is it with hair and fine edges?
That is the honest weak spot. u2netp works at 320×320 and the mask is smoothly upscaled, so clean subject boundaries cut out well, while hair, fur, and motion blur come back soft or slightly haloed. For product shots and graphics it is usually production-ready; for strand-level portrait retouching a desktop editor is still the right tool.
Does it work offline after the first use?
Yes. The engine and model are downloaded once and cached immutably by your browser, so every later cutout — on this page or in the tool — runs with no network at all. Load the page first, then go offline and try it.
Which image formats are supported?
PNG, JPEG, WebP, GIF (first frame), and BMP — up to 25 MB and 30 megapixels each — plus camera RAW (CR3, CR2, NEF, ARW, DNG, and more), HEIC, and TIFF (the first page in a folder batch, the page on screen in the viewer) — all decoded in-browser first, all sharing the same 30-megapixel cap (a RAW file’s developed size, a TIFF’s page). SVG is vector code and opens as text instead.
Can I remove backgrounds from a whole folder?
Yes. Drop the zip your photos came in, open the folder, and press the scissors button in the toolbar (or ⌘K). Every image in the folder is processed — up to 50 per run — and the transparent PNGs download as one zip that keeps the folder structure.