Перейти к основному содержимому

Nano Banana 2: полное руководство с Python

Узнайте всё о новейшей модели генерации изображений от Google — Nano Banana 2, включая то, как создать итеративный чат‑редактор изображений с использованием API на Python.
Обновлено 22 апр. 2026 г.  · 11 мин читать

Google только что выпустила вторую итерацию модели генерации изображений — Nano Banana 2. Когда Nano Banana впервые появилась, она произвела фурор, быстро став лучшей и самой быстрой моделью генерации изображений на базе ИИ.

В этой статье мы подробно разберём новую модель, изучим её возможности и узнаем, как работать с ней через API на Python.

Если вас в целом интересует генерация изображений, рекомендую ознакомиться с нашими гайдами по следующим моделям:

Что такое Nano Banana 2?

Nano Banana 2, также известная как Gemini 3.1 Flash Image, — это новейшая передовая модель ИИ для генерации и редактирования изображений от Google DeepMind. Она объединяет широкие знания о мире, качество и умение рассуждать уровня Nano Banana Pro со сверхвысокой скоростью Gemini Flash, что делает возможными высокую точность и быстрые итерации в одном рабочем процессе.

Ключевые возможности

Краткий обзор ключевых функций Nano Banana 2:

  • Повышенная точность: Опирается на знания Gemini о реальном мире и сигналы изображений из интернета в реальном времени, чтобы точнее воспроизводить конкретные объекты. Идеально подходит для инфографики, диаграмм и визуализации данных.
  • Улучшенная типографика: Создаёт читаемый и точный текст внутри изображений и поддерживает локализацию и перевод прямо в изображении.
  • Творческий контроль: Улучшенная согласованность персонажей для повествований и раскадровок. Модель сохраняет сходство до пяти персонажей и точность до 14 объектов в одном рабочем процессе.
  • Надёжность: Точное следование инструкциям для лучшей интерпретации сложных и нюансированных запросов.
  • Высокое разрешение: Готовые к продакшену характеристики с гибкими соотношениями сторон и разрешениями от 512 пикселей до 4K.
  • Визуальное качество: Улучшенная визуальная достоверность с более богатыми текстурами, ярким освещением и более чёткими деталями на скорости Flash.

Если вы новичок в Nano Banana, сначала стоит прочитать нашу предыдущую статью о первой итерации — Nano Banana Pro.

Как получить доступ к Nano Banana 2

В этой статье мы рассмотрим использование Nano Banana 2 через их API на Python. Однако новые модели доступны во всей экосистеме Gemini:

  • Приложение Gemini: Nano Banana 2 теперь используется по умолчанию для режимов Fast, Thinking и Pro. Подписчики Google AI Pro и Ultra по‑прежнему могут перегенерировать с помощью Nano Banana Pro через меню с тремя точками для специализированных задач, где важна максимальная фактическая точность.
  • Поиск: Доступно в AI Mode и Lens в приложении Google и браузерах на мобильных и настольных устройствах, с расширенной географией (включая 141 новую страну/территорию и ещё восемь языков).
  • AI Studio + Gemini API: Доступно в предварительной версии (см. цены). Также доступно в Google Antigravity.
  • Google Cloud: Предпросмотр через Gemini API в Vertex AI.
  • Flow: Теперь модель генерации изображений по умолчанию для всех пользователей Flow.
  • Google Ads: Обеспечивает креативные рекомендации при создании кампаний.

Цены API

В этой статье мы будем использовать Nano Banana 2 через API, то есть подписка не требуется — оплачивается каждая сгенерированная картинка.

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

Чтобы упростить, я сделал расчёты и оценил ожидаемую стоимость в зависимости от размера изображения. Обратите внимание, это не точные цены — они могут немного отличаться.

Размер изображения

Стоимость за изображение

512px

$0.045

1024px (1K)

$0.067

2048px (2K)

$0.101

4096px (4K)

$0.151

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

Первые 5000 запросов Google Search в месяц бесплатны при использовании grounding с Google Search. Далее — $14 за 1000 запросов Google Search.

Генерируем наше первое изображение в Nano Banana 2

Без лишних предисловий, давайте начнём работу с Nano Banana 2.

Генерация API‑ключа

Чтобы использовать API, сначала нужно сгенерировать API‑ключ. Для этого войдите в Google AI Studio. Затем нажмите кнопку Create API Key в правом верхнем углу.

API‑ключ должен быть привязан к проекту Google Cloud. Google AI Studio упрощает задачу, позволяя создать проект прямо в процессе генерации ключа.

Модальное окно Google AI Studio «Create a new key» для настройки Nano Banana 2/Gemini API с полем «Gemini API Key» и выпадающим списком Select a Cloud Project (Import project, Create project, Veo31).

Чтобы использовать API‑ключ, в связанном проекте Google Cloud должен быть включён биллинг. Если вы только что создали новый проект, включите его, нажав кнопку Set up billing рядом с API‑ключом.

Панель API Keys в Google AI Studio с ключом Gemini API для проекта «Nano Banana 2» и выделенной ссылкой «Set up billing» (Free tier).

Наконец, скопируйте API‑ключ и вставьте его в файл с именем .env в следующем формате:

GEMINI_API_KEY=<paste_key_here>

Файл .env следует создать в той же папке, где мы будем писать скрипты на Python.

Настройка окружения

Далее нам нужно установить зависимости Python для работы с Gemini API. Выполните команду:

pip install google-genai python-dotenv pillow

Это установит следующие пакеты:

  • google-genai: Официальный пакет Google для генеративного ИИ. Используется для удобного создания клиента для взаимодействия с Gemini API.

  • python-dotenv: Утилита для загрузки API‑ключа из файла .env.

  • pillow: Библиотека для работы с изображениями, упрощающая загрузку изображений в качестве входных данных для Nano Banana 2.

Генерация изображения

Полный код на Python для генерации изображения:

from google import genai
from dotenv import load_dotenv
from google.genai import types
import time

# Load API key
load_dotenv()
client = genai.Client()

prompt = """
Lego version of the empire state building being built.
"""

# Make API request
response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents=[prompt],
    config=types.GenerateContentConfig(
        response_modalities=["Image"],
        image_config=types.ImageConfig(
            aspect_ratio="16:9",
            image_size="4K",
        ),
    )
)

# Save the image and display output text if any
for part in response.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        image = part.as_image()
        image.save(f"image_{int(time.time())}.png")

Вот результат:

Изображение, сгенерированное Nano Banana 2, изображающее строительство Empire State Building в мире лего.

Поддерживаемые соотношения и разрешения

В запросе выше мы указали соотношение сторон через параметр aspect_ratio и разрешение через параметр image_size.

Nano Banana 2 поддерживает широкий набор соотношений сторон и разрешений — от 512 пикселей до 4K. Полный список поддерживаемых значений:

  • aspect_ratio: "1:1","1:4","1:8","2:3","3:2","3:4","4:1","4:3","4:5","5:4","8:1","9:16","16:9","21:9"

  • image_size (разрешение): "512px", "1K", "2K", "4K"

Практика с Nano Banana 2

Теперь, когда всё настроено и мы успешно создали первое изображение, пора проверить заявленные возможности на практике.

Редактирование изображений с сохранением субъекта

Мы можем передавать изображения модели, загружая их с помощью PIL (из пакета pillow) и добавляя в список contents.

Одна из главных функций Nano Banana 2 — умение сохранять субъекты при генерации изображений. При попытках использовать другие модели, например предыдущую итерацию Nano Banana или GPT-Image, я часто сталкивался с тем, что сложно генерировать изображения на основе реальных объектов — модель склонна менять их внешний вид.

В документации говорится, что модель поддерживает до пяти персонажей и 10 объектов — всего до 14 ссылок. Чётких определений «персонажей» и «объектов» нет, но интуитивно это значит, что модель обучена создавать сцены, где можно разместить до 4 основных субъектов и до 10 второстепенных объектов, с которыми они взаимодействуют.

В модели нет отдельных параметров для передачи изображений персонажей и объектов — всё делается через промпт. Я изучил исходный код некоторых демо, чтобы понять, как структурируют промпт для ссылок на них.

Шаблон, который я нашёл, выглядит так:

<subject_name> (<Character #number>) = Image <#index>

Например, для двух персонажей по именам «Alice» и «Bob» это будет:

Subjects: Alice (Character 1) = Image 0, Bob (Character 2) = Image 1

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

from google import genai
from dotenv import load_dotenv
from google.genai import types
import time
from PIL import Image
# Load API key
load_dotenv()
client = genai.Client()
prompt = """
Goldie and Wiskers are posing together.
Subjects: Goldie (Character 1) = Image 0, Wiskers (Character 2) = Image 1
Maintain strict subject consistency for characters.
Adjust the subject composition/pose as appropriate for the scene.
"""
dog = Image.open("dog.png")
cat = Image.open("cat.png")
# Make API request
response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents=[prompt, dog, cat],
    config=types.GenerateContentConfig(
        response_modalities=["Image"],
        image_config=types.ImageConfig(
            aspect_ratio="9:16",
        ),
    )
)
# Save the image and display output text if any
for part in response.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        image = part.as_image()
        image.save(f"image_{int(time.time())}.png")

Демонстрация согласованности субъекта в Nano Banana 2 (Gemini 3.1 Flash Image): слева — ретривер Goldie на тропе; по центру — кот Wiskers у окна; справа — результат ИИ с обоими питомцами, позирующими вместе на подоконнике.

Добавление объектов

Как упоминалось выше, этот шаблон не из официальной документации. Вероятно, модель понимает всё из промпта и изображений. Однако при разработке реального приложения, где важна стабильность результатов, лучшая практика — формулировать промпт как можно точнее и последовательнее, поэтому я рекомендую использовать этот шаблон.

В их примере шаблон расширяется на объекты: достаточно заменить «Character» на «Object», чтобы указать, что изображение относится к объекту, а не к основному субъекту.

Для демонстрации заставим собаку надеть конкретные солнечные очки, а кота — шляпу, передав два изображения объектов. Вот использованный промпт:

Goldie and Wiskers are posing together. Goldie is wearing the Glasses, and Wiskers is wearing the Hat.
Subjects: Goldie (Pet 1) = Image 0, Wiskers (Pet 2) = Image 1, Glasses (Object 1) = Image 3, Hat (Object 2) = Image 4.
Maintain strict subject consistency for characters and objects.
Adjust the subject composition/pose as appropriate for the scene.

Результат:

Пример редактирования изображения в Nano Banana 2 с соблюдением согласованности субъекта: входные данные — золотистый ретривер, полосатый кот, розовая бейсболка и красные очки, а также финальный коллаж с собакой в красных очках и котом в розовой кепке у окна.

Граундим генерацию с помощью поиска

Nano Banana 2 позволяет «приземлить» генерацию изображений на результаты поиска, чтобы повысить точность. Это особенно полезно для изображений, которые должны соответствовать реальности, например локаций или конкретных видов животных.

Я живу на Тайване, и недавно был организован поход, где организатор использовал изображение, сгенерированное в Nano Banana, чтобы показать место. Однако картинка оказалась совсем неточной, и люди разочаровались, потому что в реальности всё выглядело иначе.

Мне стало интересно проверить, справится ли с этим Nano Banana 2.

Мы можем включить веб‑поиск и поиск по изображениям с помощью параметра tools в запросе на генерацию.

Полный пример:

from google import genai
from dotenv import load_dotenv
from google.genai import types
import time
# Load API key
load_dotenv()
client = genai.Client()
prompt = """
Create an image of the Yinhe Cave (銀河洞) in Taiwan at golden hour.
- Use Image Search to search for an image of the specified place.
- Keep the location and the view as close to the real reference as possible.
"""
# Make API request
response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents=[prompt],
    config=types.GenerateContentConfig(
        response_modalities=["Image"],
        image_config=types.ImageConfig(
            aspect_ratio="9:16",
        ),
        tools=[
            types.Tool(google_search=types.GoogleSearch(
                search_types=types.SearchTypes(
                    web_search=types.WebSearch(), # Enables web search
                    image_search=types.ImageSearch() # Enables image search
                )
            ))
        ]
        
    )
)
# Save the image and display output text if any
for part in response.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        image = part.as_image()
        image.save(f"image_{int(time.time())}.png")

Ниже показаны результаты: сначала реальная фотография из Google Photos, затем изображение, сгенерированное Nano Banana 2 с использованием поиска, и, наконец, изображение без поиска. Видно, что поиск делает результаты очень точными.

Трёхпанельное сравнение Yinhe Cave (銀河洞), Тайвань: реальное фото, Nano Banana 2 с поиском — точный вид храма на склоне и водопад на золотом часе, и без поиска — менее точный пейзаж.

Команда Gemini создала демо Window View, которое использует эту идею для небольшого приложения, показывающего конкретные места через окно. Отличная демонстрация способности модели понимать реальный мир.

Совмещение согласованности субъекта и понимания мира

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

Попробуем поместить Goldie и Wiskers в локацию на Тайване. Я выбрал это место, чтобы проверить, справится ли модель с не самыми известными локациями.

Вот промпт:

Goldie and Wiskers are traveling across the Sanxiantai Arch Bridge in Taiwan.
Subjects: Goldie (Pet 1) = Image 0, Wiskers (Pet 2) = Image 1
Use image search to find visual references of the location.
Maintain strict subject consistency for characters and objects.
Adjust the subject composition/pose as appropriate for the scene.

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

Вот изображение наших двух персонажей в путешествии:

Пример Nano Banana 2: коллаж из четырёх панелей с реальным фото арочного прибрежного моста на Тайване, отдельными референсами золотистого ретривера и полосатого кота, и результатом ИИ — оба питомца идут вместе по мосту на золотом часу; демонстрация реализма на основе поиска и согласованности субъекта.

Чтобы зайти дальше, я даже указал локацию через широту и долготу — и это сработало!

Goldie and Wiskers are at the location with a latitude of 17.0621186 and a longitude of -96.7255102.

Subjects: Goldie (Pet 1) = Image 0, Wiskers (Pet 2) = Image 1

Use image search to find visual references of the location.
Maintain strict subject consistency for characters and objects.
Adjust the subject composition/pose as appropriate for the scene.

Слева — вид улицы по координатам 17.062, -96.725 в Оахаке, Мексика; справа — результат Nano Banana 2: золотистый ретривер и полосатый кот на поводках идут по мощёной улице к историческому собору. Демонстрация точности локации и согласованности субъекта.

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

Локализация текста

Nano Banana 2 улучшает предыдущие Flash‑модели по части более стабильного и надёжного рендеринга текста.

Теперь текст может выглядеть таким же чётким и точным, как и окружающая графика. Nano Banana 2 также поддерживает локализацию прямо в изображении, что позволяет создавать и переводить текст на несколько языков непосредственно в сгенерированном изображении.

Я протестировал локализацию, сгенерировав постер для вымышленного бренда VR‑гарнитур «Beyond Reality». Затем просто использовал промпт вроде:

Change the language of the poster to Japanese.

Вот результаты после изменения языка текста постера на французский, а затем на японский:

Три постера бок о бок, демонстрирующие точный рендеринг текста и локализацию в Nano Banana 2: реклама VR‑гарнитуры «Beyond Reality» на английском, французском и японском; мужчина играет в VR на диване на фоне фэнтезийного и sci‑fi миров.

Интересно, что модель достаточно «умна», чтобы не переводить название бренда, хотя это в промпте не оговаривалось.

Режим диалога

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

Лучше использовать чат‑режим. В нём мы создаём чат через функцию client.chats.create(), затем обмениваемся сообщениями с помощью client.send_message(). Так можно реализовать интерактивное редактирование:

  1. Пользователь отправляет промпт
  2. Nano Banana 2 генерирует изображение на основе промпта и предыдущего изображения (если оно есть)
  3. Изображение показывается пользователю
  4. Пользователь отправляет промпт‑правку и возвращается к шагу 2.

Ниже — полный скрипт, реализующий этот процесс:

from google import genai
from google.genai import types
from dotenv import load_dotenv
from PIL import Image
import time
load_dotenv()
client = genai.Client()
# Initialize the chat session
chat = client.chats.create(
    model="gemini-3.1-flash-image-preview",
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE'],
        tools=[{"google_search": {}}]
    )
)
# We keep track of the latest image object to send back as context
latest_image = None
while True:
    user_input = input("\nPrompt: ")
if user_input.lower() in ['quit', 'exit', 'q']:
        break
# Construct the message content
    # If we have a previous image, we include it so the model knows what to edit
    content = [user_input]
    if latest_image:
        content.append(latest_image)
    try:
        response = chat.send_message(content)
        
        for part in response.parts:
            # Handle Text Response
            if part.text:
                print(f"\nAI: {part.text}")
            
            elif part.inline_data is not None:
                image = part.as_image()
                filename = f"image_{int(time.time())}.png"
                image.save(filename)
                print("Saved image", filename)
                latest_image = Image.open(filename)
                latest_image.show()
                    
    except Exception as e:
        print(f"An error occurred: {e}")
print("Session ended.")

Запустив этот скрипт, можно итеративно редактировать изображение прямо в терминале примерно так:

Скриншот терминала с режимом диалога Python для Nano Banana 2 через Gemini API: итеративное редактирование изображения кота — снег, добавить шапку, чёрная левая лапа, добавить монокль, сделать ночь.

Вот результаты этого взаимодействия:

Демонстрация Nano Banana 2 (Gemini 3.1 Flash Image): шестишаговое редактирование изображения полосатого кота на каменной садовой стене — от лета к снежной зиме, затем зелёная вязаная шапка, круглые очки и ночное освещение — демонстрация согласованности субъекта.

Nano Banana vs. Nano Banana 2

Таблица ниже подчёркивает основные различия между моделями Nano Banana. Как уже говорилось, новая версия существенно улучшает точность, согласованность и разрешение, работая лишь немного медленнее первой итерации.  

Сравнительная таблица ключевых отличий моделей изображений Google DeepMind Nano Banana: Original — Gemini 2.5 Flash, ~3 c, 1K, ~80% точности текста, внутренние знания, ограниченная согласованность; Nano Banana 2 — Gemini 3.1 Flash, 4–6 c, до 4K, ~90%+, веб‑поиск в реальном времени, до 5 персонажей; Nano Banana Pro — Gemini 3 Pro, 10–20 c, 4K, ~94%, глубокое рассуждение, до 5 персонажей.

Сама таблица была сгенерирована Nano Banana 2 на основе предоставленных данных.

Когда использовать Nano Banana Pro

Хотя Nano Banana 2 стала новым стандартом, Nano Banana Pro остаётся доступной для «Thinking» и специализированных задач. Pro стоит выбрать, если вам нужно:

  • Экстремальный реализм: Pro немного лучше в физике освещения и текстурах кожи.
  • Сложное рассуждение: Pro лучше «продумывает» пространственные инструкции (например: «человек за второй колонной слева»).

Итоги

Nano Banana 2 ощущается полноценным преемником: она значительно снижает «дрейф» между итерациями, позволяя зафиксировать внешний вид и надёжно переносить его между сценами, форматами и языками. 

Благодаря лучшей устойчивости субъекта, более строгому следованию инструкциям, реализму на основе поиска и диалоговому редактированию, которое «подкручивает», а не перерисовывает, гораздо проще сохранять идентичность, композицию и стиль, исследуя вариации.

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

Nano Banana 2 уверенно закрывает разрыв между Nano Banana и Nano Banana Pro: по скорости она фактически на уровне почти мгновенного Flash в Nano Banana, а по возможностям, визуальной достоверности, точности следования инструкциям, согласованности субъекта и реализму на основе поиска часто приближается к Nano Banana Pro.

Если вы хотите узнать больше о концепциях, лежащих в основе таких инструментов, как Nano Banana 2, рекомендую наш курс Generative AI Concepts.

Nano Banana 2 — ответы на частые вопросы

Как называется модель Nano Banana 2 при использовании API?

Техническое название Nano Banana 2 — gemini-3.1-flash-image-preview.

Предлагает ли Nano Banana 2 бесплатный тариф для генерации изображений?

Если у вас есть подписка Gemini, Nano Banana 2 — новый вариант по умолчанию, так что доступна там. В API бесплатного тарифа нет, но генерация каждого изображения стоит очень дёшево.

Лучше ли Nano Banana 2, чем Nano Banana Pro?

Nano Banana 2 занимает промежуточное положение между Nano Banana и Nano Banana Pro. Она гораздо быстрее Nano Banana Pro и даёт схожие результаты.

Включён ли grounding через поиск в Nano Banana 2 по умолчанию?

Нет, чтобы использовать grounding через поиск, нужно явно предоставить эти инструменты модели. Первые 5000 запросов поиска бесплатны. Последующие стоят $0.014 сверх стоимости генерации изображения.

Темы

Курсы по ИИ

Track

AI Agent Fundamentals

6 ч
Discover how AI agents can change how you work and deliver value for your organization!
ПодробнееRight Arrow
Начать курс
Смотрите большеRight Arrow