Background Remover
Cut the background out of a photo with AI and get a clean transparent PNG — free, no watermark, no signup.
How it works
- Upload. Choose a photo with a clear subject (up to 12 MB).
- Remove. Press Remove background — the u2net model separates the subject from the background.
- Download PNG. Your cutout downloads as a transparent PNG, ready to drop onto any background.
About this tool
This background remover uses an AI segmentation model (u2net) to separate the subject of a photo from its background and hand you back a transparent PNG. It works best on a clear subject — a person, a product, a pet — against a reasonably distinct background. Because it runs a real model on the server it takes a few seconds rather than being instant, and very large images are scaled down to keep it responsive. There's no watermark and no signup, and your photo is processed in memory and never stored.
What people use it for
- Make a product photo with a transparent background for a store
- Cut out a person or pet for a design or collage
- Create a profile picture without the busy background
- Prepare a logo or object shot for compositing
Developer API
Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.
https://best.free/api/tools/background-remover/
| Parameter | Example | Required | Notes |
|---|---|---|---|
file (file) |
portrait.jpg |
Yes | JPG/PNG/WebP, ≤12 MB (auto-downscaled past ~2000px). |
curl -X POST https://best.free/api/tools/background-remover/ \
-F 'file=@portrait.jpg' \
-o no-background.png
import requests
files = {"file": open("portrait.jpg", "rb")}
r = requests.post("https://best.free/api/tools/background-remover/", files=files)
with open("no-background.png", "wb") as out:
out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
const r = await fetch("https://best.free/api/tools/background-remover/", { method: "POST", body: fd });
const blob = await r.blob(); // the no-background.png
Response: A transparent PNG with the background removed.