Files
Banana/README.md
2026-03-03 10:37:14 +08:00

5.4 KiB
Raw Blame History

NanoBanana2 本地调用脚本

本项目提供一个简单的 Python/Node 脚本,帮助你通过速创 API 的 NanoBanana2 接口,根据提示词和本地参考图或参考图 URL 生成图片,并将结果图片保存到本地目录。

环境准备Python 或 Node 二选一)

  1. 安装 Python 3.9+Windows 可在 python.org 下载并安装)。
  2. 在项目目录下安装 Python 依赖(如果使用 Python 脚本):
pip install -r requirements.txt
  1. 在项目目录下安装 Node 依赖(如果使用 Node + npm run dev
npm install
  1. 在速创 API 控制台获取你的接口密钥key
  2. config_nano_banana.json 中直接填写密钥、默认提示词,以及可选的参考图 URL推荐文件已在项目根目录创建
{
  "api_key": "在这里填写你的速创API密钥",
  "prompt": "在这里填写默认提示词(可留空,留空则运行时输入或用命令行参数覆盖)",
  "size": "1K 或 2K 或 4K可选",
  "reference_urls": [
    "https://你的参考图1.png",
    "https://你的参考图2.jpg"
  ]
}
  1. 或将密钥配置到环境变量:
setx WUYIN_API_KEY "你的密钥"

重新打开终端后生效。

也可以在运行 Python 脚本时通过 --api-key 参数传入,或用 -p/--prompt 临时覆盖配置文件中的提示词。

Cloudflare R2 图床(可选,仅 Node 版本)

若希望将 01 目录的参考图先上传到 Cloudflare R2,用公网 URL 作为生图参考(并在每次生图结束后自动删除当次上传的图片),可在 config_nano_banana.json 中增加 R2 配置:

{
  "api_key": "你的速创API密钥",
  "prompt": "默认提示词",
  "r2_account_id": "你的 Cloudflare 账户 ID",
  "r2_access_key_id": "R2 API 的 Access Key ID",
  "r2_secret_access_key": "R2 API 的 Secret Access Key",
  "r2_bucket": "桶名称",
  "r2_public_url": "https://pub-xxxx.r2.dev"
}
  • r2_account_idCloudflare 账户 IDDashboard 右侧或 R2 概览页)。
  • r2_access_key_id / r2_secret_access_key:在 Cloudflare Dashboard → R2 → Manage R2 API Tokens 创建。
  • r2_bucketR2 桶名称。
  • r2_public_url:桶的公开访问地址。需在 R2 桶设置中开启 Public access 并绑定 R2.dev 子域或自定义域名,例如 https://pub-xxxx.r2.dev(不要以 / 结尾)。

配置完成后,运行 npm run dev 时会自动把 01 中的图片上传到 R2、用返回的 URL 作为参考图请求生图,并在生图流程结束后删除本次上传的 R2 对象。不配置 R2 时,脚本仍使用原有逻辑:将 01 中的图片转为 base64 直接提交。

目录说明

  • 01:参考图目录(可自行创建)。把你希望作为参考的图片放到这里(支持 .jpg/.jpeg/.png/.webp/.bmp/.gif)。若配置了 Cloudflare R2 图床,脚本会将本目录图片上传到 R2 并以其 URL 作为生图参考,生图结束后自动删除本次上传的文件。
  • save:生成图片保存目录(脚本会自动创建)。
  • nano_banana_client.pyPython 主脚本。
  • nano_banana_client.jsNode 主脚本,配合 npm run dev 使用。
  • package.jsonNode 项目配置(内置 dev 脚本)。

使用方式Python

在项目根目录(nano_banana_client.py 所在目录)打开终端,执行:

python nano_banana_client.py -p "你的提示词"

常用参数示例:

  • 指定提示词:
python nano_banana_client.py -p "一只坐在阳台上的橘猫写实风格4k 高清"
  • 指定尺寸与比例:
python nano_banana_client.py -p "科幻城市夜景" --size 4K --aspect-ratio 16:9
  • 指定参考图目录与保存目录:
python nano_banana_client.py -p "保持人物外观一致,换一套商务正装" --input-dir 01 --output-dir save

运行后脚本会:

  1. input-dir(默认 01)中读取参考图并转为 base64
  2. 调用 https://api.wuyinkeji.com/api/async/image_nanoBanana2 创建任务;
  3. 根据任务 id 调用结果详情接口轮询任务状态;
  4. 将返回的图片 URL 下载到 output-dir(默认 save)。

说明Python 脚本里的结果查询接口使用的是通用「结果详情」接口地址,如官方文档有更新,请根据最新文档调整 RESULT_DETAIL_URL 常量的值。

使用方式Node + npm run dev

  1. 确保已经在 config_nano_banana.json 中填好:
{
  "api_key": "你的速创API密钥",
  "prompt": "默认提示词例如一只坐在阳台上的橘猫写实风格4k 高清",
  "size": "1K 或 2K 或 4K可选",
  "reference_urls": [
    "https://你的参考图1.png",
    "https://你的参考图2.jpg"
  ]
}
  1. 在项目根目录执行:
npm run dev
  1. Node 版本脚本的行为:

  2. config_nano_banana.json 中读取 api_keyprompt

  3. 若已配置 R2:将 01 目录中的参考图上传到 R2得到公网 URL作为生图参考未配置 R2:将 01 目录图片转为 base64。再合并配置中的 reference_urls

  4. 调用 https://api.wuyinkeji.com/api/async/image_nanoBanana2 创建任务。

  5. 使用 https://api.wuyinkeji.com/api/async/detail 和返回的 id 轮询任务状态。

  6. 将生成图片下载到 save 目录;若使用了 R2随后删除本次上传的 R2 参考图。