ComfyUI Node

Nano Banana 2 Lite

Nano Banana 2 Lite is Google's image model inside your ComfyUI graph

By Runware·Created 2 years ago·Updated about a month ago· 140
Nano Banana 2 Lite
  • referenceImages
  • referenceVideos
  • advancedFeatures.watermark.image
  • image
positivePrompt
size1K (1:1)
seed0
numberResults1
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
safetyfalse
safety.checkContentfalse
providerSettings.google.safetyTolerancenone
settings.systemPrompt
settings.temperature1.00
settings.thinking(default)
settings.topP0.95
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

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 - MINIMAL is faster, HIGH lets 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.

CategoryRunware/Image/google

Inputs (25)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
referenceImagesoptIMAGE
referenceVideosoptRUNWARE_REFERENCEVIDEOS
advancedFeatures.watermark.imageoptIMAGE
sizeoptCOMBO1K (1:1)Output size. Only one of resolution or dimensions is sent.
seedoptINT00–2147483647Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
providerSettings.google.safetyToleranceoptCOMBOnoneSafety filter tolerance level. Use `off` to use Google's defaults.
settings.systemPromptoptSTRINGSystem-level instruction that guides the model's behavior and output style across the entire generation.
settings.temperatureoptFLOAT1.000–2Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity.
settings.thinkingoptCOMBO(default)Controls the depth of internal reasoning the model performs before generating a response.
settings.topPoptFLOAT0.950–1Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE