|

Полный разбор ошибки IMAGE_SAFETY в Nano Banana Pro API: почему изображения блокируются, как рассчитываются токены и как решить проблему

Авторское примечание: подробный разбор ошибки IMAGE_SAFETY в API Nano Banana Pro. Анализируем двухуровневый механизм фильтрации безопасности, логику списания токенов и 8 практических методов повышения успешности генерации.

При использовании API Nano Banana Pro для генерации изображений вы могли столкнуться с таким сбивающим с толку ответом: промпт вроде бы не содержит ничего запрещенного, но в ответ приходит finishReason: IMAGE_SAFETY, а изображение блокируется фильтром безопасности. Еще больше удивляет то, что поле thoughtsTokenCount: 173 в ответе указывает на то, что модель успешно завершила процесс «размышления», но в итоге картинка все равно была «зарублена». В этой статье мы разберем эту ошибку по полям, объясним двухуровневый механизм фильтрации Google, логику списания токенов при блокировке и способы повышения шансов на успех.

Ключевая ценность: прочитав эту статью, вы поймете значение каждого поля в ошибке IMAGE_SAFETY, узнаете, списываются ли токены при блокировке, и научитесь оптимизировать промпты так, чтобы повысить успешность генерации до 70-80%.

nano-banana-pro-image-safety-error-analysis-fix-guide-ru 图示

Разбираем ошибку IMAGE_SAFETY по полочкам. Для начала давайте разберем, что означает каждое поле в ответе API.

Поле Значение Описание
content.parts null Контент не возвращен (изображение заблокировано)
finishReason IMAGE_SAFETY Сработал второй уровень фильтра безопасности вывода
finishMessage "Unable to show…" Официальное сообщение Google: нарушение политики использования генеративного ИИ
promptTokenCount 276 На ввод потрачено 276 токенов
candidatesTokenCount 0 Токенов на выходе 0 (изображение заблокировано, генерация не завершена)
totalTokenCount 449 Всего 449 токенов (276 ввод + 173 размышления)
thoughtsTokenCount 173 На процесс размышления модели ушло 173 токена
promptTokensDetails TEXT:18, IMAGE:258 18 текстовых токенов + 258 токенов изображения (эталонное изображение)
modelVersion gemini-3-pro-image-preview Модель Nano Banana Pro

3 ключевых сигнала в ошибке IMAGE_SAFETY

Сигнал №1: thoughtsTokenCount: 173 — модель действительно думала

Это означает, что ваш промпт прошел первый уровень проверки безопасности (на входе), модель начала процесс рассуждения (Thinking) и даже начала генерировать изображение, но на финальном этапе сработал второй уровень фильтра. Проблема не в вашем промпте, а в том, что модель «захотела нарисовать».

Сигнал №2: candidatesTokenCount: 0 — нулевой результат

После блокировки изображения количество выходных токенов равно 0. Официальная позиция Google: «За заблокированные изображения плата не взимается». Однако помните: тарификация входных токенов (276) и токенов размышления (173) зависит от конкретных условий и логики биллинга.

Сигнал №3: IMAGE: 258 — вы использовали эталонное изображение

Ваш запрос содержал эталонное изображение (потрачено 258 токенов). Это значит, что вы, вероятно, используете режим «изображение-в-изображение», а не просто текст-в-изображение. Фильтрация безопасности для редактирования изображений обычно строже, так как само эталонное изображение также проходит проверку.


Двухуровневый механизм безопасности Google

Чтобы понять ошибку IMAGE_SAFETY, нужно осознать, что фильтрация безопасности Google состоит из двух уровней, причем второй уровень отключить невозможно.

Первый уровень: настраиваемые параметры безопасности ввода

Параметр Описание Можно настроить?
Место фильтрации Вход (промпт) Да
Объект фильтрации Текст и изображения пользователя Да
Настройка BLOCK_NONE (без блокировки) Да
Результат срабатывания Запрос отклоняется сразу, токены не тратятся

Вы можете настроить safety_settings на BLOCK_NONE, чтобы снизить чувствительность первого уровня.

Второй уровень: ненастраиваемый фильтр безопасности вывода

Параметр Описание Можно настроить?
Место фильтрации Выход (сгенерированное изображение) Нет
Объект фильтрации Контент, созданный моделью Нет
Можно ли отключить Нет, действует принудительно для всех Нет
Результат срабатывания finishReason: IMAGE_SAFETY, parts: null

Ошибка IMAGE_SAFETY означает, что сработал именно второй уровень. Ваш промпт прошел первый этап, модель завершила размышления (173 токена) и создала изображение, но перед самой выдачей оно было заблокировано.

Google признает, что этот фильтр стал «более осторожным, чем ожидалось», что приводит к ложным срабатываниям — блокируются даже безобидные запросы вроде «собака» или «миска овсянки».

nano-banana-pro-image-safety-error-analysis-fix-guide-ru 图示

Списываются ли средства при блокировке через IMAGE_SAFETY?

Это практический вопрос, который волнует большинство разработчиков.

Правила тарификации IMAGE_SAFETY в Nano Banana Pro

Статья расходов Списываются ли средства при блокировке Примечание
Генерация изображения Не списывается Google четко заявляет: "You will not be charged for blocked images"
Выходные токены Не списываются candidatesTokenCount: 0, нет вывода — нет оплаты
Входные токены Могут списываться (мизер) 276 токенов × $0.25/M ≈ $0.00007 (можно пренебречь)
Токены рассуждения Зависит от логики биллинга 173 токена, Gemini API может включать их в candidates

Итог: при блокировке через IMAGE_SAFETY основные затраты (генерация изображения и выходные токены) не возникают. Стоимость входных токенов ничтожно мала (менее одной десятитысячной доллара), поэтому ее можно не учитывать.

Дополнительная гарантия от APIYI: при вызове через APIYI (apiyi.com) плата за неудачную генерацию не взимается, включая случаи блокировки через IMAGE_SAFETY. Вы платите только за успешно созданные изображения.


8 способов повысить проходимость IMAGE_SAFETY

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

Способ 1: Установка BLOCK_NONE для отключения первого уровня

Сначала убедимся, что первый уровень не создает дополнительных препятствий:

from google.genai import types

safety_settings = [
    types.SafetySetting(
        category="HARM_CATEGORY_HARASSMENT",
        threshold="BLOCK_NONE"
    ),
    types.SafetySetting(
        category="HARM_CATEGORY_HATE_SPEECH",
        threshold="BLOCK_NONE"
    ),
    types.SafetySetting(
        category="HARM_CATEGORY_SEXUALLY_EXPLICIT",
        threshold="BLOCK_NONE"
    ),
    types.SafetySetting(
        category="HARM_CATEGORY_DANGEROUS_CONTENT",
        threshold="BLOCK_NONE"
    ),
]

Способ 2: Добавление конкретных деталей в промпт

Размытые промпты чаще провоцируют срабатывание фильтров безопасности. Добавление конкретики помогает направить модель на создание более «безопасного» контента:

❌ "Женщина"
→ Модель может сгенерировать контент, который фильтр сочтет неприемлемым

✅ "Женщина в деловом костюме работает в современном офисе,
   естественное освещение, стиль цифровой иллюстрации"
→ Конкретная сцена + описание одежды + художественный стиль → Шанс успеха значительно выше

Способы 3–8: Продвинутые стратегии оптимизации

Метод Действие Ожидаемый эффект
Способ 3: Добавление стиля Добавить в конец "digital illustration style" или "watercolor style" Снижение реализма → меньше триггеров
Способ 4: Указание контекста Добавить четкое описание сцены ("в парке", "в офисе") Ограничение пространства для интерпретации
Способ 5: Избегание описания кожи Заменить размытые описания на "formal attire", "winter clothing" Обход чувствительных зон
Способ 6: Использование английского Фильтры безопасности для английских промптов откалиброваны точнее Меньше ложных блокировок
Способ 7: Автоматический перезапуск Автоматическая переформулировка промпта при неудаче Повышение общего успеха
Способ 8: Вызов через APIYI У APIYI оптимизированы настройки параметров безопасности Более высокий общий успех

Сравнение промптов до и после оптимизации

Сцена До оптимизации (низкий успех) После оптимизации (высокий успех)
Люди "Девушка в купальнике" "Женщина в спортивной одежде тренируется в зале, стиль цифровой иллюстрации"
Еда "Стейк" "Стейк средней прожарки на белой тарелке, стол в ресторане, профессиональная фуд-съемка"
Животные "Собака" "Золотистый ретривер ловит фрисби во дворе, дневное солнце, стиль цифровой иллюстрации"
Товары "Модель в белье" "Фотография товара: спортивный топ, вид сверху, белый фон, без модели, предметная съемка"

🎯 Ключевой принцип: Чем конкретнее промпт = тем меньше свободы у модели = тем реже срабатывает фильтр безопасности. Добавление художественного стиля (например, "digital illustration") позволяет дополнительно снизить реалистичность, уменьшая вероятность блокировки.
Успешность вызовов через APIYI (apiyi.com) обычно выше, чем при прямом подключении к Google API, так как платформа оптимизирует параметры безопасности.

nano-banana-pro-image-safety-error-analysis-fix-guide-ru 图示


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

Q1: Почему один и тот же промпт иногда срабатывает, а иногда блокируется?

Потому что второй уровень фильтрации безопасности проверяет сгенерированное изображение, а не сам промпт. При использовании одного и того же промпта модель каждый раз выдает немного разные результаты (из-за случайной природы диффузионных моделей), и некоторые из них могут случайно задеть порог срабатывания фильтра безопасности. Поэтому повторная попытка с тем же промптом иногда проходит успешно — модели просто удается сгенерировать «более безопасное» изображение.

Q2: Нормально ли, что thoughtsTokenCount больше 0, а candidatesTokenCount равен 0?

Да, это нормально. Это как раз указывает на то, что блокировка произошла на втором уровне (на этапе вывода): модель завершила процесс мышления (Thinking) и создала изображение, но оно было заблокировано фильтром безопасности перед финальной выдачей. Токены мышления были потрачены (173), но так как само изображение не было выведено, количество токенов вывода равно 0. Это специфический паттерн ответа для IMAGE_SAFETY — в отличие от блокировки на первом уровне (при которой thoughtsTokenCount также равен 0).

Q3: Что делать, если изображения нижнего белья/купальников для интернет-магазинов постоянно блокируются?

Это известная проблема частых ложных срабатываний. На форумах разработчиков Google полно отчетов по запросу "non-NSFW ecommerce underwear images with IMAGE_SAFETY error". Рекомендации: 1) используйте фотографии товаров в раскладке (flat lay) без моделей; 2) четко прописывайте в промпте "product flat lay, no model, white background"; 3) используйте APIYI (apiyi.com) — конфигурация параметров безопасности платформы оптимизирована для сценариев электронной коммерции.

Q4: Списывается ли плата в APIYI за заблокированные запросы?

Нет. APIYI гарантирует, что за неудачные генерации плата не взимается, включая случаи блокировки IMAGE_SAFETY. Вы платите только за успешно созданные изображения. Это соответствует логике биллинга официального API Google (заблокированные изображения не тарифицируются), но APIYI дополнительно гарантирует, что даже микроплатежи за входные токены не будут списаны.


Итоги

Основные моменты по ошибке IMAGE_SAFETY в Nano Banana Pro:

  1. Суть ошибки — фильтрация вывода второго уровня: Ваш промпт прошел первый уровень, модель завершила процесс мышления (173 токена), изображение было создано, но на этапе финальной выдачи оно было заблокировано неотключаемым фильтром безопасности.
  2. За блокировки практически не берут плату: candidatesTokenCount: 0 означает, что токены вывода не тарифицируются. Google официально заявляет, что «не берет плату за заблокированные изображения», а при использовании APIYI вы получаете дополнительную гарантию отсутствия списаний при сбоях.
  3. Оптимизация промпта может повысить успех до 70-80%: Главный принцип — «чем конкретнее, тем безопаснее». Добавляйте детали сцены, художественный стиль, описание одежды и используйте английский язык для промптов.

Рекомендуем использовать Nano Banana Pro через APIYI (apiyi.com) — оптимизированные настройки безопасности, отсутствие платы за сбои и скидка 28% помогут минимизировать влияние ложных срабатываний IMAGE_SAFETY на ваш бизнес.

📚 Справочные материалы

  1. Документация по настройкам безопасности Gemini API: Официальное описание параметров безопасности

    • Ссылка: ai.google.dev/gemini-api/docs/safety-settings
    • Описание: содержит конфигурацию BLOCK_NONE и список категорий безопасности.
  2. Полное руководство по исправлению ошибки IMAGE_SAFETY в Nano Banana Pro: 8 способов повысить процент успешных запросов

    • Ссылка: help.apiyi.com/en/nano-banana-pro-image-safety-error-fix-guide-en.html
    • Описание: включает шаблоны оптимизации промптов и решения для конкретных сценариев.
  3. Обсуждение IMAGE_SAFETY на форуме разработчиков Google AI: Отчеты сообщества и официальные ответы

    • Ссылка: discuss.ai.google.dev/t/nano-banana-is-unusable-because-of-the-new-safety-filters/132366
    • Описание: Google признает, что фильтры работают «слишком осторожно».
  4. Центр документации APIYI: Гарантия отсутствия списаний при сбоях в Nano Banana Pro

    • Ссылка: docs.apiyi.com
    • Описание: содержит рекомендации по оптимизации параметров безопасности и настройки для e-commerce сценариев.

Автор: Техническая команда APIYI
Техническое обсуждение: Приглашаем к дискуссии в комментариях. Дополнительные материалы доступны в центре документации APIYI по адресу docs.apiyi.com.

Похожие записи