Background removal craft: model selection (u2net vs u2net_human_seg), alpha matting for fine edges, asset-prep workflow.
Pro scans all 2 files and shows the line behind each finding
Scanned 9/29/2026
npx -y skills add aicodedecode/awesome-muse-skills --skill bg-removal --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bg Removal?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aicodedecode-bg-removal)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: bg-removal
description: Background removal craft: model selection (u2net vs u2net_human_seg), alpha matting for fine edges, asset-prep workflow.
---
# Background Removal Usage for OpenMontage
> Sources: rembg library documentation, U2Net paper (Qin et al. 2020), IS-Net paper
> (Qin et al. 2022), OpenMontage `tools/bg_remove.py` implementation
## Quick Reference Card
```
DEFAULT MODEL: u2net (general purpose, fast)
FOR PEOPLE: u2net_human_seg (optimized for human silhouettes)
FINE EDGES: Enable alpha_matting (hair, fur, leaves)
OUTPUT: Transparent PNG by default; set bg_color for solid replacement
RUNTIME: ~1-3s per image (CPU), <0.5s (GPU with onnxruntime-gpu)
INSTALL: pip install rembg (CPU) | pip install rembg[gpu] (CUDA)
```
## When to Use bg_remove
Background removal is an **asset-prep** step. Use it before the compose stage.
- **Product demos / e-commerce videos** -- isolate a product on a clean background
- **Compositing** -- layer a speaker over generated backgrounds or diagrams
- **Thumbnail generation** -- clean cutouts for YouTube thumbnails
- **Green-screen replacement** -- achieve green-screen results without an actual green screen
- **B-roll preparation** -- clean up raw photos for overlay use
## Model Selection Guide
| Model | Best For | Speed | Notes |
|-------|----------|-------|-------|
| `u2net` | General objects, products, scenes | Fast | Default; good all-rounder |
| `u2net_human_seg` | People, portraits, speakers | Fast | More accurate masks for human silhouettes |
| `isnet-general-use` | Complex edges, hair, fur | Slower | Higher detail on fine boundaries |
**Decision rule:** If the subject is a person, use `u2net_human_seg`. If the subject has intricate edges (hair, fur, foliage) and you need maximum quality, use `isnet-general-use`. Otherwise, use the default `u2net`.
## Alpha Matting
Alpha matting refines the edge mask by computing soft transparency at boundaries. It produces more natural edges but costs approximately 2x processing time.
| Subject Type | Alpha Matting | Reason |
|-------------|---------------|--------|
| Hair, fur, feathers | Enable | Fine semi-transparent strands need soft edges |
| Leaves, trees, grass | Enable | Irregular organic boundaries benefit from matting |
| Products, devices | Disable | Clean geometric edges; matting adds no value |
| Text, logos, shapes | Disable | Hard edges are correct for these subjects |
## Common Workflows
### 1. Speaker Cutout for Compositing
Extract a speaker from their background and layer over a diagram or slide.
```
bg_remove(input_path="speaker.png", model="u2net_human_seg")
--> speaker_nobg.png (transparent)
--> compose over diagram/slide in compose stage
```
### 2. Product Isolation
Isolate a product and optionally place on a brand-colored background.
```
bg_remove(input_path="product.jpg", model="u2net")
--> product_nobg.png (transparent)
# Or with brand background:
bg_remove(input_path="product.jpg", model="u2net", bg_color="#FFFFFF")
--> product_nobg.png (white background)
```
### 3. Thumbnail Prep
Remove background, upscale, then compose with text overlays.
```
bg_remove(input_path="subject.png", model="u2net_human_seg", alpha_matting=True)
--> subject_nobg.png
--> upscale --> compose with text overlays in compose stage
```
### 4. Batch Frame Processing
When preparing multiple frames for a compositing sequence, process all source frames before entering the compose stage.
```
for each source frame:
bg_remove(input_path=frame, model="u2net_human_seg")
--> frame_nobg.png
then: compose all transparent frames over background sequence
```
## Quality Checklist
Before moving to the compose stage, verify each bg_remove output:
- [ ] **Edge quality is clean** -- no halo artifacts around the subject
- [ ] **Fine details preserved** -- hair, fingers, and thin features are intact
- [ ] **Transparency is complete** -- no residual background bleed in transparent areas
- [ ] **Subject integrity** -- no parts of the subject were incorrectly removed
- [ ] **Compositing test** -- when layered over the target background, the subject blends naturally
## Applying to OpenMontage
When using the `bg_remove` tool in asset preparation:
1. **Use `u2net_human_seg` for any frame containing people** -- it produces tighter masks around human silhouettes than the general model
2. **Enable `alpha_matting` only for subjects with complex edges** like hair, fur, or foliage -- skip it for clean-edged subjects to save processing time
3. **For compositing workflows, output transparent PNG** (omit `bg_color`) and layer in the compose stage -- this preserves maximum flexibility
4. **For solid-background replacements, set `bg_color`** to match the playbook's background color token -- keeps outputs consistent with the project style
5. **Process source frames BEFORE the compose stage** -- bg_remove is an asset-prep step, not a compose-time operation
6. **Check output edges at full resolution before compositing** -- halo artifacts and edge bleed are visible in final video and must be caught early
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!