# Fibo Lite · Structured Prompt API

> Convierte texto o una imagen en un prompt JSON estructurado de Fibo Lite en lugar de producir una imagen

Devuelve una descripción estructurada para usar con Fibo Lite en lugar de una imagen. Las entradas son `prompt`, un `structured_prompt` existente o una `image_url`, además de `seed`. La salida JSON incluye estética, estilo artístico, configuración del fondo, iluminación, objetos, características fotográficas, emociones del sujeto y textos renderizados.

- Model id: `bria/fibo-lite/generate/structured_prompt`
- Made by: Bria AI
- Category: LLM
- Output: json
- Price: $0.008 / request (cheapest run $0.008 (8 API credits))
- Run: `POST https://api.doitong.com/v1/run/bria/fibo-lite/generate/structured_prompt`
- Quote: `POST https://api.doitong.com/v1/quote/bria/fibo-lite/generate/structured_prompt`
- Docs page: https://doitong.com/es/developers/models/bria/fibo-lite/generate/structured_prompt

## Pricing

Price: **$0.008 / request**. Billed once per request.

The full example input below costs $0.008 = 8 API credits (1 request × 8 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/fibo-lite/generate/structured_prompt` 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 \| null | no |  |  | Prompt utilizado para la generación. |
| `structured_prompt` |  | object {short_description, objects, background_setting, lighting, aesthetics, photographic_characteristics, style_medium, text_render, context, artistic_style, subject_emotions} \| null | no |  |  | Prompt estructurado utilizado para la generación. |
| `structured_prompt.short_description` |  | string | yes |  |  | Descripción general breve del contenido de la imagen, limitada a 200 palabras. |
| `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} | yes |  |  | Lista de objetos destacados en el primer o segundo plano. |
| `structured_prompt.objects[].description` |  | string | yes |  |  | Resumen breve que describe el objeto. |
| `structured_prompt.objects[].location` |  | string | yes |  |  | Ubicación, por ejemplo: 'center', 'top-left' o 'bottom-right foreground'. |
| `structured_prompt.objects[].relationship` |  | string | yes |  |  | Describe cómo se relaciona este objeto con otros dentro de la imagen. |
| `structured_prompt.objects[].relative_size` |  | string \| null | no |  |  | Tamaño, por ejemplo: 'small', 'medium' o 'large within frame'. |
| `structured_prompt.objects[].shape_and_color` |  | string \| null | no |  |  | Forma básica y color principal del objeto. |
| `structured_prompt.objects[].texture` |  | string \| null | no |  |  | Textura, por ejemplo: 'smooth', 'rough', 'metallic' o 'furry'. |
| `structured_prompt.objects[].appearance_details` |  | string \| null | no |  |  | Características visuales adicionales que conviene señalar. |
| `structured_prompt.objects[].number_of_objects` |  | integer \| null | no |  |  | Cantidad de objetos dentro del grupo. |
| `structured_prompt.objects[].pose` |  | string \| null | no |  |  | Posición del cuerpo. |
| `structured_prompt.objects[].expression` |  | string \| null | no |  |  | Expresión mostrada en el rostro. |
| `structured_prompt.objects[].clothing` |  | string \| null | no |  |  | Ropa que lleva puesta. |
| `structured_prompt.objects[].action` |  | string \| null | no |  |  | Acción realizada por la persona. |
| `structured_prompt.objects[].gender` |  | string \| null | no |  |  | Género de la persona. |
| `structured_prompt.objects[].skin_tone_and_texture` |  | string \| null | no |  |  | Tono y textura de la piel. |
| `structured_prompt.objects[].orientation` |  | string \| null | no |  |  | Orientación de la persona. |
| `structured_prompt.background_setting` |  | string | yes |  |  | Descripción de la escena en conjunto: dónde tiene lugar, su entorno o fondo y cualquier característica del fondo que convenga señalar. |
| `structured_prompt.lighting` |  | object {conditions, direction, shadows} | yes |  |  | Información que describe la iluminación. |
| `structured_prompt.lighting.conditions` |  | string | yes |  |  | Entre los ejemplos de iluminación se incluyen 'bright daylight', 'dim indoor', 'studio lighting' y 'golden hour'. |
| `structured_prompt.lighting.direction` |  | string | yes |  |  | Dirección de la iluminación; los ejemplos incluyen 'front-lit', 'backlit' y 'side-lit from left'. |
| `structured_prompt.lighting.shadows` |  | string \| null | no |  |  | Descripción de las sombras presentes. |
| `structured_prompt.aesthetics` |  | object {composition, color_scheme, mood_atmosphere, aesthetic_score, preference_score} | yes |  |  | Información que describe la estética de la imagen. |
| `structured_prompt.aesthetics.composition` |  | string | yes |  |  | Estilo de composición; los ejemplos incluyen 'rule of thirds', 'symmetrical', 'centered' y 'leading lines'. |
| `structured_prompt.aesthetics.color_scheme` |  | string | yes |  |  | Esquema de colores; los ejemplos incluyen 'monochromatic blue', 'warm complementary colors' y 'high contrast'. |
| `structured_prompt.aesthetics.mood_atmosphere` |  | string | yes |  |  | Estado de ánimo o atmósfera, por ejemplo `joyful`, `serene`, `mysterious` o `energetic`. |
| `structured_prompt.aesthetics.aesthetic_score` |  | string | yes |  |  | Descripción de la puntuación, por ejemplo medium, very low, low, very high o high. |
| `structured_prompt.aesthetics.preference_score` |  | string | yes |  |  | Descripción de la puntuación, por ejemplo medium, very low, low, very high o high. |
| `structured_prompt.photographic_characteristics` |  | object {depth_of_field, focus, camera_angle, lens_focal_length} \| null | no |  |  | Información que describe las cualidades fotográficas. |
| `structured_prompt.photographic_characteristics.depth_of_field` |  | string | yes |  |  | Profundidad de campo; los ejemplos incluyen 'shallow', 'deep' y 'bokeh background'. |
| `structured_prompt.photographic_characteristics.focus` |  | string | yes |  |  | Características del enfoque; los ejemplos incluyen 'sharp focus on subject', 'soft focus' y 'motion blur'. |
| `structured_prompt.photographic_characteristics.camera_angle` |  | string | yes |  |  | Ángulo de cámara; los ejemplos incluyen 'eye-level', 'low angle', 'high angle' y 'dutch angle'. |
| `structured_prompt.photographic_characteristics.lens_focal_length` |  | string | yes |  |  | Tipo de lente o distancia focal, por ejemplo `macro`, `fisheye`, `wide-angle` o `telephoto`. |
| `structured_prompt.style_medium` |  | string \| null | no |  |  | Medio o estilo artístico utilizado. |
| `structured_prompt.text_render` |  | array of object {text, location, size, color, font, appearance_details} \| null | no |  |  | Lista de elementos de texto representados dentro de la imagen. |
| `structured_prompt.text_render[].text` |  | string | yes |  |  | Contenido del texto. |
| `structured_prompt.text_render[].location` |  | string | yes |  |  | Ubicación, por ejemplo: 'center', 'top-left' o 'bottom-right foreground'. |
| `structured_prompt.text_render[].size` |  | string | yes |  |  | Tamaño, por ejemplo: 'small', 'medium' o 'large within frame'. |
| `structured_prompt.text_render[].color` |  | string | yes |  |  | Color, por ejemplo `green`, `red` o `blue`. |
| `structured_prompt.text_render[].font` |  | string | yes |  |  | Estilo de fuente, por ejemplo `minimalist`, `realistic` o `cartoonish`. |
| `structured_prompt.text_render[].appearance_details` |  | string \| null | no |  |  | Características visuales adicionales que conviene señalar. |
| `structured_prompt.context` |  | string | yes |  |  | Contexto adicional para facilitar la interpretación de la imagen. |
| `structured_prompt.artistic_style` |  | string | yes |  |  | Rasgos artísticos específicos, expresados en un máximo de 3 palabras. |
| `structured_prompt.subject_emotions` |  | string \| null | no |  |  | Descripción explícita de las expresiones o emociones visibles de los sujetos. |
| `image_url` | `image` | string (image URL) \| null | no |  |  | URL de la imagen de entrada. |
| `seed` |  | integer | no | `7` |  | Semilla utilizada por el generador de números aleatorios. |

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
{}
```

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/fibo-lite/generate/structured_prompt?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/fibo-lite/generate/structured_prompt?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/fibo-lite/generate/structured_prompt", 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/fibo-lite/generate/structured_prompt",
      "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-lite/generate/structured_prompt",
  "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": 8,
    "usd": "0.008",
    "charged": 8,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "short_description": "string",
    "objects": [
      {
        "description": "string",
        "location": "string",
        "relationship": "string",
        "relative_size": "string",
        "shape_and_color": "string",
        "texture": "string",
        "appearance_details": "string",
        "number_of_objects": 1,
        "pose": "string",
        "expression": "string",
        "clothing": "string",
        "action": "string",
        "gender": "string",
        "skin_tone_and_texture": "string",
        "orientation": "string"
      }
    ],
    "background_setting": "string",
    "lighting": {
      "conditions": "string",
      "direction": "string",
      "shadows": "string"
    },
    "aesthetics": {
      "composition": "string",
      "color_scheme": "string",
      "mood_atmosphere": "string",
      "aesthetic_score": "string",
      "preference_score": "string"
    },
    "photographic_characteristics": {
      "depth_of_field": "string",
      "focus": "string",
      "camera_angle": "string",
      "lens_focal_length": "string"
    },
    "style_medium": "string",
    "text_render": [
      {
        "text": "string",
        "location": "string",
        "size": "string",
        "color": "string",
        "font": "string",
        "appearance_details": "string"
      }
    ],
    "context": "string",
    "artistic_style": "string",
    "subject_emotions": "string"
  },
  "outputs": [
    {
      "type": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "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 |
|---|---|---|
| `short_description` | string | Descripción general breve del contenido de la imagen, limitada a 200 palabras. |
| `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} | Lista de objetos destacados en el primer o segundo plano. |
| `background_setting` | string | Descripción de la escena en conjunto: dónde tiene lugar, su entorno o fondo y cualquier característica del fondo que convenga señalar. |
| `lighting` | object {conditions, direction, shadows} | Información que describe la iluminación. |
| `aesthetics` | object {composition, color_scheme, mood_atmosphere, aesthetic_score, preference_score} | Información que describe la estética de la imagen. |
| `photographic_characteristics` | object {depth_of_field, focus, camera_angle, lens_focal_length} \| null | Información que describe las cualidades fotográficas. |
| `style_medium` | string \| null | Medio o estilo artístico utilizado. |
| `text_render` | array of object {text, location, size, color, font, appearance_details} \| null | Lista de elementos de texto representados dentro de la imagen. |
| `context` | string | Contexto adicional para facilitar la interpretación de la imagen. |
| `artistic_style` | string | Rasgos artísticos específicos, expresados en un máximo de 3 palabras. |
| `subject_emotions` | string \| null | Descripción explícita de las expresiones o emociones visibles de los sujetos. |

## Related models

- [Fibo Lite](https://doitong.com/developers/models/bria/fibo-lite/generate.md) (`bria/fibo-lite/generate`): $0.036 / image
- [Fibo Edit \[Structured Instruction\]](https://doitong.com/developers/models/bria/fibo-edit/edit/structured_instruction.md) (`bria/fibo-edit/edit/structured_instruction`): $0.01 / request
- [Fibo · Structured Prompt](https://doitong.com/developers/models/bria/fibo/generate/structured_prompt.md) (`bria/fibo/generate/structured_prompt`): $0.01 / request
- [Bytedance Seed V2 Mini](https://doitong.com/developers/models/bytedance/seed/v2/mini.md) (`bytedance/seed/v2/mini`): $0.0001 / 1000 tokens
- [Mureka 9.5 Lyrics Generation](https://doitong.com/developers/models/mureka/api/generate/lyrics.md) (`mureka/api/generate/lyrics`): $0.0135 / request
- [Nemotron 3 Nano Omni](https://doitong.com/developers/models/nvidia/nemotron-3-nano-omni.md) (`nvidia/nemotron-3-nano-omni`): $0.01 / run
- [NVIDIA Nemotron 3.5 Super Text](https://doitong.com/developers/models/nvidia/nemotron-3-5-super/text.md) (`nvidia/nemotron-3-5-super/text`): $0.01 / run
- [OpenRouter](https://doitong.com/developers/models/openrouter/router.md) (`openrouter/router`): $0.01 / usage unit

## Links

- HTML page: https://doitong.com/developers/models/bria/fibo-lite/generate/structured_prompt
- 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-lite/generate/structured_prompt
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/bria/fibo-lite/generate/structured_prompt
