How it works

From your photo to a transparent PNG, without leaving your device

Backgrounds Remover runs a segmentation model inside your browser tab. Here is each step, what gets downloaded, and how fast it is.

Three steps, all inside your browser

1. Your browser opens the image

The file is read with the File API and decoded by the browser's own image decoder inside a Web Worker. The image is never uploaded.

2. The AI model finds the subject

The pixels go to a WebAssembly engine running the IS-Net model, which scores every pixel as foreground or background.

3. You get a transparent PNG

That score becomes the alpha channel of your original pixels. The transparent PNG at your image's size is encoded in the worker; for white, a color, or a square size, the page's own script in your tab composes and encodes the file before you save.

The model: IS-Net

The cutout comes from IS-Net, a model published by the authors of the DIS (Dichotomous Image Segmentation) research project at ECCV 2022. It takes a 1024 x 1024 view of your image and predicts, for every pixel, how likely it is to belong to the main subject. That prediction is resized back to your image and used as its transparency, so soft edges such as hair keep partial transparency instead of a hard outline.

The engine: ONNX Runtime compiled to WebAssembly

The model runs in ONNX Runtime, Microsoft's open-source inference engine, which we compile from source to WebAssembly together with our own C++ pre- and post-processing. There is no prebuilt third-party runtime. Four builds exist, and the page picks one when you start:

  • WebGPU when your browser exposes a graphics adapter. This build is WebAssembly too, and the model's heavy math runs on the GPU.
  • Multi-threaded CPU when WebGPU is not available. The page sends the cross-origin isolation headers that WebAssembly threads require, and runs one thread per logical core (hardware thread).
  • Single-threaded builds of both, used automatically if the browser cannot run threads. The single-threaded CPU build is slower (29.9 s in the benchmark below, against 13.8 to 16.0 s with four threads; the single-threaded WebGPU build has not been timed); in our tests the single-threaded CPU build's cutout stays within 3 levels out of 255 of the expected result, the same bar the threaded CPU build meets.

If the graphics card fails to start the model, the page switches to the CPU build on its own.

Why your image is never uploaded

Decoding, the model, and the transparent PNG at your image's size run in a Web Worker in your tab; putting the subject on white, a color, or a square size is done by the page's own script in the same tab. The server has no endpoint that accepts an image. See what the site receives, what stays in your browser, and how to check it yourself.

Diagram of where your image goes: it is opened in your browser tab, decoded in a Web Worker, and cut out by the IS-Net model, which runs in WebAssembly and uses the GPU through WebGPU when the browser offers a graphics adapter; your tab shows the cutout and you save it as a PNG or JPG. The image is never sent. From the site's server come the page, its WebAssembly engine, and the 176 MB model, which arrives on the first run and is then cached while the browser keeps it (the security page lists every request); the only thing that can go back is an error report with no image data, if something fails.
Your image stays in your browser tab: the page, its engine, and the model come in, and only an error report can go out. The security page lists every request.

The first run downloads the model

The model file is 176 MB. It is served in parts smaller than 25 MB, and each part is checked against a SHA-256 fingerprint before use, so a corrupted download is rejected instead of producing a broken result. Verified parts are kept in your browser's Cache Storage, so later images, and later visits while the browser keeps them, skip the download.

How fast it is

These figures come from the engine's own benchmark on a cloud server with 4 virtual CPUs (four threads) and 15 GB of memory, in headless Chrome, with the CPU builds. They are a reference point, not a promise: your time depends on your processor, and WebGPU timings on real graphics cards have not been measured yet. The memory row was measured on the same kind of server in desktop Chromium, with a fresh tab for each photo.

Measurements on a cloud server with 4 virtual CPUs (CPU builds)
WhatMeasured
AI model download (first use)176 MB
WebAssembly engine download (CPU build)11.3 MB
Whole run in Chrome, 4 threads, 512 x 512 image13.8 s
Whole run in Chrome, 4 threads, 451 x 300 image16.0 s
Whole run in Chrome, single-threaded CPU build, 640 x 427 image29.9 s
Peak memory of the browser tab, typical photo (desktop Chromium, 4 threads)about 1.2 GB
Peak memory of the browser tab, 16-megapixel photo (desktop Chromium, 4 threads)about 1.6 GB

Limits worth knowing

  • Images above 16 megapixels are scaled down first, so the image you download is at most 16 megapixels. The square Size options crop to the subject; 1080 x 1080 and 2048 x 2048 enlarge a smaller cutout, which can look soft.
  • In our measurement in desktop Chromium on a computer with 4 virtual CPUs, the browser tab used about 1.2 GB of memory for a typical photo and up to about 1.6 GB for a 16-megapixel photo. Processing many large photos in one visit can take the tab to about 2 GB. Phones and tablets with little free memory may fail; the page tells you when it can detect this, and on some phones the browser reloads the tab instead.
  • The model keeps the most prominent subject. Fine hair, fur, glass, and smoke can come out imperfect, and busy scenes with several subjects may keep or drop parts you did not expect.
  • The result is a PNG with a transparent, white, or custom-color background, or a JPG when the background is white or a color (JPG cannot be transparent). Placing the subject on another photo is a job for your image editor, and so is edge cleanup: see how to clean up halos and rough edges.

What we tested it on

Besides the photo fixtures used to check the engine's accuracy, we ran three typical test images through the site's engine (its CPU build) on September 17, 2026, and looked at every edge on a checkerboard:

  • A flat logo on white: clean edges, and the enclosed gap inside the check mark became transparent too. See logos to transparent PNG.
  • A signature in blue ink on textured paper: the bold main stroke came out cleanly, but a thin, light underline mostly disappeared. Use a bold pen; see transparent signatures.
  • A studio portrait: hair edges kept their partial transparency, with a little background left next to a large dark object at the frame edge. See headshot backgrounds.

The open-source components and their licenses are listed on the open-source credits page.

Try it on your own photo

Runs in your browser. Your image never leaves your device.

Remove a background