Start from the photo
The Background Remover’s own page explains its engines from the inside: the files behind each download label, the checks a file must pass, the refinement module step by step. This guide starts at the other end, with the photo you are holding. A speaker in front of a crowd, a mug on white, a dog, a team, a HEIC straight off a phone, a scan too big to send: for each, which tier to try first, which of the refinement rules will touch the result, and what will and will not be in the PNG you download. Where a rule is already set out on the tool page, this guide links to it rather than saying it twice.
One thing holds for every photo below. The segmentation models and the runtimes that execute them are files served from this site into your browser tab, fetched the first time a tier is used; the photo itself is read, segmented and recomposited in that tab and is never part of any request. Each model’s origin, version and file hashes are recorded in a provenance file shipped beside it: the MediaPipe selfie and MagicTouch segmenters under the Apache licence, the BiRefNet_lite model and the onnxruntime-web runtime under the MIT licence.
This page cites no platform figure, so there is nothing on it to check against a platform’s documentation. Its figures come from the engine: byte counts measured from the files when the site is built, messages and names produced by the input modules on fictional files, alpha values produced by the refinement module on fictional masks. The engine’s behaviour was read on 2026-10-05, a date kept as one constant in this page’s source; the line above is formatted from it, and the methodology explains why an engine guide is dated this way while the platform guides take their line from the specs registry.
A speaker in front of a crowd
Try Fast — people (auto) first. It is the smallest download of the three (~11.7 MB) and it runs a people-only selfie segmenter: people are the whole of what it knows. The crowd behind the speaker is not something the tier has to understand; it is deciding, pixel by pixel, how confident it is that the pixel is part of a person. Hand it a photo with no person in it and the mask comes back empty — the notice says so in words and names the two tiers that take any subject, rather than inventing one.
Your check afterwards is along the boundary: hair against a lit backdrop, the edge of a jacket against a wall of the same tone, a hand around a microphone. The tool’s copy warns that even its largest model can miss stray hair, and the Edge slider and the Restore and Erase brushes are there for that pass. A Restore stroke is merged after the refinement module has run and sets the painted pixels fully opaque, so a lost strand you paint back comes back solid, not feathered; an Erase stroke sets them fully transparent. The strokes are kept through Edge changes and through a switch of tier, with one level of undo.
When the photo is good, the download is a new PNG named from the source. A fictional Keynote Speaker (edit 2).png downloads as keynote-speaker-edit-2-cutout.png; the naming rule itself is on the tool page. That transparent PNG is what the Promo Studio takes as the CTA image — the package anatomy guide lists what is built around it, and promo design basics covers setting a cutout against a background it can be read on.
A product on white, and the gap in its handle
A mug, a bottle, a boxed kit: this is the lane for Click the subject (~17.7 MB). Click once on the product and the model returns a mask for whatever is under that point. Click somewhere else and the new mask takes the place of the old one; the tool does not build a selection up from several clicks.
A product is where the hole rule in the refinement module matters, because products have holes — the gap inside a handle, the space between a strap and a bag. The rule, from refine.ts: a region of background completely enclosed by subject is filled in when it is smaller than 0.5% of the largest subject region; a background region that reaches the edge of the frame is never filled, whatever its size. On a fictional product filling a 30×30 frame, refined with the feather switched off so only this rule shows:
- A 2×2 hole in the middle — 4 pixels, against a cutoff of 4.48 pixels on a subject of 896— is filled: its alpha after refinement is 255. A highlight that fooled the model is closed over.
- A 6×6 hole in the middle — 36 pixels against a cutoff of 4.32 — stays open at alpha 0. The gap inside a handle is far larger than this fraction of the mug, so it is never filled by the rule.
- The same 2×2hole moved to the corner of the frame — still 4 pixels, still under the cutoff of 4.48 — stays open at alpha 0, because it touches the border. A notch where the product leaves the frame is never treated as a hole.
So a small bright speck inside the product disappears on its own, a real opening does not, and anything open to the frame edge is left alone. If the model opened a hole that should be solid and it is too large for the rule, the Restore brush closes it.
A pet, and the speck beside it
Pets are in the same lane: click the animal, check the result. The rule that is most likely to act on a pet photo is the island rule, the mirror image of the hole rule. Regions of subject are found with four-way adjacency, and a subject region smaller than 0.5% of the largest one is removed. The cutoff is relative, which matters: the same speck is dropped beside a large body and kept beside a tiny one. Two fictional masks, each a solid block plus one stray subject pixel in the frame corner, refined with the feather off:
- Beside a 15×15 block (225 pixels, cutoff 1.125 pixels) the stray pixel is dropped: alpha 0.
- Beside a 4×4 block (16 pixels, cutoff 0.08 pixels) the same stray pixel is kept at alpha 255, because one pixel is not smaller than that cutoff.
In both cases the block itself stays fully opaque. For a pet, the practical reading is that a few confident pixels the model found on a leash or a toy across the frame are removed if they are disconnected from the animal and small relative to it, while a tuft of fur that is still joined to the body is part of the largest region and is never an island at all. What happens to that tuft is the feather’s business, below.
A group: more than one subject
Whatever the tier, what comes back is one confidence per pixel. There is no list of people in it, so there is nothing in the result to choose between; a pixel is in the mask or it is not. The three tiers differ in what they are asked. Fast — people (auto) is asked only whether each pixel is a person. Click the subject is the one tier that takes an instruction from you, and it takes exactly one point: a second click replaces the first instead of adding to it, so one person out of a group is a click on that person, and the brushes are how a selection is extended by hand. Best quality — any subject (~86.9 MB) decides for itself what the main subject is and asks nothing. If it decides there is none, the notice says so and suggests pointing at the subject with a click instead.
It is also the tier that takes seconds rather than a moment: the largest model, run by the WebAssembly CPU provider in a worker of its own. If it stops, the notice names the stage that failed — fetching the files, starting the engine, or running it — and a run that ends for lack of memory is reported as that, with the two smaller tiers recommended; the tool page has the engine header’s reasons for both the model size and the provider.
What the label beside a tier counts, and when a browser fetches less
Each download label is a sum of real files measured when the site is built, on the SI megabyte; the tool page itemises the components. Two things the labels do not say are worth knowing from the photo’s side. First, the two MediaPipe labels count the runtime’s WebAssembly SIMD pair, 11,484,488 bytes (11.5 MB). The provenance file records a second pair that the runtime’s loader picks instead on a browser without WebAssembly SIMD, and it is smaller: 10,812,063 bytes (10.8 MB). On such a browser the first use of Fast — people (auto) fetches 11,061,600 bytes (11.1 MB) and of Click the subject 17,039,947 bytes (17.0 MB); the labels describe the SIMD case.
Second, trying all three tiers on one photo does not cost the three labels added together (116,358,724 bytes, 116.4 MB), because the two MediaPipe tiers share their runtime. The distinct files behind all three, counted once each, come to 104,874,236 bytes (104.9 MB). The best tier is 7.4 times the Fast tier by itself, and it is the part of that total you can decline. Once a tier has been fetched in a tab, the photos that follow reuse it.
A phone photo in HEIC
The tool takes PNG, JPEG, or WebP. A phone photo saved as HEIC is turned away before anything is decoded, with the input module’s own sentence — for a fictional IMG_4471.HEIC of 3,100,000 bytes: IMG_4471.HEIC is not a supported PNG, JPEG, or WebP image.
The way through is on this site and also stays on your device. The image converter decodes HEIC with a bundled decoder, as the local image conversion guide explains, and writes a PNG named by its own rule: that file becomes IMG_4471.png. Handed back to the Background Remover at whatever size the PNG comes out — a fictional 3,100,000bytes here, under the limit — it passes the validator, and the cutout downloads as img-4471-cutout.png. Three names, two namers, each computed here from the one fictional starting name.
A phone photo shot upright but stored on its side with an orientation tag arrives upright: the tag is honoured when the accepted file is decoded.
A scan too big to send
A scan is large in two different ways, and the tool treats them differently. Bytes are checked first. The limit is 20,971,520 bytes, 20 MiB inclusive, and a file over it is refused before decoding. A fictional poster scan 600dpi.png of 24,000,000 bytes gets: poster scan 600dpi.png is larger than the 20 MB limit. The message states the limit in the unit the tool page explains; the remedy is a smaller file before it reaches this tool.
Pixels are handled after acceptance. A file under the byte limit can still carry far more pixels than the models need, so a very large image is reduced to a working copy with a fixed cap on its longest edge; the notice names the width and height it is working at and reminds you the file on disk is unchanged. The download is composited from that working copy, so it comes back at the working size, not the scan’s. For a cutout at the scan’s own resolution, this is not the file to use it for.
The edge you get back, and the width a detail needs
Every tier answers with a confidence per pixel, and the tool never uses that number as transparency directly; the refinement module cuts it at a threshold, applies the hole and island rules above, and then rebuilds the boundary as a linear ramp over a fixed band, half outside the cut and half inside, before a guided filter nudges the ramp pixels toward where the photo’s luminance actually changes. The module’s documented defaults are a threshold of 0.5 and a feather of 3 px on each side, a ramp 6px across; the tool page shows that ramp on a straight boundary. The figures below are measured at those documented defaults, and the tool does not run the module at them: the Edge slider sets the threshold and the feather together across its range, and only the island fraction is taken from the module unchanged. At the slider’s starting position the feather is wider than the module default, so in the tool the band is wider than 6px and the width a strand needs to come back solid is wider than the figure below; moving Edge toward its low end narrows the feather, to below the module default at the end of its travel. The consequence for a photo is about width either way. A strand — a strap, a whisker, a lock of hair — narrower than the whole band can never reach full opacity after the ramp, however confidently the model found it, because every one of its pixels is within feathering distance of background on both sides.
Measured on a fictional strand attached to a solid block so it is never an island, read along its centre line far from the block, at the module’s documented defaults and before the guided filter: 1 px wide peaks at alpha 149; 3 px wide peaks at alpha 191; 5 px wide peaks at alpha 234; 7 px wide peaks at alpha 255. The narrowest strand that comes back solid at those defaults is 7px wide, one pixel more than the band. These are pre-filter values: in the tool the guided filter then re-estimates exactly the ramp pixels read here from the photo’s colour, so the alpha a real strand reads is not the figure above. Below the solid width the fade is the ramp, not the model, and it is reversible two ways: Edge toward its low end narrows the feather, and a Restore stroke bypasses the ramp entirely.
Where to stop expecting the model to do the work
- The result of any tier is a prediction to check, and the finishing pass at the edge is yours by design. The slider and brushes are not an afterthought; they are the last step.
- Fast knows people and nothing else; Click the subject knows one point at a time; Best quality picks the main subject on its own. None of them composes a selection from parts.
- The output is the subject over transparency or over one flat colour. Putting the subject into another scene is the Studio’s job.
- The photo, its mask and your strokes live only while the tab is open; the tier you last used is the one thing this browser remembers. The tool page’s own list of limits and misreadings covers the rest.
Questions
- Can I click two things to select both?
- No. Click the subject returns one mask for the point you clicked, and the next click replaces it rather than adding to it. To keep two subjects, cut one out, then extend the selection with the Restore brush, or let Best quality — any subject choose the main subject without a click.
- Why does a thin strap or whisker come out faded when the model clearly found it?
- Because of the feather ramp, not the model. At the refinement module's documented defaults the ramp is 6 px across, and a strand narrower than 7 px has every pixel within feathering distance of background on both sides: measured here at those defaults and before the guided filter, a 1 px strand peaks at alpha 149 and a 7 px strand reaches 255. The tool's Edge slider sets the feather itself and starts wider than the module default, so in the tool the band and the width a strand needs to come back solid are both wider than these figures, and the guided filter then re-estimates the ramp pixels from the photo. Move Edge toward its low end to narrow the feather, or paint the strand back with Restore, which sets it fully opaque.
- My phone photo was refused. What do I do?
- A HEIC is refused before decoding — for a fictional IMG_4471.HEIC the message reads “IMG_4471.HEIC is not a supported PNG, JPEG, or WebP image.” Convert it to PNG with the image converter on this site, which also works on your device; it writes IMG_4471.png, which the validator accepts, and the cutout downloads as img-4471-cutout.png.
- If I try all three tiers on one photo, do I download three runtimes?
- Two. The MediaPipe tiers share one runtime (11.5 MB on a browser with WebAssembly SIMD, 10.8 MB without), and the best tier brings its own. Every distinct file behind the three tiers, counted once, totals 104.9 MB, less than the three labels added together (116.4 MB). A tier fetched in a tab is reused by the photos that follow.
- Will the gap inside a handle be filled in?
- Not by the refinement module. It fills only a background hole that is completely enclosed by subject and smaller than 0.5% of the largest subject region. On the fictional 30×30 product measured here, a 4-pixel pinhole closes against its cutoff of 4.48 pixels and a 36-pixel gap stays open against its cutoff of 4.32. A hole that reaches the frame edge is never filled.
- What is downloaded, and what is uploaded?
- Downloaded: the model and runtime files of the tier you pick, from this site, once per tab. Uploaded: nothing. The photo is read, segmented, refined and composited in the tab, and the PNG you save is rendered there.
Everything here runs in your browser: the tools compute on your device and the Studio’s package is assembled on the device. The methodology documents every rule the tools apply.