Краткий ответ
Когда API возвращаетfinishReason: NO_IMAGE, а parts имеет значение null, модель обычно обрабатывает запрос, но не возвращает содержимое изображения.
Это не обязательно означает, что prompt вызвал срабатывание блокировки безопасности контента. Такие prompt, как «Что такое GEO?» или «Объясни эту концепцию», больше похожи на текстовые вопросы. Модель может не определить однозначно, что пользователю действительно нужно изображение, поэтому возвращает NO_IMAGE.
Явно укажите намерение сгенерировать изображение в начале prompt, а затем опишите объект, композицию, стиль и требования к результату.
Еще одна частая причина — prompt, в котором содержится просьба написать текст, например «подготовь предложение по дизайну» или «сделай анализ подробным». Когда вызов допускает только вывод изображений, подобный запрос время от времени возвращает NO_IMAGE, поэтому один и тот же запрос может завершиться ошибкой, а затем выполниться успешно. См. раздел «Prompt запрашивает текстовый ответ» ниже.
candidates, но содержится promptFeedback.blockReason (например, OTHER), это другая проблема: входные данные были заблокированы провайдером до начала генерации. См. Почему Gemini Image возвращает blockReason: OTHER?Почему возникает NO_IMAGE?
1. prompt выглядит как текстовый вопрос
Например:- какой тип изображения требуется сгенерировать;
- какие элементы должны присутствовать на изображении;
- как должна быть скомпонована информация;
- должен ли ответ содержать только изображение.
2. Намерение сгенерировать изображение выражено недостаточно конкретно
Некоторые инструменты платформ автоматически добавляют в начало инструкции вроде «Generate an image:». Однако при прямом вызове API запрос может пересылаться напрямую без автоматического добавления полной инструкции по генерации изображений. Вместо того чтобы писать только:3. В prompt отсутствует визуальное описание
Если prompt лишь объясняет концепцию, модель не знает, как превратить ее в визуальную композицию. Рекомендуется указать:- тип изображения: инфографика, плакат, блок-схема или промо-графика;
- компоновка: три колонки, временная шкала или радиальная структура;
- визуальный стиль: технологичный, деловой, минималистичный или фирменный;
- иерархия текста: заголовок, нумерованные разделы, основной текст и верстка;
- инструкция по выводу: сгенерировать только изображение, без текстовых объяснений.
4. prompt запрашивает текстовый вывод
Модели генерации изображений Gemini также могут распознавать изображения и писать текст. Если prompt содержит фразы, запрашивающие текстовый вывод, модель иногда сначала «пишет предложение», вместо того чтобы сгенерировать изображение:responseModalities: ["IMAGE"]), предложение, которое модель хочет написать, не может быть возвращено, поэтому ответом становятся finishReason: NO_IMAGE, parts: null и ноль выходных tokens.
Мы повторно запустили реальный запрос на дизайн обуви (3 референсных изображения плюс prompt, аналогичный приведенному выше) в сентябре 2026 года (UTC+8) на gemini-3.1-flash-image с responseModalities: ["IMAGE"]:
Разные настройки responseModalities — разные симптомы
Один и тот же запрос с неясным намерением генерации изображения завершается с ошибкой по-разному в зависимости отresponseModalities:
responseModalities и прочитайте, что пишет модель, когда она не возвращает изображение:
- Предложение, анализ или prompt для изображения → намерение генерации изображения неясно; исправьте prompt, как описано на этой странице
- Отказ вроде «Я не могу это сгенерировать» → сработала политика безопасности контента; см. сбои генерации изображений Nano Banana
Пример GEO-промпта
Вы можете переписать исходный промпт следующим образом:Как устранить ошибку NO_IMAGE
Шаг 1: Определите, в каком поле содержится ошибка
candidates[0].finishReason имеет значение NO_IMAGE, данная страница вам подходит. Если candidates отсутствуют и promptFeedback.blockReason имеет значение, входные данные были заблокированы до генерации; см. Устранение неполадок с blockReason: OTHER.Шаг 2: Проверьте, содержит ли ответ данные изображения
parts, inlineData, image или аналогичное поле изображения в ответе. Если parts имеет значение null, ответ обычно не содержит данных изображения.Шаг 3: Убедитесь, что prompt явно запрашивает изображение
Шаг 4: Затем проверьте факторы безопасности контента
NO_IMAGE, проверьте запрос на наличие NSFW-контента, тем с несовершеннолетними, известных объектов интеллектуальной собственности, удаления водяных знаков, портретов реальных людей или других ограничений вышестоящих политик безопасности.Шаг 5: Проверьте логи вызовов
usageMetadata показывает, что модель обработала запрос, но это не доказывает, что изображение было сгенерировано или произошла блокировка системой безопасности.Чем NO_IMAGE отличается от блокировки безопасности?
finishReason: NO_IMAGE означает лишь то, что изображение не было возвращено. Само по себе это не доказывает, что prompt нарушил политику. Анализируйте полный текст ошибки, prompt и журналы вызовов в совокупности.Часто задаваемые вопросы
Всегда ли добавление «сгенерировать изображение» решает проблему?
Всегда ли добавление «сгенерировать изображение» решает проблему?
Была ли тема GEO заблокирована системой безопасности контента?
Была ли тема GEO заблокирована системой безопасности контента?
NO_IMAGE не позволяет полностью исключить решение политик вышестоящего провайдера. В этом случае prompt больше похож на объяснение информации, поэтому в первую очередь целесообразно проверить неясность намерения сгенерировать изображение.Почему один и тот же запрос иногда выполняется успешно, а иногда завершается ошибкой? Изменился ли маршрут?
Почему один и тот же запрос иногда выполняется успешно, а иногда завершается ошибкой? Изменился ли маршрут?
NO_IMAGE из-за неясного намерения носит вероятностный характер: при каждом запросе модель выбирает между генерацией изображения и предварительным написанием текста. В наших тестах один и тот же запрос завершался ошибкой примерно в 21% случаев, часто несколько раз подряд. Настройте в своем клиенте автоматический повтор 1–2 раза для ответов NO_IMAGE и скорректируйте prompt, чтобы устранить первопричину.Почему в usageMetadata отображаются tokens, если изображение не было возвращено?
Почему в usageMetadata отображаются tokens, если изображение не было возвращено?
usageMetadata лишь показывает, что модель обработала входные данные и сгенерировала tokens рассуждения или текста. Это не означает, что ответ содержит изображение. Проверьте поля данных изображения в ответе.Будет ли тарифицироваться NO_IMAGE?
Будет ли тарифицироваться NO_IMAGE?
NO_IMAGE. Проверьте логи вызовов APIYI, чтобы подтвердить, создана ли запись о списании за этот запрос.Всё ещё не удаётся решить проблему? Обратитесь в поддержку
Если после явного указания назначения изображения запрос по-прежнему возвращаетNO_IMAGE, обратитесь в поддержку APIYI и укажите:
- Название модели и группу token;
- Полное сообщение об ошибке и
request ID; - Промпт с удалёнными конфиденциальными данными;
- Время возникновения;
- Запись тарификации из журналов вызовов.
Поддержка WeCom
