2.2 KiB
2.2 KiB
Background Removal
Extract subjects from images with transparent backgrounds.
Tools
remove.bg (API)
curl -X POST "https://api.remove.bg/v1.0/removebg" \
-H "X-Api-Key: YOUR_API_KEY" \
-F "image_file=@photo.jpg" \
-F "size=auto" \
-o "result.png"
import requests
response = requests.post(
"https://api.remove.bg/v1.0/removebg",
files={"image_file": open("photo.jpg", "rb")},
data={"size": "auto"},
headers={"X-Api-Key": "YOUR_API_KEY"}
)
with open("result.png", "wb") as f:
f.write(response.content)
Pricing: ~$0.20/image (50 free/month)
ClipDrop (Stability AI)
import requests
response = requests.post(
"https://clipdrop-api.co/remove-background/v1",
files={"image_file": open("photo.jpg", "rb")},
headers={"x-api-key": "YOUR_API_KEY"}
)
Features: Background removal, cleanup, relighting
Photoroom API
response = requests.post(
"https://sdk.photoroom.com/v1/segment",
files={"image_file": open("photo.jpg", "rb")},
headers={"x-api-key": "YOUR_API_KEY"}
)
Local (rembg)
pip install rembg
# CLI
rembg i input.jpg output.png
# Python
from rembg import remove
from PIL import Image
output = remove(Image.open("input.jpg"))
output.save("output.png")
Models:
u2net— General purpose (default)u2net_human_seg— Optimized for peoplesilueta— Faster, smaller
Batch Processing
from rembg import remove
from pathlib import Path
for img_path in Path("input/").glob("*.jpg"):
result = remove(Image.open(img_path))
result.save(f"output/{img_path.stem}.png")
Edge Refinement
Raw removal often has rough edges:
- Feather edges — Gaussian blur on alpha channel
- Matting models — Use dedicated matting for hair/fur
- Manual cleanup — Touch up in photo editor
Use Cases
- Product photography
- Profile pictures
- Compositing
- E-commerce listings
- Marketing materials
Quality Tips
- Good lighting — clear subject separation helps
- High contrast — distinct foreground/background
- Clean backgrounds — simpler = better results
- Check hair/fur — often needs manual refinement