ComfyUI Node

Banana-API-3

Nano Banana inside your ComfyUI graph — no local GPU required

By qianchi7·Created about a month ago·Updated about a month ago· 0
Banana-API-3
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
  • image_10
  • image_11
  • image_12
  • image_13
  • image_14
  • images
  • text
promptPeace and love
api_key
api_base_url
model_type「Rim」gemini-3-pro-image-preview
batch_size1
aspect_ratioAuto
seed-1
top_p0.95
imageSize2K
超时秒数60
无限超时true
绕过代理false
测试延迟false
ping次数4

This node ("Banana-API-3" on the canvas) doesn't run a model. It calls one. It's the ComfyUI front end for Google's Nano Banana - the model_type even defaults to 「Rim」gemini-3-pro-image-preview, the gateway alias for Gemini 3 Pro Image. And that distinction decides whether it's for you.

Nano Banana has no open weights, so local isn't an option at any VRAM. But it's the strongest closed image model around as of 2026 - 4K native output, up to 14 reference images, "thinking mode" - and the community's canonical move is to generate frames on it and animate them with a local Wan model underneath. Comfy's own official Partner Nodes do this on prepaid credits tied to a Comfy account. This pack is the alternative path: you bring your own API key and your own OpenAI/Gemini-compatible gateway, which is exactly how the reseller layer around Nano Banana actually works. Kie.ai, laozhang, a relay you rent, or the author's own service at wish.sillydream.top - the node doesn't care, it just talks to whatever base URL you hand it.

How it works

Under the hood it builds a Gemini-style generateContent request to {base_url}/v1beta/models/{model}:generateContent. Your reference images go up as base64 inlineData, your seed and top_p ride in generationConfig, and the response - raw base64, Markdown-embedded base64, or a hosted image URL - is decoded back into an IMAGE tensor. So downstream it looks like a local sampler: wire images into a save node, an upscaler, whatever. The only thing that tells you it wasn't local is the bill.

Requests run through a small thread pool, so a batch_size of 4 fans out concurrently (with a 0.2s stagger to avoid a request spike). Set a fixed seed to reproduce, or leave -1 to let the node roll its own.

The inputs that matter

You don't touch most of these. The ones you actually set:

  • api_base_url and api_key - leave blank to fall back to the config.ini in the pack folder; the node input wins when both are set.
  • model_type - must match the alias your gateway has configured, exactly. A 404 is the symptom of getting this wrong.
  • batch_size (1–8) - how many images per request, generated concurrently.
  • aspect_ratio - Auto or one of 15 presets. Feed in a reference image with Auto and it snaps to the closest preset matching that image's dimensions.
  • image_1 through image_14 - the img2img / multi-image fusion inputs. Optional, and the whole reason this pack is interesting.

Everything else is quality plumbing: seed, top_p, imageSize (/1K/2K/4K), read-timeout (超时秒数 / 无限超时), and 绕过代理 for when your system proxy is the bottleneck. Toggle 测试延迟 if you want a ping report prepended to the output.

Outputs: images (IMAGE) and text (STRING). That text output is worth reading - when a model hits a content-policy wall it often returns words instead of pixels, and the node passes those words through so you know why you got nothing.

Install

Two ways, both painless. The pack's only real dependency is requests.

cd ComfyUI/custom_nodes
git clone https://github.com/qianchi7/ComfyUI-SillyDream-Banana.git
pip install requests

Or ComfyUI Manager → Install via Git URL with that repo URL, then Restart (a page reload isn't enough - custom nodes are scanned once at startup). Portable installs should use python_embeded\python.exe -m pip install requests. There are no model files to download; the model lives on the gateway. First launch writes a sample config.ini next to the node.

Where people get burned

  • The shipped config.ini points at the author's own gateway IP with a placeholder key. That's his business, and you'll almost certainly want your own endpoint and key in there before you run anything.
  • 401/403 means the key is wrong or lacks permission; 404 means model_type doesn't match the gateway; 429 is you hammering a rate limit; 502/503 is the gateway's problem, not yours.
  • Empty image results: check the text output for a NO_IMAGE / content-filter explanation and rephrase the prompt.

Last honest caveat: this is a metered call to a filtered, closed model, and API-wrapper packs are the exact category that shipped credential-stealing malware once. This one is a small MIT fork with the author explicitly claiming to have stripped the original's hidden endpoint-switching logic - read the source before you trust it, and don't paste a key you care about into a node you haven't.

Categoryimage/ai_generation

Inputs (28)

NameTypeDefaultDescription
promptSTRINGPeace and love生成图像的文本提示词,可多行描述内容、风格等
api_keySTRING调用服务的 API Key;留空则优先使用 config.ini 中的配置
api_base_urlSTRINGAPI 服务地址;留空则使用 config.ini 中的配置
model_typeSTRING「Rim」gemini-3-pro-image-preview模型名称)
batch_sizeINT11–8一次请求中要生成的图片数量,范围 1~8
aspect_ratioCOMBOAuto生成图像的宽高比例,Auto 为由服务端自动决定
seedoptINT-1-1–102400随机种子,-1 为自动随机;固定种子可复现同一输出
top_poptFLOAT0.950–1采样参数 Top-P,数值越低越保守,越高多样性越强
imageSizeoptCOMBO2K图像分辨率选项:1K/2K/4K,适用于所有支持图像生成的模型
image_1optIMAGE参考图像 1,可为空;用于图生图或多图融合
image_2optIMAGE参考图像 2,可为空;用于图生图或多图融合
image_3optIMAGE参考图像 3,可为空;用于图生图或多图融合
image_4optIMAGE参考图像 4,可为空;用于图生图或多图融合
image_5optIMAGE参考图像 5,可为空;用于图生图或多图融合
image_6optIMAGE参考图像 6,可为空;用于图生图或多图融合
image_7optIMAGE参考图像 7,可为空;用于图生图或多图融合
image_8optIMAGE参考图像 8,可为空;用于图生图或多图融合
image_9optIMAGE参考图像 9,可为空;用于图生图或多图融合
image_10optIMAGE参考图像 10,可为空;用于图生图或多图融合
image_11optIMAGE参考图像 11,可为空;用于图生图或多图融合
image_12optIMAGE参考图像 12,可为空;用于图生图或多图融合
image_13optIMAGE参考图像 13,可为空;用于图生图或多图融合
image_14optIMAGE参考图像 14,可为空;用于图生图或多图融合
超时秒数optINT6060–1800API 请求的读取超时时间(秒),最低 60 秒;开启“无限超时”时此值会被忽略
无限超时optBOOLEANtrue开启后读取超时无限制;关闭后使用上面的“超时秒数”
绕过代理optBOOLEANfalse梯子速度不佳、不可靠时开启
测试延迟optBOOLEANfalse对当前 API Base URL 执行 ping 测试,输出延迟和丢包率,便于挑选更稳的端点
ping次数optINT41–10ping 探测次数,次数越多结果越稳定,但会增加等待时间

Outputs (2)

NameTypeDescription
imagesIMAGE
textSTRING