# Video Background Removal

> Remove, replace, or modify video backgrounds using each::sense AI. Create transparent backgrounds, virtual offices, green screen effects without green screens, blur effects, and professional video compositing.

- Skill: `eachlabs/video-background-removal` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add eachlabs/video-background-removal`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eachlabs/video-background-removal/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: eachlabs (https://skillmd.com/u/eachlabs)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/eachlabs/video-background-removal

---


# Video Background Removal

Remove and replace video backgrounds using each::sense. This skill enables transparent backgrounds, virtual environments, professional compositing, and creative background effects for any video content.

## Features

- **Transparent Backgrounds**: Remove backgrounds completely for compositing
- **Solid Color Replacement**: Replace with any solid color (white, black, brand colors)
- **Image Backgrounds**: Composite subjects onto static image backgrounds
- **Video Backgrounds**: Place subjects into dynamic video backgrounds
- **Virtual Offices**: Professional meeting backgrounds for remote work
- **Green Screen Effect**: Achieve chroma key results without actual green screens
- **Background Blur**: Privacy-preserving blur effects for video calls
- **Animated Backgrounds**: Dynamic motion graphics behind subjects
- **Product Videos**: Clean product footage with removed/replaced backgrounds
- **Talking Head Videos**: Professional presenter backgrounds

## Quick Start

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background from this video and make it transparent"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/my-video.mp4"]
  }'
```

## Use Case Examples

### 1. Remove Video Background (Transparent)

Create a video with transparent background for compositing in video editors.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background from this video completely. Output should have a transparent background so I can composite it in my video editor. Keep the subject cleanly isolated with smooth edges."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/presenter-video.mp4"]
  }'
```

### 2. Replace with Solid Color

Replace background with a clean solid color for professional content.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Replace the background of this video with a solid white background. Keep the subject sharp and well-isolated. Clean edges, professional look suitable for corporate presentations."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/interview-clip.mp4"]
  }'
```

### 3. Replace with Image Background

Composite subject onto a static image background.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background from this video and replace it with the provided image. Blend the subject naturally into the new scene with appropriate lighting and shadows."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/person-talking.mp4"],
    "image_urls": ["https://example.com/beach-sunset-background.jpg"]
  }'
```

### 4. Replace with Video Background

Create dynamic composites with moving video backgrounds.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background from my video and replace it with the second video as the new background. Sync the timing and make the composite look natural."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": [
      "https://example.com/foreground-subject.mp4",
      "https://example.com/cityscape-background.mp4"
    ]
  }'
```

### 5. Virtual Office Background

Create professional virtual meeting backgrounds.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Replace the background with a professional modern office environment. Clean minimalist design with bookshelves, plants, and soft natural lighting. Suitable for executive video calls and professional meetings."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/webcam-recording.mp4"]
  }'
```

### 6. Green Screen Replacement (Without Green Screen)

Achieve chroma key quality results from any video, no green screen needed.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Extract the person from this video as if it was shot on a green screen. Clean matte extraction with no background spill. Output with transparent background or green screen color for post-production keying."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/filmed-at-home.mp4"]
  }'
```

### 7. Blur Background in Video

Apply privacy-preserving background blur for video calls and content.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Apply a smooth gaussian blur to the background while keeping the person in focus. Moderate blur intensity - enough to hide details but keep sense of depth. Natural bokeh effect like a portrait mode camera."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/home-office-call.mp4"]
  }'
```

### 8. Replace with Animated Background

Add dynamic motion graphics or animated backgrounds.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background and replace it with an animated gradient background. Smooth flowing colors transitioning between blue and purple. Subtle movement, not distracting. Professional motion graphics style."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content-creator.mp4"]
  }'
```

### 9. Product Video Background Removal

Clean product footage for e-commerce and marketing.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background from this product video. The product is a rotating sneaker on a turntable. Make the background pure white for e-commerce use. Maintain all product details, reflections, and shadows."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/product-360-spin.mp4"]
  }'
```

### 10. Talking Head Background Swap

Professional presenter and talking head video backgrounds.

```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Replace the background in this talking head video with a professional studio setting. Dark backdrop with subtle colored accent lighting like a podcast studio or news desk. Keep the presenter well-lit and naturally composited."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/youtube-video.mp4"]
  }'
```

## Multi-Turn Workflow Example

Use `session_id` to iterate on background replacements across multiple requests.

```bash
# Initial background removal
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the background from this video of me presenting"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "bg-removal-project-001",
    "video_urls": ["https://example.com/presentation.mp4"]
  }'

# Iterate with different background
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Now replace it with a modern tech office background instead"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "bg-removal-project-001"
  }'

# Fine-tune the result
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "The edges look a bit rough around my hair. Can you refine the matte for better edge quality?"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "bg-removal-project-001"
  }'
```

## Mode Selection

Choose the appropriate mode based on your needs:

| Mode | Best For | Speed | Quality |
|------|----------|-------|---------|
| `max` | Final production videos, client deliverables | Slower | Highest quality, best edge detection |
| `eco` | Quick previews, concept testing, drafts | Faster | Good quality, suitable for review |

**Recommendation:** Use `eco` mode for testing backgrounds and `max` mode for final renders.

## Best Practices

### For Clean Extractions
- **Lighting**: Well-lit subjects extract better than low-light footage
- **Contrast**: Higher contrast between subject and background helps
- **Movement**: Slower movements produce cleaner mattes
- **Hair/Fine Details**: Request "refined edges" for subjects with complex hair

### For Natural Composites
- **Lighting Match**: Request backgrounds that match your footage lighting
- **Color Grading**: Ask for color matching between subject and background
- **Shadows**: Request natural shadow placement for grounded composites
- **Depth of Field**: Match background blur to your camera's depth of field

### For Professional Results
- Specify your use case (corporate, social media, broadcast)
- Mention output requirements (resolution, format)
- Request specific background styles that match your brand

## Prompt Tips

When requesting background removal/replacement, include:

1. **Source Description**: What's in your video (person, product, etc.)
2. **Background Goal**: Transparent, solid color, specific scene, blur
3. **Quality Requirements**: Edge quality, shadow handling, reflections
4. **Use Case**: Where will this video be used
5. **Style Matching**: Lighting, color tone, atmosphere

### Example Prompt Structure

```
"Remove/replace the background from this [subject type] video.
[New background description or transparent/solid color].
[Edge quality and compositing requirements].
For use in [context/platform]."
```

## Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| `Failed to create prediction: HTTP 422` | Insufficient balance | Top up at eachlabs.ai |
| Timeout | Video processing takes time | Set client timeout to minimum 10 minutes |
| Poor edge quality | Complex hair/fine details | Request "refined edge detection" in prompt |
| Subject detection failed | Low contrast footage | Try with better lit footage or specify subject location |

## Timeout Configuration

Video background removal is computationally intensive. Configure your HTTP client with adequate timeout:

- **Minimum recommended timeout**: 10 minutes (600 seconds)
- **For longer videos**: Increase proportionally (1 minute timeout per 10 seconds of video)

```bash
# Example with explicit timeout using curl
curl --max-time 600 -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove background from this video"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/long-video.mp4"]
  }'
```

## Related Skills

- `each-sense` - Core API documentation
- `product-video-generation` - E-commerce video creation
- `video-generation` - AI video generation
- `image-background-removal` - Static image background removal

