前言¶
在 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 原文。
- 文生图:把图像描述作为
--prompt传入,直接生成新图。 - 图生图:用
--input-image指定输入图像,--prompt传编辑指令,例如「让天空更有戏剧感」「移除人物」「改成卡通风格」。 - 三档分辨率:1K(默认,约 1024px)、2K(约 2048px)、4K(约 4096px)。参数必须大写 K。
- 分辨率自动映射:用户没有提分辨率就走 1K;说「low resolution」「1080」「1080p」「1K」走 1K;说「2K」「2048」「normal」「medium resolution」走 2K;说「high resolution」「hi-res」「4K」「ultra」走 4K。
- 输出约定:图像保存为 PNG 到当前目录(或 filename 中指定的路径),脚本返回完整路径。
- 文件名规范:
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 目录。
运行依赖与前置检查:
- 系统里必须存在
uv(command -v uv)。 - 需要 API Key,脚本按以下顺序查找:先读
--api-key参数,再读环境变量GEMINI_API_KEY。两者都没有则脚本直接报错退出。 - 如果是改图,
--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 的时间:
- 草稿:用 1K 快速迭代,
--filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K。 - 迭代:每次只小幅修改提示词,文件名每次重新生成,避免覆盖。
- 如果是改图,在提示词满意之前一直用同一个
--input-image。 - 成品:提示词定稿后再跑 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 稳定产出图像或对已有图像做局部修改,尤其是要求分辨率明确、文件名可追溯、输出位置固定的工作流,例如插画、壁纸、封面、参考图。
限制与坑:
- 强依赖 API Key。没有 key 直接失败,报错信息为
No API key provided.,处理方式是设置GEMINI_API_KEY或传--api-key。 - 输入图像路径错误或文件不可读时会报
Error loading input image:,先确认--input-image指向真实文件。 - 遇到 quota/permission/403 类错误,通常是 key 不对、账号无权限或配额耗尽,换一个 key 或账号再试。
- 分辨率参数必须大写,
1k不符合规范。 - 运行必须在用户当前工作目录执行,否则图像会落到 skill 目录。
- 脚本不会回读图片内容,只返回保存路径,Agent 需要自行把这个路径告知用户。
结尾¶
Nano Banana Pro 的价值在于把生图和改图收敛到一条命令,分辨率和文件名都有明确约定,适合让 Agent 直接执行而不需要人工介入拼参数。
官方地址:https://clawhub.ai/steipete/nano-banana-pro,SkillHub 页面:https://www.skillhub.cn/skills/clawhub_steipete/nano-banana-pro。