🍌 GrsAI Nano Banana Pro - Text/Image
Google's flagship image model, no Gemini key required
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image
- status
The top of the line, with the price tag to match
🍌 GrsAI Nano Banana Pro is the flagship node in the ComfyUI-GrsAI pack: a pay-per-image wrapper around Google's Nano Banana Pro - the Gemini 3 Pro Image model, the "thinking mode" flagship that does native 4K output, reasons about your prompt before generating, and renders multi-language text properly. This is the most capable model in the pack and also the priciest, running to roughly ¥0.09 per image at 1K and climbing as you go up in size. Google's own pricing sits around $0.04–0.24 per image depending on resolution, and the relay passes a slice of that on to you.
Why bother, when there's a cheaper banana node three slots down in the same menu? Because the output quality gap is real. Nano Banana Pro is the model you'd pick for the image that matters - hero shots, product renders, anything where text-in-image or high-res detail is the point. The KB's community work describes the whole Nano Banana family as "powerful but unimaginative" with aggressive, opaque safety filtering and an invisible SynthID watermark baked into every output. Pro keeps all of that, just with more horsepower under it. It's Google's output, filtered Google-style, but it's genuinely good Google output.
How it works
The pack's usual machinery, one more time. The node reads your GrsAI key from its apikey field, POSTs your prompt (plus up to ten reference images, re-encoded as base64 PNG data URIs) to the GrsAI relay, then downloads the result into an IMAGE tensor. Empty image inputs = text-to-image; one or more wired in = editing or multi-image fusion. num_images runs that many concurrent API calls - each one a separate paid request, so the concurrency the README brags about is really just parallel billing.
The inputs that matter
apikey- your GrsAI key, straight into the field on the node. That's the one the code reads for this node.prompt- your text. Pro is the family's best prompt-follower, and its "thinking" behavior means it spends a beat reasoning before it draws.model-nano-banana-pro(default) plus the relay's SKU variants:-pro-vt,-pro-cl,-pro-vip,-pro-4k-vip. The README callsnano-banana-pro-vt"same capability as pro"; the cl/vip/4k ones are GrsAI's own product tiers. Start with the default.num_images- 1–12 concurrent requests.image_size- 1K / 2K / 4K, default 1K. This is where the bill grows: 4K is native for this model and costs the most. Pick your resolution deliberately.aspect_ratio-autoplus the ten usual ratios, 1:1 through 21:9.image_1…image_10- up to ten reference images; the most of any node in the pack, which suits a model known for serious image editing.
Outputs: image (tensor → SaveImage) and status (STRING reporting model, image size, reference count, and generation success/failure counts).
Installing it
Same pack install as everything else in this repo:
cd ComfyUI/custom_nodes
git clone https://github.com/31702160136/ComfyUI-GrsAI.git
cd ComfyUI-GrsAI
pip install -r requirements.txt
Then fully restart ComfyUI. No model downloads, no GPU requirement - the heavy lifting happens on Google's side. Dependencies are just requests, httpx, python-dotenv, Pillow and torch. Windows portable users install with .\python_embeded\python.exe -m pip install --force-reinstall -r .\ComfyUI\custom_nodes\ComfyUI-GrsAI\requirements.txt. If ComfyUI Manager's git install gets refused, the README documents dropping its security_level to weak.
Where people get burned
- The key is on the node. The README's
.env+ double-restart flow serves the pack's Flux nodes; this node reads theapikeywidget. Paste the key there. Leaving the shipped placeholder guarantees a 401. - 4K is a budget decision, not a setting. The difference between 1K and 4K on this model is real, but so is the per-image cost. Iterate at 1K, upscale only your finals.
- Filters, again. Pro's safety behavior is the strongest in the family. When it refuses, it's the model's guardrails, not a node malfunction - there's no bypass knob here, and the KB's corpus work says Google's filtering only got stricter through January 2026.
- Uncached and always re-running.
IS_CHANGEDis pinned to re-fire, so every Queue press is a paid generation. Failed calls return a 1×1 black tensor and a失败: ...status string rather than throwing - read thestatusoutput, and check your GrsAI balance if every image in a batch fails at once.
Verdict: if you want Google's best and can live with Google's guardrails, this node delivers it without a Gemini API setup. Just watch the bill - the banana is sweetest in small batches.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Create a high-quality studio shot of a ripe banana on a matte surface, soft shadows, natural lighting. | — |
| apikey | STRING | 请输入您的APIKEY: sk-xxxxxxx | — |
| model | COMBO | nano-banana-pro | 5 options: nano-banana-pro, nano-banana-pro-vt, nano-banana-pro-cl, nano-banana-pro-vip, nano-banana-pro-4k-vip |
| num_images | COMBO | 1 | 12 options: 1, 2, 3, 4, 5, 6, +6 |
| aspect_ratioopt | COMBO | auto | 11 options: auto, 1:1, 16:9, 9:16, 4:3, 3:4, +5 |
| image_sizeopt | COMBO | 1K | 3 options: 1K, 2K, 4K |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — | |
| image_10opt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| status | STRING | — |