# GPT Image 2: почему size 1024x576 недопустим и как получить нужный файл

> GPT Image 2 отклоняет 1024×576 из-за площади ниже минимума. Выберите 1280×720, уменьшите файл без искажений и проверьте параметры своего API.

- Source: https://www.aifreeapi.com/ru/posts/gpt-image-2-invalid-size
- Language: ru
- Published: 2026-09-08
- Updated: 2026-09-12
- Publisher: AI Free API (https://www.aifreeapi.com)

Если прямой OpenAI API отклоняет `size: "1024x576"` для `gpt-image-2`, причина в общей площади изображения: **589 824 пикселя при минимуме 655 360**. Соотношение сторон 16:9 и кратность обеих сторон 16 здесь соблюдены, но этого недостаточно.

Чтобы получить файл ровно **1024×576**, задайте при генерации `size: "1280x720"`, а затем уменьшите результат до нужного размера. Пропорция останется 16:9, поэтому обрезать изображение или растягивать его по одной оси не придётся. Ниже — обоснование, пример запроса и проверка готового файла.

Правила сверены с документацией OpenAI 8 сентября 2026 года. Допустимость размеров рассчитана по этим правилам; платные вызовы API для проверки статьи не выполнялись.

## Почему правильного соотношения сторон недостаточно

В [документации GPT Image 2](https://developers.openai.com/api/docs/guides/image-generation#customize-image-output) размер задаётся в пикселях и должен одновременно удовлетворять нескольким условиям:

- ширина и высота — положительные числа, кратные 16;
- каждая сторона — не больше 3840 пикселей;
- отношение длинной стороны к короткой — не больше 3:1;
- общая площадь — от 655 360 до 8 294 400 пикселей включительно.

Для 1024×576 расчёт выглядит так:

```text
1024 / 16 = 64       — целое число
576 / 16 = 36        — целое число
1024 / 576 = 16 / 9  — допустимая пропорция
1024 × 576 = 589824  — меньше 655360
```

Не хватает 65 536 пикселей. Именно последнее условие делает этот размер недопустимым. Просьба «нарисуй в 16:9» в тексте запроса не исправит числовое значение `size`: сначала нужно изменить параметр запроса.

Эти ограничения относятся к изображению, которое генерирует модель. Они не запрещают хранить, публиковать или передавать дальше файл 1024×576, полученный обычным уменьшением.

![Схема площади изображения и минимального количества пикселей](https://www.aifreeapi.com/posts/ru/gpt-image-2-invalid-size/img/pixel-area.webp)

## Какой размер поставить вместо 1024×576

Если конечному изображению нужна пропорция 16:9, удобная замена — **1280×720**. Это минимальный размер с точным соотношением 16:9, который соответствует перечисленным ограничениям GPT Image 2.

| Размер при генерации | Пикселей | Соотношение сторон | Соответствует правилам? |
|---|---:|---|---|
| 1024×576 | 589 824 | 16:9 | Нет: площадь ниже минимума |
| 1024×640 | 655 360 | 8:5 | Да, но это другая пропорция |
| 1280×720 | 921 600 | 16:9 | Да |
| 1536×864 | 1 327 104 | 16:9 | Да |
| 1920×1080 | 2 073 600 | 16:9 | Нет: 1080 не кратно 16 |
| 2048×1152 | 2 359 296 | 16:9 | Да |

Таблица показывает соответствие документированным ограничениям прямого OpenAI API. У посредника могут быть собственные доступные размеры и схема параметров.

Почему минимум именно 1280×720? При точном соотношении 16:9 стороны можно записать как `16t` и `9t`. Чтобы обе стороны делились на 16, число `t` тоже должно делиться на 16. Значит, допустимые кандидаты имеют вид `256k × 144k`. При `k = 4` получается отвергнутый размер 1024×576, а следующий шаг, `k = 5`, даёт 1280×720 и уже проходит ограничение площади.

Выбирайте 1536×864 или 2048×1152, если вам также нужен исходник большего размера. Для одной лишь задачи «получить файл 1024×576» дополнительное увеличение необязательно. Из арифметического минимума не следует, что он всегда будет самым дешёвым или быстрым вариантом.

Не подменяйте 1024×576 размером 1024×640, если важна исходная композиция. При последующем приведении к 16:9 такой файл придётся обрезать либо дополнять полями. Если просто сжать высоту с 640 до 576, объекты станут ниже и шире на вид.

## Запрос к OpenAI и получение файла 1024×576

Для прямого API используется строка с размерами через латинскую `x`: `"1280x720"`. Значения `"16:9"` и `"1280×720"` с типографским знаком умножения не заменяют эту запись.

Следующий пример запрашивает PNG через Images API и сохраняет JSON-ответ в файл. Ключ должен быть заранее доступен в переменной окружения `OPENAI_API_KEY`. Запуск команды отправит реальный запрос на генерацию с оплатой по условиям вашего аккаунта.

```bash
curl --fail-with-body https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Горный пейзаж на рассвете, широкая композиция, без текста",
    "size": "1280x720",
    "quality": "medium",
    "output_format": "png"
  }' \
  -o response.json
```

Если команда завершилась с ошибкой, сначала прочитайте `response.json`: там может быть объяснение отказа. Не переходите к декодированию, пока ответ не содержит изображение. Подробности подключения и других операций собраны в [руководстве по API GPT Image 2](/ru/posts/gpt-image-2-api).

Согласно [описанию формата ответа OpenAI](https://developers.openai.com/api/docs/guides/image-generation), Images API возвращает данные изображения в base64. Для следующего шага установите Pillow в своё Python-окружение:

```bash
python -m pip install Pillow
```

Сохраните код как `resize_image.py` рядом с `response.json` и выполните `python resize_image.py`:

```python
import base64
import io
import json
from pathlib import Path

from PIL import Image

response = json.loads(Path("response.json").read_text())
if "error" in response:
    raise RuntimeError(response["error"])

data = response.get("data") or []
if not data or not data[0].get("b64_json"):
    raise RuntimeError("В ответе нет data[0].b64_json")

raw = base64.b64decode(data[0]["b64_json"], validate=True)
Path("generated.png").write_bytes(raw)

with Image.open(io.BytesIO(raw)) as source:
    width, height = source.size
    if width * 9 != height * 16:
        raise ValueError(
            f"Получен размер {width}x{height}, пропорция не 16:9"
        )
    if width < 1024 or height < 576:
        raise ValueError("Исходник меньше нужного конечного размера")

    result = source.resize((1024, 576), Image.Resampling.LANCZOS)
    result.save("final-1024x576.png")

with Image.open("final-1024x576.png") as saved:
    if saved.size != (1024, 576):
        raise RuntimeError(f"Неверный размер файла: {saved.size}")
    print(f"Готово: {saved.width}x{saved.height}, {saved.format}")
```

Скрипт оставляет исходник и отдельно записывает конечный PNG. Проверка пропорции перед уменьшением нужна на случай, если клиент или посредник вернул изображение другого размера: скрипт остановится, а не исказит его молча. Повторное открытие готового файла подтверждает его фактические размеры, а не только числа в имени.

Для исходника 1280×720 коэффициент уменьшения одинаков по обеим осям — 0,8. Содержимое по краям сохраняется целиком. Локальное изменение размера не требует нового вызова модели.

## Если ошибка остаётся после замены размера

Начните с фактического HTTP-запроса. Значение в поле интерфейса и то, что приложение отправило серверу, могут различаться. Для диагностики достаточно адреса запроса, идентификатора модели, значения `size`, HTTP-статуса и текста ошибки. При передаче этих данных уберите ключ, заголовок `Authorization` и личное содержимое запроса.

**Проверьте адрес сервера.** Пример выше относится к `api.openai.com/v1/images/generations`. Другой домен может означать другие правила API, даже если в названии модели есть GPT Image 2.

Например, в [русской документации APIMart](https://docs.apimart.ai/ru/api-reference/images/gpt-image-2/official) используется модель `gpt-image-2-official`: поле `size` задаёт соотношение сторон, в том числе `16:9`, отдельно передаётся `resolution`, а обработка строится вокруг `task_id`. В таблице провайдера для 16:9 указан размер от 1536×864. Это объясняет, почему инструкция с `size: "16:9"` может быть верной для APIMart и неподходящей для прямого OpenAI API. Переносить поля между этими примерами без проверки документации нельзя.

![Различия параметров изображения в запросах OpenAI API и APIMart](https://www.aifreeapi.com/posts/ru/gpt-image-2-invalid-size/img/provider-parameters.webp)

**Проверьте, что приложение отправляет именно `gpt-image-2`.** Список размеров в старом SDK, форме или расширении может быть рассчитан на другую модель. Если интерфейс принимает только несколько фиксированных вариантов, изучите его поддержку произвольного `size` и правила используемого провайдера.

**Сопоставьте ошибку с новым запросом.** Если сервер снова упоминает 1024×576, хотя вы выбрали 1280×720, проверьте сохранение настройки, шаблон запроса и возможное переопределение параметра. Если ошибка уже касается авторизации, доступа к модели или другого поля, подбор размеров её не устранит.

При отклонении 1280×720 конкретным посредником выберите документированный у него вариант 16:9, например 1536×864, если он указан среди поддерживаемых. Затем выполните то же локальное уменьшение. Правила OpenAI сами по себе не доказывают поддержку произвольных размеров у стороннего сервиса.

## Можно ли обойти уменьшение через auto или текст запроса?

`size: "auto"` позволяет модели выбрать размер по запросу, но не гарантирует файл ровно 1024×576. Для загрузчика с жёсткими требованиями к ширине и высоте надёжнее явно запросить допустимый исходник 16:9 и проверить конечный файл после обработки.

Текст запроса полезен для композиции: можно попросить широкую сцену, свободное место под заголовок или расположение важных объектов вдали от краёв. Однако он не отменяет ограничения числового `size` и не заменяет проверку размеров изображения.

Для этой ошибки достаточно разделить два шага: **генерация в допустимом размере 1280×720 и сохранение результата в требуемом размере 1024×576**. Если первый шаг отклоняется, проверяйте запрос и правила провайдера; если готовый файл не принимается целевой системой, проверяйте уже его реальные размеры и формат.
