# Bria Text-to-Image HD API

> Kizalisha maandishi hadi picha chenye hatua nyingi zaidi kwa tokeo la HD, kikiwa na hatua 20 hadi 50 za inferensi na picha za mwongozo za hiari

Modeli ya maandishi hadi picha inayolenga matokeo ya HD, ikitumia ratiba ndefu ya uboreshaji kuliko toleo la haraka: `num_inference_steps` ni kutoka 20 hadi 50 na chaguo-msingi ni 30. Huzalisha picha 1 hadi 4 kwa ombi na hupokea `negative_prompt`, `seed`, `guidance_scale` kutoka 0 hadi 20, uwiano wa vipengele tisa na `medium` ya photography au art. Hadi mbinu 4 za mwongozo zinaweza kuchanganywa.

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

## Pricing

Price: **$0.04 / image**. Billed per generated image (`num_images`, default 1).

The full example input below costs $0.16 = 160 API credits (4 images × 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.com/v1/quote/bria/text-to-image/hd` 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 |
|---|---|---|---|---|---|---|
| `prompt` |  | string | yes |  | ≥ 1 characters | Kidokezo cha maandishi kinachoelekeza uzalishaji wa picha. |
| `negative_prompt` |  | string | no | `` |  | Kidokezo hasi cha maandishi kwa uzalishaji wa picha. |
| `num_images` | `num_outputs` | integer | no | `4` | 1 – 4 | Idadi ya picha iliyoombwa, ikibadilishwa kuwa 1 kila mara njia yoyote ya mwongozo inapotumika. |
| `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` | Uwiano wa picha wa tokeo kwa uzalishaji bila mwongozo; njia ya mwongozo hutumia uwiano kutoka kwenye picha yake ya mwongozo na kupuuza mpangilio huu. |
| `seed` |  | integer \| null | no |  | 0 – 2,147,483,647 | Seed ya picha zinazoweza kurudiwa: kidokezo na seed zinazofanana huzalisha picha inayofanana wakati toleo la modeli halijabadilika. |
| `num_inference_steps` |  | integer | no | `30` | 20 – 50 | Idadi ya hiari ya marudio ya modeli yanayotumika kuboresha picha ya tokeo. |
| `guidance_scale` |  | number | no | `5` | 0 – 20 | Nguvu ya kufuata kidokezo kwa uteuzi wa picha, iliyoonyeshwa kama CFG (Classifier Free Guidance). |
| `prompt_enhancement` |  | boolean | no | `false` |  | Swichi ya kuboresha kidokezo: true hukuza picha mbalimbali na bunifu zaidi kwa kupanua kidokezo kilichotolewa kuwa tofauti za ziada zenye maelezo mengi. |
| `medium` |  | enum (string) \| null | no |  | `photography`, `art` | Mchanganyiko wa kisanii wa kutumia kwenye picha zilizozalishwa. Iache bila kuwekwa au weka null kwa uteuzi wa mchanganyiko kiotomatiki. |
| `guidance` |  | array of object {image_url, method, scale} | no | `[]` |  | Picha za mwongozo wa uzalishaji, zinazotolewa pamoja na njia zinazoweza kuunganishwa katika inference moja, kwa kiwango cha juu cha njia 4. |
| `guidance[].image_url` |  | string (image URL) | yes |  |  | Picha ya mwongozo iliyosimbwa kwa base64 kwa njia iliyobainishwa na guidance_method_1; picha inahitajika kila guidance_method_1 inapochaguliwa. Miundo inayotumika: jpeg, jpg, png, webp; ukubwa wa juu ni 12 MB. Wakati wa kuchanganya njia za mwongozo, kila picha ya mwongozo lazima iwe na uwiano sawa, ambao pia huamua uwiano wa tokeo. |
| `guidance[].method` |  | enum (string) | no |  | `controlnet_canny`, `controlnet_depth`, `controlnet_recoloring`, `controlnet_color_grid` | Aina ya hiari ya mwongozo kwa uzalishaji. Inference moja inaweza kuchanganya hadi njia 4 za mwongozo. |
| `guidance[].scale` |  | number | no | `1` | 0 – 1 | Nguvu ya athari ya mwongozo. |

## Example input

Required parameters only:

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

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.com/v1/run/bria/text-to-image/hd?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.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.com/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/text-to-image/hd?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.com/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/text-to-image/hd", 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.com/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/text-to-image/hd",
      "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/text-to-image/hd",
  "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": 160,
    "usd": "0.16",
    "charged": 160,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "images": [
      {
        "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
  },
  "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.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `images` | array of object {url, content_type, file_name, file_size, width, height} | Picha zilizozalishwa na modeli. |
| `seed` | integer | Seed inayotumika wakati wa uzalishaji. |

## Related models

- [Bria Text-to-Image Base](https://doitong.com/developers/models/bria/text-to-image/base.md) (`bria/text-to-image/base`): $0.04 / image
- [Bria Text-to-Image Fast](https://doitong.com/developers/models/bria/text-to-image/fast.md) (`bria/text-to-image/fast`): $0.028 / image
- [Bria](https://doitong.com/developers/models/bria/reimagine.md) (`bria/reimagine`): $0.04 / image
- [Bria Background Replace](https://doitong.com/developers/models/bria/background/replace.md) (`bria/background/replace`): $0.04 / image
- [Bria Eraser](https://doitong.com/developers/models/bria/eraser.md) (`bria/eraser`): $0.04 / request
- [Bria Expand Image](https://doitong.com/developers/models/bria/expand.md) (`bria/expand`): $0.04 / request
- [Bria GenFill](https://doitong.com/developers/models/bria/genfill.md) (`bria/genfill`): $0.04 / image
- [Bria Product Dimensions](https://doitong.com/developers/models/bria/product-dimensions.md) (`bria/product-dimensions`): $0.04 / image

## Links

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