> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toapis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT-Image-2 Официальный канал: Генерация изображений

> Генерация изображений через официальную модель OpenAI gpt-image-2 — text-to-image, image-to-image и inpainting (mask) в одном API с поддержкой разрешений 1K / 2K / 4K

* Официальная модель OpenAI `gpt-image-2`
* Асинхронная обработка — возвращает ID задачи для последующего опроса
* Поддержка text-to-image, image-to-image с несколькими reference-изображениями и inpainting (mask)
* 13 соотношений сторон с тремя уровнями разрешения: 1K / 2K / 4K
* До 4 изображений за запрос, до 16 reference-изображений

<Warning>
  **Примечание**: `gpt-image-2` не поддерживает прозрачный фон. Параметр `background: "transparent"` будет автоматически понижен до `auto`.
</Warning>

## Авторизация

<ParamField header="Authorization" type="string" required>
  Все запросы требуют аутентификации Bearer Token

  Получите API Key на [странице управления API ключами](https://toapis.com/console/token)

  Добавьте в заголовок запроса:

  ```
  Authorization: Bearer YOUR_API_KEY
  ```
</ParamField>

## Тело запроса

<ParamField body="model" type="string" default="gpt-image-2" required>
  Название модели генерации изображений

  Используйте `gpt-image-2`
</ParamField>

<ParamField body="prompt" type="string" required>
  Текстовый промпт для генерации изображения

  Поддерживается русский, английский и китайский языки; рекомендуется детально описывать сцену, стиль и композицию
</ParamField>

<ParamField body="size" type="string" default="1:1">
  Соотношение сторон

  Поддерживаемые значения, или `auto` для автоматического выбора:

  `1:1` · `3:2` · `2:3` · `4:3` · `3:4` · `5:4` · `4:5` · `16:9` · `9:16` · `2:1` · `1:2` · `21:9` · `9:21`

  <Warning>
    4K-режим поддерживает только 6 соотношений: `16:9` / `9:16` / `2:1` / `1:2` / `21:9` / `9:21`. Для остальных используйте `1K` или `2K`.
  </Warning>
</ParamField>

<ParamField body="resolution" type="string" default="1k">
  Уровень разрешения

  * `1k` — база 1024 пикс., быстро и экономично (по умолчанию)
  * `2k` — база 2048 пикс., подходит для постеров и HD-контента
  * `4k` — база 3840 пикс., только 6 соотношений выше; `high` качество может занять >120с
</ParamField>

### Таблица размеров

| size   | 1K          | 2K          | 4K                |
| ------ | ----------- | ----------- | ----------------- |
| `1:1`  | `1024x1024` | `2048x2048` | Не поддерживается |
| `3:2`  | `1536x1024` | `2048x1360` | Не поддерживается |
| `2:3`  | `1024x1536` | `1360x2048` | Не поддерживается |
| `4:3`  | `1024x768`  | `2048x1536` | Не поддерживается |
| `3:4`  | `768x1024`  | `1536x2048` | Не поддерживается |
| `5:4`  | `1280x1024` | `2560x2048` | Не поддерживается |
| `4:5`  | `1024x1280` | `2048x2560` | Не поддерживается |
| `16:9` | `1536x864`  | `2048x1152` | `3840x2160`       |
| `9:16` | `864x1536`  | `1152x2048` | `2160x3840`       |
| `2:1`  | `2048x1024` | `2688x1344` | `3840x1920`       |
| `1:2`  | `1024x2048` | `1344x2688` | `1920x3840`       |
| `21:9` | `2016x864`  | `2688x1152` | `3840x1648`       |
| `9:21` | `864x2016`  | `1152x2688` | `1648x3840`       |

<ParamField body="quality" type="string" default="high">
  Качество изображения

  * `low` — быстро и экономично, для черновиков/превью
  * `medium` — баланс скорости и качества
  * `high` — максимальная детализация, по умолчанию (4K + high занимает 120с+)
</ParamField>

<ParamField body="output_format" type="string" default="png">
  Формат вывода

  * `png` — по умолчанию
  * `jpeg` — меньший размер файла (поддерживает сжатие)

  <Note>Azure OpenAI не поддерживает формат `webp`.</Note>
</ParamField>

<ParamField body="output_compression" type="integer" default={100}>
  Уровень сжатия JPEG, диапазон `0–100` (`0` — без сжатия, `100` — максимальное сжатие, по умолчанию `100`)

  Применяется только при `output_format: "jpeg"`
</ParamField>

<ParamField body="n" type="integer" default={1}>
  Количество генерируемых изображений

  Диапазон: `1 ~ 10`
</ParamField>

<ParamField body="image_urls" type="string[]">
  Массив URL reference-изображений для image-to-image генерации

  * Максимум **16 изображений**, должны быть публично доступными стабильными URL
  * Используйте [API загрузки изображений](../../uploads/images) для получения URL
</ParamField>

<ParamField body="mask_url" type="string">
  URL маски для inpainting

  Используется совместно с `image_urls`. Маска должна совпадать по размеру с первым reference-изображением и содержать Alpha-канал (прозрачные области — это зоны для перерисовки)
</ParamField>

## Ответ

<ResponseField name="id" type="string">
  Уникальный идентификатор задачи
</ResponseField>

<ResponseField name="object" type="string">
  Тип объекта, всегда `generation.task`
</ResponseField>

<ResponseField name="model" type="string">
  Используемая модель
</ResponseField>

<ResponseField name="status" type="string">
  Статус задачи

  * `queued` — ожидает обработки
  * `in_progress` — обрабатывается
  * `completed` — успешно завершена
  * `failed` — ошибка
</ResponseField>

<ResponseField name="progress" type="integer">
  Прогресс задачи в процентах (0-100)
</ResponseField>

<ResponseField name="created_at" type="integer">
  Время создания задачи (Unix timestamp)
</ResponseField>

<RequestExample>
  ```bash Text-to-Image theme={null}
  curl --request POST \
    --url https://toapis.com/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "gpt-image-2",
      "prompt": "Древний замок под звёздным небом, кинематографическое освещение, гиперреализм",
      "size": "16:9",
      "resolution": "2k",
      "quality": "high",
      "n": 1
    }'
  ```

  ```bash 4K Обои theme={null}
  curl --request POST \
    --url https://toapis.com/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "gpt-image-2",
      "prompt": "Панорама горного восхода, экстремальная детализация",
      "size": "16:9",
      "resolution": "4k",
      "quality": "high",
      "output_format": "jpeg",
      "output_compression": 90
    }'
  ```

  ```bash Image-to-Image theme={null}
  curl --request POST \
    --url https://toapis.com/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "gpt-image-2",
      "prompt": "Объедините два reference-изображения в иллюстрированный постер, сохранив контуры объектов",
      "size": "1:1",
      "quality": "high",
      "image_urls": [
        "https://example.com/input-a.png",
        "https://example.com/input-b.png"
      ]
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://toapis.com/v1/images/generations', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer your-ToAPIs-key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gpt-image-2',
      prompt: 'Древний замок под звёздным небом, кинематографическое освещение, гиперреализм',
      size: '16:9',
      resolution: '2k',
      quality: 'high',
      n: 1
    })
  });

  const task = await response.json();
  console.log(task.id, task.status);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "tsk_img_01KPTXXXXXXXXXXXXXXX",
    "object": "generation.task",
    "model": "gpt-image-2",
    "status": "queued",
    "progress": 0,
    "created_at": 1703884800,
    "metadata": {}
  }
  ```
</ResponseExample>
