Nodes/KIE.ai Nodes Next/Nano Banana 2
ComfyUI Node

Nano Banana 2

The cheap, fast one — and it has a demo prompt baked in

By felipederosilva·Created about a month ago·Updated a day ago· 3
Nano Banana 2
  • image_input
  • image
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptComic poster: cool banana hero in shades leaps from sci-fi pad. Six panels: 1) 4K mountain landscape, 2) banana holds page of long multilingual text with auto translation, 3) Gemini 3 hologram for search/knowledge/reasoning, 4) camera UI sliders for angle focus color, 5) frame trio 1:1-9:16, 6) consistent banana poses. Footer shows Google icons. Tagline: Nano Banana Pro now on Kie AI.►
◄aspect_ratioauto►
◄resolution1K►
◄output_formatpng►
◄timeout_seconds1200►
◄callback_url►

What it is

Nano Banana 2 is Google's Gemini 3.1 Flash Image model - the speed-and-price sibling of Nano Banana Pro. There are no weights, so it can never run locally at any VRAM; the only way it enters a ComfyUI graph is through a node that calls a server. This is that node, pointed at KIE's API.

Why route through KIE rather than Comfy's own native Nano Banana nodes? Price, mostly. Community comparisons through reseller access put Nano Banana 2 around 8 credits (~$0.04) at 1K and 18 (~$0.09) at 4K, against roughly double that for Pro on the same marketplace - and higher again on the Fal-backed first-party route. If you generate grids or iterate a lot, that gap shows up fast. The other reasons people pick a reseller are billing simplicity, region access, and not wanting a Google Cloud project (all catalogued in docs/knowledge/external-api-nodes.md).

The catch is the same as every API node: per-call cost, your prompts and images leaving the machine, and Google's filtering riding along inside the model with no way to ablate it out.

How it works

The node is generated from KIE's published request schema for the Nano Banana 2 endpoint, which is why the widget set is small and fixed: prompt, an optional image input, ratio, resolution, format. image_input is a native IMAGE socket - the pack uploads it to KIE's storage and swaps in the URL, so you never paste links. The job is submitted as a task, polled until it finishes or timeout_seconds expires, and the result is downloaded as a ComfyUI IMAGE.

Inputs and outputs

Required:

  • prompt (STRING, up to 20,000 characters) - the author ships this pre-filled with a demo prompt about a comic-poster banana hero. Clear it first; you'll otherwise spend a credit generating someone else's advertising copy.

Optional:

  • image_input (IMAGE) - an image to work from. This is where the model earns its reputation: edit an existing picture, blend references, or keep a character roughly on-model.
  • aspect_ratio - auto by default, plus fifteen values including the weird ones (1:8, 8:1, 1:4, 4:1). auto lets the system choose; set it when you're matching a layout.
  • resolution - 1K, 2K, 4K. This is your cost dial, and 4K is roughly three times the 2K price on this model. Decide before you queue, not after.
  • output_format - png or jpg.
  • timeout_seconds (1200 default), callback_url (leave empty).

Outputs: image (native tensor, wire it onward), url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. The credits-left socket is the one to wire into a text node if you're running loops.

Install

Manager: search KIE-Nodes-Next, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next

Then set the key: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The pack validates it against KIE before overwriting anything and shows a masked fingerprint plus your live balance - the balance screen is the fastest way to confirm you have credits before blaming the node. KIE_API_KEY as an environment variable overrides the saved key, which is the headless-server path.

requirements.txt is just requests, Pillow, numpy, PyYAML. Note that this pack is the auto-generated from KIE's docs one - there are several KIE node packs in the Manager with similar names, so make sure you're installing felipederosilva's (the repo URL above) rather than a hand-built one.

Where people get burned

The prefilled demo prompt. Covered above, but it's the most common "why does my output look like a Google ad" moment in this pack. Clear it.

Google's filter is the model's, not the node's. You can't patch it, prompt around it reliably, or abliterate it. Whatever the model refuses, the node refuses, because there are no weights to edit.

auto isn't neutral. If you're assembling a grid or feeding a fixed-size downstream node, an auto ratio will hand you a surprise aspect ratio. Pin it.

Model churn is real. KIE's catalog moves as providers add and retire endpoints - one community thread on a sibling KIE pack has a user reporting a model quietly disappearing. If a node that worked last week starts erroring, hit KIE • Refresh Model Catalog; the pack rebuilds its library from KIE's live docs.

Cost per image, not per session. Cheap per call is exactly what makes it easy to spend $20 in an afternoon of grid tests. Use credits_consumed on the node's own readout as your speedometer.

CategoryKIE Next/Image/Google/Nano Banana

Inputs (7)

NameTypeDefaultDescription
promptSTRINGComic poster: cool banana hero in shades leaps from sci-fi pad. Six panels: 1) 4K mountain landscape, 2) banana holds page of long multilingual text with auto translation, 3) Gemini 3 hologram for search/knowledge/reasoning, 4) camera UI sliders for angle focus color, 5) frame trio 1:1-9:16, 6) consistent banana poses. Footer shows Google icons. Tagline: Nano Banana Pro now on Kie AI.A text description of the image you want to generate (Max length: 20000 characters)
image_inputoptIMAGE—
aspect_ratiooptCOMBOautoAspect ratio of the generated image
resolutionoptCOMBO1KResolution of the generated image
output_formatoptCOMBOpngFormat of the output image
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
imageIMAGE—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—