# GPT Image 2

Универсальная модель GPT Image 2: text-to-image и image-to-image, поддержка до 4K.

## Обзор

- **Modality:** Картинки
- **Modes:** Текст → Картинка, Картинка → Картинка
- **Страница модели:** https://iskragen.ru/models/gpt-image-2
- **`modelSlug` для API:** `gpt-image-2-text-to-image`, `gpt-image-2-image-to-image`
- **Aspect ratios:** auto, 1:1, 16:9, 9:16, 4:3, 3:4, 21:9, 5:4, 3:2, 4:5, 2:3

## Стоимость

- Базовая цена: 6–16 ₽ за `image`

| Тариф | Цена | Примечание |
| --- | --- | --- |
| 1K | 6 ₽ |  |
| 2K | 10 ₽ |  |
| 4K | 16 ₽ |  |

**Примечания:**
- При aspect_ratio = auto доступно только 1K

## Сценарии и параметры

### Текст → Картинка

- Mode ID: `text-to-image`
- `modelSlug` для API: `gpt-image-2-text-to-image`

| Поле | Тип | По умолчанию | Диапазон / опции | Описание |
| --- | --- | --- | --- | --- |
| `resolution` | select | `1K` | `1K`, `2K`, `4K` | 1K — базовая цена, 2K дороже (~×1.67), 4K (~×2.67). При aspect_ratio=auto доступен только 1K. |

### Картинка → Картинка

- Mode ID: `image-to-image`
- `modelSlug` для API: `gpt-image-2-image-to-image`
- Требуется загрузка: до 1 файлов (image/jpeg, image/png, image/webp, до 10 МБ)
- Как передать файл: загрузите его через `POST /v1/uploads/presign-input`, затем передайте полученный URL в `params.input_urls` (см. раздел image-to-image в [Generations API](https://iskragen.ru/docs/api-generations.md))

| Поле | Тип | По умолчанию | Диапазон / опции | Описание |
| --- | --- | --- | --- | --- |
| `resolution` | select | `1K` | `1K`, `2K`, `4K` | 1K — базовая цена, 2K дороже (~×1.67), 4K (~×2.67). При aspect_ratio=auto доступен только 1K. |

## Использование через API

Полный цикл интеграции: API-ключ → создание генерации → polling → результат. Базовый URL: `https://api.iskragen.ru/v1`.

### 1. Получите API-ключ

Личный кабинет → «API-ключи» (https://iskragen.ru/api-keys). Значение показывается один раз. Ключ передаётся в заголовке каждого запроса:

```
Authorization: Bearer iskr_live_<secret>
```

### 2. Создайте генерацию

```bash
curl -X POST https://api.iskragen.ru/v1/generations \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "modelSlug": "gpt-image-2-text-to-image",
  "prompt": "Опишите, что вы хотите сгенерировать",
  "params": {
    "aspect_ratio": "1:1",
    "resolution": "1K"
  }
}'
```

У каждого сценария свой `modelSlug` — возьмите значение из раздела «Сценарии и параметры» выше.

Генерация асинхронная: ответ — `202 Accepted`, задача ставится в очередь, стоимость удерживается с баланса.

```json
{
  "id": "0192f0c4-8a1e-7b3d-9f21-2c5e6a4b7d90",
  "status": "PENDING",
  "costRub": 6
}
```

### 3. Дождитесь результата (polling)

Опрашивайте `GET /v1/generations/{id}` раз в ~2 секунды, пока `status` не станет `SUCCEEDED` или `FAILED`:

```bash
curl https://api.iskragen.ru/v1/generations/$GENERATION_ID \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"
```

```json
{
  "id": "0192f0c4-8a1e-7b3d-9f21-2c5e6a4b7d90",
  "status": "SUCCEEDED",
  "outputUrls": ["https://s3.twcstorage.ru/.../result.webp"],
  "costRub": 6,
  "errorCode": null,
  "errorMessage": null
}
```

- `outputUrls` — ссылки на готовые файлы; заполняются при `SUCCEEDED`.
- При `FAILED` средства возвращаются на баланс автоматически, причина — в `errorCode` / `errorMessage`.
- Лимит: 5 одновременных генераций (`PENDING` + `PROCESSING`), при превышении — `429`.
- Для длинных задач (видео, музыка) вместо polling'а используйте [Webhooks](https://iskragen.ru/docs/webhooks.md).

### Полная документация

- Generations API (все поля, image-to-image, ошибки): https://iskragen.ru/docs/api-generations.md
- Аутентификация: https://iskragen.ru/docs/authentication.md
- Ошибки: https://iskragen.ru/docs/errors.md
- Лимиты: https://iskragen.ru/docs/rate-limits.md
- Индекс всей документации для LLM: https://iskragen.ru/llms.txt
- Машиночитаемый каталог моделей (slug, params, цены): https://api.iskragen.ru/v1/catalog
