Nano Banana Pro (Image Edit) π
One node, three reference images, no GPU
- image
- image_2
- image_3
- images
- description
If you've seen someone's ComfyUI workflow turn a photo into a consistent character across a dozen poses, that's almost certainly Nano Banana Pro doing the heavy lifting. This node is the image-edit half of the tiny ComfyUI_NBP_Unleashed pack, and honestly it's the half most people install the pack for. It's a thin wrapper around Google's Nano Banana Pro (a.k.a. Gemini 3 Pro Image) served through fal.ai's paid API - which means no model download, no VRAM, and no waiting for a checkpoint to load. You type what you want changed, hand it your image, and get a result back like any other node.
Why you'd reach for it
Nano Banana Pro is Google's flagship closed image model: native 4K output, strong prompt following, and genuinely impressive character consistency when you feed it reference images. That last one is the community's consistent verdict - people still pay fal's per-image price for it because local open models lose on identity preservation. The trade is that it's a cloud call with a cost per image, not a local generation. Use it where your local stack struggles: reference-consistent edits, relighting, swapping elements, or producing 4K output you'd then slice up for downstream work. If you just need a quick img2img tweak, local models are free and fine; this node is for when consistency or quality justifies the money.
How it works
The mechanism is unglamorous but solid. On execution the node uploads your image(s) to fal's CDN, POSTs to the synchronous fal-ai/nano-banana-pro/edit endpoint, waits (default 300 seconds), then downloads the result back into a normal ComfyUI IMAGE tensor. So inside the graph it behaves like any image node - the API call is entirely under the hood. One honest note: the pack name says "Unleashed," which oversells it. Nothing is unleashed here; the safety knob only moves fal's filtering layer, not Google's.
The inputs that matter
Most of these you can leave alone. The few you'll actually set:
- image - required. Your primary input, wired from a LoadImage or any upstream node.
- image_2 / image_3 - optional reference images. Together with
imagethat's up to three references, which is where the consistency magic comes from. The underlying model technically supports more; this node exposes three. - prompt - required, multiline. Say what to change in plain language. This model follows instructions well, so be specific.
- safety_tolerance - the knob the README spends most of its words on. 1 (strict) to 6 (least strict), default 4. It adjusts fal.ai's extra filtering layer only - Google's model-level safety can still refuse. Don't expect it to perform miracles.
- resolution - 1K / 2K / 4K. 4K costs twice as much.
Also available: num_images (1β4), aspect_ratio (defaults to auto here, with ten ratio options plus auto), output_format (png/jpeg/webp), seed (-1 = random), limit_generations (forces exactly one image per call), enable_web_search, timeout (30β600s), and fal_api_key - a per-node key override if you don't want to rely on the env var.
Outputs
Two: images (an IMAGE list - feed it into SaveImage or further nodes) and description (a STRING, the model's own caption of what it produced). That description output is not decorative: when a request gets filtered, it sometimes carries the refusal reason. Check it before assuming something broke.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/digital-divas-admin/ComfyUI_NBP_Unleashed
pip install requests
Then set your key before launching ComfyUI:
export FAL_KEY="your-fal-api-key-here"
Restart ComfyUI and the node appears under fal.ai/Nano Banana Pro. ComfyUI Manager should also find the pack if you search "ComfyUI_NBP_Unleashed". That's the whole install - the only dependency is requests; PIL, torch and numpy ship with ComfyUI, and there are no model files to download. Get a key at https://fal.ai/dashboard/keys.
Common issues
The big one is censorship, and it's by design. Filtered prompts return an empty images array or a hard error, so check the description output for the refusal reason. safety_tolerance genuinely is API-only - the fal playground doesn't even expose it - and even at 6 the Gemini model's own filters still apply. Watch the bill, too: $0.15 per image at 1K/2K, $0.30 at 4K, plus $0.015 if you enable web search. Long edits can approach the 300s timeout; bump timeout up to 600 if you're hitting it. And if you're running heavy 4K batches, know that some people shop resellers like Kie.ai for cheaper rates - the quality is the same, but that's your call on who to trust with your API calls.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| prompt | STRING | β | |
| fal_api_keyopt | STRING | β | |
| image_2opt | IMAGE | β | |
| image_3opt | IMAGE | β | |
| num_imagesopt | INT | 11β4 | β |
| aspect_ratioopt | COMBO | auto | 11 options: auto, 1:1, 16:9, 9:16, 4:3, 3:4, +5 |
| output_formatopt | COMBO | png | 3 options: png, jpeg, webp |
| resolutionopt | COMBO | 1K | 3 options: 1K, 2K, 4K |
| seedopt | INT | -1-1β2147483647 | β |
| limit_generationsopt | BOOLEAN | false | β |
| enable_web_searchopt | BOOLEAN | false | β |
| safety_toleranceopt | INT | 41β6 | β |
| timeoutopt | INT | 30030β600 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | β |
| description | STRING | β |