Вопрос клиента: почему в API действует ограничение в 32K, тогда как в ChatGPT его нет?
Анонимизированный диалог:Клиент: Длина вашего prompt отличается от ChatGPT. Похоже, она ограничена 32K. Мы: Ограничение действительно есть. Но у кого бывает задача по генерации изображений с prompt на 32K? Клиент: У многих. Креативы для рекламы, габариты упаковки… Я просто сам вызову Codex CLI. Мы: Уточните, пожалуйста, prompt на 32 000 tokens? Клиент: Да. 32 000 символов на английском — это совсем немного.Здесь смешались три разных понятия. Для начала разграничим их:
Откуда берется лимит в 32K
Официальный лимит OpenAI Images API для поляprompt (аналогично для /v1/images/generations и /v1/images/edits):
developers.openai.com/api/reference/resources/images/methods/generate.
Символы — это не tokens. И тарификация, и понимание модели основаны на tokens, а usage.input_tokens_details.text_tokens сообщает о фактическом расходе текстовых tokens за вызов. Те же 32 000 символов — это около 8K tokens на английском языке и заметно больше на китайском, где каждый символ преобразуется в большее количество tokens, а также несет больше информации. Поэтому утверждения «32K на английском — это мало» и «32K на китайском — это много» могут быть верны одновременно, и китайский язык упирается в границу 8 192 tokens задолго до достижения 32 000 символов.
Почему веб-приложение 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). Модели изображений нужна высокая плотность информации с чёткими приоритетами, а не большое количество слов.
Таким образом, утверждение «в профессиональной рекламе много требований» верно, но подробный не означает длинный. Шесть элементов в разделе Расширенная генерация изображений и правило «не перегружайте промпт прилагательными» в навыке “Доктор промптов для изображений” говорят об одном и том же.
Два этапа: материалы в текстовую модель, prompt — в модель генерации изображений
Когда за задачей генерации изображений действительно стоит 32K материалов, обычно это брендбук, спецификация упаковки, рекламный бриф или библия персонажа. Эти материалы следует сначала передать текстовой модели, которая дистиллирует их в один емкий prompt для модели генерации изображений:Передайте материалы текстовой модели как есть
Пропустите prompt через проверку длины
Сохраните prompt, затем вызовите модель генерации изображений
При изменении материалов перезапустите только первый этап
Когда действительно необходим длинный prompt
В ряде случаев prompt действительно становится длиннее, но ни один из них даже близко не приближается к 32K:- Редактирование нескольких изображений: ссылайтесь на референсные изображения как «image 1 / image 2 / image 3» и указывайте, что именно нужно взять из каждого. Несколько сотен символов.
- Текст внутри изображения: вывески, плакаты, текст на упаковке необходимо указывать дословно, а не оставлять на усмотрение модели. От десятков до сотен символов.
- Общий префикс для серии: блок описания стиля, освещения и композиции, единый для всей партии. Менее тысячи символов.
Краткая справка
- Фактический лимит — 8 192 tokens (измерено): при его превышении провайдер не возвращает ошибку и молча игнорирует весь prompt; указанные в документации 32 000 символов приблизительно эквивалентны этому значению для английского языка, тогда как для китайского лимит достигается примерно на 11 000 символов. Официальный релей APIYI его не ужесточает.
- Символы, tokens и контекстное окно — это три разные вещи: 32K символов на английском — это около 8K tokens, на китайском — больше; контекстное окно текстовой модели не имеет никакого отношения к лимиту на prompt у модели генерации изображений.
- «Отсутствие лимита» в веб-приложении — это иллюзия: чат-модель считывает исходный материал и составляет собственный короткий prompt для инструмента генерации изображений; модель генерации изображений никогда не сталкивается с этими 32K.
- Подробный — не значит длинный: входящий текст тарифицируется за каждый token, и за каждую повторную попытку приходится платить снова; сотни конкурирующих требований размывают жесткие ограничения.
- Два этапа: дистиллируйте материал с помощью текстовой модели в структурированный prompt длиной от 1K до 3K символов, поместив жесткие ограничения в начало, сохраните его и отправляйте для генерации только полученный prompt.