NanoBanana2 本地调用脚本
本项目提供一个简单的 Python/Node 脚本,帮助你通过速创 API 的 NanoBanana2 接口,根据提示词和本地参考图或参考图 URL 生成图片,并将结果图片保存到本地目录。
环境准备(Python 或 Node 二选一)
- 安装 Python 3.9+(Windows 可在
python.org下载并安装)。 - 在项目目录下安装 Python 依赖(如果使用 Python 脚本):
pip install -r requirements.txt
- 在项目目录下安装 Node 依赖(如果使用 Node +
npm run dev):
npm install
- 在速创 API 控制台获取你的接口密钥(key)。
- 在
config_nano_banana.json中直接填写密钥、默认提示词,以及可选的参考图 URL(推荐,文件已在项目根目录创建):
{
"api_key": "在这里填写你的速创API密钥",
"prompt": "在这里填写默认提示词(可留空,留空则运行时输入或用命令行参数覆盖)",
"size": "1K 或 2K 或 4K,可选",
"reference_urls": [
"https://你的参考图1.png",
"https://你的参考图2.jpg"
]
}
- 或将密钥配置到环境变量:
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_id:Cloudflare 账户 ID(Dashboard 右侧或 R2 概览页)。
- r2_access_key_id / r2_secret_access_key:在 Cloudflare Dashboard → R2 → Manage R2 API Tokens 创建。
- r2_bucket:R2 桶名称。
- 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.py:Python 主脚本。nano_banana_client.js:Node 主脚本,配合npm run dev使用。package.json:Node 项目配置(内置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
运行后脚本会:
- 从
input-dir(默认01)中读取参考图并转为 base64; - 调用
https://api.wuyinkeji.com/api/async/image_nanoBanana2创建任务; - 根据任务
id调用结果详情接口轮询任务状态; - 将返回的图片 URL 下载到
output-dir(默认save)。
说明:Python 脚本里的结果查询接口使用的是通用「结果详情」接口地址,如官方文档有更新,请根据最新文档调整
RESULT_DETAIL_URL常量的值。
使用方式(Node + npm run dev)
- 确保已经在
config_nano_banana.json中填好:
{
"api_key": "你的速创API密钥",
"prompt": "默认提示词,例如:一只坐在阳台上的橘猫,写实风格,4k 高清",
"size": "1K 或 2K 或 4K,可选",
"reference_urls": [
"https://你的参考图1.png",
"https://你的参考图2.jpg"
]
}
- 在项目根目录执行:
npm run dev
-
Node 版本脚本的行为:
-
从
config_nano_banana.json中读取api_key和prompt。 -
若已配置 R2:将
01目录中的参考图上传到 R2,得到公网 URL,作为生图参考;未配置 R2:将01目录图片转为 base64。再合并配置中的reference_urls。 -
调用
https://api.wuyinkeji.com/api/async/image_nanoBanana2创建任务。 -
使用
https://api.wuyinkeji.com/api/async/detail和返回的id轮询任务状态。 -
将生成图片下载到
save目录;若使用了 R2,随后删除本次上传的 R2 参考图。