ComfyUI Node

Nano Banana Pro

Nano Banana Pro in ComfyUI — minus the official API

By yohji-yohji·Created 8 months ago·Updated 8 months ago· 2
Nano Banana Pro
  • 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
  • image
  • text
prompt
api_key
aspect_ratio16:9
image_size2K
timeout120

The name is only half a lie

"Nano Banana Pro" is Google's flagship closed-source image model - Gemini 3 Pro Image, the one that does native 4K, chews on up to 14 reference images, and renders text in images better than anything in the open-source world. It lives entirely in Google's cloud, so the only way to use it from ComfyUI is through an API. This node is a single-box gateway to it: type a prompt, wire in a few reference images, get back an image and text right inside your graph. No local weights, no model downloads, no VRAM.

Here's the half that's a lie. The name suggests you're talking to Google, but this node doesn't call Google's API. It POSTs to https://api.yoboxapp.com/gemini/v1beta/models/gemini-3-pro-image-preview:generateContent?key=<your key> - a third-party proxy. That's not necessarily a dealbreaker. ComfyUI now has native Nano Banana Pro support (routed through Comfy's Fal-backed paid API), and a whole crop of reseller-proxy nodes exist because they're 40-60% cheaper per image. The catch is that yoboxapp has essentially zero community footprint - no reddit signal, no track record. You're trusting an unknown middleman with your API key and your prompts. Fine for experiments; think hard before you pipe real client work through it.

How it works

The node is a faithful re-implementation of Gemini's generateContent request shape, just pointed at the proxy. Your input images get converted to tensors, scaled to 0-255, and base64-encoded into inlineData parts; the prompt becomes a text part. It then builds a contents payload with responseModalities: ["TEXT", "IMAGE"] and an imageConfig block, and reads whatever comes back - collecting text and inline images from candidates[0].content.parts. It's a clean port, which is the nice part: if the proxy ever dies, the same code talks to the official endpoint if you change one URL in gemini_node.py.

The inputs that matter

Only five required fields, and you'll actually touch most of them:

  • prompt - your generation prompt or analysis instruction. Multiline, so go ahead and write a paragraph.
  • api_key - required. Leave it empty and the node just hands you an error stub.
  • aspect_ratio - eleven choices from 1:1 to 21:9, plus None to let the API pick. Defaults to 16:9.
  • image_size - 1K, 2K, or 4K. Default 2K is the sane middle; 4K is the Pro flagship feature but slower and pricier.
  • timeout - API timeout in seconds, 1-300, default 120. Bump it toward the ceiling for 4K or when you've wired in several reference images.

Then there are image_1 through image_14, all optional IMAGE inputs. That's Nano Banana Pro's up-to-14-reference-images capability exposed as sockets - feed them for style transfer, subject consistency, or visual analysis. Plug any ComfyUI output (Load Image, a VAE decode, a workflow result) into whichever slots you need.

Outputs

Two of them, and both matter: image (an IMAGE tensor, wires into everything downstream like any other image) and text (a STRING). Use the text output when your prompt is an analysis or captioning instruction rather than a generation; it's also where errors land, which is your troubleshooting lifeline.

Installing it

Easiest via ComfyUI Manager: search "Nano Banana Pro" and hit install. Or manually:

cd ComfyUI/custom_nodes/
git clone https://github.com/yohji-yohji/comfyui-nanobanana-pro

Restart ComfyUI. That's the whole install - the README lists requests, pillow, numpy, torch as dependencies, but ComfyUI already ships all four, so there's nothing heavy to pull and no model files. Note the README's own clone URL is a placeholder (your-repo) - use the real one above.

Where people get burned

  • Black 64×64 image. That's not a render failure, it's the error path. The node returns a black stub plus an error string in text rather than crashing. Check the text output first - usually a missing key or a dead endpoint.
  • The key goes to yoboxapp, not Google. Anyone with that URL and your key can spend your credits. Don't paste a shared/company key in.
  • Censorship. Nano Banana Pro is one of the most filtered image models around - famous IP and celebrities get refused hard. The node can't fix that; it's upstream.
  • The model ID is gemini-3-pro-image-preview. Preview IDs churn. If requests start failing for no obvious reason, the model name may have rotated - check the source and the proxy's docs.

Honest verdict: it's a competent wrapper around a model you otherwise need Comfy's pricier native integration or a Google API key to reach. Just go in knowing the middleman is the product.

CategoryNanoBananaPro

Inputs (19)

NameTypeDefaultDescription
promptSTRING
api_keySTRING
aspect_ratioCOMBO16:911 options: None, 1:1, 2:3, 3:2, 3:4, 4:3, +5
image_sizeCOMBO2K3 options: 1K, 2K, 4K
timeoutINT1201–300
image_1optIMAGE
image_2optIMAGE
image_3optIMAGE
image_4optIMAGE
image_5optIMAGE
image_6optIMAGE
image_7optIMAGE
image_8optIMAGE
image_9optIMAGE
image_10optIMAGE
image_11optIMAGE
image_12optIMAGE
image_13optIMAGE
image_14optIMAGE

Outputs (2)

NameTypeDescription
imageIMAGE
textSTRING