# Fibo Gen 1.5 Text to Image API

> Mô hình text-to-image với lời nhắc thuần hoặc có cấu trúc JSON và đầu ra 1MP hoặc 4MP, không cần hình ảnh tham chiếu

Tạo hình ảnh từ `prompt` hoặc `structured_prompt`, với `resolution` đặt thành 1MP hoặc 4MP và chín tỷ lệ khung hình. `seed` giúp tái lập kết quả và lời nhắc có cấu trúc đã dùng được trả về. Mô hình có ít đầu vào hơn Fibo trước đó, không có negative lời nhắc, số bước hoặc hình ảnh tham chiếu.

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

## 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-gen-1.5/text-to-image` 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

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `prompt` |  | string \| null | no |  |  | Lời nhắc dùng để tạo hình ảnh. |
| `structured_prompt` |  | object {short_description, objects, background_setting, lighting, aesthetics, photographic_characteristics, style_medium, text_render, context, artistic_style} \| null | no |  |  | Lời nhắc có cấu trúc dùng để tạo hình ảnh. |
| `structured_prompt.short_description` |  | string \| null | no |  |  | Mô tả ngắn về hình ảnh đầu ra dự kiến. |
| `structured_prompt.objects` |  | array of object {description, location, relationship, relative_size, shape_and_color, texture, appearance_details, number_of_objects, pose, expression, clothing, action, gender, skin_tone_and_texture, orientation} \| null | no | `[]` |  | Chỉ định nội dung hình ảnh được tạo dưới dạng danh sách, ghi lại thuộc tính của từng đối tượng và mối quan hệ của chúng với các đối tượng khác được mô tả. |
| `structured_prompt.objects[].description` |  | string \| null | no |  |  | Mô tả đối tượng đầu ra dự kiến. |
| `structured_prompt.objects[].location` |  | string \| null | no |  |  | Vị trí đối tượng trong hình ảnh. |
| `structured_prompt.objects[].relationship` |  | string | yes |  |  | Mối quan hệ của đối tượng với các đối tượng khác trong hình ảnh. |
| `structured_prompt.objects[].relative_size` |  | string \| null | no |  |  | Kích thước của đối tượng so với hình ảnh. |
| `structured_prompt.objects[].shape_and_color` |  | string \| null | no |  |  | Hình dạng và màu sắc của đối tượng. |
| `structured_prompt.objects[].texture` |  | string \| null | no |  |  | Kết cấu của đối tượng. |
| `structured_prompt.objects[].appearance_details` |  | string \| null | no |  |  | Chi tiết mô tả diện mạo của đối tượng. |
| `structured_prompt.objects[].number_of_objects` |  | integer \| null | no |  |  | Số lượng đối tượng trong hình ảnh. |
| `structured_prompt.objects[].pose` |  | string \| null | no |  |  | Tư thế của đối tượng được mô tả. |
| `structured_prompt.objects[].expression` |  | string \| null | no |  |  | Biểu cảm của đối tượng được mô tả. |
| `structured_prompt.objects[].clothing` |  | string \| null | no |  |  | Trang phục của đối tượng được mô tả. |
| `structured_prompt.objects[].action` |  | string \| null | no |  |  | Hành động của đối tượng được mô tả. |
| `structured_prompt.objects[].gender` |  | string \| null | no |  |  | Giới tính của đối tượng được mô tả. |
| `structured_prompt.objects[].skin_tone_and_texture` |  | string \| null | no |  |  | Kết cấu và tông màu da của đối tượng được mô tả. |
| `structured_prompt.objects[].orientation` |  | string \| null | no |  |  | Hướng của đối tượng được mô tả. |
| `structured_prompt.background_setting` |  | string \| null | no |  |  | Bối cảnh nền cho hình ảnh được tạo. |
| `structured_prompt.lighting` |  | object {conditions, direction, shadows} \| null | no |  |  | Ánh sáng cho hình ảnh được tạo. |
| `structured_prompt.lighting.conditions` |  | string \| null | no |  |  | Điều kiện ánh sáng cho hình ảnh được tạo. |
| `structured_prompt.lighting.direction` |  | string \| null | no |  |  | Hướng chiếu sáng cho hình ảnh được tạo. |
| `structured_prompt.lighting.shadows` |  | string \| null | no |  |  | Bóng đổ cần thể hiện trong hình ảnh được tạo. |
| `structured_prompt.aesthetics` |  | object {composition, color_scheme, mood_atmosphere, aesthetic_score, preference_score} \| null | no |  |  | Đặc tính thẩm mỹ cho hình ảnh được tạo. |
| `structured_prompt.aesthetics.composition` |  | string \| null | no |  |  | Bố cục cho hình ảnh được tạo. |
| `structured_prompt.aesthetics.color_scheme` |  | string \| null | no |  |  | Bảng màu cho hình ảnh được tạo. |
| `structured_prompt.aesthetics.mood_atmosphere` |  | string \| null | no |  |  | Tâm trạng và không khí cho hình ảnh được tạo. |
| `structured_prompt.aesthetics.aesthetic_score` |  | string \| null | no |  |  | Điểm thẩm mỹ của hình ảnh đang được tạo. |
| `structured_prompt.aesthetics.preference_score` |  | string \| null | no |  |  | Điểm ưu tiên của hình ảnh đang được tạo. |
| `structured_prompt.photographic_characteristics` |  | object {depth_of_field, focus, camera_angle, lens_focal_length} \| null | no |  |  | Đặc tính nhiếp ảnh cho hình ảnh được tạo. |
| `structured_prompt.photographic_characteristics.depth_of_field` |  | string \| null | no |  |  | Độ sâu trường ảnh cho hình ảnh được tạo. |
| `structured_prompt.photographic_characteristics.focus` |  | string \| null | no |  |  | Lấy nét cho hình ảnh được tạo. |
| `structured_prompt.photographic_characteristics.camera_angle` |  | string \| null | no |  |  | Góc máy ảnh cho hình ảnh được tạo. |
| `structured_prompt.photographic_characteristics.lens_focal_length` |  | string \| null | no |  |  | Thiết lập ống kính cho hình ảnh được tạo, biểu thị bằng tiêu cự. |
| `structured_prompt.style_medium` |  | string \| null | no |  |  | Chất liệu phong cách cho hình ảnh được tạo. |
| `structured_prompt.text_render` |  | array of any \| null | no | `[]` |  | Danh sách mục văn bản cần đưa vào hình ảnh. |
| `structured_prompt.context` |  | string \| null | no |  |  | Bối cảnh cho hình ảnh được tạo. |
| `structured_prompt.artistic_style` |  | string \| null | no |  |  | Phong cách nghệ thuật cho hình ảnh được tạo. |
| `seed` |  | integer | no | `5555` |  | Seed kiểm soát tính ngẫu nhiên để tái lập kết quả. |
| `aspect_ratio` |  | enum (string) | no | `1:1` | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9` | Tỷ lệ khung hình; các giá trị khả dụng là 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9. |
| `resolution` |  | enum (string) | no | `1MP` | `1MP`, `4MP` | Độ phân giải của hình ảnh được tạo. |

## Example input

Required parameters only:

```json
{}
```

A fuller example:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

## 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-gen-1.5/text-to-image?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# 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-gen-1.5/text-to-image?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }),
});
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 = {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bria/fibo-gen-1.5/text-to-image", 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-gen-1.5/text-to-image",
      "input": {
        "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
      },
      "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-gen-1.5/text-to-image",
  "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": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "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
    },
    "images": [
      {}
    ],
    "structured_prompt": {}
  },
  "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} | Hình ảnh do mô hình tạo. |
| `images` | array of object | Các hình ảnh được tạo sinh. |
| `structured_prompt` | object | Lời nhắc hiện đang sử dụng. |

## Related models

- [FLUX.1 \[dev\]](https://doitong.com/developers/models/flux/dev.md) (`flux/dev`): $0.025 / megapixel
- [FLUX.1 \[schnell\]](https://doitong.com/developers/models/flux/schnell.md) (`flux/schnell`): $0.003 / megapixel
- [FLUX.2 \[dev\]](https://doitong.com/developers/models/flux-2.md) (`flux-2`): $0.012 / megapixel
- [FLUX.2 \[pro\]](https://doitong.com/developers/models/flux-2-pro.md) (`flux-2-pro`): $0.015 / megapixel of output image
- [GPT Image 2.5 Text to Image](https://doitong.com/developers/models/openai/gpt-image-2.5/flare/text-to-image.md) (`openai/gpt-image-2.5/flare/text-to-image`): from $0.008 / image
- [Ideogram V4.5](https://doitong.com/developers/models/ideogram/v4.5.md) (`ideogram/v4.5`): from $0.03 / image
- [Nano Banana 2](https://doitong.com/developers/models/nano-banana-2.md) (`nano-banana-2`): from $0.06 / image
- [Nano Banana Pro](https://doitong.com/developers/models/nano-banana-pro.md) (`nano-banana-pro`): from $0.15 / image

## Links

- HTML page: https://doitong.com/developers/models/bria/fibo-gen-1.5/text-to-image
- 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-gen-1.5/text-to-image
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/bria/fibo-gen-1.5/text-to-image
