# Bria Expand (FIBO-Edit-1.5) API

> Herramienta de outpainting que amplía una imagen a una nueva relación de aspecto o a un lienzo personalizado de menos de 25 megapíxeles

Amplía una imagen más allá de sus bordes. Elige uno de nueve valores de `aspect_ratio`, o define `canvas_size` como [width, height] con una superficie inferior a 25 megapíxeles, junto con `original_image_size` y `original_image_location`. Un `prompt` opcional describe la nueva zona. `retain_original_quality` y `preserve_alpha` están activados de forma predeterminada, y `return_model_output` sirve para diagnósticos.

- Model id: `bria/fibo-edit-1.5/expand`
- Made by: Bria AI
- Category: Image Editing
- Output: image
- Price: $0.04 / image (cheapest run $0.04 (40 API credits))
- Run: `POST https://api.doitong.ru/v1/run/bria/fibo-edit-1.5/expand`
- Quote: `POST https://api.doitong.ru/v1/quote/bria/fibo-edit-1.5/expand`
- Docs page: https://doitong.com/es-ES/developers/models/bria/fibo-edit-1.5/expand

## Pricing

Price: **$0.04 / image**. Billed per generated image.

The full example input below costs $0.04 = 40 API credits (1 image × 40 API credits).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.ru/v1/quote/bria/fibo-edit-1.5/expand` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `image_url` | `image` | string (image URL) | yes |  |  | Imagen para ampliar, proporcionada como archivo o URL. |
| `canvas_size` |  | array of integer \| null | no |  | 2 – 2 items | Dimensiones de la imagen ampliada emparejadas con 'original_image_location'. Especifique [width, height] para el lienzo final, manteniendo su área por debajo de 25 megapíxeles. |
| `aspect_ratio` |  | enum (string) \| null | no |  | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9` | Configuración de la relación de aspecto final que centra la imagen original y amplía el lienzo circundante. Especificarla tiene prioridad sobre 'original_image_size' y 'original_image_location'. |
| `original_image_size` |  | array of integer \| null | no |  | 2 – 2 items | [width, height] de destino para la imagen original dentro del lienzo. Proporcionar 'aspect_ratio' sustituye esta configuración; de lo contrario, la imagen cambia de tamaño a estas dimensiones antes de colocarse. |
| `original_image_location` |  | array of integer \| null | no |  | 2 – 2 items | Coordenadas de colocación [x, y] de la esquina superior izquierda de la imagen original, ignoradas cuando se proporciona 'aspect_ratio'. Se permite colocarla fuera de los límites del lienzo, lo que recorta la imagen original. |
| `prompt` |  | string \| null | no |  |  | Descripción opcional del contenido de la zona añadida. Un ajuste sencillo del lienzo normalmente no necesita descripción: omitirla solicita al modelo simplemente ampliar la imagen existente. |
| `seed` |  | integer \| null | no |  | 0 – 2,147,483,647 | Semilla de generación aleatoria, siempre incluida en la respuesta, tanto si se proporciona aquí como si se elige aleatoriamente al omitirla. Un valor tomado de una respuesta anterior puede recrear su resultado. |
| `negative_prompt` |  | string \| null | no |  |  | Comprobación de compatibilidad para solicitudes escritas para la ruta de la API de ampliación SDXL: proporcionar esta entrada no admitida activa un rechazo explícito para que su valor no se pierda silenciosamente. Use 'prompt' en su lugar. |
| `retain_original_quality` |  | boolean | no | `true` |  | Actívelo para conservar los píxeles originales protegidos por la máscara a resolución completa sin remuestreo. El modelo genera aproximadamente un megapíxel y después amplía el lienzo. Desactivarlo suaviza uniformemente el resultado, lo que puede ocultar una unión sobre un fondo texturizado. |
| `preserve_alpha` |  | boolean | no | `true` |  | Conserva la transparencia de entrada extendiendo el canal alfa original mediante replicación de bordes, según sea necesario para ampliar un recorte. Como la generación funciona en RGB, el modelo no produce alfa. Desactívelo para recibir una salida RGB aplanada. |
| `return_model_output` |  | boolean | no | `false` |  | Devuelve un fotograma de diagnóstico adicional para distinguir los errores del modelo de los errores de composición, sin cambiar la imagen final. Muestra el resultado del modelo antes de volver a insertar la imagen original y mezclar las uniones; cualquier defecto de límite ya visible en este fotograma es un error de generación, no de posprocesamiento. |

File parameters (`image`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```json
{
  "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

A fuller example:

```json
{
  "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/bria/fibo-edit-1.5/expand?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.ru/v1";
const headers = {
  "Authorization": "Bearer " + process.env.DOITONG_API_KEY,
  "Content-Type": "application/json",
};

// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bria/fibo-edit-1.5/expand?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);

// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
  res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
  request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
```

### Python

```python
import os
import requests

API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bria/fibo-edit-1.5/expand", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
    raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])

# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
    request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
    raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
```

### MCP

The MCP server at `https://api.doitong.ru/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "bria/fibo-edit-1.5/expand",
      "input": {
        "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "bria/fibo-edit-1.5/expand",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 40,
    "usd": "0.04",
    "charged": 40,
    "refunded": 0
  },
  "input": {
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  },
  "output": {
    "image": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200,
      "width": 1024,
      "height": 768
    },
    "seed": 42,
    "structured_instruction": {},
    "model_output": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200,
      "width": 1024,
      "height": 768
    }
  },
  "outputs": [
    {
      "type": "image",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "width": 1024,
      "height": 768,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `image` | object {url, content_type, file_name, file_size, width, height} | Imagen resultante de la ampliación. |
| `seed` | integer | Semilla aplicada durante la generación, que permite reproducir el resultado. |
| `structured_instruction` | object | Prompt estructurado utilizado para condicionar el modelo. |
| `model_output` | object {url, content_type, file_name, file_size, width, height} \| null | Fotograma sin composición incluido únicamente cuando se activó 'return_model_output'. Tiene las dimensiones de lienzo solicitadas y contiene la salida del modelo sin contenido pegado ni mezclado. |

## Related models

- [Bria Product Holding (FIBO-Edit-1.5)](https://doitong.com/developers/models/bria/fibo-edit-1.5/product-holding.md) (`bria/fibo-edit-1.5/product-holding`): $0.04 / image
- [Bria Virtual Try-On (FIBO-Edit-1.5)](https://doitong.com/developers/models/bria/fibo-edit-1.5/virtual-try-on.md) (`bria/fibo-edit-1.5/virtual-try-on`): $0.04 / image
- [Fibo Edit 1.5 Image Editing](https://doitong.com/developers/models/bria/fibo-edit-1.5/edit.md) (`bria/fibo-edit-1.5/edit`): $0.04 / image
- [FLUX.1 Kontext \[pro\]](https://doitong.com/developers/models/flux-pro/kontext.md) (`flux-pro/kontext`): $0.04 / image
- [GPT Image 2.5 Edit](https://doitong.com/developers/models/openai/gpt-image-2.5/flare/edit.md) (`openai/gpt-image-2.5/flare/edit`): from $0.12 / image
- [Nano Banana 2 Edit](https://doitong.com/developers/models/nano-banana-2/edit.md) (`nano-banana-2/edit`): from $0.06 / image
- [Nano Banana Pro Edit](https://doitong.com/developers/models/nano-banana-pro/edit.md) (`nano-banana-pro/edit`): from $0.15 / image
- [Qwen Image 3 Edit](https://doitong.com/developers/models/alibaba/qwen-image-3/edit.md) (`alibaba/qwen-image-3/edit`): from $0.04 / image

## Links

- HTML page: https://doitong.com/developers/models/bria/fibo-edit-1.5/expand
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=bria/fibo-edit-1.5/expand
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/bria/fibo-edit-1.5/expand
