Files
calesthio a3e735cc7a Initial release — OpenMontage: the first open-source agentic video production system
11 production pipelines, 47 tools, 124 agent skills.
Supports cloud APIs (fal.ai, OpenAI, ElevenLabs, Suno, HeyGen, Runway) and
free local providers (diffusers, Piper TTS, WAN 2.1, Hunyuan, CogVideo).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 08:25:17 -07:00

4.9 KiB

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