Back to skills
extension
Category: Content & MediaNo API key required

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.

personAuthor: jakexiaohubgithub

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

# 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)
# 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