Back to Blog

Five Hundred Pixels Was the Free Cutout

September 16, 2026
Share:
Five Hundred Pixels Was the Free Cutout

I had a product photo and a shop that wanted a transparent PNG. I dropped the file on a background remover that everyone already knows. The subject came out clean. The file was a preview.

remove.bg's own help page, read on 16 September 2026, says the free website plan supports previews of up to 0.25 megapixels. A square at that cap is 500 by 500. You also get one bonus credit to try a high-resolution download. After that, full size costs credits.

The Background Remover on Softery writes the PNG at the size of the photo you dropped. JPEG, PNG, WebP, or iPhone HEIC. The first run pulls a 98 MB model from Hugging Face. The photo stays in this tab.

I wanted that file for a listing card, not for a chat thumbnail. The shop wanted the subject on a white field at the size I had already shot. A preview PNG makes you look like you scaled a sticker.

The Listing Needed the Photo Size

A 500 by 500 stamp is fine for a chat sticker. It is a bad listing image. You drop it on a white card, scale it up, and the edge turns into mush. Hair becomes a halo. A bottle label turns into a smudge.

I kept hitting that wall on purpose. I wanted to see whether "free" meant free at the size I already had, or free at a size that forces a plan. The help page answered it in one line: previews of up to 0.25 megapixels.

The free file was a preview. The listing needed the photo.

That is the whole product. A page that cuts a full-size PNG in the tab. The wait is the first model download. After that, the next photo in this tab is the inference.

Photoroom's help center, read the same sitting, describes a Free Space for basic visuals and says you upgrade to a paid plan for the rest. I am not printing a weekly price I did not see on their checkout. The shape is the same either way: the useful file sits behind a plan.


Rank 32 of 1,761

I ranked this idea 32nd out of 1,761, score 9.15, about 30 hours of work. The 9.15 is an editorial score from that queue, not a search volume I measured tonight.

The image-edit family in that list is long. Upscale, blur faces, EXIF strip, collage, watermark, passport photo. Those can wait. The thing I actually hit was simpler: I wanted the subject, at the size I already had, as a PNG, without sending the photo to a server I do not run.

The queue card said full resolution, in the browser, and skip the AGPL package. That is what shipped. I am not going to pretend the rank is a demand study. It is a note that this job kept showing up next to the other photo tools, and that the failure mode I actually hit was a preview cap, not a missing slider.


0.25 Megapixels Is the Meter

remove.bg is good at the cut. I am not arguing with the mask. Their free website plan is the cap. 0.25 megapixels. A landscape preview on their desktop-app help page is given as 625 by 400. A square is 500 by 500. Unlimited previews, one bonus high-resolution credit, then credits.

That is a clean business. Preview for free. Charge for the file you can print. I still needed the print file for a listing, and I still did not want the photo on their disk.

The page I shipped does the other trade. You wait on the first model download. You keep the pixels here. You get the PNG at the photo's size, up to the canvas cap Safari already has.

PlaceFree fileWhere the pixels go
remove.bg free website plan0.25 megapixels (a square is 500 by 500)Their server
This tabThe photo's size, up to 16,777,216 pixelsThis tab, after a 98 MB model fetch

I am naming remove.bg because it is the public product people type. I am not naming a shop I listed on, and I am not quoting a credit price from a third-party review.


The Photo Stays in This Tab

The file never goes to Softery. The cut runs in a worker in this tab. Mixpanel and Google Analytics load with the rest of the site. They see that someone opened the tool. Those events carry a size bucket, a device name, and a feather setting. The file name and the bytes stay in the tab.

If you came here because a landing page promised zero third-party scripts, that is a different site. This one loads Mixpanel and Google Analytics. The photo still stays in the tab.

The model comes from Hugging Face the first time. That is a download of weights, not an upload of your photo. After the browser caches the file, later photos reuse it.

Softery's Docker image is public. Baking 98 MB of weights into it would put a copy of the model on every pull. The tab can cache the file after one fetch. The image should not.


First Run Pulls 98 MB

The weights are studioludens/birefnet-lite-512, MIT, in fp16. Hugging Face listed that file at 98,484,532 bytes on 16 September 2026. I measured it from their model tree API that day. It is a 512 re-export of BiRefNet-lite. The 1024 ONNX of the same model runs out of memory in the browser.

I am not baking 98 MB into the Docker image. The image is public. The first click pulls the model into this browser. A progress line says so, because a silent 98 MB fetch looks like a hung page.

The library is @huggingface/transformers 4.3.0, Apache-2.0, with onnxruntime-web. Inference runs at 512, which is what this export wants. The mask is then stretched back to the photo you dropped. The PNG you download is the photo's width and height, not 512.

A second photo in the same tab does not spawn a fresh worker and does not fetch the 98 MB again. The worker stays up. Cut again is the inference, not another install.


The Package I Did Not Ship

@imgly/background-removal is the package a lot of "runs in the browser" demos reach for. Its licence on the day I read it was AGPL-3.0. Hosting that on a public site would force source disclosure unless I bought a commercial licence. I did not buy one. I did not ship the package.

BRIA RMBG-1.4 and RMBG-2.0 are the other common weights. Their Hugging Face licence is not a commercial grant. I skipped those too.

The queue card was already blunt about this. Ship onnxruntime-web plus a permissive model. BiRefNet-lite is MIT. Transformers.js is Apache-2.0. That is the stack.

I am not going to pretend this is the same quality as a paid API on every photo. A busy shelf leaks. A subject the same colour as the wall loses an edge. The page checks the border of the mask against the centre and flips it when the background scored high. That catches the usual inversion. It will not save a photo where everything is the subject.


Safari Already Has a Ceiling

Safari will not give a canvas more than 16,777,216 pixels. That number is in the page because it is the real cap, not a marketing round. A weak device, no WebGPU and under 4 GB of RAM reported, is capped at 8 megapixels so the tab does not die. A 48 megapixel phone photo plus a 98 MB model is how you find that out the hard way.

The rest of the devices get the Safari ceiling. If your photo is already smaller, the PNG matches it.

A progress line during the first fetch is there because I have stared at a spinner that did not move. The label names the stage: download, load, infer, compose. Mixpanel gets the stage only as a failure reason if the run dies. It does not get the photo.


Hair Is a Soft Edge

A hard mask looks fine on a mug. It looks cheap on hair. The cut upsamples the 512 mask with bilinear sampling, then a small box blur on the alpha so a strand is not a staircase. Edge softness is a slider from 0 to 4. 1 is the default. Turn it up if the fringe is crunchy. Turn it down if a logo is going soft.

This is still a model, not a person with a lasso. Wispy hair is why the queue card mentioned a matting pass. The blur is that pass. It is not a second network. Xenova/modnet is Apache-2.0 and 6.6 MB, and it can wait. I wanted one model in the tab, with a licence I can host.

The preview sits on a checkerboard so you can see the holes. If a hole is in the subject, Cut again after a different feather. If the hole is the background leaking in, pick a photo with more contrast. The control is named Edge softness.


JPEG, PNG, WebP, HEIC

The drop zone takes JPEG, PNG, WebP, and iPhone HEIC, up to 40 MB. GIF is not a still photo. PDF is already a document. Both get a line that says so. One photo at a time. Drop another and the last one is replaced.

HEIC uses the same decoder the Images to PDF page already had. Safari can often decode it natively. Other browsers go through the wasm path that page already ships. I did not add a second HEIC stack for this tool.

The download name is the stem you already had, with -no-bg.png on the end. IMG_0092.HEIC becomes IMG_0092-no-bg.png. That is boring on purpose. A UUID in the filename is how you lose the shot in a folder of listings.


What This Page Leaves Alone

It does not upscale. It does not blur faces. It does not compress. It does not turn HEIC into JPG. It does not crop a passport rectangle. Those are other pages, or they are still in the queue.

HEIC to JPG is the sibling if the phone file will not open elsewhere. Images to PDF is the sibling if a portal wants one file. This page only cuts.

I also did not ship a zip-in zip-out batch. That idea is still in the queue as its own tool. One photo was the job that actually blocked a listing.


Mixpanel Sees the Tool

The analytics id is the slug background-remover. Same hook as the other free tools. File size goes out as a bucket. Pixel count goes out as a megapixel bucket. Device is webgpu, wasm, or weak. Feather is 0 to 4. The photo never becomes a property.

A tool nobody can measure is a tool nobody can tell is being used. A tool that ships the photo to the analytics host is a different product than the one I said I was building.


Drop One Photo

  1. Open Background Remover.
  2. Drop a JPEG, PNG, WebP, or HEIC. Wait out the first 98 MB if this browser has not seen the model yet.
  3. Look at the checkerboard. Move Edge softness if the fringe is crunchy.
  4. Download PNG. The file is {name}-no-bg.png.

The title is Background Remover, 31 characters with the site suffix. The description is 152 characters. Those bounds are the same ones the other tool pages use.

There are thirty-five free tools on the hub as of this sitting. This is the one that writes the PNG at the photo's size, after one model download, with the photo still in the tab.


Last updated: September 16, 2026 | Reading time: 10 minutes

Written by Softery.io, which would rather you keep the pixels than buy a preview.