跳至内容

Nano Banana 2:Python 全面指南

全面了解谷歌最新的图像生成模型 Nano Banana 2,包括如何使用 Python 通过 API 构建可迭代的聊天式图像编辑器。
更新 2026年4月22日  · 11分钟

Google 刚刚发布了其图像生成模型的第二代——Nano Banana 2。Nano Banana 首次发布时便风靡全球,迅速成为最佳且最快的 AI 图像生成模型。

本文将深入解析这款新模型,探索其新特性,并学习如何通过 API 搭配 Python 使用它。

如果您对图像生成总体感兴趣,推荐阅读我们关于以下模型的指南:

什么是 Nano Banana 2?

Nano Banana 2,也称 Gemini 3.1 Flash Image,是 Google DeepMind 最新的顶尖图像生成与编辑 AI 模型。它将 Nano Banana Pro 的高级世界知识、质量与推理能力,与 Gemini Flash 的闪电般速度相融合,使得高保真创作与快速迭代能够在同一工作流中完成。

核心能力

以下是 Nano Banana 2 的关键特性概览:

  • 更高的准确性:结合 Gemini 的真实世界知识与实时网页图像信号,对特定主体呈现更精确。适用于信息图、流程图与数据可视化。
  • 强化的文字排版:可在图像中生成清晰、准确的文字,并支持图像内本地化与翻译。
  • 创作掌控:提升叙事与分镜中的主体一致性。单一工作流中可保持最多 5 个角色的相似度与最多 14 个对象的保真度。
  • 可靠性:严格遵循指令,更好地把握复杂且细腻的提示。
  • 高分辨率:面向生产的规格,灵活的纵横比与分辨率,范围从 512 像素到 4K。
  • 视觉质量:以 Flash 的速度带来更高的视觉保真度,纹理更丰富、光照更鲜明、细节更锐利。

如果您是第一次接触 Nano Banana,建议先阅读我们关于首代 Nano Banana Pro 的文章。

如何访问 Nano Banana 2

本文将讲解如何使用 Python 通过其 API 来使用 Nano Banana 2。不过,这些新模型已在整个 Gemini 生态中提供:

  • Gemini 应用:Nano Banana 2 现已成为 Fast、Thinking 与 Pro 模式下的默认图像模型。Google AI Pro 与 Ultra 订阅用户仍可通过“三点”菜单使用 Nano Banana Pro 进行需要最高事实准确性的专项任务。
  • 搜索:在 Google 应用与移动/桌面浏览器的 AI 模式与 Lens 中可用,且覆盖范围扩大(包括新增 141 个国家/地区与 8 种语言)。
  • AI Studio + Gemini API:提供预览版(见定价)。也可在 Google Antigravity 中使用。
  • Google Cloud:通过 Vertex AI 中的 Gemini API 提供预览。
  • Flow:现为所有 Flow 用户的默认图像生成模型。
  • Google Ads:在广告系列创建过程中提供创意建议支持。

API 定价

本文将通过 API 使用 Nano Banana 2,这意味着无需订阅,而是按生成的每张图片付费。

我觉得官方定价表有点儿不太好理解。通常,AI 图像模型只会注明每张图片的固定价格。

为便于理解,我根据图像尺寸做了价格预估。请注意这些并非精确价格,可能会有轻微浮动。

图像尺寸

每张图片成本

512px

$0.045

1024px (1K)

$0.067

2048px (2K)

$0.101

4096px (4K)

$0.151

Nano Banana 2 能够执行网页搜索,以生成更准确的结果。这非常实用,但也需要计入成本,因为搜索会产生额外费用。

当使用 Google Search 进行 Grounding 时,每月前 5,000 次 Google 搜索请求免费。之后每 1,000 次搜索请求收费 $14。

生成第一张 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 项目必须启用结算。如果您刚创建了新项目,需要点击 API 密钥旁的Set up billing 按钮来启用。

Google AI Studio API Keys 仪表板,显示 “Nano Banana 2” 项目的 Gemini API Key,并高亮显示 “Set up billing”(Free tier)链接。

最后,复制 API 密钥并粘贴到名为 .env 的文件中,格式如下:

GEMINI_API_KEY=<paste_key_here>

.env 文件应创建在我们编写 Python 脚本的同一文件夹中。

环境配置

接下来,我们需要安装与 Gemini API 交互所需的 Python 依赖。运行以下命令:

pip install google-genai python-dotenv pillow

这将安装以下软件包:

  • google-genaiGoogle 官方的生成式 AI 包。用于便捷地创建客户端与 Gemini API 交互。

  • python-dotenv用于从 .env 文件加载 API 密钥的实用工具包。

  • 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 生成的图像,在乐高世界中构建帝国大厦。

支持的纵横比与分辨率

在上述请求中,我们通过 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 BananaGPT-Image)时,我经常发现基于真实人物或事物生成图像较为困难,因为模型往往会改变它们的外观。

根据文档,模型最多可支持 5 个角色与 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 在窗边;右,AI 生成的合影,两只宠物一起坐在窗边长椅上。

加入对象元素

如上所述,该模板并非官方文档的一部分。模型大概率可以从提示与图像中理解各部分。不过,在实现需要稳定输出的真实应用时,最好在提示中尽可能精确且一致,因此我建议使用该模板。

他们的示例将模板扩展到对象引用,只需将 “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 图像编辑演示:展示主体一致性。输入包括一只金毛犬、一只虎斑猫、一顶粉色棒球帽和一副红色太阳镜,最终合成图中,狗戴红色墨镜、猫戴粉色帽子并坐在窗边。

结合搜索进行 Grounding 的图像生成

Nano Banana 2 支持基于搜索对图像生成进行 Grounding,从而获得更准确的结果。这在生成需要与现实一致的图像(如某地风景或特定动物物种)时尤为有用。

我一直住在台湾,最近一次组织的登山活动里,组织者用 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 生成图,最后是不使用搜索的生成图。可见搜索能显著提升准确性。

台湾银河洞三联对比:真实照片、启用搜索的 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 示例:四联图,包含台湾海边拱桥的真实照片、金毛犬与虎斑猫的单独参考图,以及在金色时刻将两只宠物一起置于桥上的 AI 生成图——展示基于搜索的真实感与主体一致性。

更进一步,我甚至尝试通过提供经纬度来指定地点,也成功了!

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 结果并排:拴着牵引绳的金毛与虎斑猫走在鹅卵石街道,朝着一座历史教堂行进,展示基于地点的准确性与主体一致性。

即便地点与提供的经纬度不完全一致,图像中的元素也与该地点的实际景观相符,这一点相当令人印象深刻。

文字本地化

与早期基于 Flash 的图像模型相比,Nano Banana 2 在文字渲染的一致性与可靠性方面有明显提升。

文本现在可以与周围图形一样清晰准确。Nano Banana 2 还支持图像内本地化,可直接在生成图像中创建或翻译多语言文本。

我通过为一个虚构的 VR 头显品牌 “Beyond Reality” 生成海报来测试本地化。随后我仅用如下提示:

Change the language of the poster to Japanese.

下图是将海报文字分别改为法语与日语后的效果:

并排海报展示 Nano Banana 2 精准的文字渲染与本地化:“Beyond Reality” 虚拟现实头显广告的英文、法文与日文版本,男子在沙发上体验 VR,场景包含丰富的奇幻与科幻元素。

有趣的是,尽管提示中未说明,模型也聪明地没有翻译品牌名。

对话模式

最后我们来探索对话模式。前面的示例并非交互式:我们向 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.")

运行该脚本后,我们可以直接在终端中迭代式地编辑图像,如下所示:

在终端中通过 Gemini API 使用 Nano Banana 2 的 Python 对话模式,迭代编辑猫的图像:下雪、添加毛线帽、左爪变黑、加单片眼镜、变为夜景。

以下是本次交互的结果:

Nano Banana 2(Gemini 3.1 Flash Image)演示:对一只坐在石墙上的虎斑猫进行六步编辑——夏季到雪景冬季、加绿色针织帽、圆形眼镜,最终变为夜景灯光,展示主体一致性。

Nano Banana vs. Nano Banana 2

下表概述了各代 Nano Banana 模型的主要差异。如前所述,新版本在准确性、一致性与分辨率方面都有显著提升,而速度仅比第一代略慢。

Google DeepMind 的 Nano Banana 图像模型关键差异概览:原版—Gemini 2.5 Flash,约 3 秒,1K,约 80% 文字准确率,内部知识,有限一致性;Nano Banana 2—Gemini 3.1 Flash,4–6 秒,最高 4K,约 90%+,实时网页搜索,最多 5 个角色;Nano Banana Pro—Gemini 3 Pro,10–20 秒,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 之间的差距:速度几乎与 Nano Banana 的 Flash 同级接近即时,而其能力、视觉保真度、精确的指令遵循、主体一致性与搜索支撑的真实感则经常接近 Nano Banana Pro。

若想进一步了解 Nano Banana 2 等工具背后的概念,推荐学习我们的生成式 AI 概念课程。

Nano Banana 2 常见问题

使用 API 时,Nano Banana 2 的模型名称是什么?

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 快得多,同时能取得相近的效果。

Nano Banana 2 是否默认启用搜索 Grounding?

不是。要使用搜索 Grounding,我们需要显式为模型提供这些工具。前 5,000 次搜索请求免费;之后每次请求需在图像生成成本之外额外支付 $0.014。

主题

AI 课程

Tracks

AI Agent Fundamentals

6小时
Discover how AI agents can change how you work and deliver value for your organization!
查看详情Right Arrow
开始课程
查看更多Right Arrow