Skip to main content

Краткий ответ

Если API изображений Gemini возвращает HTTP 200 со значением candidates[0].finishReason, равным IMAGE_OTHER, а в finishMessage указано Unable to show the generated image, модель действительно сгенерировала изображение, но проверка вывода провайдера отфильтровала его до возврата.
  • Это носит вероятностный характер: один и тот же запрос иногда выполняется успешно, а иногда завершается ошибкой, и частота сбоев может быть высокой
  • Это не связано с негативными prompt, параметрами или шлюзом; проблема заключается в том, что именно оказывается на изображении
  • Наиболее типичный выявленный нами триггер: в prompt упоминается реальный человек
  • Провайдер указывает в finishMessage, что плата за такие запросы не взимается
Способ решения: найдите часть prompt, из-за которой изображение становится похожим на конкретного реального человека или другой контент с ограничениями, и замените её описанием.

Как это распознать

Типичный ответ:
Обратите внимание, что candidatesTokenCount не равно 0; оно равно thoughtsTokenCount. Модель завершила рассуждение, но итоговое изображение не было получено. Три причины, по которым изображение может отсутствовать:
В официальной документации по API IMAGE_OTHER относится к той же группе, что и IMAGE_SAFETY, IMAGE_PROHIBITED_CONTENT и IMAGE_RECITATION, и все они означают «генерация изображений была остановлена». IMAGE_OTHER охватывает причины, не относящиеся к другим категориям, и провайдер не раскрывает конкретные критерии.

Протестированный кейс

В сентябре 2026 года (UTC+8) клиент сообщил, что чистый text-to-image запрос на карточку игрока не возвращал изображение примерно в 63% случаев на gemini-3-pro-image. prompt содержал около 5500 символов:
  • Вводное предложение с указанием имени реального спортсмена и требованием «1:1 replica» черт его лица
  • Подробные инструкции по позе, кадрированию, цветам формы, художественному стилю и белому фону
  • Два длинных блока negative-prompt (NEGATIVE) со списком множества названий брендов
Каждая воспроизведённая нами ошибка представляла собой IMAGE_OTHER и возвращалась примерно через 20 секунд. Затем мы поочерёдно удаляли по одному элементу, выполняя по 6 вызовов на группу: Вывод очевиден: триггером является само имя реального человека. Модель распознаёт имя и стремится воспроизвести внешность этого человека; чем ближе сходство, тем выше вероятность, что результат будет отфильтрован. Попытки, давшие меньшее сходство, прошли фильтрацию, из-за чего сбой казался случайным. Причиной не была ни формулировка «1:1 replica», ни длинные negative-prompt. После удаления имени описания причёски, формы лица и глаз, уже присутствовавшие в prompt, оказались достаточными для создания карточки игрока в том же стиле.
Шести вызовов на группу достаточно для такого метода деления пополам: если исходный вариант завершается ошибкой в 5 из 6 случаев, вероятность того, что правильное исправление случайно пройдёт 6 раз подряд, составляет примерно 2 на 100 000. Всё исследование заняло 24 вызова.

Как локализовать триггер

1

Шаг 1: Подтвердите тип сбоя

Отправьте один и тот же запрос повторно 5–6 раз, убедитесь, что сбои содержат finishReason: IMAGE_OTHER, и зафиксируйте частоту сбоев. Если вместо этого вы видите NO_IMAGE или blockReason, перейдите на соответствующую страницу устранения неполадок.
2

Шаг 2: Сначала проверьте имена и конкретные объекты

Проверьте prompt на наличие имен реальных людей (знаменитостей, спортсменов, инфлюенсеров, политиков и т. д.) или указаний выглядеть «в точности как» кто-то. Удалите их и запустите еще одну группу.
3

Шаг 3: Удаляйте фрагменты пополам

Если дело не в имени, удаляйте за раз по половине prompt (по 6 вызовов на группу) и продолжайте сужать область поиска только в той половине, где частота сбоев явно снижается.
4

Шаг 4: Перепишите вместо простого удаления

Как только вы найдете триггер, замените упоминание конкретного имени на описание внешности, одежды и стиля, сохранив действительно необходимые визуальные требования.

Рекомендации

  1. Не указывайте имена реальных людей в prompt: вместо этого описывайте их внешность, например «прямые светлые волосы с пробором сбоку, миндалевидные глаза, овальное лицо». В нашем случае это было единственным эффективным решением.
  2. Сокращение negative prompt допустимо, но причина не в них: у моделей генерации изображений Gemini нет отдельного параметра negative-prompt, поэтому длинный список NEGATIVE считывается как обычный текст. Его сокращение делает prompt более понятным, но не снижает долю IMAGE_OTHER.
  3. Не полагайтесь на повторные попытки: при доле сбоев выше 60% повторные попытки превращаются в лотерею и увеличивают задержку. Ваш клиент может повторить попытку один раз при IMAGE_OTHER в качестве резервного варианта, но истинное решение — исправление prompt.
  4. Исправьте шаблоны перед пакетной генерацией: если вы выполняете генерацию по списку (например, по одной карточке на игрока), не вставляйте имена в prompt. Используйте их только для наименования собственных файлов или последующей вёрстки.
  5. Используйте референсное изображение, когда требуется устойчивое сходство: если вам действительно необходимо изобразить конкретного человека, предоставьте референсное изображение с его разрешения и учитывайте ограничения в отношении реальных людей и несовершеннолетних, перечисленные в Сбоях генерации изображений Nano Banana.
Различение трёх форм в коде:

Часто задаваемые вопросы

Да. В наших тестах при удалении формулировки «1:1 replica» и сохранении только имени доля сбоев все равно составляла 4/6. Модель распознает имя и стремится изобразить этого человека.
Фильтр запускается после генерации изображения, поэтому результат зависит от того, что было сгенерировано на этот раз. Каждая генерация уникальна, поэтому один и тот же запрос может пройти проверку или быть заблокирован фильтром.
Строгость проверки выходных данных может различаться между группами, поэтому один и тот же prompt может отклоняться с разной частотой. Однако маршрутизация между группами со временем меняется, поэтому эта разница не является постоянной. Надежный подход — исправить сам prompt.
У моделей генерации изображений Gemini нет отдельного параметра negative-prompt; список NEGATIVE внутри prompt воспринимается как обычный текст. Он никак не влияет на IMAGE_OTHER, однако слишком длинный список может размыть основное описание. Оставьте только несколько действительно важных деталей и сформулируйте их утвердительно (например, «простой белый фон» вместо длинного списка «без стадиона, без травы…»).
Провайдер заявляет в finishMessage, что за такие запросы плата не взимается. Чтобы проверить, был ли запрос тарифицирован, посмотрите журнал вызовов в консоли APIYI.

Все еще нужна помощь? Свяжитесь со службой поддержки

Пожалуйста, укажите следующую информацию, чтобы мы могли помочь:
  • Название модели и группа token;
  • Полный ответ (как минимум finishReason, finishMessage и responseId), а также request ID;
  • Время возникновения (с указанием часового пояса);
  • Отредактированный prompt и наблюдаемую частоту ошибок.
Никогда не отправляйте API-ключ полностью. Скройте ключ перед отправкой скриншотов или логов.

Поддержка в WeCom

QR-код службы поддержки WeComОтсканируйте QR-код или нажмите на эту карточку, чтобы связаться со службой поддержки напрямую.

Поддержка по электронной почте

Поддержка: [email protected]Рекомендуем указать «IMAGE_OTHER» и название модели в теме письма.

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

Почему Gemini Image API возвращает NO_IMAGE?

Отсутствие изображений из-за неясного намерения в prompt и способы решения проблемы

Почему Gemini Image возвращает blockReason: OTHER?

Определение референсного изображения, заблокированного до генерации, и рекомендации по предобработке

Ошибки генерации изображений Nano Banana

Распространенные причины, включая безопасность, удаление водяных знаков, известные объекты интеллектуальной собственности и несовершеннолетних

Обработка ошибок Gemini Image API

Полный порядок проверки ответа и понятные пользователю сообщения об ошибках