Nano Banana Pro:用 Gemini 3 Pro Image 生图与改图的 Skill

前言

在 Agent 里做图像产出时,常见做法是拼一段提示词直接调模型,然后发现三件事:分辨率不可控、改图和生图混成一条链路、文件名散落在 skill 目录里找不到。下面介绍的 Nano Banana Pro 把这几件事收敛到一个脚本里,输出的图像统一落在当前工作目录,并按时间戳命名。

它是 Peter Steinberger(@steipete)发布在 ClawHub 上的 skill,坐标 @steipete/nano-banana-pro,版本 1.0.1,许可证 MIT-0。上游仓库为 https://clawhub.ai/steipete/nano-banana-pro,SkillHub 页面为 https://www.skillhub.cn/skills/clawhub_steipete/nano-banana-pro。

需要先说明一处冲突:线索中给出的 Skill 名「Gemini Banana 生图器 Pro」、评分 99411、下载 7260 次,与抓取资料及上游页面的记录不一致。抓取资料记录为评分 100000、下载 188074、安装 3086,上游仓库名为 Nano Banana Pro。下文以官方 SKILL.md 的内容为准,站内统计数字不作为功能依据。

这是什么

一句话定位:调用 Google Nano Banana Pro API(即 Gemini 3 Pro Image)做图像生成与编辑的本地脚本型 skill。

它解决的是一个具体问题:让 Agent 用一条命令完成文生图、图生图,并在 1K/2K/4K 三档分辨率之间显式选择,避免把分辨率这种需要精确控制的参数留在自然语言里。

上游分类为 Creative,标签 #image-generation。标签 requires_api_key=true,意味着必须提供 API Key 才能运行。

核心功能

以下能力均来自官方 SKILL.md 原文。

  1. 文生图:把图像描述作为 --prompt 传入,直接生成新图。
  2. 图生图:用 --input-image 指定输入图像,--prompt 传编辑指令,例如「让天空更有戏剧感」「移除人物」「改成卡通风格」。
  3. 三档分辨率:1K(默认,约 1024px)、2K(约 2048px)、4K(约 4096px)。参数必须大写 K。
  4. 分辨率自动映射:用户没有提分辨率就走 1K;说「low resolution」「1080」「1080p」「1K」走 1K;说「2K」「2048」「normal」「medium resolution」走 2K;说「high resolution」「hi-res」「4K」「ultra」走 4K。
  5. 输出约定:图像保存为 PNG 到当前目录(或 filename 中指定的路径),脚本返回完整路径。
  6. 文件名规范:yyyy-mm-dd-hh-mm-ss-name.png,name 用小写连字符,描述部分保持简洁。

注意:官方 SKILL.md 没有提到「按主题推荐画风」这类预设风格库。它提供的是提示词模板,用模板来提高命中质量,而不是内置画风分类。

安装与启用

上游仓库给出的安装命令是:

$ openclaw skills install @steipete/nano-banana-pro

安装后脚本位于 ~/.codex/skills/nano-banana-pro/scripts/generate_image.py。运行时的要点是:用绝对路径调用脚本,不要先 cd 到 skill 目录。

运行依赖与前置检查:

  1. 系统里必须存在 uv(command -v uv)。
  2. 需要 API Key,脚本按以下顺序查找:先读 --api-key 参数,再读环境变量 GEMINI_API_KEY。两者都没有则脚本直接报错退出。
  3. 如果是改图,--input-image 指向的文件必须存在且可读(test -f "path/to/input.png")。

设置环境变量:

export GEMINI_API_KEY="你的key"

关于工具差异:上游 SKILL.md 只写了 uv run 调用方式和 ~/.codex/skills/... 路径,这是 Codex 系的约定。Cursor / Claude Code 等环境如何启用该 skill,官方资料没有说明,这里不推测。

典型用法

生成新图:

uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms" --filename "2025-11-23-14-23-05-japanese-garden.png" --resolution 4K

这一步把描述和文件名都写全,分辨率按需指定。官方强调:始终在用户当前工作目录运行,这样图会落在用户工作位置,而不是 skill 目录里。

编辑已有图像:

uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "make the sky more dramatic with storm clouds" --filename "2025-11-23-14-25-30-dramatic-sky.png" --input-image "original-photo.jpg" --resolution 2K

改图时 --prompt 传的是编辑指令,不是重新描述整张图。

官方推荐的工作流是先草稿后成品,避免在提示词还没定的时候就烧 4K 的时间:

  1. 草稿:用 1K 快速迭代,--filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K。
  2. 迭代:每次只小幅修改提示词,文件名每次重新生成,避免覆盖。
  3. 如果是改图,在提示词满意之前一直用同一个 --input-image。
  4. 成品:提示词定稿后再跑 4K。

提示词模板。生成场景下用户描述清晰就原样传给 --prompt,只在明显不足时才改写:

"Create an image of: <主题>. Style: <风格>. Composition: <机位/镜头>. Lighting: <光线>. Background: <背景>. Color palette: <色板>. Avoid: <规避项>."

编辑场景下用下面的模板,作用是保护画面里其他元素不被改动:

"Change ONLY: <改动点>. Keep identical: subject, composition/crop, pose, lighting, color palette, background, text, and overall style. Do not add new objects. If text exists, keep it unchanged."

适用场景与注意

适合的场景:需要 Agent 稳定产出图像或对已有图像做局部修改,尤其是要求分辨率明确、文件名可追溯、输出位置固定的工作流,例如插画、壁纸、封面、参考图。

限制与坑:

  1. 强依赖 API Key。没有 key 直接失败,报错信息为 No API key provided.,处理方式是设置 GEMINI_API_KEY 或传 --api-key。
  2. 输入图像路径错误或文件不可读时会报 Error loading input image:,先确认 --input-image 指向真实文件。
  3. 遇到 quota/permission/403 类错误,通常是 key 不对、账号无权限或配额耗尽,换一个 key 或账号再试。
  4. 分辨率参数必须大写,1k 不符合规范。
  5. 运行必须在用户当前工作目录执行,否则图像会落到 skill 目录。
  6. 脚本不会回读图片内容,只返回保存路径,Agent 需要自行把这个路径告知用户。

结尾

Nano Banana Pro 的价值在于把生图和改图收敛到一条命令,分辨率和文件名都有明确约定,适合让 Agent 直接执行而不需要人工介入拼参数。

官方地址:https://clawhub.ai/steipete/nano-banana-pro,SkillHub 页面:https://www.skillhub.cn/skills/clawhub_steipete/nano-banana-pro。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye