Bria Fibo Edit 1.5 Edit API Documentation

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 -1 for a random seed.


Parameters

ParameterRequiredDescription
imagesYesOne to four ordered reference image URLs.
promptNoText prompt describing the desired edit or final result.
mask_imageNoOptional mask for single-image edits. White regions are edited and black regions are preserved.
aspect_ratioNoOutput aspect ratio: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, or 16:9.
seedNoRandom seed for generation. Use -1 for a random seed. Range: -1–2147483647. Default: -1.

How to Use

  1. Upload reference images — Provide one to four images for the edit.
  2. Write a prompt optional — Describe what should change and what should remain consistent.
  3. Add a mask optional — Use mask_image for single-image edits when only specific regions should be edited.
  4. Choose aspect ratio optional — Select the output layout that matches your target format.
  5. Set seed optional — Use a fixed seed for reproducible results, or -1 for random generation.
  6. Submit — Generate the edited image.

Pricing

Pricing is fixed at $0.04 per edit.

OutputCost
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_image when 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 seed when comparing prompt or parameter changes.
  • Choose 9:16 for vertical mobile content and 16:9 for widescreen layouts.

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
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
imagesarray<string>Yes-1 ~ 4 itemsOne to four ordered reference images.
promptstringNo-The prompt to use for the generation.
mask_imagestringNo-Optional mask for single-image edits. White regions are edited and black regions are preserved.
aspect_ratiostringNo-1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9The aspect ratio of the generated media.
seedintegerNo--The random seed to use for the generation.
enable_sync_modebooleanNofalse-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

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<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.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.