What this does
A background remover separates the subject of a photograph from everything behind it, and gives you back the subject on its own with a transparent edge. This one does it with an open segmentation model, ISNet, compiled to WebAssembly and run inside your browser tab.
a portrait on a busy street → the same portrait, alone, on a transparent background — then on white, or on a beach
Your picture is never uploaded. The model's weights are, however, fetched from IMG.LY's CDN the first time you press the button — roughly a hundred megabytes, cached by your browser afterwards — and searching for a stock background asks Pexels through this server. Neither carries your photograph, and each is stated beside the control it belongs to: the download size on the quality picker, and what Pexels sees under the search field.
How the cut-out is made
The model is a salient-object segmentation network. It does not know what a person is; it predicts, for every pixel, how likely that pixel is to belong to whatever the picture is about. The output is not a shape but an alpha channel — a greyscale image the same size as the input, where white is definitely subject, black is definitely background, and everything in between is the soft edge that makes hair and fur look right.
That alpha channel is what this page asks for, rather than a finished cut-out. The reason is resolution. The model works at its own fixed input size whatever you give it, so segmenting a scaled-down copy of a twelve-megapixel photograph loses nothing — the mask would have been computed at that size either way. Applying that mask to the original rather than to the copy is what keeps the subject sharp: only the boundary comes from the model, and everything inside it is the picture you started with.
The mask is then scaled up over the original with the browser's own bilinear filter and applied with a single composite operation, destination-in, which multiplies the picture's alpha by the mask's. That is one hardware-accelerated draw rather than a loop over several million pixels in JavaScript.
Where a WebGPU adapter is available the model runs on the graphics card, which is usually the difference between a couple of seconds and twenty. Where it is not, the same weights run through WebAssembly on the processor. You are not asked to choose: the library probes for an adapter and falls back on its own.
None of this is a service call. There is no queue, no per-image cost and no upload — which also means the speed is your machine's, not a server's, and a slower laptop will take longer than a fast one on the same picture.
Every control on this page
Eleven controls, and the ones that matter most are the two that decide what you wait for and what you get back.
| Control | What it does | Reach for it when |
|---|---|---|
| Picture | Takes a JPEG, PNG, WebP or AVIF by drop, by picker, by paste, or by public address. Up to five are open at once. | Always — it is the input. |
| Cut-out quality | Chooses which of three weight sets the model uses, and therefore both how good the edge is and how much is downloaded the first time. | Drop to Fast on a slow connection; go to Best when the edge is hair, fur or foliage. |
| Remove background | Runs the model on the open picture and applies the result. Pressing it again re-runs it, which is what you want after changing the quality. | Once per picture, and again after changing the quality. |
| Blur | Puts the picture's own background back, thrown out of focus. The strength is 1–100, a share of the picture's shorter side rather than a pixel count. | Portrait-mode depth, or hiding a messy room without changing where the photograph was taken. |
| Backdrop topics | Fourteen chips — Nature, Lake & river, Sky, Interior, Wildlife, Artwork and the rest — each of which searches for a place rather than letting the stock library show you whatever it is featuring. | Almost always. Start here and type only when no chip is close enough. |
| Photo | Searches Pexels for a free landscape background and composites the one you pick behind the subject, cropped to fill. Typing overrides the chip. | Putting a product or a portrait somewhere it was not. |
| Your own background | Uses a picture from your own machine as the background. It stays in this tab like everything else. | A brand backdrop, a room you photographed separately, or anything the stock search will not have. |
| Colour | Fills the background with one of twenty swatches or a colour you name in #rrggbb. | Marketplace listings, ID photographs, and anywhere a flat ground is required. |
| No background | Leaves the background transparent — the first tile in the Colour tab, and where every picture starts. | Anything you will composite somewhere else. |
| Download as | Writes the result as PNG, JPEG or WebP. Defaults to PNG while the background is transparent and JPEG once it is not. | Change it when the program on the other end is fussy, or when the file is bigger than you want. |
| Before-and-after slider | Drags a divider across the result, with the original above and the cut-out below. Arrow keys move it too. | Checking the edge, which is the only part worth checking. |
| Picture strip | Switches between the pictures you have open. Each keeps its own cut-out, background, format and slider position. | Working through several shots without losing what you set on the last one. |
Every background tab is locked until the picture has been cut out. There is nothing to put a background behind before that, and a picker that composites nothing would be a control that lies about what it does.
Switching to Blur or Colour applies that background straight away, using whatever you last chose there. The Photo tab is the exception: it leaves the current background alone until you press a tile, because there is no sensible default photograph and picking one for you would put a stranger's picture behind yours.
Changing the cut-out quality does not redo the cut-out on its own. The mask you already have is still on screen, and pressing Remove background again is what fetches the new weights and re-runs it — so switching quality out of curiosity costs nothing until you ask for it.
The four kinds of background
Transparent is the default and the one that composes with everything else. It is written as PNG or WebP; JPEG has no alpha channel, so choosing it flattens the cut-out onto white and the page says so before you download.
A colour is a flat fill behind the subject. Twenty swatches cover the usual cases — marketplace white, passport blue, a near-black for product shots — and the field beside them takes any #rrggbb value, with three-digit shorthand expanded rather than refused.
Blur is the picture's own background, drawn behind the subject and thrown out of focus. It is the only background here that needs nothing at all: no download, no search, no second file. The blur is drawn past the edges of the frame before it is applied, because a blur at the edge of a canvas averages the picture against the nothing outside it and leaves a pale border around the whole photograph.
A photograph — stock or your own — is scaled to cover the frame and centred, never letterboxed. Letterboxing a background would leave transparent stripes down the sides that you would not find until after you downloaded it.
The stock backgrounds are biased toward places rather than people, which needs saying plainly because it is a bias and not a filter: the Pexels API has no way to exclude photographs of people, so this page does two blunt things instead. Each chip searches several place words at once — forest trees woodland path rather than just forest — because a bare noun returns a good deal of somebody walking through the thing rather than the thing. And any photograph whose description names a person is dropped before the grid is drawn. Neither is exact. A photograph with no description at all is kept, since nothing is known about it and discarding every undescribed picture would empty most pages, so the occasional person still gets through.
Five pictures, five separate jobs
The strip along the bottom holds up to five pictures. Pressing one shows that picture with its own cut-out, its own background, its own download format and its own slider position. Nothing you do to one slot reaches another.
There is deliberately no batch button and no apply-to-all. Each cut-out holds a decoded bitmap in memory — four bytes a pixel, so a twelve-megapixel photograph is forty-eight megabytes before anything is drawn — and running five at once is how a tab is killed halfway through. Five open at once, one running at a time, is the shape that survives a phone.
Closing a slot moves you to the one on its right, or to the one on its left if it was the last. Closing a slot that is not the one on screen leaves you where you were.
Which cut-out quality to use
The three settings are three sizes of the same network. Fast is an eight-bit quantised copy at roughly forty megabytes; Balanced is half-precision at about eighty-four; Best is the full model at around a hundred and seventy.
The difference is almost entirely in the edge. On a subject with a hard outline — a bottle, a phone, a car — all three produce a cut-out you would struggle to tell apart. On hair, fur, foliage, or anything with a soft or wispy boundary, the gap is obvious and worth the download.
Balanced is the default because the question people open a background remover to answer is usually whether the hair looks right, and the quantised model is visibly worse at exactly that. Shipping the cheap answer by default and hoping nobody looked closely is not the trade this page makes.
Whichever you choose is fetched once and cached by your browser, so the second picture is as fast as the model itself. Switching between them means fetching the other one.
What to download it as
Three formats, and the only question that really matters is whether the transparency has to survive.
| Format | Transparency | Reach for it when |
|---|---|---|
| PNG | Kept | The default for a transparent cut-out, and what every design tool reads. Lossless, and larger than the other two. |
| JPEG | Dropped | The default once there is an opaque background. Smallest for photographic content, and accepted by everything. |
| WebP | Kept | Transparency at roughly a third of the PNG. Fine for the web; still not read by some older desktop software. |
AVIF is missing on purpose. Browser support for writing it through canvas.toBlob is uneven enough that you would sometimes press Download and silently receive a PNG, and a format picker that quietly ignores you is worse than one option fewer.
Using the stock backgrounds
The Photo tab searches Pexels. Their photographs are free to use, including commercially, without permission and without payment — the full terms are the Pexels licence, and this page links to it under the grid.
Credit is not required by that licence, but it is asked for, and it is the least the person who took the photograph is owed. The photographer's name and a link to the picture's page on Pexels are shown beside the result whenever a stock background is in use.
What the licence does not allow is redistributing the photographs themselves as stock, or using an identifiable person in them to imply an endorsement. Compositing one behind your own subject is exactly what it is for; selling the background on its own is not.
Where it struggles
The model finds the salient object. If a photograph has two equally prominent subjects, or none, its guess about which one you meant may not be yours — and there is no brush here to correct it. A picture with one clear subject is what this is good at.
Glass, smoke, water and motion blur are hard for every segmentation model, this one included. Semi-transparent regions come back either fully kept or fully cut, because the network was trained on a task where that distinction mostly does not arise.
Very fine hair against a background of a similar colour is the classic failure. Best helps; it does not fix it. Where the result matters more than the minute, a manual mask in a proper editor is still the honest answer.
A picture over twenty megabytes is refused, and the finished composite is written at up to 2,560 px on its long edge. That ceiling is about memory rather than taste: a composite needs two canvases live at once, four bytes a pixel each, on top of the decoded original and a WebAssembly heap holding the model — and at twelve megapixels, times five open slots, that is a browser tab being killed rather than a slow page. It costs less than it sounds, because the alpha channel is computed at 1,024 px whatever happens, so the cut-out edge has no more detail at 6,000 px than it does at 2,560. The panel says so whenever a picture was scaled.
What leaves your browser
Your picture does not. The cut-out, the blur, the colour fill and the composite all happen on a canvas in this tab, and there is no request anywhere in that path.
Two things do use the network, and neither carries your photograph. The model's weights come from IMG.LY's CDN at staticimgly.com the first time you press the button. Searching the Photo tab sends your search term to Pexels through this server, which passes back the results — Pexels learns that this site searched for a word, not who searched for it.
Choosing a stock background then downloads that photograph from Pexels' image host directly into your browser, where it is drawn behind your subject. Using a background of your own, a colour or the blur touches the network not at all.
