# Изображения

> POST /v1/images/generations — генерация изображений по промпту и референсам.

`POST /v1/images/generations` — генерация изображений в формате OpenAI Images.
Работает только с моделями изображений из [каталога](https://ai-seller.vibe-codes.ru/docs/models).

## Запрос

```bash [curl]
curl https://ai-seller.vibe-codes.ru/v1/images/generations \
  -H "Authorization: Bearer $AISELLER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5",
    "prompt": "Лиса в неоновом городе, акварель",
    "n": 1,
    "size": "1024x1024"
  }'
```

```python [Python]
import base64
from openai import OpenAI

client = OpenAI(base_url="https://ai-seller.vibe-codes.ru/v1", api_key="$AISELLER_API_KEY")
resp = client.images.generate(
    model="gpt-image-2.5",
    prompt="Лиса в неоновом городе, акварель",
    n=1,
    size="1024x1024",
)
with open("fox.png", "wb") as f:
    f.write(base64.b64decode(resp.data[0].b64_json))
```

## Ответ

```json
{
  "created": 1790000000,
  "data": [{"b64_json": "iVBORw0KGgo..."}]
}
```

## Особенности

- **Ответ всегда без стриминга**, генерация может идти минуты — ставьте
  таймаут клиента с запасом.
- **Изображения приходят в `data[].b64_json`.** Если провайдер отдал ссылку,
  шлюз скачивает файл сам — ссылок на хранилище провайдера в ответе нет.
- **`n` — от 1 до 10.** Списывается цена за каждое доставленное изображение,
  но не больше `n`.
- **Референсы** передаются полями `image` / `images` — ссылкой или
  `data:`-URL в base64. Лимит тела запроса — 70 МиБ.
- Остальные параметры (`size`, `aspect_ratio`, `resolution`, `quality`,
  `background`, `output_format`, `output_compression`) передаются модели как
  есть; какие значения она поддерживает, решает её провайдер.

## Ошибки генерации

| HTTP | code | Что делать |
| --- | --- | --- |
| 400 | `content_policy_violation` | Промпт отклонён политикой контента — измените его. |
| 400 | `invalid_image` | Модель отклонила референс — попробуйте другое изображение. |
| 422 | `generation_failed` | Модель не вернула изображение — повторите запрос или переформулируйте промпт. |

Остальные коды — в разделе [Ошибки](https://ai-seller.vibe-codes.ru/docs/errors).
