CatsAPI Nano Banana 2
Nano Banana 2 as a ComfyUI node — Google's speed hybrid, billed per image
- reference_image
- images
- file_paths
- cost_coins
- task_id
- metadata
Google's Nano Banana line is the most-covered closed image family in the whole API-node ecosystem - "nano banana" saturated the reddit corpus cap within months, and there's an entire reseller market around it. Nano Banana 2 is the middle child: the Gemini 3.1 Flash–based speed/quality hybrid that lands between the consumer base model and the flagship Pro. You can't download any of them; you call them. CatsAPINanoBanana2 is one of seven nodes in the ComfyUI_Catsapi pack that do exactly that against catsapi.com, and it's the one I'd reach for as the pack's best everyday draft button.
The inputs
prompt- multiline text.resolution-512px,1K,2K, or4K. That512pxoption is the quiet hero: a cheap, fast draft tier that makes iteration painless before you spend on a full-size render.aspect_ratio- fourteen presets, and here's where it gets fun: alongside the normal1:1/16:9/9:16set, Nano Banana 2 accepts extreme strips like1:4,1:8,4:1, and8:1. That's banner material, and it's the model's own capability - the node only lists what the API genuinely accepts.num_images- 1 to 4 per run.max_coins- spending cap;0= uncapped.reference_image(optional) - up to fourIMAGEtensors for editing/composition.api_key_override(optional) - leave blank locally.
Outputs: the standard images tensor, file_paths (JSON), cost_coins, task_id, metadata. Files download to ComfyUI/output/catsapi/ and become a normal tensor, so you can chain a local upscaler - which pairs beautifully with that cheap 512px draft tier: draft tiny, then scale locally.
Why this one, not Pro
Nano Banana 2 is the speed play. Pro is the flagship with "thinking mode" and 4K native output, but it's also pricier and has no 512px tier. If you're doing iteration - design concepts, storyboard looks, dozens of variants - the hybrid's lower cost per image plus the draft resolution is the sane choice. The reference-image count (four) also makes it a solid character-consistency workhorse.
How it works
Same skeleton across the pack: preview cost, check max_coins, submit, poll every three seconds (15-min timeout), download with browser headers and a curl fallback. Nothing runs locally; the node is a thin HTTP client over Google's model as resold by catsapi.com.
Install and the key
cd ComfyUI/custom_nodes
git clone https://github.com/maodeyu180/ComfyUI_Catsapi.git
# restart ComfyUI
No extra Python dependencies - urllib plus numpy/PIL/torch that ComfyUI already has. You need a paid CatsAPI key from catsapi.com (starts with cats-):
export CATSAPI_API_KEY=cats-your-key
python main.py
Shell env not inherited? Use a .env or ~/.catsapi.env file; the node reads those too.
Where people get burned
The usual API-node trio: your prompt and reference images leave the machine, api_key_override gets serialized into saved workflow JSON (don't share it filled in), and the provider is a young Chinese reseller with no English-community footprint - price in cat-coins, verified by your own drafts. Also remember the model's own filter: Google's moderation rides along no matter which reseller you route through. The 8:1 banner ratios are fun until you render a dozen 4K ones on a whim; that's what 512px and max_coins are for.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| resolution | COMBO | 1K | 4 options: 512px, 1K, 2K, 4K |
| aspect_ratio | COMBO | 1:1 | 14 options: 1:1, 1:4, 1:8, 2:3, 3:2, 3:4, +8 |
| num_images | INT | 11–4 | — |
| max_coins | INT | 00–100000 | — |
| reference_imageopt | IMAGE | — | |
| api_key_overrideopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| file_paths | STRING | — |
| cost_coins | INT | — |
| task_id | STRING | — |
| metadata | STRING | — |