Bria Fibo Video Background Remover
Playground
Try it on WavespeedAI!Bria Video Background Remover removes the background from videos with support for transparency and custom background colors. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
Bria Fibo Video Background Remover
Bria Fibo Video Background Remover is an AI-powered video processing model that removes backgrounds from videos. Upload your video and choose a replacement background color — the model cleanly separates subjects from their surroundings with frame-by-frame consistency.
Why Choose This?
-
Clean background removal Precisely separates subjects from backgrounds across all video frames.
-
Multiple background colors Replace with transparent, solid colors (black, white, gray, red, green, blue, etc.).
-
Temporal consistency Maintains smooth, flicker-free results throughout the video.
-
Audio preservation Option to keep original audio track in the output.
-
Flexible output formats Export as WebM VP9 or other container/codec combinations.
Parameters
| Parameter | Required | Description |
|---|---|---|
| video | Yes | Source video for background removal (URL or upload) |
| background_color | No | Replacement color: Transparent, Black, White, Gray, Red, Green, Blue, Yellow, Cyan, Magenta |
| output_container_and_codec | No | Output format (see table below, default: webm_vp9) |
| preserve_audio | No | Keep original audio in output video (default: enabled) |
Output Format Options
| Option | Container | Codec | Alpha Support |
|---|---|---|---|
| webm_vp9 | WebM | VP9 | Yes |
| mp4_h264 | MP4 | H.264 | No |
| mp4_h265 | MP4 | H.265/HEVC | No |
| mov_h265 | MOV | H.265/HEVC | Partial |
| mov_prores4s | MOV | ProRes 4444 | Yes |
| mkv_h264 | MKV | H.264 | No |
| mkv_h265 | MKV | H.265/HEVC | No |
| mkv_vp9 | MKV | VP9 | Yes |
| gif | GIF | - | Yes |
Important: If you select “Transparent” as background_color, you must use a format that supports Alpha channel (webm_vp9, mov_prores4s, mkv_vp9, or gif). Otherwise, the API will return a 422 error.
How to Use
- Upload your video — provide the video you want to process.
- Select background color — choose transparent or a solid color.
- Choose output format — select your preferred container and codec.
- Set audio preference — enable to keep original audio.
- Run — submit and download your processed video.
Pricing
| Duration | Cost |
|---|---|
| Per second | $0.14 |
Examples
- 5s video → $0.70
- 10s video → $1.40
- 30s video → $4.20
Best Use Cases
- Green Screen Replacement — Remove backgrounds for compositing in video editors.
- Social Media Content — Create clean, distraction-free videos.
- Product Videos — Isolate products on clean backgrounds.
- Presentations — Extract subjects for professional video overlays.
- Content Creation — Prepare footage for further editing and effects.
Pro Tips
- For transparent background compositing, use webm_vp9 (web), mov_prores4s (professional editing), or mkv_vp9.
- Use gif for short clips with transparency that need wide compatibility.
- mp4_h264 offers best compatibility but doesn’t support transparency — use with solid colors only.
- mov_prores4s provides highest quality for professional video editing workflows.
- Enable preserve_audio to keep voiceovers and sound effects.
- High contrast between subject and background improves removal quality.
Notes
- Only video is required; other parameters have defaults.
- Transparent background requires Alpha-supported formats (webm_vp9, mov_prores4s, mkv_vp9, gif).
- Using Transparent with non-Alpha formats will result in API error 422.
- Ensure uploaded video URLs are publicly accessible.
- Processing time depends on video length and resolution.
Related Models
- Bria Fibo Colorize — Apply color styles to images.
- Bria Fibo Relight — Adjust lighting conditions on images.
- Bria Fibo Restore — Restore old or damaged photos.
- Bria Fibo Reseason — Change seasons in outdoor scenes.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/bria/fibo/video-background-remover" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"background_color": "Transparent",
"output_container_and_codec": "webm_vp9",
"preserve_audio": true
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| video | string | Yes | - | Publicly accessible URL of the input video. Max duration 60 seconds, max resolution 16K. | |
| background_color | string | No | Transparent | Transparent, Black, White, Gray, Red, Green, Blue, Yellow, Cyan, Magenta | Background color to use. Transparent requires alpha-supported output format. |
| output_container_and_codec | string | No | webm_vp9 | webm_vp9, mp4_h264, mp4_h265, mov_h265, mov_prores4s, mkv_h264, mkv_h265, mkv_vp9, gif | Output container and codec preset. |
| preserve_audio | boolean | No | true | - | Whether to preserve audio in the output video. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |