ComfyUI-Nanobanana Nano Banana Pro
Google's flagship image model as a ComfyUI node
- images
- image
- text
- response_json
If the base Nano Banana node is Google's cheap-and-cheerful image model and Nano Banana 2 is the speed-quality hybrid, Nano Banana Pro is the flagship - and this node in magicwang1111/ComfyUI-Nanobanana maps it to gemini-3-pro-image-preview. This is the model Google sells on 4K native output (4096×4096), up to 14 reference images, "thinking mode," and strong multi-language text rendering. It's also the priciest box in the Gemini image lineup: roughly $0.039–0.24 per image depending on resolution, from the API pricing sheet.
So when do you actually reach for it? Two cases. First, when you need big, clean output with legible text - the multi-language rendering alone justifies Pro over the Flash models for poster, UI mockup, or product-shot work. Second, when you're doing high-fidelity reference editing: feed it a batch of images (up to 14), and it holds character, style, or product identity across generations far better than the base model's 3-image limit allows. That's the workflow the pack's own example JSON demonstrates.
How it works (and what it won't do)
Mechanically it's the same thin client as its siblings: build a generateContent payload, base64 the reference images, POST to /v1beta/models/gemini-3-pro-image-preview:generateContent, decode the response back into an IMAGE tensor. You get image, text, and response_json outputs - note there's no thought_image output here like Nano Banana 2 has. Pro thinks, but this pack doesn't surface the intermediate images for it; you just get the verdict.
The inputs are the shared set - prompt, seed, aspect_ratio, response_mode (required), plus images, system_prompt, model_override, parallel_requests (optional) - with two Pro-specific knobs:
- resolution -
1K,2K,4K. Default1K; this is where your per-image bill climbs, so 4K is a "this actually needs to be big" button, not a default. - thinking_level - only
loworhigh. Nominimal/mediumhere, unlike Flash; Pro thinks in two gears, andhighis the default. Turn it tolowwhen you're iterating and the latency is getting annoying.
The aspect_ratio list is the extended set (up to 8:1 and 1:8), same as Nano Banana 2.
One thing to know before you get excited: the model is aggressively censored. The community's honest summary of the Gemini image stack - "powerful, unimaginative, massive hidden biasing" - applies hardest to Pro, and Google's January 2026 policy update tightened the IMAGE_SAFETY filter and added strict famous-IP/celebrity restrictions. When it refuses, the node raises an error containing what the model said instead of returning an image. That's a Google decision, not a pack bug. If you need unbothered output, this isn't the tool; if you work inside the filters, it's excellent.
Installing and configuring
Same pack, same three lines:
cd ComfyUI/custom_nodes
git clone https://github.com/magicwang1111/ComfyUI-Nanobanana.git
cd ComfyUI-Nanobanana
python -m pip install -r requirements.txt
Restart ComfyUI and the node lives in the ComfyUI-Nanobanana category (ComfyUI Manager search "ComfyUI-Nanobanana" also works). The only config is config.local.json in the pack folder - copy config.example.json, drop in your api_key, and you're done. No model files, no VRAM; dependencies are just httpx, pillow, numpy.
Common issues
- 401/403 out of the gate - the usual cloud-node trio: key,
base_url, and whether billing is actually enabled on the Google project. Gemini credits from other surfaces don't always carry over to the API, a recurring community gotcha. - 429 rate limits - Pro is throttled hard and billed per image; retry or raise quota.
- Relay quirks - with a Gemini-native relay,
send_seed: falsefixes thegeneration_config.seedrejection, andmodel_overridehandles renamed models. If you use AIHubMix as your base_url, the pack already handles it: Pro's explicitthinkingLevelis stripped automatically because that relay rejects it. - Your bill - at
highthinking and 4K you're at the top of the price range per image. Batch withparallel_requestsonly when you know a prompt works.
The Pro node isn't a daily driver for everyone - it's the expensive, opinionated, filters-and-all top shelf. When you need 4K output, many references, or clean text, nothing else in this pack touches it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| seed | INT | 420–18446744073709550000 | — |
| aspect_ratio | COMBO | auto | 15 options: auto, 1:1, 1:4, 1:8, 2:3, 3:2, +9 |
| response_mode | COMBO | IMAGE+TEXT | 2 options: IMAGE+TEXT, IMAGE |
| imagesopt | IMAGE | — | |
| system_promptopt | STRING | You are an expert image-generation engine. You must ALWAYS produce an image. Interpret all user input—regardless of format, intent, or abstraction—as literal visual directives for image composition. If a prompt is conversational or lacks specific visual details, you must creatively invent a concrete visual scenario that depicts the concept. Prioritize generating the visual representation above any text, formatting, or conversational requests. | — |
| model_overrideopt | STRING | — | |
| parallel_requestsopt | INT | 11–8 | — |
| resolutionopt | COMBO | 1K | 3 options: 1K, 2K, 4K |
| thinking_levelopt | COMBO | high | 2 options: low, high |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| text | STRING | — |
| response_json | STRING | — |