Nodes/SpicyAPI/Nano Banana Pro · Image Editing
ComfyUI Node

Nano Banana Pro · Image Editing

Stack up to 14 reference images and tell Google what to change

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Nano Banana Pro · Image Editing
  • image_urls
  • images
  • task id
◄prompt►
◄aspect_ratioauto►
◄resolution1k►
◄seed0►

This is the instruction-editing node: you hand Nano Banana Pro (Gemini 3 Pro Image) one or more source pictures plus a sentence about what should change, and it returns a new image. Relight a portrait, swap the background, drop a product into a different scene, change the sign text on a storefront, composite four photos into one - that's the job, and it's the job Google's model is famously good at. It is not a node for generating something from nothing; that's the sibling Text to Image node.

One socket to fourteen pictures

The interesting input is image_urls, and if you've used ComfyUI's Autogrow inputs you already know the shape: connect one image and the node grows another socket, up to fourteen. Order matters, because your prompt refers to them by position - "put the jacket from the second image on the person in the first" is the kind of prompt this node is built for, and it only works if you connected them in that order. A batch on a single socket counts as several pictures, so a Load Image stack wired once still lands as multiple references.

Under the hood, each connected image is encoded (PNG if it fits under the 10 MiB upload ceiling, high-quality JPEG if it doesn't) and uploaded to SpicyAPI for the run. Those uploads are cached locally by content hash for about twelve hours, so tweaking the prompt and re-running doesn't re-send the same photo - but note that uploaded files aren't a private store; they're inputs to a hosted model, and the picture leaves your machine.

The other three fields

  • prompt - say what to change and what must stay the same. That second half is the whole trick. The author's own tooltip says it, and it's the same advice that fixes drift on any instruction editor: naming what's fixed (same face, same pose, same clothing, same framing) is how you keep the model from quietly redrawing everything. Edit nodes love to reinterpret an image when you only tell them what you want added.
  • aspect_ratio - defaults to auto, which keeps the shape of the source image. There are ten explicit ratios if you want the edit to come back in a different frame, plus auto. Leave it on auto unless you specifically need a re-crop.
  • resolution - 1k (default), 2k or 4k. Worth knowing: 1k and 2k cost the same ($0.1072 per image), and only 4k jumps to $0.192. If you were going to edit at 1k and then upscale locally anyway, 2k for the same money is free detail.

Outputs are images (a ComfyUI IMAGE) and task id (a string, for the console logs or support).

Install and first run

Nothing to install beyond the pack itself - zero extra dependencies:

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Restart ComfyUI, paste a key from spicyapi.ai/console/keys into Settings > SpicyAPI, restart again. Below the key there's a Max cost per run box - set it before you touch a 4K edit, because a mis-set resolution is a silent 2x on the bill. Set SPICY_API_KEY instead if the machine is headless.

Traps and rough edges

Cost is per output image, and it's not cheap. At $0.1072 a pop this is a considered-edit node, not a sketchpad. Quote mentally before you queue eight variations.

Multi-reference prompts degrade as you add images. Fourteen is the ceiling, not the target. Two to four well-chosen references with a prompt that names them by position is the reliable zone; past that the model starts merging things you meant to keep separate.

The filter is upstream. Google refuses what Google refuses, and there's nothing to patch - no weights, no community bypass, no local fallback. If you bought this workflow hoping to route around a content refusal, it won't happen here.

Errors you'll actually see. 40310 is an unverified email on your account. 40004 means that exact combination of options isn't served - change the field the message names. An error ending in request_id ... is worth copy-pasting into the task-id output and keeping, because it identifies the request exactly. And if a random HTTPS_PROXY is set on the machine, check it: the pack's own error text calls out a proxy or firewall intercepting the request as a real failure mode.

CategorySpicyAPI/Image/Google

Inputs (5)

NameTypeDefaultDescription
promptSTRINGSay what to change and what must stay the same.
image_urlsCOMFY_AUTOGROW_V3One to 14 source images, in the order your prompt refers to them.
aspect_ratioCOMBOautoOutput aspect ratio; auto keeps the shape of the source image.
resolutionCOMBO1kOutput size tier.
seedINT00–2147483647This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed.

Outputs (2)

NameTypeDescription
imagesIMAGE—
task idSTRINGThe SpicyAPI task id, for the console logs or support.