Bria Extract Object API Documentation
Playground
Try it on WaveSpeedAI!Bria Extract Object isolates a described object from an input image and returns a clean object cutout on a transparent background, ideal for product assets, design workflows, and image compositing. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Bria Extract Object isolates a described object from an input image and returns the cutout on a transparent background. Use a short prompt to identify the target object, then optionally refine the mask or crop the output canvas.
Why Choose This?
-
Prompt-guided object extraction
Describe the object you want to isolate, such asthe red car,main product, orthe blue handbag. -
Transparent cutout output
Return the selected object as a transparent-background image for compositing, design, and product workflows. -
Optional background refinement
Useforce_background_removalto refine the cutout alpha and improve background removal. -
Optional autocrop
Tighten the output canvas around the extracted object for compact, ready-to-use assets. -
Standard image output
Results are returned as image URLs in the standard WaveSpeed prediction response.
Parameters
| Parameter | Required | Description |
|---|---|---|
| image | Yes | Input image containing the object to extract. |
| prompt | No | Natural-language description of the object to extract. Default: main object. |
| force_background_removal | No | Run an extra background-removal refinement step to clean up remaining background artifacts and improve edge transparency. Default: false. |
| autocrop | No | Crop the result tightly around the extracted object, reducing transparent padding around the subject. Default: false. |
How to Use
- Upload image — Provide an image containing the object you want to extract.
- Describe the object — Use
promptto identify the target object. - Set options optional — Enable
force_background_removalfor cleaner alpha edges orautocropfor a tighter canvas. - Submit — Generate the extracted object image.
- Use the result — Use the returned image URL in your product, design, or compositing workflow.
Pricing
| Output | Price |
|---|---|
| Per image | $0.02 |
Best Use Cases
- Object cutouts — Extract a specific object from a source image.
- Product asset preparation — Prepare transparent product assets for catalogs, ads, and ecommerce pages.
- Design compositing — Place extracted objects onto new backgrounds, templates, or marketing layouts.
- Creative editing — Isolate subjects for mockups, visual experiments, and content variations.
- Ecommerce workflows — Standardize object images for downstream product content and listing assets.
Pro Tips
- Use clear images where the target object is visible and not heavily occluded.
- Use a specific prompt when the image contains multiple objects.
- Use
main objectormain productfor simple product-style images. - Enable
force_background_removalwhen you need cleaner alpha edges. - Enable
autocropwhen you want the output canvas cropped around the extracted object. - Ensure the input image URL is publicly accessible.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
set -euo pipefail
export WAVESPEED_API_KEY="your-api-key"
REQUEST_BODY=$(cat <<'JSON'
{
"image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
"force_background_removal": false,
"autocrop": false
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/bria/extract-object" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
-H "Content-Type: application/json" \
-d "${REQUEST_BODY}")
TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body \
"${RESULT_URL}" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}")
RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')
case "${STATUS}" in
completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
esac
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| image | string | Yes | - | Input image containing the object to extract. | |
| prompt | string | No | - | Natural-language description of the object to extract, for example: the red car. | |
| force_background_removal | boolean | No | false | - | Run an extra background-removal refinement step to clean up remaining background artifacts and improve edge transparency. |
| autocrop | boolean | No | false | - | Tighten the output canvas to the extracted object. |
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 | Output values, usually URL strings; some models return text strings or structured result objects (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.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 |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<string | object> | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created |
| 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 |