Инструменты12 минобновлено

Nano Banana API из своего кода

Картинки из кода нужны чаще, чем кажется. Обложки к статьям, превью карточек в каталоге, иллюстрации в боте, сотня вариантов фона для теста - руками в чате это превращается в вечер копирования и скачивания. Скрипт делает то же за минуту и складывает файлы туда, где их ждёт проект. Писать его будет Claude Code, от тебя нужны ключ, оплата и понимание, какие параметры просить.

Ниже весь путь от пустой папки до файла в images/. Документацию Google я сверил 26 сентября 2026 года, SDK для Python поставил в тот же день (версия 2.25.0), ошибки ниже я получил от сервера Google своими руками.

Что такое Nano Banana API в 2026 году?

Коротко: Nano Banana - так Google называет генерацию картинок в Gemini API. Под этим именем четыре модели, обращение к ним идёт через тот же ключ и тот же SDK, что и к текстовым моделям Gemini.

Отдельного «API Nano Banana» у Google нет. Есть Gemini API, а в нём модели, которые умеют рисовать и править картинки по тексту и по образцу. Сайты с похожими адресами в выдаче - посредники, которые перепродают доступ к тем же моделям через свой ключ. Здесь разбираем первоисточник.

Модель в коде Имя Для чего
gemini-3.1-flash-image Nano Banana 2 основная: быстрая, до 4K, хорошо пишет текст на картинке
gemini-3.1-flash-lite-image облегчённая 2 Lite самая быстрая и дешёвая, только 1K
gemini-3-pro-image старшая Pro сложные сцены, фирменный стиль, инфографика
gemini-2.5-flash-image первая версия, без номера старая, отключается 2 октября 2026 года

На каждой сгенерированной картинке стоит невидимый водяной знак SynthID. Это не мешает использовать её на сайте, но знать об этом стоит.

Ещё одна перемена 2026 года: Google перевёл примеры на новый способ вызова, Interactions API. Старый метод generateContent описан на отдельной странице и работает, но рекомендованным Google называет новый. Если нашёл пример в блоге и он не совпадает с документацией, скорее всего он написан под старую схему.

Сам скрипт напишет агент. Твоя часть - поставить ему задачу так, чтобы он не выдумывал параметры, и настроить проект так, чтобы ключ не утёк. Постановка задач агенту и настройка правил и разрешений проекта - тема видеоуроков курса ClaudeBase. К курсу прилагается база материалов для Claude Code и Codex: подключил её - и агент сам находит там, что нужно.

С чего начать генерацию картинок

  • Агента на компьютере нет. Сначала поставь Claude Code, эта статья подождёт.
  • Ключа Gemini нет. Иди по порядку, с раздела про ключ и оплату.
  • Ключ есть, скрипт падает. Листай вниз до «Частых ошибок» и ищи свой текст ошибки.
  • Код работал весной, а теперь нет. Проверь имя модели: названия с хвостом -preview отключены 25 июня 2026 года.

Что нужно до первой картинки?

  • Аккаунт Google, через него входишь в Google AI Studio.
  • Банковская карта для платёжного аккаунта Google.
  • Python 3 и папка проекта, в которой запускаешь Claude Code.

Отдельно про регион. В списке стран, где работает Gemini API, России и Беларуси нет. Библиотека поставится где угодно, но запрос уходит на серверы Google, и проверка идёт там. Реши этот вопрос до регистрации, иначе потратишь вечер на скрипт, который упрётся в отказ. Если для текстовых задач нужна модель из российского облака с оплатой в рублях, посмотри, как подключить YandexGPT API.

И про деньги. В таблице цен у всех четырёх моделей картинок в колонке бесплатного уровня написано Not available. Текстовые модели Gemini можно пробовать бесплатно, картинки через API - нет.

Как получить ключ Nano Banana API?

Ключ один на весь Gemini API, отдельного ключа для картинок не бывает. Тем же ключом входят и в агента Google для терминала, это разобрано в тексте про Gemini CLI.

  1. Открой aistudio.google.com/api-keys и войди аккаунтом Google.
  2. Новому пользователю AI Studio сам создаёт проект и ключ. Если у тебя уже был Google Cloud, проект по умолчанию не появится: зайди в Dashboard, раздел Projects, кнопка Import projects.
  3. Нужен ещё ключ - кнопка Create API key, выбираешь проект.
  4. Скопируй ключ в менеджер паролей.

С 28 мая 2026 года новые ключи из AI Studio создаются как ключи авторизации: они привязаны к сервисному аккаунту и по умолчанию работают только с Gemini API. Старые стандартные ключи без ограничений API теперь отклоняет, так что ключ трёхлетней давности из заметок может не заработать.

Теперь оплата. У проекта в колонке Billing Tier есть кнопка Set up billing. Дальше выбор страны, контактные данные, способ оплаты и предоплата от 5 долларов. Предоплаченные кредиты сгорают через 12 месяцев и не возвращаются. Когда баланс доходит до нуля, все ключи всех проектов этого платёжного аккаунта останавливаются разом, пока не пополнишь.

Российская карта для платёжного аккаунта Google не подойдёт, нужна зарубежная.

Где хранить ключ, чтобы он не утёк?

Ключ тратит деньги с твоего баланса, поэтому место для него готовится раньше кода.

Сам ключ пишется в отдельный файл .env рядом со скриптом, в код он не попадает:

GEMINI_API_KEY=сюда_ключ

Файл .env записан в .gitignore. Google прямо пишет, что блокирует ключи, найденные в открытом доступе, и тогда приходит ошибка про утечку. Лучше не проверять это на себе.

Агенту запрещено файл читать. Программа возьмёт ключ из окружения, а Claude Code видеть его незачем. Правило из документации Anthropic кладётся в .claude/settings.json проекта или в общий ~/.claude/settings.json:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

Где лежат файлы настроек и чем разрешения отличаются от запретов - тема отдельного текста про настройку Claude Code с нуля.

Как научить Claude Code свежему API?

Самая частая беда с картинками через агента не в ключе. Агент пишет код по памяти, а память у модели застряла на дате окончания обучения. В 2026 году у Gemini сменились и имена моделей, и способ вызова, поэтому код «по памяти» часто падает с первой строки.

Google это знает и сам выпустил две вещи для агентов. Первая - сервер документации по MCP по адресу https://gemini-api-docs-mcp.dev, он даёт агенту инструмент search_documentation. Подключается командой из документации Google:

npx add-mcp "https://gemini-api-docs-mcp.dev"

Вторая - скилл gemini-api-dev с правилами: какой SDK брать, какие модели актуальны, какие отключены. Ставится так:

npx skills add google-gemini/gemini-skills --skill gemini-api-dev

В таком виде скилл встанет только в текущий проект, для всех проектов сразу у Google есть вариант команды с флагом глобальной установки. После установки полностью выйди из Claude Code и запусти заново: скиллы подхватываются при старте. Проверка - команды /mcp и /skills внутри Claude Code, в первом списке должен быть сервер документации, во втором gemini-api-dev. Подробнее про подключение серверов - в статье про MCP в Claude Code, про скиллы - в установке скилла.

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

Я сам плачу за подписки на нейросети картой для подписок «Плати по миру»: выпускается за пару минут, пополняется рублями через СБП. Оформить карту

Как написать первый скрипт через Claude Code?

Открой Claude Code в папке проекта и дай задачу целиком, с проверкой результата. Примерно так:

Напиши скрипт generate.py на Python для генерации картинки через Gemini API.
Библиотеки: google-genai и python-dotenv, поставь их в виртуальное окружение.
Ключ бери из переменной GEMINI_API_KEY, файл .env не открывай.
Способ вызова: Interactions API, client.interactions.create.
Модель gemini-3.1-flash-image, формат 16:9, размер 1K, JPEG.
Описание картинки передаётся первым аргументом командной строки.
Картинку сохрани в папку images. Перед написанием сверь код
с документацией Nano Banana на ai.google.dev.

Код получится примерно такой. Этот вариант я прогнал на SDK 2.25.0 до ответа сервера, разберу его, чтобы ты понимал, что проверять:

import base64
import os
import sys

from dotenv import load_dotenv
from google import genai

load_dotenv()
client = genai.Client()

prompt = sys.argv[1] if len(sys.argv) > 1 else "Рыжий кот спит на подоконнике, утренний свет, фото"

interaction = client.interactions.create(
    model="gemini-3.1-flash-image",
    input=prompt,
    response_format={
        "type": "image",
        "mime_type": "image/jpeg",
        "aspect_ratio": "16:9",
        "image_size": "1K",
    },
)

image = interaction.output_image
if image is None:
    print("Модель не вернула картинку. Ответ:", interaction.output_text)
    sys.exit(1)

os.makedirs("images", exist_ok=True)
path = os.path.join("images", "result.jpg")
with open(path, "wb") as f:
    f.write(base64.b64decode(image.data))
print("Готово:", path)

Что здесь важно. genai.Client() без аргументов сам ищет ключ в переменных GEMINI_API_KEY или GOOGLE_API_KEY; если заданы обе, побеждает вторая. response_format с типом image просит только картинку, без сопроводительного текста. Картинка приходит строкой base64, её надо раскодировать перед записью в файл. Запуск в активированном виртуальном окружении:

python generate.py "Обложка для статьи про утренний кофе, плоская иллюстрация"

Промпт для картинки Google советует писать связной сценой: что в кадре, какой свет, какой ракурс, зачем картинка. Вместо «без машин» лучше описать «пустая улица». Русский язык в списке поддерживаемых есть.

Какую модель и размер выбрать?

Цены на 26 сентября 2026 года, за одну картинку при обычном запросе:

Модель 0.5K 1K 2K 4K
облегчённая 2 Lite - 0,0336 $ - -
Nano Banana 2 0,045 $ 0,067 $ 0,101 $ 0,151 $
старшая Pro - 0,134 $ 0,134 $ 0,24 $

Размер задаётся строкой 1K, 2K, 4K, у Nano Banana 2 есть ещё 512px. Буква K только заглавная: 1k сервер отклонит. Без параметра модель рисует квадрат 1K или повторяет размер картинки, которую ты дал на вход. Форматы кадра: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, у Nano Banana 2 ещё вытянутые 1:4, 4:1, 1:8, 8:1.

Если картинки нужны сотнями и не срочно, у Google есть пакетный режим Batch: цена примерно вдвое ниже, ответ приходит позже. Для обложек и превью начинай с Nano Banana 2 в 1K, на Pro переходи, когда не устраивает качество текста на картинке или сложной сцены.

Выбор модели под задачу - отдельный навык: где хватит дешёвой, где нужна старшая, как не сжечь бюджет на длинном прогоне. В курсе этому отведён урок о выборе модели и материал о лимитах и расходе.

Частые ошибки Gemini API при генерации

No API key was provided. Please pass a valid API key.

Скрипт не нашёл ключ. Проверь, что файл называется ровно .env, лежит в папке, откуда ты запускаешь скрипт, и что в нём строка GEMINI_API_KEY=. Если ключ прописан в ~/.zshrc, открой новое окно терминала.

API key not valid. Please pass a valid API key.

Ответ сервера с кодом 400 и причиной API_KEY_INVALID. Ключ скопирован с лишним пробелом, обрезан или удалён в AI Studio. Старый стандартный ключ без ограничений тоже не пройдёт, создай новый.

AttributeError: ‘Client’ object has no attribute ‘interactions’

Стоит старая версия библиотеки, в которой нет Interactions API. Лечится командой pip install -U google-genai в том же окружении, где запускается скрипт.

model_not_found

Код 404: такой модели нет. Почти всегда это старые имена из статей 2025 года: gemini-3-pro-image-preview и gemini-3.1-flash-image-preview отключены 25 июня 2026 года, imagen-4.0-generate-001 - 17 августа 2026 года. Замени на имена из таблицы выше.

402 Payment Required

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

429 RESOURCE_EXHAUSTED

Упёрся в лимит: запросов в минуту, картинок в минуту или трат за 10 минут. Лимиты считаются на проект, дневные сбрасываются в полночь по тихоокеанскому времени. Официальная библиотека для Python сама повторяет такие запросы до четырёх раз с растущей паузой; если ошибка всё равно дошла до тебя, сделай паузу между картинками.

Your API key was reported as leaked. Please use another API key.

Google нашёл ключ в открытом доступе и заблокировал его. Создай новый, а старый проверь по истории git: если .env когда-то попал в коммит, он лежит там до сих пор.

Что делать после первой картинки?

Встраивай генерацию туда, ради чего всё затевалось: обложки к статьям блога, превью в каталог, картинки в Telegram-бот. Одна доработка - одна задача агенту, и в ней сразу сказано, как проверить результат: «сгенерируй 5 обложек по списку заголовков из titles.txt, имена файлов по номеру». Правила вроде «ключ в .env, модель gemini-3.1-flash-image, картинки в images» запиши в CLAUDE.md, тогда агент не будет спрашивать их в каждом новом разговоре.

Чек-лист скрипта генерации

  • Ключ создан в AI Studio, у проекта включена оплата и положительный баланс.
  • Ключ лежит в .env, файл записан в .gitignore.
  • В настройках Claude Code стоит запрет Read(./.env).
  • Библиотека google-genai свежая, в коде client.interactions.create.
  • Имя модели без хвоста -preview.
  • Скрипт печатает «Готово», а в папке images лежит картинка нужного формата.

Когда первая картинка сохранилась, дальше работа уже про агента: как ставить ему задачи, как держать правила проекта и не упираться в лимиты. Об этом видеоуроки ClaudeBase, а база материалов работает в связке с Claude Code и Codex: агент открывает её по MCP, когда ему что-то нужно.

Спрашивают

Пять вопросов по теме

Можно ли пользоваться Nano Banana API бесплатно?

Через API нет. В таблице цен Google у всех четырёх моделей картинок в колонке Free Tier стоит Not available. Чтобы запросы проходили, к проекту в AI Studio нужно привязать платёжный аккаунт и внести предоплату от 5 долларов. Когда баланс доходит до нуля, все ключи этого платёжного аккаунта перестают работать до пополнения.

Сколько стоит одна картинка через Nano Banana API?

По ценам на 26 сентября 2026 года Nano Banana 2 берёт около 0,067 доллара за картинку 1K, 0,101 за 2K и 0,151 за 4K. Lite стоит 0,0336 за 1K, Pro - 0,134 за 1K или 2K и 0,24 за 4K. В пакетном режиме Batch цены примерно вдвое ниже, но ответ приходит не сразу. Текст запроса считается отдельно и стоит копейки.

Чем Nano Banana 2 отличается от Nano Banana Pro?

Nano Banana 2 (gemini-3.1-flash-image) Google называет основной моделью: быстрая, умеет 512px и до 4K, хорошо пишет текст на картинке. Pro (gemini-3-pro-image) дороже и медленнее, её берут для сложных сцен, точного фирменного стиля и инфографики с фактами. Для первого скрипта и большинства задач хватает Nano Banana 2.

Работает ли старый код с generate_content и моделями -preview?

Метод generateContent Google по-прежнему документирует, но рекомендует Interactions API. А вот имена gemini-3-pro-image-preview и gemini-3.1-flash-image-preview отключены 25 июня 2026 года, их нужно заменить на gemini-3-pro-image и gemini-3.1-flash-image. Модель gemini-2.5-flash-image отключается 2 октября 2026 года.

Работает ли Nano Banana API из России?

В списке стран, где доступен Gemini API, России и Беларуси нет. SDK установится на любой компьютер, но запрос уходит на серверы Google, и регион проверяется там. Этот вопрос нужно решить до того, как тратить время на ключ и скрипт, иначе рабочий код будет упираться в отказ сервера.

Источники