Nano Banana 2 Lite
Nano Banana 2 Lite is Google's image model inside your ComfyUI graph
- referenceImages
- referenceVideos
- advancedFeatures.watermark.image
- image
Yes, the name is real. Google's Gemini image models ship as "Nano Banana" and this node gives you the 2 Lite tier - the cheaper, faster cut of the Gemini 3.1 Flash generation model - as a single ComfyUI node. You don't download a checkpoint and you don't need a GPU. The node fires a request at Runware's cloud, the model runs on Google's hardware, and a native IMAGE tensor comes back into your graph. If your prompt involves text on the image, or you want Google's notoriously good reference-image editing without renting a workstation, this is the closest thing to a one-click version.
It's part of the Runware/ComfyUI-Runware pack, which turns the whole Runware catalog into nodes. One API key covers all of them, so you can mix this with a local FLUX workflow in the same graph and let each model do what it's good at.
How it works
Under the hood the node builds a JSON request and sends it through Runware's Python SDK over REST (the pack's requirements.txt is just runware-sdk, pillow, and soundfile). You don't set steps or a sampler - that's all handled by Google's serving stack. The important part is the API key: ComfyUI Settings → Runware API key, or the RUNWARE_API_KEY environment variable, or runware auth login once. Miss all three and you get a "No Runware API key" error before anything runs. Each queued job shows its cost in the node title bar, which is the feature that keeps you honest about how many numberResults you're asking for.
The inputs that matter
- positivePrompt - required, multiline. This is a Gemini-native model, so long, descriptive, natural-language prompts genuinely work here. Say what you want including any text that should appear.
- referenceImages (
IMAGE) - wire in an image to edit or restyle. This is the big one; Nano Banana's edit-from-reference is where it beats most local models. - size - pick from the preset dropdown (1K 1:1, 3:2, 9:16, …). Don't fight it; only one of resolution or dimensions gets sent anyway.
- settings.thinking -
MINIMALis faster,HIGHlets the model reason about the prompt first. The Pro tier made "thinking mode" famous; Lite still exposes it. - seed and numberResults (up to 20) - reproducibility and cheap variations, same as you'd expect anywhere.
There's also settings.temperature, settings.topP, a settings.systemPrompt, output format/quality, and a watermark socket if you want to brand generations. TTL settings only matter if you ever ask for a URL output, which the node doesn't by default.
Installing it
Install the pack once and every node in this family appears:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Then restart ComfyUI. Easier still: ComfyUI Manager → search Runware → install. No model files download either way, since nothing runs locally.
Where people get burned
The number one trap isn't the node - it's Google. Nano Banana is heavily moderated (the KB notes January 2026 policy tightening around safety and celebrity/IP), and providerSettings.google.safetyTolerance tops out at off, which just means "use Google's defaults," not "disable." If you're getting surprise refusals on innocuous prompts, that's the filter, not a broken key. Also note the $20 minimum top-up and required card on Runware's dashboard - annoying, but it's the standard prepaid API model. Wire the image output into Preview Image or Save Image and you're done.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| referenceVideosopt | RUNWARE_REFERENCEVIDEOS | — | |
| 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 | FLOAT | 1.000–2 | Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity. |
| settings.thinkingopt | COMBO | (default) | Controls the depth of internal reasoning the model performs before generating a response. |
| settings.topPopt | FLOAT | 0.950–1 | Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity. |
| 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 | — |