Nano Banana Pro
Google's Gemini image model, no Google account needed
- referenceImages
- advancedFeatures.watermark.image
- image
"Nano Banana" was the community's nickname for Google's Gemini image model, and it stuck because the thing was absurdly good at instruction-following - you could tell it to add a banana to a scene and it actually would. Nano Banana Pro (google:4@2) is the bigger tier of that line, and the remarkable part of this node is what you don't need: no Google AI account, no separate Gemini API key, no Vertex AI billing page. One Runware key and Google's model just shows up in your node menu.
This is a closed model by definition - you were never going to run Gemini locally - so the cloud wrapper isn't a compromise, it's the only way in. What you get for the API call is the model's real superpower: reference-image editing. Wire images into referenceImages and you can do character-consistent generations, style transfers, and multi-image composition the way Google demos them. That's the headline.
How it works
Standard Runware imageInference with the google:4@2 AIR. Your prompt and reference images go up as base64, Google renders, and the result comes back as a native IMAGE tensor. Two Google-specific knobs are worth flagging before you touch anything else:
providerSettings.google.webSearch- live web-search grounding. Turn this on and the model can incorporate real, current facts ("the current skyline of Osaka" instead of a hallucinated guess). It's the most Google-y feature on the node and the one nobody else offers.providerSettings.google.safetyTolerance-high/medium/low/none, withoffmeaning "use Google's defaults." Google's image models are cautious; this is the dial if a prompt keeps getting refused.
The inputs that matter
positivePrompt(required) - and it's worth being specific. This model follows instructions unusually well.referenceImages- theIMAGEinput that unlocks editing, subject consistency, and style transfer. The single most important optional input on the node.size- a dropdown of 34 presets, from "from input" (match the reference) up through 1K/2K/4K at every common ratio. One control replaces the width/height pair.settings.systemPrompt- a global instruction that shapes every generation.numberResults- up to 20 variations, which is a lot of different seeds for one credit.settings.temperature/settings.topP- gated on/off toggles with paired value fields; off uses the model default.
Installing it
Install the pack, not the model. ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Key from runware.ai/api-keys → ComfyUI Settings → Runware API key (or RUNWARE_API_KEY). Nothing downloads.
Where people get burned
- Safety is the model, not the node. Google's filters are the strongest in the field. If generations get refused,
safetyToleranceonly goes so far - the model's guardrails are load-bearing. - Web search costs and surprises.
webSearchis a paid, slower mode that changes results every time (it's live data). Use it deliberately, not by accident. - Reference quality is ceiling quality. Editing works best with clean, high-res inputs; a noisy reference drags the output down.
- It's metered. 20 results on one run is 20 billed generations. The title bar shows the total; check it before you batch.
Nano Banana Pro is the node you reach for when you want Google-grade editing without Google's onboarding. It's the closest thing in the pack to a magic wand - just mind the bill.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| providerSettings.google.safetyToleranceopt | COMBO | none | Safety filter tolerance level. Use `off` to use Google's defaults. |
| settings.systemPromptopt | STRING | System-level instruction that guides the model's behavior and output style across the entire generation. | |
| settings.temperatureopt | BOOLEAN | false | Enable to set settings.temperature. Off uses the model's default. |
| settings.temperature_valueopt | FLOAT | 0.000–2 | Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity. |
| settings.topPopt | BOOLEAN | false | Enable to set settings.topP. Off uses the model's default. |
| settings.topP_valueopt | FLOAT | 0.000–1 | Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity. |
| providerSettings.google.webSearchopt | BOOLEAN | false | Enable live web search grounding to incorporate real-world, up-to-date information into image generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |