У каждой ошибки Nano Banana Pro есть решение. Ошибки лимита запросов (429 RESOURCE_EXHAUSTED) составляют примерно 70% всех сбоев и обычно устраняются в течение 1-5 минут. Серверные ошибки (503) требуют 30-120 минут ожидания. Блокировки фильтров безопасности делятся на два уровня: настраиваемые (исправляются через параметры API) и ненастраиваемые (требуют изменения промпта). В этом руководстве рассмотрены все известные коды ошибок, обновление политики IMAGE_SAFETY от января 2026 года и готовый для продакшена код автоматической обработки сбоев. Последнее обновление — февраль 2026.
Краткое содержание
- 429 RESOURCE_EXHAUSTED вызывает 70% ошибок — подождите 1-5 минут или реализуйте экспоненциальный бэкофф
- 503 Service Overloaded означает перегрузку серверов Google — восстановление занимает 30-120 минут для Gemini 3 Pro
- IMAGE_SAFETY блокировки нельзя отключить с января 2026 — вместо изменения настроек API перепишите промпт
- Уровень 1 (SAFETY) фильтры настраиваются через
safety_settings— установите пороги наBLOCK_NONEдля максимальной гибкости - Уровень 2 (IMAGE_SAFETY) фильтры невозможно отключить — они защищают от нарушения авторских прав, CSAM и дипфейков
- Проверяйте
finishReasonв ответах API, чтобы мгновенно определить, какой уровень заблокировал ваш запрос
Быстрая диагностика: определите вашу ошибку за 30 секунд

Когда генерация изображения в Nano Banana Pro завершается ошибкой, первое, что нужно проверить — это HTTP-код статуса или поле finishReason в ответе API. Эта единственная порция информации точно скажет вам, что пошло не так, и какую категорию исправления нужно применить. Правило простое: ошибки 5xx означают проблему на стороне инфраструктуры Google и вам нужно подождать, ошибки 4xx означают, что нужно исправить что-то в вашем запросе, а блокировки IMAGE_SAFETY означают, что контент вызвал срабатывание фильтра. Подробный пошаговый алгоритм отладки описан в нашем руководстве по пошаговой отладке.
Следующая диагностическая таблица сопоставляет каждое распространённое сообщение об ошибке с его первопричиной и немедленным решением. Сохраните эту таблицу в закладки — вы будете возвращаться к ней неоднократно в процессе разработки.
| Что вы видите | Код ошибки | Что это значит | Быстрое решение | Время восстановления |
|---|---|---|---|---|
RESOURCE_EXHAUSTED | 429 | Превышен лимит запросов или квота | Подождите 1-5 мин, затем повторите | 1-5 минут |
The model is overloaded | 503 | Серверы Google на пределе мощности | Подождите и повторите позже | 30-120 минут |
Internal error encountered | 500 | Временный сбой бэкенда Google | Повторите с бэкоффом | 1-10 минут |
Bad Gateway | 502 | Сбой вышестоящего сервиса | Дождитесь исправления со стороны Google | 5-30 минут |
finishReason: SAFETY | 200 | Сработал фильтр промпта уровня 1 | Настройте safety_settings | Мгновенно |
finishReason: IMAGE_SAFETY | 200 | Сработал фильтр изображения уровня 2 | Перепишите промпт | Мгновенно |
generated images may contain unsafe content | 200 | Блокировка уровня 2 после генерации | Добавьте явные указания стиля | Мгновенно |
PERMISSION_DENIED | 403 | Недействительный API-ключ или блокировка по региону | Проверьте учётные данные и регион | Мгновенно |
INVALID_ARGUMENT | 400 | Неправильные параметры запроса | Проверьте формат входных данных | Мгновенно |
API key not valid | 403 | Просроченный или отозванный ключ | Создайте новый ключ в AI Studio | Мгновенно |
Quota exceeded for quota metric | 429 | Исчерпана суточная или поминутная квота | Повысьте тариф или дождитесь сброса | 1 мин — 24 часа |
Request payload size exceeds the limit | 400 | Изображение или промпт слишком большие | Уменьшите размер входных данных | Мгновенно |
Основное диагностическое правило простое. Если код ошибки начинается с 5 — проблема на стороне Google, и единственный выход — терпение. Если начинается с 4 — что-то не так с вашим запросом, и вы можете исправить это прямо сейчас. А если вы получили ответ с кодом 200 и finishReason, отличным от STOP, — фильтр безопасности обнаружил в вашем контенте что-то, что нужно перефразировать или перенастроить.
Серверные ошибки (5xx): когда проблема на стороне Google
Серверные ошибки — наиболее неприятная категория, потому что вы действительно ничего не можете изменить в своём коде для их немедленного устранения. Когда Nano Banana Pro возвращает код статуса 5xx, проблема кроется в инфраструктуре Google — перегруженных GPU-кластерах, сбоях бэкенд-сервисов или сетевых разрывах между внутренними службами. Ваша задача в таких ситуациях — реализовать корректную деградацию, установить подходящие стратегии повторных попыток и управлять ожиданиями пользователей относительно времени восстановления. Полный справочник по кодам ошибок, включая редкие серверные ошибки, не рассмотренные здесь, представлен в нашей специализированной статье.
503 Service Overloaded — самая распространённая серверная ошибка, составляющая примерно 15% всех сбоев Nano Banana Pro (Google AI Status Page, февраль 2026). Эта ошибка конкретно указывает на то, что конвейер генерации изображений Gemini 3 Pro достиг предела мощности. В часы пик (обычно с 10:00 до 16:00 PST по рабочим дням) доля ошибок 503 может достигать 45% от всех запросов, согласно данным мониторинга сообщества. Время восстановления существенно различается в зависимости от модели: генерация изображений Gemini 3 Pro обычно стабилизируется за 30-120 минут, тогда как Gemini 2.5 Flash восстанавливается за 5-15 минут благодаря более лёгкому вычислительному конвейеру. Ключевая стратегия — обнаруживать ошибки 503 и автоматически переключаться на модель Flash, если требуется немедленная генерация изображения, жертвуя качеством ради доступности.
500 Internal Server Error представляет собой временный сбой бэкенда, который отличается от 503 в важном аспекте: ошибки 500 обычно вызваны сбоями при обработке отдельных запросов, а не системными проблемами с мощностью. Это означает, что тот же самый запрос может быть успешно выполнен при следующей попытке. Реализуйте стратегию экспоненциального бэкоффа, начиная с 2 секунд и удваивая интервал до максимума в 64 секунды. На практике большинство ошибок 500 устраняется за 1-3 повторные попытки. Если ошибки 500 сохраняются более 10 минут, проверьте панель статуса Google AI на предмет инцидентов — это почти наверняка более масштабный сбой, а не проблема с вашим конкретным запросом. Учтите, что ошибки 500 также могут сигнализировать о проблеме с истечением срока временных URL изображений, если вы пытаетесь получить доступ к сгенерированным изображениям после истечения срока действия их URL.
502 Bad Gateway — самая редкая ошибка из серверной тройки, обычно появляющаяся во время развёртывания сервисов или при потере связи балансировщиков нагрузки Google с бэкенд-серверами Gemini. В отличие от ошибок 503, указывающих на проблемы с мощностью, ошибки 502 свидетельствуют о проблемах маршрутизации инфраструктуры. Эти ошибки почти всегда временные и устраняются в течение 5-30 минут без каких-либо действий с вашей стороны. Если вы видите кластер ошибок 502, появившихся внезапно, скорее всего, идёт процесс выкатки обновления. Лучший ответ — подождать 30 секунд перед повторной попыткой и записать временные метки, чтобы со временем выявить паттерны развёртывания.
Один практичный паттерн обработки всех ошибок 5xx в продакшене — подход «прогрессивного фоллбэка». Начните с повторной попытки исходного запроса к Gemini 3 Pro с экспоненциальным бэкоффом. После двух неудачных попыток автоматически переключитесь на Gemini 2.5 Flash Image (model ID gemini-2.5-flash-image), который работает на более лёгкой инфраструктуре и практически всегда доступен даже при проблемах с мощностью Pro. Если Flash тоже не отвечает после двух попыток, поставьте запрос в очередь для отложенной обработки и верните пользователю дружелюбное сообщение «генерация в процессе». Этот трёхуровневый подход — повтор, фоллбэк, очередь — обрабатывает более 99% всех серверных ошибок без ручного вмешательства и поддерживает отзывчивость вашего приложения даже во время инфраструктурных событий Google. Код для реализации этого паттерна представлен в разделе «Готовый код обработки ошибок для продакшена» ниже.
Клиентские ошибки (4xx): исправьте ваш запрос

Клиентские ошибки — это на самом деле хорошая новость: они означают, что проблема на вашей стороне, а значит, вы в состоянии исправить её без ожидания действий от Google. Самое важное, что нужно понять: одни только ошибки 429 составляют примерно 70% всех сбоев Nano Banana Pro. Если вы правильно решите проблему ограничения частоты запросов, вы устраните подавляющее большинство ошибок, с которыми столкнётся ваше приложение. Для подробного разбора самой распространённой клиентской ошибки читайте наше специализированное руководство по устранению RESOURCE_EXHAUSTED.
429 RESOURCE_EXHAUSTED — ошибка, которую вы будете встречать чаще всего при работе с Nano Banana Pro, и у неё есть несколько подтипов, требующих разных стратегий обработки. Поминутный лимит запросов срабатывает, когда вы превышаете лимит запросов в минуту (RPM) вашего тарифа — 15 RPM для бесплатного тарифа, 60 RPM для Google AI Pro ($19.99/мес, подписки Google AI, февраль 2026) и 300 RPM для Google AI Ultra ($249.99/мес). Суточный лимит квоты срабатывает, когда вы исчерпываете общий суточный лимит генерации изображений. А лимит токенов в минуту срабатывает, когда суммарное количество входных и выходных токенов по всем запросам превышает потолок тарифа. Решение для поминутных лимитов простое: реализуйте экспоненциальный бэкофф, начиная с 1 секунды, и ждите до 60 секунд между попытками. При исчерпании суточной квоты нужно либо повысить тариф, либо распределить запросы между несколькими API-ключами, либо поставить запросы в очередь на следующий день. Распространённая ошибка разработчиков — слишком агрессивные повторные попытки при ошибках 429: каждая повторная попытка засчитывается в лимит, создавая «спираль смерти», которая фактически продлевает период блокировки.
400 Bad Request указывает на структурную проблему в вашем API-запросе. Наиболее частые причины: отправка изображения, превышающего максимальный размер (примерно 20 МБ на запрос), использование неподдерживаемого формата изображения, промпт, превышающий лимит токенов (65 536 входных токенов для Gemini 3 Pro Image Preview, согласно ai.google.dev/docs/models, февраль 2026), или передача некорректных комбинаций параметров. Для диагностики ошибок 400 внимательно изучите сообщение об ошибке — API Google возвращает конкретные детали о том, какое поле или параметр неверны. Типичные решения включают сжатие входных изображений до размера менее 4 МБ, проверку соответствия соотношений сторон поддерживаемым диапазонам и контроль длины промпта. Особенно тонкая причина ошибок 400 возникает при использовании многоходовых диалогов для редактирования изображений: если история диалога превышает лимит токенов, весь запрос отклоняется, даже если текущий промпт короткий.
403 PERMISSION_DENIED делится на две отдельные категории. Первая — ошибка аутентификации: ваш API-ключ недействителен, просрочен или для него не включён Gemini API в вашем проекте Google Cloud. Решение — создать новый API-ключ в Google AI Studio, убедиться, что Generative Language API включён, и проверить настройку биллинга, если вы на платном тарифе. Вторая категория — географические ограничения: доступ к сервисам Gemini API заблокирован в некоторых странах. Если вы находитесь в ограниченном регионе, вам потребуется маршрутизировать запросы через поддерживаемый регион или использовать прокси-сервис API. Всегда проверяйте работоспособность API-ключа простым текстовым запросом к Gemini, прежде чем отлаживать более сложные задачи генерации изображений — это позволяет отделить проблемы аутентификации от ошибок, связанных с изображениями.
Обновление политики IMAGE_SAFETY в январе 2026: что изменилось и как адаптироваться

Обновление политики IMAGE_SAFETY в январе 2026 года стало самым значительным изменением в системе фильтрации контента Nano Banana Pro с момента запуска, и оно застало многих разработчиков врасплох, поскольку кардинально изменило, какие фильтры безопасности можно контролировать, а какие — нет. Понимание этой двухуровневой архитектуры теперь жизненно необходимо для всех, кто строит приложения на базе Nano Banana Pro: без учёта этих изменений вы столкнётесь с необъяснимыми сбоями генерации, которые никакие настройки API не смогут исправить. Подробные стратегии работы в рамках этих ограничений описаны в нашем руководстве по стратегиям обхода фильтрации контента Nano Banana Pro.
Суть изменений в том, что Nano Banana Pro теперь работает по трёхэтапному конвейеру безопасности вместо прежней одноуровневой системы проверки промптов, существовавшей до января 2026 года. Этап 1 — модерация промпта, при которой текст сканируется на наличие чувствительных ключевых слов ещё до начала генерации. Этап 2 — мониторинг генерации, при котором в реальном времени анализируются визуальные признаки в процессе создания изображения. Этап 3 — модерация вывода, при которой готовое изображение проверяется классификаторами потенциального вреда перед выдачей пользователю. Эти три этапа формируют два пользовательских уровня. Уровень 1 охватывает настраиваемые фильтры безопасности промптов (категории HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HATE_SPEECH и новая категория COPYRIGHT_INFRINGEMENT, добавленная в январе 2026 года). Уровень 2 охватывает ненастраиваемые фильтры безопасности изображений, работающие на этапах 2 и 3.
Практическая разница между этими уровнями огромна. Когда запрос блокирует уровень 1, вы видите finishReason: "SAFETY" в ответе API вместе с конкретными safetyRatings, указывающими, какая категория сработала. Это можно исправить, установив safety_settings в вызове API для снижения порогов — установка всех категорий на BLOCK_NONE полностью устраняет блокировки уровня 1 и является рекомендуемой конфигурацией для продакшн-приложений, выполняющих собственную модерацию контента. Когда запрос блокирует уровень 2, вы видите finishReason: "IMAGE_SAFETY" или сообщение "generated images may contain unsafe content". Изменить настройки API для этого невозможно, поскольку фильтрация работает на уровне инфраструктуры модели. Единственное решение — переписать промпт.
Причиной этого изменения политики стал инцидент с прекращением использования интеллектуальной собственности Disney в декабре 2025 года. Пользователи обнаружили, что могут генерировать изображения персонажей Disney, Marvel, Star Wars и Pixar с помощью Nano Banana Pro, что привело к юридической реакции. Ответ Google был быстрым: обновление января 2026 года добавило агрессивное распознавание авторских прав на известных IP-персонажей в уровень 2, а также усилило защиту от CSAM, предотвращение дипфейков и безопасность несовершеннолетних. Фильтры уровня 2 анализируют реальные пиксели сгенерированного изображения, а не только текст промпта, поэтому одна лишь инженерия промптов не может полностью их обойти.
Для разработчиков, адаптирующихся к этим изменениям, стратегия зависит от того, какой уровень блокирует контент. Если finishReason равен SAFETY, установите все пороги категорий вреда на BLOCK_NONE в safety_settings, и проблема исчезнет. Если finishReason равен IMAGE_SAFETY, необходимо переписать промпт, используя три техники. Во-первых, замените имена персонажей или ссылки на IP на общие описания (например, «принцесса в голубом платье» вместо имени конкретного персонажа). Во-вторых, добавьте явные указания стиля, такие как «цифровая иллюстрация в акварельном стиле», чтобы отвести генерацию от фотореалистичных результатов, вызывающих срабатывание детектора дипфейков. В-третьих, избегайте сочетания человеческих фигур с описаниями одежды или поз, которые могут активировать систему защиты несовершеннолетних. Тестирование сообществом показывает, что эти техники промпт-инженерии достигают 70-80% успеха для ранее заблокированных промптов. Когда блокировки IMAGE_SAFETY сохраняются несмотря на изменения промпта, рассмотрите альтернативные сервисы генерации в качестве резерва — такие провайдеры, как laozhang.ai, предлагают мультимодельный доступ по цене $0.05 за изображение через унифицированные точки API, позволяя обходить постоянные блокировки без изменения архитектуры приложения.
Влияние обновления января 2026 года существенно различается в зависимости от области применения. Приложения электронной коммерции, генерирующие макеты товаров с моделями в одежде, оценены как подвергшиеся высокому влиянию — фильтры защиты несовершеннолетних иногда срабатывают на безобидных модных изображениях, особенно когда промпт описывает молодо выглядящих моделей. Креативные дизайнерские приложения, ранее генерировавшие фан-арт или пародии на известных персонажей, пострадали критически — новая категория COPYRIGHT_INFRINGEMENT в уровне 2 блокирует эти запросы на уровне анализа изображения, а не промпта, что означает перехват даже сильно абстрагированных описаний узнаваемых персонажей. Универсальные приложения, генерирующие пейзажи, объекты, абстрактное искусство или нецеллебрити-изображения людей, минимально затронуты обновлением и практически не заметят изменения в частоте блокировок. Ключевой диагностический вопрос всегда один: проверяйте finishReason в ответе API. Если там SAFETY — проблема в конфигурации. Если IMAGE_SAFETY — контент вызвал срабатывание фильтра, и вам нужно изменить подход к промпту.
Лимиты запросов и квоты: бесплатный vs Pro vs API
Точное понимание вашего потолка лимитов критически важно для планирования мощности и диагностики того, является ли ошибка 429 проблемой поминутного лимита или суточной квоты. Ценовая структура Nano Banana Pro включает пять различных тарифов, каждый с кардинально разными лимитами, определяющими количество и скорость генерации изображений. Подробное сравнение с анализом цен представлено в нашей статье о детальном сравнении лимитов бесплатного и Pro тарифов.
| Тариф | Месячная стоимость | Изображений в день | RPM | Стоимость за изображение | Подходит для |
|---|---|---|---|---|---|
| Бесплатный (Gemini App) | $0 | ~2/день | N/A | $0 | Случайное тестирование |
| Бесплатный (API) | $0 | Ограничено | 15 | $0 | Разработка/прототипирование |
| Google AI Pro | $19.99/мес | ~100/день | 60 | ~$0.20 | Индивидуальные создатели |
| Google AI Ultra | $249.99/мес | ~1 000/день | 300 | ~$0.25 | Профессиональные команды |
| С оплатой по использованию (API) | По потреблению | Без суточного лимита | По тарифу | $0.039-$0.134 | Продакшн-приложения |
Данные о ценах взяты из ai.google.dev/pricing и gemini.google/subscriptions, проверены в феврале 2026 г. Примечание: бесплатное выделение различается для Gemini App (примерно 2 изображения в день через веб-интерфейс) и API (ограниченная бесплатная квота, которую Google на официальной странице цен отмечает как «Not available» для генерации изображений — это, вероятно, отражает ограничения, специфичные для API, тогда как Gemini App сохраняет небольшой бесплатный лимит).
Тариф API с оплатой по использованию заслуживает особого внимания, поскольку является наиболее экономичным вариантом для продакшена. При стоимости около $0.134 за изображение (разрешение 1K/2K) для Gemini 3 Pro Image Preview и $0.039 за изображение для Gemini 2.5 Flash (ai.google.dev/pricing, февраль 2026), стоимость за изображение значительно ниже подписочных планов, как только вы превышаете порог примерно 150 изображений в месяц. Компромисс в том, что доступ по API требует более технической настройки, и вы самостоятельно управляете ограничениями запросов. Для команд, генерирующих сотни или тысячи изображений ежедневно, API — однозначный победитель как по экономичности, так и по гибкости. Если вы сейчас на подписке Pro и регулярно упираетесь в лимит ~100/день, переход на API с оплатой по использованию полностью снимает суточный лимит — вы платите только за сгенерированное, а лимиты управляются через квоты, которые можно увеличить по запросу. Для оптимизации стоимости сверх нативных цен Google платформы вроде laozhang.ai предлагают доступ к Nano Banana Pro по $0.05 за изображение без ограничений по частоте запросов, что особенно привлекательно для приложений с большим объёмом генерации.
Понимание того, какая именно квота исчерпана, критически важно для выбора правильной стратегии восстановления. Когда вы получаете ошибку 429, сообщение об ошибке обычно содержит подсказку о том, какая конкретная квота была превышена. Если вы видите Quota exceeded for quota metric 'generate_content' and limit 'GenerateContent request limit per minute', решение простое — подождите 60 секунд, и ваш поминутный лимит сбросится. Если сообщение ссылается на суточный лимит, вы заблокированы до полуночи по тихоокеанскому времени. А если упоминается лимит токенов в минуту, нужно уменьшить либо частоту, либо объём запросов — это особенно актуально для многоходовых диалогов редактирования изображений, накапливающих большие истории токенов. Логирование этих различий в коде обработки ошибок — это разница между восстановлением за 60 секунд и простоем на 24 часа.
Готовый код обработки ошибок для продакшена
Переход от понимания ошибок к их автоматической обработке в продакшене требует надёжной системы повторных попыток с логикой фоллбэка. Следующая реализация на Python демонстрирует, как объединить экспоненциальный бэкофф, настройку безопасности уровня 1, фоллбэк модели при ошибках 503 и корректное логирование в единую переиспользуемую функцию. Этот код готов для копирования напрямую в ваше приложение.
pythonimport google.generativeai as genai import time import random import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger("nano_banana_pro") SAFETY_SETTINGS = [ {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"}, ] def generate_image_with_retry( prompt: str, api_key: str, max_retries: int = 5, primary_model: str = "gemini-3-pro-image-preview", fallback_model: str = "gemini-2.5-flash-image", ) -> dict: """Generate image with exponential backoff, safety config, and model fallback.""" genai.configure(api_key=api_key) current_model = primary_model for attempt in range(max_retries): try: model = genai.GenerativeModel(current_model) response = model.generate_content( prompt, safety_settings=SAFETY_SETTINGS, generation_config={"response_modalities": ["TEXT", "IMAGE"]}, ) # Check finishReason for safety blocks if response.candidates: finish_reason = response.candidates[0].finish_reason.name if finish_reason == "SAFETY": logger.warning("Layer 1 SAFETY block — check safety_settings") return {"status": "blocked_layer1", "reason": finish_reason} elif finish_reason == "IMAGE_SAFETY": logger.warning("Layer 2 IMAGE_SAFETY block — rewrite prompt") return {"status": "blocked_layer2", "reason": finish_reason} elif finish_reason == "STOP": return {"status": "success", "response": response} return {"status": "success", "response": response} except Exception as e: error_str = str(e) # 429: Rate limit — exponential backoff if "429" in error_str or "RESOURCE_EXHAUSTED" in error_str: wait = min(2 ** attempt + random.uniform(0, 1), 60) logger.info(f"429 rate limit, waiting {wait:.1f}s (attempt {attempt+1})") time.sleep(wait) continue # 503: Overloaded — switch to fallback model if "503" in error_str or "overloaded" in error_str.lower(): if current_model != fallback_model: logger.info(f"503 overloaded, switching to {fallback_model}") current_model = fallback_model continue wait = min(2 ** attempt * 5, 120) logger.info(f"503 on fallback too, waiting {wait:.1f}s") time.sleep(wait) continue # 500/502: Transient — simple retry if "500" in error_str or "502" in error_str: wait = min(2 ** attempt + random.uniform(0, 1), 30) logger.info(f"Server error, retrying in {wait:.1f}s") time.sleep(wait) continue # Unknown error — do not retry logger.error(f"Unhandled error: {error_str}") return {"status": "error", "message": error_str} return {"status": "max_retries_exceeded", "model": current_model}
Этот код автоматически обрабатывает четыре наиболее критических сценария. Для ошибок лимита запросов 429 реализован экспоненциальный бэкофф с джиттером во избежание проблемы «стадного эффекта», когда несколько запросов одновременно упираются в лимит. Для ошибок перегрузки 503 код сначала переключается на более быструю модель Gemini 2.5 Flash в качестве фоллбэка, прежде чем прибегать к длительному ожиданию — этот компромисс между качеством изображения и доступностью обычно приемлем в продакшене. Для временных ошибок 500/502 выполняются повторные попытки с умеренным бэкоффом, поскольку они обычно устраняются за несколько попыток. А для блокировок IMAGE_SAFETY (как уровня 1, так и уровня 2) функция немедленно возвращает результат с чётким статусом, указывающим, какой уровень заблокировал запрос, — повторные попытки с тем же промптом против того же фильтра бессмысленны.
Стратегия фоллбэка модели заслуживает особого акцента. Когда Gemini 3 Pro возвращает ошибки 503 при пиковой нагрузке, Gemini 2.5 Flash почти всегда доступен, поскольку требует меньше вычислительных ресурсов. Разница в стоимости существенна — $0.039 за изображение для Flash против $0.134 для Pro (ai.google.dev/pricing, февраль 2026), так что вы фактически экономите деньги в периоды деградации. Подробный пошаговый алгоритм отладки, выходящий за рамки автоматических повторных попыток, описан в нашем руководстве по отладке.
Помимо базовой логики повторных попыток, стоит реализовать три паттерна для продакшена. Первый — добавьте очередь запросов с «мёртвой очередью» для запросов, провалившихся во всех попытках: это предотвращает видимые пользователю ошибки и позволяет обработать неудачные запросы в непиковые часы, когда у Nano Banana Pro больше мощности. Второй — реализуйте логику «предохранителя» (circuit breaker), которая прекращает отправку запросов к конкретной модели после обнаружения паттерна ошибок 503 (например, 5 сбоев за 60 секунд), автоматически перенаправляя весь трафик на резервную модель до успешной проверки работоспособности. Третий — добавьте мониторинг и оповещения, отслеживающие частоту ваших ошибок по категориям в реальном времени. Когда доля ошибок 429 превышает 10% запросов, вы приближаетесь к лимитам тарифа и стоит рассмотреть повышение или распределение нагрузки между дополнительными API-ключами. Когда ошибки 503 превышают 25%, вероятно, происходит событие исчерпания мощности, и ваш «предохранитель» должен автоматически активировать резервную модель. Эти паттерны трансформируют обработку ошибок из реактивной отладки в проактивную инженерию надёжности.
Когда стоит рассмотреть альтернативных провайдеров
Не у каждой ошибки Nano Banana Pro есть быстрое решение. Если вы сталкиваетесь с постоянными ошибками 503 в часы пик, повторяющимися блокировками IMAGE_SAFETY, устойчивыми к промпт-инженерии, или суточными лимитами квот, ограничивающими ваше продакшн-приложение, возможно, пора оценить мультимодельные стратегии. Это не про отказ от Nano Banana Pro — он остаётся одной из наиболее мощных моделей генерации изображений — а про встраивание отказоустойчивости в архитектуру вашего приложения. Детальное сравнение качества и надёжности представлено в нашей статье сравнение с альтернативными моделями генерации изображений, такими как Flux2.
Наиболее практичный подход — реализовать паттерн «основной/резервный», где Nano Banana Pro обрабатывает большинство запросов, а альтернативный провайдер подхватывает сбои. Сервисы вроде laozhang.ai созданы именно для этого: они предоставляют единую точку API, агрегирующую несколько моделей генерации изображений (включая сам Nano Banana Pro, Flux, DALL-E и другие) по единой цене $0.05 за изображение. Когда ваш основной вызов Nano Banana Pro завершается ошибкой 503 или блокировкой IMAGE_SAFETY, ваш код обработки ошибок перенаправляет запрос на альтернативную точку без необходимости переписывания промпта или изменения API. Экономическая выгода очевидна — вы платите только за фоллбэк-запросы, которые действительно происходят, и избегаете видимых пользователю сбоев, подрывающих доверие к вашему приложению.
Оценивайте переход на альтернативного провайдера или мультимодельную стратегию, если выполняются три или более из этих условий: доля ошибок 503 в часы пик превышает 20%, блокировки IMAGE_SAFETY затрагивают более 10% ваших легитимных промптов, суточный объём генерации стабильно превышает квоту вашего тарифа, и вам требуются SLA на уровне 99.9%+, которые не может гарантировать модель в статусе Preview. Gemini 3 Pro Image Preview (model ID gemini-3-pro-image-preview) находится в статусе Preview по состоянию на февраль 2026 (ai.google.dev/docs/models), что означает отсутствие гарантий SLA для продакшена от Google. Построение мультипровайдерной отказоустойчивости сейчас — это инвестиция в стабильность.
Стоимость реализации добавления резервного провайдера минимальна при грамотно структурированной обработке ошибок. В представленном выше коде добавьте вторичный вызов API в ветке возврата max_retries_exceeded, маршрутизирующий на вашу резервную точку. Ключевой архитектурный принцип — логика вашего приложения никогда не должна зависеть от единственного провайдера генерации изображений. Абстрагируйте вызов генерации за интерфейсом, принимающим промпт и возвращающим изображение, и меняйте лежащую в основе реализацию в зависимости от доступности. Этот паттерн широко применяется в зрелых продакшн-системах, работающих с генерацией изображений в масштабе, и превращает ошибки Nano Banana Pro из сбоев приложения в корректные компромиссы по качеству, невидимые для конечных пользователей.
FAQ
Как долго длится ошибка 429 RESOURCE_EXHAUSTED?
Большинство ошибок 429 в Nano Banana Pro устраняются в течение 1-5 минут при поминутных лимитах. Если вы исчерпали суточную квоту, лимит сбрасывается в полночь по тихоокеанскому времени. Главная ошибка, которой следует избегать — агрессивные повторные попытки: каждая попытка в период «остывания» засчитывается в ваш лимит, потенциально продлевая блокировку. Реализуйте экспоненциальный бэкофф, начиная с 1-2 секунд, с максимальным ожиданием 60 секунд для поминутных лимитов.
Можно ли обойти фильтр IMAGE_SAFETY в Nano Banana Pro?
Обойти фильтры IMAGE_SAFETY уровня 2 невозможно, поскольку они работают на уровне инфраструктуры Google, а не через конфигурацию API. Однако блокировки SAFETY уровня 1 можно устранить, установив все категории safety_settings на BLOCK_NONE в вызове API. Для блокировок уровня 2 единственный подход — промпт-инженерия: замените имена персонажей общими описаниями, добавьте явные указания художественного стиля и избегайте сочетания человеческих фигур с потенциально триггерными описаниями. Тестирование сообществом показывает 70-80% успеха с этими техниками.
Почему Nano Banana Pro постоянно выдаёт «generated images may contain unsafe content»?
Это сообщение указывает на блокировку IMAGE_SAFETY уровня 2, которая была существенно усилена в обновлении политики января 2026 года. Фильтр теперь проверяет само сгенерированное изображение (а не только ваш промпт) по базам авторских прав, детекторам CSAM и классификаторам дипфейков. Если вы видите это сообщение, ваш промпт генерирует визуальные признаки, вызывающие срабатывание одного из этих классификаторов. Попробуйте добавить явные указания стиля, такие как «акварельная иллюстрация» или «плоская векторная графика», чтобы отвести генерацию от фотореалистичных стилей, активирующих детектор дипфейков.
В чём разница между finishReason SAFETY и IMAGE_SAFETY?
finishReason: SAFETY означает, что уровень 1 (модерация промпта) заблокировал ваш запрос до начала генерации изображения. Это настраивается — установите пороги safety_settings в вызове API для решения проблемы. finishReason: IMAGE_SAFETY означает, что уровень 2 (мониторинг генерации или модерация вывода) заблокировал запрос во время или после создания изображения. Это невозможно настроить ни через какие параметры API. Решение для SAFETY — всегда конфигурация; решение для IMAGE_SAFETY — всегда переписывание промпта.
Можно ли использовать Nano Banana Pro бесплатно?
У Nano Banana Pro есть ограниченный бесплатный тариф через Gemini App (примерно 2 изображения в день). Для доступа через API бесплатный тариф сильно ограничен — официальная страница цен Google отмечает бесплатную генерацию изображений через API как «Not available» (ai.google.dev/pricing, февраль 2026). Платные варианты начинаются с $19.99/мес за Google AI Pro (примерно 100 изображений/день) или API с оплатой по использованию от $0.039 до $0.134 за изображение в зависимости от модели и разрешения. Для наиболее полного разбора читайте наше детальное сравнение лимитов бесплатного и Pro тарифов.
Как проверить, работает ли Nano Banana Pro?
Сначала проверьте панель статуса Google AI на предмет текущих инцидентов. Если на странице статуса нет проблем, а вы по-прежнему получаете ошибки 503, скорее всего, проблема в региональных ограничениях мощности, а не в глобальном сбое. Попробуйте сгенерировать простое тестовое изображение с базовым промптом, чтобы подтвердить, связана ли проблема конкретно с Nano Banana Pro или с параметрами вашего запроса. На форуме сообщества discuss.ai.google.dev также публикуются отчёты в реальном времени от других разработчиков, сталкивающихся с аналогичными проблемами.
