ComfyUI Node

Nano Banana

Google's image gen, minus the local GPU

By Runware·Created 2 years ago·Updated about a month ago· 140
Nano Banana
  • referenceImages
  • advancedFeatures.watermark.image
  • image
positivePrompt
size1K (1:1)
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.temperaturefalse
settings.temperature_value0.00
settings.topPfalse
settings.topP_value0.00
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

Nano Banana is Google's Gemini-native image generator - the name started as an anonymous codename on a HuggingFace leaderboard, Google's execs started dropping banana emojis, and it stuck. The base product is Gemini 2.5 Flash Image, and its party trick is text rendering: no local model writes legible words on a sign or a label like this thing does. Runware hosts it as google:4@1, so the whole package arrives as a ComfyUI node with no Google account and no API key of your own - just the Runware key.

Now the part everyone who actually uses it knows: it's heavily censored. The community verdict on ImageFX and its API cousins is "powerful, unimaginative, massive hidden biasing." Every output carries an invisible SynthID watermark, and Google's safety filter will veto prompts a local model wouldn't blink at. If you're doing SFW work - text-in-image, product shots, editorial illustration - that's a fine trade. If you're not, this node will frustrate you in exactly the way the reviews say.

What you set

  • positivePrompt (required) - natural language, and this model genuinely listens. Ask for "a hand-lettered neon sign reading OPEN."
  • referenceImages - optional IMAGE input for identity or style transfer; this is the editing superpower.
  • settings.systemPrompt - global instruction for style/behavior across the run.
  • providerSettings.google.safetyTolerance - high/medium/low/none/off (where off = Google defaults). Useful when the filter is vetoing something reasonable.
  • settings.temperature / settings.topP - gated, off by default; Google's defaults are fine until they're not.
  • width / height, numberResults (up to 20), outputFormat, outputQuality.

Output is image (IMAGE).

How it works

Same pack flow as every node: taskType: imageInference over REST via the Runware SDK, prompt and refs encoded, native IMAGE back. The difference is that "the model" is Google's Gemini image stack running on Runware's infrastructure, billed per request with the cost on the title bar. This is the node to reach for when the job is text-in-image or precise instruction-following and you don't have Google's own API set up.

Installing

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

No model downloads; deps are runware-sdk, pillow, soundfile. API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.

Troubleshooting

Refusals are the #1 issue, and they're not a bug - the filter is baked in. safetyTolerance gives you some slack; if a genuinely innocuous prompt still gets vetoed, rewrite it with more neutral wording. Misspelled text in the output? The model writes words well but not perfectly; adding fewer, shorter words per image helps. And when you want the newer, faster cousin with video reference support, that's Nano Banana 2.

CategoryRunware/Image/google

Inputs (24)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
referenceImagesoptIMAGE
advancedFeatures.watermark.imageoptIMAGE
sizeoptCOMBO1K (1:1)Output size. Only one of resolution or dimensions is sent.
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.temperatureoptBOOLEANfalseEnable to set settings.temperature. Off uses the model's default.
settings.temperature_valueoptFLOAT0.000–2Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity.
settings.topPoptBOOLEANfalseEnable to set settings.topP. Off uses the model's default.
settings.topP_valueoptFLOAT0.000–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