Bria Fibo Edit 1.5 Edit API Documentation
Playground
Try it on WaveSpeedAI!Bria FIBO Edit 1.5 Image Edit edits one to four reference images with natural-language or structured instructions, supporting commercially safe image editing, visual refinements, product visuals, marketing assets, brand-safe content, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Bria FIBO Edit 1.5 edits images using visual references and optional text instructions. Upload one to four ordered reference images, describe the desired edit when needed, and optionally use a mask for single-image edits to control which areas should change.
Why Choose This?
-
Image editing workflow
Edit existing images using reference inputs and optional prompt instructions. -
Multi-image input support
Use one to four ordered reference images for stronger visual context. -
Optional mask control
Provide a mask for single-image edits to define editable and preserved regions. -
Flexible aspect ratios
Choose square, portrait, landscape, and vertical output formats. -
Seed support
Use a fixed seed for reproducible edits, or-1for a random seed.
Parameters
| Parameter | Required | Description |
|---|---|---|
| images | Yes | One to four ordered reference image URLs. |
| prompt | No | Text prompt describing the desired edit or final result. |
| mask_image | No | Optional mask for single-image edits. White regions are edited and black regions are preserved. |
| aspect_ratio | No | Output aspect ratio: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, or 16:9. |
| seed | No | Random seed for generation. Use -1 for a random seed. Range: -1–2147483647. Default: -1. |
How to Use
- Upload reference images — Provide one to four images for the edit.
- Write a prompt optional — Describe what should change and what should remain consistent.
- Add a mask optional — Use
mask_imagefor single-image edits when only specific regions should be edited. - Choose aspect ratio optional — Select the output layout that matches your target format.
- Set seed optional — Use a fixed seed for reproducible results, or
-1for random generation. - Submit — Generate the edited image.
Pricing
Pricing is fixed at $0.04 per edit.
| Output | Cost |
|---|---|
| One edited image | $0.04 |
Best Use Cases
- Prompt-guided image editing — Modify an existing image with natural-language instructions.
- Masked edits — Edit selected regions while preserving the rest of the image.
- Multi-reference editing — Use multiple images to guide subject, style, composition, or visual context.
- Marketing visuals — Refine product images, campaign assets, thumbnails, and social media graphics.
- Creative iteration — Generate alternate versions of an existing image.
Pro Tips
- Use clear, high-quality reference images for better edit results.
- Keep reference images visually relevant to the desired edit.
- Use
mask_imagewhen only part of the image should change. - In mask images, white areas are edited and black areas are preserved.
- Keep prompts clear and focused on the desired transformation.
- Use a fixed
seedwhen comparing prompt or parameter changes. - Choose
9:16for vertical mobile content and16:9for widescreen layouts.
Related Models
- Bria FIBO Gen 1.5 Text-to-Image — Generate images from text prompts with optional reference-image guidance.
- Bria FIBO Edit 1.5 — Edit images with prompt-based instructions and visual context.
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'
{
"images": [
"https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
],
"aspect_ratio": "1:1"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/bria/fibo-edit-1.5/edit" \
-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="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"
# 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|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| images | array<string> | Yes | - | 1 ~ 4 items | One to four ordered reference images. |
| prompt | string | No | - | The prompt to use for the generation. | |
| mask_image | string | No | - | Optional mask for single-image edits. White regions are edited and black regions are preserved. | |
| aspect_ratio | string | No | - | 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 | The aspect ratio of the generated media. |
| seed | integer | No | - | - | The random seed to use for the generation. |
| enable_sync_mode | boolean | No | false | - | If set to `true`, the request attempts to wait for the generated result and return outputs in the same response. If the result is not ready within the sync wait window, the API can return a timeout body while the task continues processing. This option is only available via the API and is supported only by some models. |
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.status | string | Task status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses. |
| 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.status | string | Status: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses |
| 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 |