Comfly_nano_banana
Text-to-Image and Multi-Ref Editing
- image1
- image2
- image3
- image4
- image
- response
- image_url
Nano Banana is Google's consumer-branded image model - Gemini 2.5 Flash Image under the hood, plus the "Pro" 3.x previews that are the current flagship - and it's genuinely strong at the thing local models still trip over: following instructive prompts with real understanding ("make it golden hour, warm rim light, add motion blur to the car but not the background"). This node drops it into ComfyUI through the Comfly proxy, no Google account, no Vertex AI setup, no waiting on Google's gating.
It does double duty: text-to-image when you feed it a prompt, and multi-image reference editing when you also wire in up to four reference images - a workflow the README compares to Google Labs' "Whisk" idea, where a few reference images (subject, style, scene) mix into one output. That mix-and-match editing is the standout use case.
How it works
Prompt plus any of image1–image4 get base64-encoded to the proxy's Gemini-image endpoint, which calls the chosen model and returns a rendered image. The node converts it back to an IMAGE tensor and also hands you the hosted image_url and the raw response. All inference is on Google's side via the reseller.
The inputs that matter
- text - your instruction. For multi-ref editing, describe how the references combine: "subject from image1, style from image2, background from image3."
- model - six choices:
nano-banana(default; the README notes this one is "less likely to be detected as a chatbot"),nano-banana-hd,gemini-2.5-flash-image,gemini-2.5-flash-image-preview(the strongest editor, per the README),nano-banana-2, andgemini-3-pro-image-preview(the Nano Banana Pro flagship). - image1–image4 - reference images for editing/compositing. Feed one for a plain image edit; feed several for the Whisk-style mix.
- temperature / top_p - default
1/0.95. Lower temperature for more literal results; these are genuine model dials on the Gemini side. - max_tokens - default
32768, which is a lot of budget; lower it for simple jobs to keep costs down if the proxy bills on tokens. - seed - lock a take.
Outputs: image (IMAGE), response (STRING), image_url (STRING - the hosted copy).
Install
Manager → Comfyui_Comfly, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ainewsto/Comfyui_Comfly
Restart. No model downloads; the requirements.txt is the standard aiohttp/requests/Pillow/numpy set plus existing torch/transformers. Key from ai.comfly.chat in Comflyapi.json or the node's apikey.
Where people get burned
The README carries a specific warning for its Google-flavored nano-banana endpoints: sometimes the official side "returns no image," and it's more reliable from a US-based node (people in some regions run it behind a proxy/VPN for this reason). If you get an empty result, that's the usual suspect - not your prompt. Also, this is a Google model under the hood, so the famous ImageFX-style content biasing applies: heavily filtered subject matter can come back bland or refused, and that's the model, not the node. Finally, per-image billing means a multi-ref edit with a big max_tokens can cost more than a plain generation - check the response for the token/price readout.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — | |
| model | COMBO | nano-banana | 6 options: nano-banana-pro, gemini-3-pro-image-preview, gemini-2.5-flash-image, nano-banana, nano-banana-hd, gemini-2.5-flash-image-preview |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| temperatureopt | FLOAT | 1.000–2 | — |
| top_popt | FLOAT | 0.950–1 | — |
| apikeyopt | STRING | — | |
| seedopt | INT | 00–2147483647 | — |
| max_tokensopt | INT | 327681–32768 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| response | STRING | — |
| image_url | STRING | — |