About video-background-removal
A video-editing skill that uses each::sense to remove or replace video backgrounds. It is for creators preparing composited footage, presentations, calls, or product videos, and supports transparent, color, image, and moving backgrounds as well as blur.
Key features
- 01Remove backgrounds to transparency
- 02Replace with solid colors or images
- 03Composite with video backgrounds
- 04Apply background blur
- 05Select eco or max mode
Use cases
- 01Prepare transparent footage for editing
- 02Create virtual office meeting videos
- 03Produce white-background product clips
- 04Add a studio setting to presenter footage
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ eachlabs/ skills --skill video-background-removalAfter installing, type/video-background-removalin Claude Code to confirm it loaded.
Bundled filesreferences/SSE-EVENTS.md
Details
From the project READMEVideo 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:
- Source Description: What's in your video (person, product, etc.)
- Background Goal: Transparent, solid color, specific scene, blur
- Quality Requirements: Edge quality, shadow handling, reflections
- Use Case: Where will this video be used
- 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 documentationproduct-video-generation- E-commerce video creationvideo-generation- AI video generationimage-background-removal- Static image background removal