Войти

GPT Image 2 Text to Image

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

Запрос
Опишите сцену, стиль, освещение, композицию, важные детали и текст внутри изображения.
Формат кадра выходного изображения.
Соотношение сторон
Управляет уровнем детализации изображения.
Качество
Выберите размер и детализацию выходного изображения.
Разрешение

О модели GPT Image 2 Text to Image

Обзор

GPT Image 2 (также ChatGPT Images 2.0) — флагманская модель генерации изображений от OpenAI, выпущенная 21 апреля 2026 года. Она пришла на смену GPT Image 1.5 (декабрь 2025) и стала принципиально новой разработкой: в отличие от предшественников, модель использует интегрированный режим мышления на базе O-серии. Перед генерацией она планирует композицию, пространственные отношения и типографику. Главное достижение — точность рендеринга текста ~99% символов (против 90–95% у предыдущих версий), включая латинскую, китайско-японско-корейскую (CJK), хинди- и бенгальскую письменность. Нативное разрешение до 2K (2048 px) при гибком выборе форматов от 1:1 до 21:9. Поддерживаются три уровня качества (low / medium / high) и несколько пресетов разрешения — вплоть до 4K в экспериментальном режиме. Эндпоинт Text-to-Image отвечает за создание изображений с нуля по текстовому описанию — в отличие от родственной операции редактирования, предназначенной для изменения готовых изображений. Здесь создаётся фотореалистичный контент: маркетинговые материалы, иллюстрации, инфографика с точным встроенным текстом на множестве языков.

Сильные стороны

Критерий Оценка Комментарий
Текст и типографика Текст и типографика — выдающаяся сторона модели: она хорошо справляется с читаемыми надписями, постерами, интерфейсами, упаковкой и инфографикой; небольшое снижение остаётся из-за риска ошибок в очень плотной, мелкой или многострочной вёрстке.
Соответствие запросу Соответствие запросу очень сильное: модель точно удерживает объекты, атрибуты, стиль, формат и смысловые ограничения; рейтинг слегка снижен только из-за возможных сбоев на чрезмерно длинных или противоречивых промптах.
Эстетика и композиция Композиция — одна из сильных сторон модели: она хорошо строит рекламные макеты, постеры, интерфейсы, страницы комиксов и инфографику; небольшое снижение связано с тем, что отдельные конкуренты иногда дают более выразительную художественную подачу.
Качество отдельного кадра Качество кадра почти топовое: модель даёт реалистичный свет, материалы, фактуры и высокую детализацию; рейтинг слегка снижен из-за периодических артефактов, избыточной резкости и не всегда идеального фотореализма без точного стилевого задания.
Композиционное рассуждение Композиционное рассуждение сильное: модель хорошо понимает пространственные отношения, количество объектов, связи между элементами и структуру сцены; снижение связано с тем, что сложные схемы и многоуровневые условия всё ещё могут давать ошибки.
Длинные запросы и мультиязычность Длинные запросы и мультиязычность — сильная сторона модели: она заметно лучше прежних поколений работает с развёрнутыми описаниями и текстом на разных языках; рейтинг немного снижен из-за меньшего объёма независимых тестов по русскому языку.
Безопасность и модерация Система безопасности развита: у модели реализована многоуровневая модерация входных и выходных данных, опубликована системная карточка модели (system card), а также зафиксированы высокие показатели блокировки нарушающих запросов. Оценка немного снижена из-за возможных ложных срабатываний и ограниченной внешней проверяемости по всем категориям.

Сценари использования (use cases)

Ограничения и недостатки

Примеры промптов

Советы

FAQ

Когда выбирать Low, Medium или High?

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

Почему на 2K и 4K результат может быть менее предсказуемым?

Большие размеры изображения поддерживаются в GPT Image 2, но OpenAI отдельно отмечает, что изображения выше 2K следует считать экспериментальными: результат может быть более вариативным. Для надёжного продакшен-результата лучше сначала проверить композицию в меньшем размере, а затем повышать разрешение и качество только для финального прогона. Если нужен широкий или высокий формат, следите, чтобы размер попадал в ограничения модели по сторонам, кратности и общему числу пикселей.

Как точнее управлять соотношением сторон и композицией?

Соотношение сторон влияет не только на кадрирование, но и на то, как модель раскладывает сцену. Если кадр важен, укажите формат в параметре, а в промпте дополнительно опишите композицию: где главный объект, сколько свободного места, какой ракурс и где должны быть ключевые элементы. Для особо точного результата полезно явно написать нужный размер или формат кадра словами, но он должен укладываться в ограничения GPT Image 2.

Насколько качественно модель работает с текстами и кириллицей?

GPT Image 2 заметно лучше работает с надписями, но OpenAI все равно указывает ограничения по точному размещению и читаемости текста. Для постеров, упаковки и интерфейсных макетов пишите точную фразу в кавычках, задавайте стиль шрифта, размер, цвет и позицию, а для плотного или мелкого текста выбирайте Medium или High. Финальный результат все равно нужно вычитывать, особенно если важны имена, числа, адреса или юридически значимые формулировки.

Почему запрос может быть заблокирован или не дать картинку?

У GPT Image 2 проверяются и текст запроса, и итоговое изображение, поэтому генерация может остановиться до или после попытки создать результат. Чаще всего помогает переписать запрос нейтральнее: убрать неоднозначные формулировки, явно указать безопасный контекст и упростить сцену до одного понятного действия. Если похожие безопасные запросы тоже не проходят, это может быть временная проблема доступа или нагрузки, поэтому стоит повторить позже.

Цены

Цена при активной подписке

Стоимость необязательной подписки 299 ₽/месяц Подробнее

API

Инструкция ниже является выдержкой из документации.

Параметры

Поля тела JSON-запроса, которые используются в Playground и доступны для настройки через API. Порядок совпадает с формой на странице.

Параметр Тип Обязательный По умолчанию Допустимые значения Описание
prompt string Да длина 1–4000 символов Опишите сцену, стиль, освещение, композицию, важные детали и текст внутри изображения.
aspect_ratio string Нет 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 Формат кадра выходного изображения.
quality string Нет medium low, medium, high Управляет уровнем детализации изображения.
resolution string Нет 1k 1k, 2k, 4k Выберите размер и детализацию выходного изображения.

Запрос

Асинхронный запуск: POST https://api.flixa.io/v1/image/gpt-image-2/text-to-image с заголовком Authorization: Bearer $FLIXA_API_KEY и телом JSON. Ниже — пример с полями из Playground.

curl -X POST "https://api.flixa.io/v1/image/gpt-image-2/text-to-image" \
  -H "Authorization: Bearer $FLIXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "Превратите это фото товара в премиальную студийную рекламу: мягкий кинематографический свет, чистый бежевый фон, лёгкие тени, реалистичные отражения и эстетика люксового бренда.",
  "quality": "medium",
  "resolution": "1k",
  "aspect_ratio": "3:4"
}'
import json
import os
import requests

url = "https://api.flixa.io/v1/image/gpt-image-2/text-to-image"
payload = json.loads({"aspect_ratio": "3:4", "prompt": "\u041f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u044d\u0442\u043e \u0444\u043e\u0442\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0443\u0434\u0438\u0439\u043d\u0443\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u0443: \u043c\u044f\u0433\u043a\u0438\u0439 \u043a\u0438\u043d\u0435\u043c\u0430\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0432\u0435\u0442, \u0447\u0438\u0441\u0442\u044b\u0439 \u0431\u0435\u0436\u0435\u0432\u044b\u0439 \u0444\u043e\u043d, \u043b\u0451\u0433\u043a\u0438\u0435 \u0442\u0435\u043d\u0438, \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u044d\u0441\u0442\u0435\u0442\u0438\u043a\u0430 \u043b\u044e\u043a\u0441\u043e\u0432\u043e\u0433\u043e \u0431\u0440\u0435\u043d\u0434\u0430.", "quality": "medium", "resolution": "1k"})

response = requests.post(
    url,
    headers={"Authorization": f"Bearer {os.environ['FLIXA_API_KEY']}"},
    json=payload,
    timeout=120,
)
print(response.json())
const response = await fetch(
  "https://api.flixa.io/v1/image/gpt-image-2/text-to-image",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.FLIXA_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"aspect_ratio": "3:4", "prompt": "\u041f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u044d\u0442\u043e \u0444\u043e\u0442\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0443\u0434\u0438\u0439\u043d\u0443\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u0443: \u043c\u044f\u0433\u043a\u0438\u0439 \u043a\u0438\u043d\u0435\u043c\u0430\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0432\u0435\u0442, \u0447\u0438\u0441\u0442\u044b\u0439 \u0431\u0435\u0436\u0435\u0432\u044b\u0439 \u0444\u043e\u043d, \u043b\u0451\u0433\u043a\u0438\u0435 \u0442\u0435\u043d\u0438, \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u044d\u0441\u0442\u0435\u0442\u0438\u043a\u0430 \u043b\u044e\u043a\u0441\u043e\u0432\u043e\u0433\u043e \u0431\u0440\u0435\u043d\u0434\u0430.", "quality": "medium", "resolution": "1k"}),
  }
);

console.log(await response.json());

Пример ответа

Сразу после POST приходит объект с идентификатором задачи и статусом (queued или processing). Готовый результат — в поле outputs после завершения.

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "created_at": "2026-05-22T12:00:00Z"
}

После успешного завершения:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "outputs": [
    { "url": "https://storage.example/result.png", "type": "image" }
  ]
}

Поллинг

Пока задача в работе, опрашивайте GET https://api.flixa.io/v1/predictions/{id}/result с тем же API-ключом. Рекомендуемый интервал — 1–2 секунды; остановитесь при completed, failed или cancelled.

  • queued / processing — продолжайте опрос.
  • completed — заберите URL из outputs.
  • failed — смотрите error в теле ответа.
curl "https://api.flixa.io/v1/predictions/{id}/result" \
  -H "Authorization: Bearer $FLIXA_API_KEY"