Seedream 5.0 Pro está no ar | Experimente no Gerador de Imagens →

Fibo Edit

bria /

FIBO is an open-source JSON-native image-to-image model that maps intent to structured controls for precise enterprise image generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-image
Entrada

Ocioso

Product becomes perfume

$0.04por execução·~25 / $1

Próximo:

ExemplosVer todos

Product becomes perfume

Product becomes perfume

change the sheep to a black cat

change the sheep to a black cat

change to a female with long hair

change to a female with long hair

make it colorful

make it colorful

Let this dog run in a large grass field

Let this dog run in a large grass field

Modelos relacionados

README

Bria FIBO Edit

Bria FIBO Edit is a powerful image editing model that transforms images based on text prompts. Upload your images, describe the changes you want, and optionally provide a mask to target specific areas — the model applies intelligent edits while preserving the overall composition and quality.

Why Choose This?

  • Text-guided editing Describe edits in natural language — change objects, modify styles, transform products, and more.

  • Mask support Optionally provide a mask image to target specific areas for precise, localized edits.

  • Multi-image input Upload multiple reference images for context-aware editing.

  • Negative prompt support Specify what to avoid in the output for better control over results.

  • Structured prompts Advanced prompt formatting for complex editing instructions.

Parameters

ParameterRequiredDescription
promptYesText description of the desired edit
imagesYesSource images to edit (can add multiple)
mask_imageNoMask image to target specific areas for editing
negative_promptNoDescribe what to avoid in the output
structured_promptNoAdvanced structured prompt for complex edits
seedNoRandom seed for reproducibility (-1 for random)

How to Use

  1. Write your prompt — describe the edit you want (e.g., "Product becomes perfume", "Change background to beach").
  2. Upload images — add source images using "+ Add Item" button.
  3. Add mask (optional) — upload a mask to target specific areas.
  4. Add negative prompt (optional) — specify what to avoid.
  5. Set seed — use -1 for random, or specify a number for reproducibility.
  6. Run — submit and download the edited image.

Best Use Cases

  • Product Transformation — Change product types while maintaining composition.
  • Object Replacement — Swap objects in images with text instructions.
  • Style Editing — Modify visual styles, colors, or aesthetics.
  • Background Changes — Transform backgrounds while preserving subjects.
  • Creative Retouching — Apply artistic edits with natural language.

Pro Tips

  • Be specific in your prompt — clearly describe what should change.
  • Use mask images for precise control over which areas to edit.
  • Use negative prompts to avoid unwanted elements in the output.
  • Start with simple edits to understand how the model interprets prompts.
  • Use the same seed to compare different prompts on the same image.

Notes

  • Multiple images can be uploaded for context-aware editing.
  • Mask image should be black and white — white areas will be edited.
  • For best results, use high-quality source images.

Related Models

Nota:Este site utiliza modelos de IA fornecidos por terceiros.

Fibo Edit API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/bria/fibo/edit with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Fibo Edit below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "seed": -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" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; 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 has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  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
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/bria/fibo/edit";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "images": [
                "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
        ],
        "seed": -1
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "seed": -1
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/bria/fibo/edit", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Fibo Edit API — Frequently asked questions

What is the Fibo Edit API?

Fibo Edit is a Bria model for image editing, exposed as a REST API on WaveSpeedAI. FIBO is an open-source JSON-native image-to-image model that maps intent to structured controls for precise enterprise image generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Fibo Edit API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/bria/bria-fibo-edit.

How much does Fibo Edit cost per run?

Fibo Edit starts at $0.040 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Fibo Edit accept?

Key inputs: `prompt`, `images`, `seed`, `negative_prompt`, `enable_base64_output`, `enable_sync_mode`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/bria/bria-fibo-edit.

How long does Fibo Edit take to generate?

Median end-to-end generation time on WaveSpeedAI is around 21 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Fibo Edit outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Bria). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Fibo Edit | Fast Image Editing API | WaveSpeedAI