Skip to main content
«Длина вашего промпта отличается от длины промпта в ChatGPT, похоже, она ограничена 32K». Это ограничение 32K установлено не APIYI. Это официальный лимит API изображений OpenAI, и он измеряется в символах, а не в token. Но настоящий вопрос не в том, можно ли отправить 32K, а в том, нужно ли вообще передавать модели изображений 32K исходного материала. На этой странице объясняется, откуда берётся это ограничение, почему веб-приложение выглядит неограниченным, каковы две причины высокой стоимости длинного промпта и как организовать промпты для задач с большим количеством требований, например для рекламных креативов.

Вопрос клиента: почему API ограничивает длину 32K, если ChatGPT этого не делает?

Обезличенный обмен сообщениями:
Клиент: Длина вашего prompt отличается от длины prompt в ChatGPT. Похоже, действует ограничение в 32K. Мы: Ограничение есть. У кого бывает задача с изображением и prompt на 32K? Клиент: У многих. Рекламные креативы, размеры упаковки… Тогда я просто сам вызову Codex CLI. Мы: Для уточнения: prompt на 32 000 tokens? Клиент: Да. 32 000 символов на английском — это совсем немного.
Здесь перепутаны три разных понятия. Сначала разделим их: Фраза «32 000 символов на английском — это совсем немного» относится к символам, и она справедлива. Однако веб-приложение ChatGPT, с которым сравнивает клиент, вообще использует другой путь.

Откуда берётся ограничение в 32K

Официальное ограничение OpenAI API изображений для поля prompt (то же ограничение действует для /v1/images/generations и /v1/images/edits): Источник: справочник OpenAI API, developers.openai.com/api/reference/resources/images/methods/generate.
Официальный релей APIYI не ужесточает это ограничение. При превышении 32 000 символов поставщик возвращает ошибку 400; точный текст ошибки принадлежит поставщику, а на этой странице граница не проверялась побайтно. Если вам нужно точное предельное значение, один вызов с вашим собственным ключом позволит его определить, а отклонённые запросы не тарифицируются.
Символы — это не tokens. Тарификация и понимание моделью выполняются на основе tokens, а usage.input_tokens_details.text_tokens сообщает фактически использованные текстовые tokens для каждого вызова. Те же 32 000 символов — это около 8K tokens на английском языке и заметно больше на китайском, где каждый символ соответствует большему числу tokens и также несёт больше информации. Поэтому утверждения «32K английского текста — это мало» и «32K китайского текста — это много» могут быть одновременно верными.

Почему веб-приложение ChatGPT выглядит безлимитным

То же самое относится к разделам Как получать удовлетворяющие изображения и Отклонения по соображениям безопасности: веб-приложение — это агент, а API — один атомарный вызов.
  • Вставьте длинный документ в ChatGPT — и читать его будет чат-модель, а не модель изображений. Ознакомившись с ним, чат-модель сама создаст короткий промпт для изображения и вызовет инструмент изображений с этим промптом. Модель изображений никогда не видит исходный материал. Вставки длиной более 10 000 символов автоматически преобразуются во вложения (справочный центр OpenAI, help.openai.com), что наглядно показывает: текст предназначен для чат-модели.
  • Через API вы обращаетесь напрямую к модели изображений. Между вами и моделью нет никого, кто бы прочитал материал и принял решения за вас. Ограничение относится к уровню модели изображений, а веб-приложение никогда не предоставляет ей доступ к исходному материалу.
  • Прощальная фраза клиента — «я просто сам вызову codex cli» — отражает правильный подход: попросить текстовую модель прочитать материал и создать промпт для изображения. Именно это веб-приложение делает в фоновом режиме, а приведённый ниже двухэтапный конвейер позволяет запустить такой процесс.

Две составляющие стоимости длинного промпта

Сначала расходы, затем результаты. Деньги: текстовый ввод в семействе gpt-image тарифицируется за token ($5.00 за миллион token на gpt-image-2.5, см. таблицу цен в обзоре). Англоязычный промпт на 32 000 символов содержит около 8K token и стоит примерно $0.04 за один вызов; для китайского языка стоимость выше. Сама по себе сумма небольшая, но при умножении на количество изображений и повторных попыток каждый вызов снова оплачивается. Если 90% промпта — это исходный материал, а не описание сцены, большая часть этих расходов не приносит пользы. Результаты: больше деталей не означает лучшее следование требованиям. Если одновременно предъявить модели изображений сотни требований, они начинают конкурировать между собой; именно важные жёсткие ограничения (логотип не искажён, текст на упаковке точен, количество людей) оказываются погребёнными под остальными. В собственных рекомендациях OpenAI для промптов генерации изображений советует начать с одного–трёх ясных предложений, а затем добавить необходимые композицию, освещение и жёсткие ограничения (openai.com/academy/image-generation). Модели изображений нужна высокая плотность информации с чёткими приоритетами, а не большое количество слов. Таким образом, утверждение «в профессиональной рекламе много требований» верно, но подробный не означает длинный. Шесть элементов в разделе Расширенная генерация изображений и правило «не перегружайте промпт прилагательными» в навыке “Доктор промптов для изображений” говорят об одном и том же.

Два этапа: материалы в текстовую модель, промпт — в модель изображений

Когда за задачей генерации изображения действительно стоит 32K материалов, обычно это брендбук, спецификация упаковки, рекламный бриф или библия персонажа. Сначала эти материалы следует передать текстовой модели, которая сведёт их к одному ёмкому промпту для модели изображений: Шаблон результата сведения добавляет три раздела, специфичных для рекламы, поверх шести элементов:
1

Передавайте материалы в текстовую модель как есть

Брендбук, спецификация или бриф: предварительная обработка не требуется, контекстное окно текстовой модели достаточно велико. В системном промпте укажите шаблон результата, ограничение по количеству символов (хорошая цель — не более 2 500 символов) и правило «сначала жёсткие ограничения».
2

Проверяйте промпт ограничителем длины

Проверьте len(prompt); если его длина превышает 32 000 символов, попросите текстовую модель ещё раз выполнить сжатие. Сведённый промпт обычно занимает одну-две тысячи символов, поэтому этот шаг служит защитой.
3

Сохраните промпт, затем вызовите модель изображений

Сохраните сведённый промпт и повторно используйте только его для генерации. Повторные попытки, изменения размера и замена модели больше не требуют повторного чтения материалов и повторной оплаты tokens.
4

При изменении материалов повторно выполняйте только первый этап

Редизайн упаковки или обновление брифа: выполните сведение заново. Код и параметры генерации остаются без изменений.
Минимальная реализация (OpenAI SDK, оба этапа используют один ключ):
Архивирование сведённого промпта вместе с параметрами генерации — это единственный надёжный способ воспроизведения для этой линейки продуктов (семейство GPT-Image не предоставляет seed). См. раздел 5 документации Расширенная генерация изображений.

Когда действительно нужен длинный prompt

В некоторых случаях prompt действительно становится длиннее, но ни один из них даже близко не приближается к 32K:
  • Редактирование нескольких изображений: ссылайтесь на эталонные изображения как на «изображение 1 / изображение 2 / изображение 3» и указывайте, что именно нужно взять из каждого. Несколько сотен символов.
  • Текст внутри изображения: надписи, плакаты и текст на упаковке необходимо указывать дословно, а не оставлять на усмотрение модели. От нескольких десятков до нескольких сотен символов.
  • Общий префикс для серии: блок с описанием стиля, освещения и композиции, общий для пакета. Менее тысячи символов.
Вместе эти элементы обычно занимают от двух до трёх тысяч символов. Если prompt приближается к 32K, вероятно, в него были вставлены исходные материалы.

Краткая справка

  • 32 000 символов — это официальный лимит API изображений OpenAI, подсчитываемый в символах, а не в token; он одинаков для /generations и /edits, и официальный релей APIYI его не ужесточает.
  • Символы, token и контекстное окно — это три разные вещи: 32 тыс. символов на английском — это примерно 8 тыс. token, для китайского текста — больше; контекстное окно текстовой модели никак не связано с лимитом промпта модели изображений.
  • «Нет лимита» в веб-приложении — иллюзия: чат-модель читает материал и самостоятельно составляет короткий промпт для инструмента изображений; модель изображений никогда не сталкивается с ограничением в 32 тыс. символов.
  • Подробный — не значит длинный: текстовый ввод тарифицируется по token, и каждая повторная попытка оплачивается снова; сотни конкурирующих требований скрывают жёсткие ограничения.
  • Два этапа: сжать материал с помощью текстовой модели в структурированный промпт объёмом от 1 до 3 тыс. символов, разместив жёсткие ограничения в начале, сохранить его, а для генерации повторно отправлять только промпт.

Связанные документы