# Nano Banana Pro пишет `RESTRICTED by System Instructions`? Сначала проверьте маршрут

> Сообщение RESTRICTED by System Instructions само по себе не объясняет отказ. Проверьте доступный путь Pro, повторите допустимую задачу и убедитесь, что вернулось изображение, а не только текст.

- URL: https://blog.laozhang.ai/ru/posts/nano-banana-pro-restricted-by-system-instructions
- Published: 2026-04-14
- Updated: 2026-10-07
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Topic: Генерация изображений
- Tags: Nano Banana Pro, Gemini Apps, AI Mode, Gemini API, устранение неполадок

---
Если Nano Banana Pro пишет `RESTRICTED by System Instructions`, сначала проверьте, **каким способом вы запрашиваете изображение Pro**. В приложении Gemini это повторное создание уже готовой картинки через **«Пересоздать в Pro» (`Redo with Pro`)**; в поисковом AI Mode на компьютере — выбор **Pro** при выполнении условий доступа; в Gemini API — запрос к **`gemini-3-pro-image`** и проверка возвращённых данных изображения.

Сама фраза не позволяет установить причину. В проверенных [перечнях причин блокировки и завершения Gemini API](https://ai.google.dev/api/generate-content) она не указана как отдельный код. Сообщение интерфейса, отказ обычным текстом и значение `SAFETY` в ответе API — разные сведения. Поэтому не стоит сразу считать, что аккаунт заблокирован или исходная задача нарушает правила.

Ниже — порядок восстановления разрешённой генерации по документации Google на 6 октября 2026 года. Операции с аккаунтом и реальные вызовы модели здесь не тестировались; пример запроса и обработка ответов проверены локально на искусственных данных.

## Где возник отказ: выберите свою проверку

![Разные проверки Gemini, AI Mode и Gemini API: способ запуска Pro, условия доступа и признаки полученного изображения](https://blog.laozhang.ai/posts/ru/nano-banana-pro-restricted-by-system-instructions/img/product-check-map.webp)

| Что вы наблюдаете | Первое действие | Что подтвердит результат |
|---|---|---|
| В Gemini нет «Пересоздать в Pro» | Проверить модель чата, подходящий платный план и лимит Nano Banana 2 | Действие появилось под изображением, повторная генерация завершилась картинкой |
| В AI Mode нет нужного режима | Проверить реальные условия страны, возраста, языка и плана; найти меню Pro | Выбран Pro, после Create images получено изображение |
| API возвращает текст или пустой результат | Проверить модель, HTTP-ответ, `promptFeedback`, все `candidates` и данные изображения | Полученный файл открывается; нет признаков блокировки или незавершённого ответа |
| Простой запрос проходит, а запрос с референсами — нет | Сравнить входные файлы, формат, параметры и контекст по одному изменению | Выявлено конкретное условие, связанное с отказом; причина содержания ещё требует подтверждения |

У каждого способа доступа собственные условия. Подписка Google AI в приложении не подтверждает доступ проекта к API. Успешная картинка Nano Banana 2 не подтверждает, что сработала Pro. Переключение между продуктами полезно при выборе доступного инструмента, но не объясняет причину отказа в прежнем продукте.

## Gemini Apps: как вернуть «Пересоздать в Pro»

В текущем [руководстве Google для Gemini](https://support.google.com/gemini/answer/14286560?hl=en) первое изображение создаётся через Nano Banana 2 или Nano Banana 2 Lite. При выборе модели чата Flash Lite используется Lite; с Flash или Pro — Nano Banana 2. Даже надпись **Pro** над чатом ещё не означает, что первое изображение создано Nano Banana Pro.

Для повторной генерации через Pro нужен подходящий платный Google AI Plan и выбранная модель чата **Pro**. На компьютере выполните такую последовательность:

1. Войдите в аккаунт с доступом к созданию изображений и выберите модель чата **Pro**.
2. Откройте **Images** в боковой панели и задайте допустимую задачу. Дождитесь первой картинки Nano Banana 2.
3. В правом нижнем углу готового изображения откройте **More** — меню «Ещё» с тремя точками.
4. Выберите **Redo with Pro** — «Пересоздать в Pro».
5. Дождитесь нового изображения. Откройте его и проверьте, выполнена ли задача: наличие картинки важнее фразы «готово» в чате.

Если кнопки нет, сначала сверьте условия этого аккаунта. Для личных, рабочих и учебных аккаунтов правила доступа различаются; у последних важна лицензия организации. Возрастные условия генерации и редактирования тоже различаются: справка не устанавливает один общий запрет на создание всех изображений до 18 лет, но редактирование для пользователей младше 18 лет недоступно. Проверяйте именно нужное действие и применимые условия в [справке Gemini](https://support.google.com/gemini/answer/14286560?hl=en).

**Исчерпанный дневной лимит Nano Banana 2 также останавливает дополнительные повторные генерации Pro.** Новый чат, повторный вход и очистка браузера не являются подтверждённым способом восстановить эту квоту. Если интерфейс сообщает о лимите, ориентируйтесь на его уведомление; универсального времени ожидания для любого аккаунта обещать нельзя.

Если кнопка доступна, но после нажатия появляется только текстовый отказ, сохраните точное сообщение и повторите одну обычную разрешённую задачу через то же действие. Не сравнивайте его с первоначальной генерацией Nano Banana 2: это другая модель изображения.

На [форуме помощи Gemini](https://support.google.com/gemini/thread/428201184/redo-with-pro-image-generation-is-completely-broken-for-paid-user?hl=en) пользователь в апреле описывал именно такое различие: базовые картинки создавались, а повтор через Pro давал текст. Ответы участников и Product Expert — сведения сообщества, а не подтверждение текущей аварии Google или гарантированный способ починить ваш аккаунт. Обновление приложения может устранить локальную неисправность, но не доказывает восстановление доступа: проверкой остаётся завершённая генерация через Pro.

## AI Mode: проверьте Pro, английский язык и условия аккаунта

Для **AI Mode в Google Search на компьютере** текущая [инструкция Google](https://support.google.com/websearch/answer/16649374?hl=en) указывает меню **Pro** в строке **Ask anything**, затем **«+» → Create images**. Старое указание «выберите Thinking with 3 Pro» не соответствует нынешнему разделу этой инструкции для компьютера.

Доступ к Pro в AI Mode сейчас описан для английского языка: для пользователей старше 18 лет в США, а также подписчиков Google AI Pro или Ultra в перечисленных Google странах. Это отдельные условия от общей функции создания изображений в AI Mode, которая поддерживает больше языков. Наличие русскоязычного интерфейса или доступ к обычной генерации не доказывает доступ к Pro.

**Язык статьи не определяет вашу страну.** В прочитанном списке стран для Pro Россия не указана; если вы действительно пользуетесь сервисом из России, эту ветку нельзя считать доступной по данным текущей справки. Русскоязычный читатель в другой стране проверяет условия своей страны, возраста и плана. Не меняйте сведения о местоположении ради появления кнопки.

Если условия выполнены:

1. Откройте AI Mode и выберите **Pro** в меню строки запроса.
2. Нажмите **«+»**, затем **Create images**.
3. Опишите задачу на английском языке и отправьте запрос.
4. Проверьте, что появилось изображение; откройте результат и убедитесь, что он соответствует запросу.

Google пишет, что Pro оптимизирована для инфографики и диаграмм. **Это не означает запрет всех остальных типов картинок.** Из этой характеристики нельзя вывести, что обычная иллюстрация автоматически вызвала отказ. Если режим выбран правильно, но генерация не завершается, сохраните сообщение и проверьте указания о текущем лимите. Его величина может меняться с доступной мощностью, спросом и планом; фиксированное число попыток или срок восстановления здесь не установлены.

## AI Studio и API: запросите изображение на текущей Pro-модели

Для нового запроса используйте стабильный идентификатор **`gemini-3-pro-image`**, указанный в [карточке модели Google](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image). Старый `gemini-3-pro-image-preview` встречается в исторических примерах; наличие стабильной версии само по себе не доказывает, что старый идентификатор отключён во всех средах.

В AI Studio проверьте фактический выбор модели и доступ вашего проекта. Для первого диагностического запроса уберите необязательные файлы и длинную историю, попросите создать простое изображение. После ответа проверьте именно изображение, а не текстовое согласие выполнить задачу.

В API можно использовать следующий минимальный REST-запрос. Он основан на [руководстве Google по генерации изображений](https://ai.google.dev/gemini-api/docs/generate-content/image-generation), сохраняет стандартные средства защиты и не меняет системные инструкции. Предполагается, что у вас уже есть разрешённый доступ проекта, настроенный ключ в `GEMINI_API_KEY` и доступная квота. **Отправка выполняет реальный запрос и может тарифицироваться.**

Сохраните тело в `request.json`:

```json
{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "Создай изображение: синяя керамическая чашка на белом столе, мягкий дневной свет, без текста."
    }]
  }],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"]
  }
}
```

Отправьте его на ту же Pro-модель, с которой вы диагностируете проблему:

```bash
curl -sS --fail-with-body \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image:generateContent" \
  -H "x-goog-api-key: ${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  --data-binary @request.json \
  --output response.json
```

Ответ HTTP 401, 403, 429 или 503 сначала разбирайте как ошибку авторизации, доступа, квоты или доступности сервиса с учётом конкретного сообщения. Не приписывайте ему смысл содержательной блокировки только из-за похожих слов в интерфейсе. Для HTTP 200 переходите к полям JSON: успешный статус ещё не означает готовую картинку.

### Какие поля объясняют отсутствие картинки

[Справочник generateContent](https://ai.google.dev/api/generate-content) разделяет сведения о входном запросе и о результате каждого кандидата:

| Поле или значение | Что известно | Что делать дальше |
|---|---|---|
| `promptFeedback.blockReason` | Есть причина блокировки входного запроса; кандидаты могут отсутствовать | Сохранить значение и сообщение; не обращаться к `candidates[0]` без проверки |
| `SAFETY`, `IMAGE_SAFETY`, `PROHIBITED_CONTENT` и другие явные причины содержания | Ответ сообщает о соответствующей блокировке | Смотреть доступные `safetyRatings` и контекст, оценить допустимость задачи |
| `OTHER` или `IMAGE_OTHER` | Причина не уточнена | Проверить входные данные и собрать воспроизводимый пример; не объявлять причину установленной |
| `NO_IMAGE` | Изображение не произведено | Проверить модель, запрос изображения и содержимое всех частей ответа |
| `MAX_TOKENS` | Ответ остановлен по лимиту токенов | Проверить полноту результата; не считать его завершённым только из-за наличия части данных |
| `STOP` | Кандидат завершён обычным образом | Найти данные изображения: одного `STOP` недостаточно |

Просмотрите все `candidates`, их `finishReason`, `finishMessage`, `safetyRatings` и `content.parts`. В REST данные картинки обычно находятся в `inlineData` с `mimeType` и `data`; SDK могут использовать иные имена полей. Не смешивайте REST-ключи в camelCase и поля Python SDK в snake_case.

### Как сохранить ответ и проверить файл

Следующий обработчик **не обращается к API**. Он читает сохранённый REST-ответ `response.json`, показывает обратную связь и извлекает данные изображений. Сохраните его как `read_response.py` и выполните `python3 read_response.py` в той же папке. Нужен Python 3; дополнительные библиотеки не требуются.

```python
import base64
import json
from pathlib import Path

response = json.loads(Path("response.json").read_text(encoding="utf-8"))
if not isinstance(response, dict):
    raise SystemExit("Ожидался объект JSON")
if response.get("error"):
    print(response["error"])
    raise SystemExit("API вернул ошибку")

feedback = response.get("promptFeedback") or {}
if not isinstance(feedback, dict):
    feedback = {}
print("modelVersion:", response.get("modelVersion"))
print("responseId:", response.get("responseId"))
print("promptFeedback:", feedback)

candidates = response.get("candidates") or []
if not isinstance(candidates, list):
    candidates = []
extensions = {"image/png": ".png", "image/jpeg": ".jpg",
              "image/webp": ".webp"}
image_count = 0
incomplete = bool(feedback.get("blockReason")) or not candidates
for index, candidate in enumerate(candidates):
    if not isinstance(candidate, dict):
        incomplete = True
        continue
    reason = candidate.get("finishReason")
    print("candidate", index, reason, candidate.get("finishMessage"))
    print("safetyRatings:", candidate.get("safetyRatings"))
    incomplete |= reason != "STOP"
    content = candidate.get("content") or {}
    parts = content.get("parts") if isinstance(content, dict) else []
    if not isinstance(parts, list):
        parts = []
    for part_index, part in enumerate(parts):
        if not isinstance(part, dict):
            continue
        if part.get("text"):
            print(part["text"])
        blob = part.get("inlineData")
        if not isinstance(blob, dict):
            continue
        extension = extensions.get(blob.get("mimeType"))
        if not extension:
            continue
        try:
            data = base64.b64decode(blob.get("data", ""), validate=True)
        except (ValueError, TypeError):
            incomplete = True
            print("Не удалось прочитать данные изображения")
            continue
        if not data:
            incomplete = True
            continue
        output = Path(f"candidate-{index}-part-{part_index}{extension}")
        output.write_bytes(data)
        image_count += 1
        print("Файл для проверки:", output)

if not image_count:
    raise SystemExit("Изображений нет: проверьте обратную связь и запрос")
if incomplete:
    raise SystemExit("Есть файлы, но ответ не подтверждён как завершённый")
print("Откройте файлы: проверьте, что они читаются и отвечают задаче")
```

Декодирование Base64 подтверждает только извлечение байтов. **Откройте сохранённый файл в просмотрщике**, проверьте формат, размеры и содержание. Нечитаемый файл, текст вместо картинки, неполный ответ или изображение с признаками блокировки не являются подтверждением исправления. Для API сопоставьте запрошенную модель с доступным `modelVersion` и сохраните оба значения; отсутствие необязательного поля не нужно выдавать за отдельную ошибку.

## Простой запрос сработал, а референсы вызывают отказ: что это доказывает

Успешная нейтральная генерация на той же Pro-модели показывает, что **хотя бы одна задача выполнима при этих условиях**. Из неё не следует, что исходный запрос запрещён. Между двумя попытками могли измениться изображения, MIME-тип, доступность файла, разрешение, параметры, длина истории или само содержание.

На [форуме Google AI Developers](https://discuss.ai.google.dev/t/persistent-other-block-reason-error-on-nano-banana-pro-gemini-3-pro-image-preview-with-reference-images/143901) автор сообщения от 7 мая описывал съёмку одежды с тремя–пятью референсами: запрос без них работал, а с ними возвращался `OTHER`. Предположения о флаге аккаунта и механизме проверки были вопросами автора, а не подтверждённым объяснением Google. Этот пример показывает зависимость от входных условий; он не устанавливает нарушение правил фотографиями одежды.

Для разрешённой задачи двигайтесь по одному изменению:

1. Сохраните модель, способ доступа, параметры и точное сообщение исходной попытки.
2. Проверьте, что файл читается локально, его реальный формат совпадает с MIME-типом и он передан способом, который поддерживает API. Для URI проверьте доступность ресурса выбранному API, а не только вашему браузеру.
3. Если задача допускает это сравнение, повторите её с одним принадлежащим вам нейтральным референсом вместо набора файлов. Успех укажет на различие входных условий, но ещё не объяснит его.
4. Отдельно проверьте короткий запрос без файлов на той же Pro-модели. При проверке контекста используйте отдельную короткую историю; новый чат не восстанавливает квоту.
5. Сравните структурированную обратную связь. При `OTHER` или `IMAGE_OTHER` сохраните неопределённость: возможны ложное срабатывание проверки, ошибка формата, ресурса или контекста, но конкретная причина пока неизвестна.

Не заменяйте контрольный запрос обращением к текстовой модели: её ответ не проверяет генерацию изображения Pro. И не продолжайте бесконечные платные повторы, когда они перестали давать новые сведения.

## Если обратная связь указывает на ограничение содержания

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

[Документация безопасности Gemini](https://ai.google.dev/gemini-api/docs/safety-settings) различает настраиваемые фильтры и основные меры защиты, которые нельзя отключить; среди примеров — защита детей. Эти настройки API не являются переключателями приложения Gemini. Добавление собственной `systemInstruction` тоже не отменяет правила Google: это поле инструкций разработчика в запросе.

Сохраняйте стандартные средства защиты. Если обычный разрешённый запрос блокируется и причина неясна, полезнее подготовить проверяемый пример для поддержки, чем искать отключение фильтра. При этом ни наличие человека, ни бренд, ни референс сами по себе не доказывают универсальный запрет всех изображений такого типа. Даже оценки `safetyRatings` не устанавливают намерение пользователя или юридическое нарушение.

## Что сохранить для следующей проверки

![Сравнение одной изменённой переменной и пакет обезличенной обратной связи без вывода о причине отказа только по успешному контролю](https://blog.laozhang.ai/posts/ru/nano-banana-pro-restricted-by-system-instructions/img/controlled-request-evidence.webp)

Когда доступ и модель проверены, но допустимая задача всё ещё не завершается, соберите короткое описание: продукт и платформу, время с часовым поясом, точное сообщение или HTTP-код, запрошенную модель и доступный `modelVersion`, `responseId`, `promptFeedback`, причины завершения всех кандидатов и факт наличия читаемого изображения. Для файлов укажите количество, формат и способ передачи. Опишите, какое одно изменение отличало успешный контроль от неуспешного запроса.

Не публикуйте ключ API, токены входа, личные фотографии или полный закрытый журнал. Перед отправкой в поддержку или сообщество проверьте, какие данные раскрывает пример. Такой набор помогает исследовать конкретный отказ; он не гарантирует исправление и не подтверждает общий сбой Pro.

Если доступ восстановлен и следующая задача — получить удачную первую картинку, используйте [руководство по работе с Nano Banana Pro](https://blog.laozhang.ai/ru/posts/nano-banana-pro-how-to-use): там разобраны официальный вход и проверка результата. Для текущих условий отказа ориентируйтесь на проверки выше и актуальную справку своего продукта.

## Частые вопросы

### Что означает RESTRICTED by System Instructions?

Это текст сообщения, который нужно рассматривать вместе с продуктом и результатом запроса. В проверенных [таблицах Gemini API](https://ai.google.dev/api/generate-content) такой отдельный код не указан. Не подменяйте его автоматически значением `IMAGE_SAFETY`: сначала посмотрите фактическую обратную связь.

### Почему в чате выбрана Pro, а первая картинка всё равно не Pro?

По текущей [справке Gemini](https://support.google.com/gemini/answer/14286560?hl=en) первая генерация с моделью чата Pro использует Nano Banana 2. Nano Banana Pro вызывается через More → Redo with Pro под готовой картинкой при подходящем платном плане и доступной квоте.

### Успешный запрос без референсов доказывает, что фотографии запрещены?

Нет. Он подтверждает выполнение одного запроса, но не объясняет отказ другого. Сравните файлы, способ их передачи, параметры и историю. `OTHER` и `IMAGE_OTHER` сохраняют неизвестную причину; из них нельзя вывести запрет всех фотографий или блокировку аккаунта.

### Pro в AI Mode разрешает только диаграммы?

Нет, в [справке Google](https://support.google.com/websearch/answer/16649374?hl=en) сказано об оптимизации для диаграмм и инфографики. Это не формулировка запрета остальных задач. Проверять нужно реальный доступ к английскому Pro и сам результат генерации.

### Можно ли исправить отказ новым чатом или системной инструкцией?

Короткая новая история может помочь проверить влияние контекста, но не подтверждает восстановление квоты и не отключает защиту. Поле API `systemInstruction` задаёт инструкции приложения; оно не отменяет [основные меры безопасности Google](https://ai.google.dev/gemini-api/docs/safety-settings).

## Официальная документация

Параметры запросов, цены и правила списания средств описаны в документации LaoZhang API для разработчиков: [биллинг и ошибки генерации изображений](https://docs.laozhang.ai/en/api-capabilities/image-billing-and-failures).

*Примечание: [laozhang.ai — наш собственный сервис](https://blog.laozhang.ai/ru/about#laozhang); его цены — наши тарифы, а не независимое сравнение.*

## Источники

Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 2026-10-07.

- [перечнях причин блокировки и завершения Gemini API](https://ai.google.dev/api/generate-content) (ai.google.dev)
- [руководстве Google для Gemini](https://support.google.com/gemini/answer/14286560?hl=en) (support.google.com)
- [форуме помощи Gemini](https://support.google.com/gemini/thread/428201184/redo-with-pro-image-generation-is-completely-broken-for-paid-user?hl=en) (support.google.com)
- [инструкция Google](https://support.google.com/websearch/answer/16649374?hl=en) (support.google.com)
- [карточке модели Google](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image) (ai.google.dev)
- [руководстве Google по генерации изображений](https://ai.google.dev/gemini-api/docs/generate-content/image-generation) (ai.google.dev)
- [форуме Google AI Developers](https://discuss.ai.google.dev/t/persistent-other-block-reason-error-on-nano-banana-pro-gemini-3-pro-image-preview-with-reference-images/143901) (discuss.ai.google.dev)
- [Документация безопасности Gemini](https://ai.google.dev/gemini-api/docs/safety-settings) (ai.google.dev)
