Если прямой 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 размер задаётся в пикселях и должен одновременно удовлетворять нескольким условиям:
- ширина и высота — положительные числа, кратные 16;
- каждая сторона — не больше 3840 пикселей;
- отношение длинной стороны к короткой — не больше 3:1;
- общая площадь — от 655 360 до 8 294 400 пикселей включительно.
Для 1024×576 расчёт выглядит так:
text1024 / 16 = 64 — целое число 576 / 16 = 36 — целое число 1024 / 576 = 16 / 9 — допустимая пропорция 1024 × 576 = 589824 — меньше 655360
Не хватает 65 536 пикселей. Именно последнее условие делает этот размер недопустимым. Просьба «нарисуй в 16:9» в тексте запроса не исправит числовое значение size: сначала нужно изменить параметр запроса.
Эти ограничения относятся к изображению, которое генерирует модель. Они не запрещают хранить, публиковать или передавать дальше файл 1024×576, полученный обычным уменьшением.

Какой размер поставить вместо 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. Запуск команды отправит реальный запрос на генерацию с оплатой по условиям вашего аккаунта.
bashcurl --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.
Согласно описанию формата ответа OpenAI, Images API возвращает данные изображения в base64. Для следующего шага установите Pillow в своё Python-окружение:
bashpython -m pip install Pillow
Сохраните код как resize_image.py рядом с response.json и выполните python resize_image.py:
pythonimport 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 используется модель gpt-image-2-official: поле size задаёт соотношение сторон, в том числе 16:9, отдельно передаётся resolution, а обработка строится вокруг task_id. В таблице провайдера для 16:9 указан размер от 1536×864. Это объясняет, почему инструкция с size: "16:9" может быть верной для APIMart и неподходящей для прямого OpenAI API. Переносить поля между этими примерами без проверки документации нельзя.

Проверьте, что приложение отправляет именно 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. Если первый шаг отклоняется, проверяйте запрос и правила провайдера; если готовый файл не принимается целевой системой, проверяйте уже его реальные размеры и формат.



