Назад към всички

nano-banana-image-t8

// 用户要求验证 `nano-banana-2`(或兼容模型)是否可用,并需要文生图和图生图的真实调用结果。

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
triggersnano-banana-2,nanobanana,nano banana,香蕉生图,banana生图,banana文生图,banana图生图,香蕉文生图,香蕉图生图,image generation test,image edit test
max_tokens400
lock_sessiontrue
param_guard[object Object]

Nano Banana 生图联调

触发条件

用户要求验证香蕉系生图模型是否可用,并需要文生图和图生图的真实调用结果。默认模型对外展示名为香蕉2,可切换为香蕉pro。除非用户明确追问底层模型标识,否则对外只使用这两个展示名。

指令

使用技能自带脚本执行联调(优先):

  • ~/.whaleclaw/workspace/skills/nano-banana-image-t8/scripts/test_nano_banana_2.py
  • 若当前在 WhaleClaw 仓库内,也可用仓库脚本 scripts/test_nano_banana_2.py
  1. WebChat 场景必须使用“对话参数驱动”,禁止依赖脚本后台交互输入(input/getpass)。
  2. 必须只使用本技能脚本执行,不允许临时 file_write 生成 Python 脚本,不允许手写 curl 直连接口。
  3. API 基地址固定为 https://ai.t8star.cn,禁止改为其它域名(如 api.nanobanana.ai)。
  4. API Key 来自用户对话消息,执行时通过 --api-key 或环境变量传入;脚本会落盘到 ~/.whaleclaw/credentials/nano_banana_api_key.txt(权限 600)。默认模型会落盘到 ~/.whaleclaw/credentials/nano_banana_default_model.txt。若已存在可用已保存 Key,不要再提醒用户重新提供 Key,除非用户明确要更换。
  5. 下次若用户未提供 Key,可直接使用已保存 Key;若用户提供新 Key,覆盖保存。
  6. 模式来自用户对话:文生图 / 图生图 / 都测试
  7. 文生图只取用户提示词(--prompt)。
  8. 图生图取用户提示词 + 用户上传图片路径(--input-image 可重复);按接收顺序编号:第一张=图1,第二张=图2。
  9. 输出文件目录默认 ~/.whaleclaw/workspace/nano_banana_test/(固定用户目录,不依赖当前项目 cwd)。
  10. 尺寸/比例是可选项;若用户未写,默认使用 auto。若用户写了尺寸/比例(如“1:1”“4:3”“16:9”“1024x1024”),直接透传到脚本参数,不再重复追问。
  11. 当用户只说“我要做文生图/图生图”时,只追问缺失的必要参数,不要给与 ComfyUI、本地部署、OpenAI 方案选择题。
  12. 文生图最小必填:提示词(其余如尺寸/模型可用默认值);图生图最小必填:提示词 + 至少1张图片。
  13. 默认模型对外展示为香蕉2;若用户未指定模型,文生图与图生图都使用它。不要主动向用户解释其底层模型标识。
  14. 香蕉pro 是另一档可切换模型;当用户说“用香蕉pro”时切换到该模型执行。除非用户明确追问,不要主动暴露底层模型标识。
  15. 允许用户在技能执行时切换模型;若用户本轮指定了模型,执行前必须简短提示“当前使用模型:香蕉2/香蕉pro”。
  16. 若用户明确说“默认模型香蕉2”或“默认模型香蕉pro”,优先调用脚本 --set-default-model 持久化保存,并回复“默认模型已设置为: 香蕉2/香蕉pro”。
  17. 若用户询问当前默认模型,优先调用脚本 --show-default-model
  18. 回答风格简短直接,优先执行,不写长篇计划。
  19. 当用户要求“先查有没有 API Key”时,只允许检查以下来源:
  • 环境变量 NANO_BANANA_API_KEY
  • 保存文件 ~/.whaleclaw/credentials/nano_banana_api_key.txt
  1. Key 检查必须优先调用脚本:test_nano_banana_2.py --check-key;禁止扫描其它项目目录或 .env 文件。
  2. 仅在以下任一条件满足时,才允许提取并保存 sk- 开头 Key:
  • 用户显式发送 /use nano-banana-image-t8
  • 同一条消息明确包含 nanobanana/nano-banana 且语义是文生图/图生图
  1. 非本技能场景(如用户在处理其它任务时提到 API Key)禁止捕获、禁止保存该 Key。
  2. 在不确定是否属于本技能场景时,先追问一句“是否用于 Nano Banana 生图技能?”再决定是否保存。

图生图提示词示例:

  • 让图1的女孩站在图2的背景中

执行命令(优先):

NANO_BANANA_API_KEY='<你的key>' ./python/bin/python3.12 scripts/test_nano_banana_2.py --model '香蕉2' --edit-model '香蕉2'

强制文生图模板(WebChat):

./python/bin/python3.12 ~/.whaleclaw/workspace/skills/nano-banana-image-t8/scripts/test_nano_banana_2.py \
  --mode text \
  --api-key '<从用户消息提取的key或留空走已保存key>' \
  --prompt '<用户提示词>' \
  --aspect-ratio '<用户比例,如4:3;未提供则auto>' \
  --out-dir '~/.whaleclaw/workspace/nano_banana_test'

技能目录脚本示例(跨机器仅装 SKILL 也可用):

NANO_BANANA_API_KEY='<你的key>' ./python/bin/python3.12 ~/.whaleclaw/workspace/skills/nano-banana-image-t8/scripts/test_nano_banana_2.py --model '香蕉2' --edit-model '香蕉2'

图生图多图示例:

NANO_BANANA_API_KEY='<你的key>' ./python/bin/python3.12 scripts/test_nano_banana_2.py \
  --mode edit \
  --edit-model '<2K专用模型,如需时再指定>' \
  --prompt '让图1的女孩站在图2的背景中' \
  --input-image '/path/girl.png' \
  --input-image '/path/scene.png' \
  --aspect-ratio 'auto'

可选参数:

  • --base-url:默认 https://ai.t8star.cn
  • --size:直接指定像素,如 1024x1024
  • --aspect-ratio:比例模式,如 auto4:316:9(当 --size 为空时生效)
  • --modetext / edit / both
  • --prompt:提示词(WebChat 必传,来自对话框)
  • --input-image:图生图输入图,可重复传多次
  • --out-dir:默认 ~/.whaleclaw/workspace/nano_banana_test

模型切换时,对外只使用展示名:默认 香蕉2,可切换 香蕉pro。若用户未追问,不解释底层模型标识。 关于 2K:优先通过 2K 专用模型配置控制,比例参数不一定自动映射到 2K 像素。

若失败,优先返回结构化错误:HTTP 状态码、请求 URL、响应体。 若缺少 Key/提示词/图片,不要执行脚本后台交互,直接在对话里向用户要参数后重试。

工具

  • bash
  • file_read

示例

用户:帮我用香蕉2测一下文生图和图生图。 助手:执行测试脚本并返回两张输出图片路径与接口响应结果。