Nano Banana Generate Image (Ace Data Cloud)
Nano Banana in ComfyUI Without a GPU (Because You Can't Download the Model)
- status
- task_id
- image_urls_json
- trace_id
Here's the thing nobody tells you when you go looking for a Nano Banana node: there is no Nano Banana to download. It's Google's Gemini-native image model - closed weights, API only, every image carrying an invisible SynthID watermark. The name started as somebody's anonymous codename on a leaderboard, Google execs started posting banana emojis, and it stuck. You can't run it at any VRAM. If you want it, you call it.
So this node is not a sampler. It's an HTTP client with your API key in it, wearing a ComfyUI costume. It packages your prompt, posts it to Ace Data Cloud, and hands back an ID. That's the whole trick - and understanding it is most of understanding the node.
Why you'd put a cloud call in a local graph
The trade is well documented: you get the one thing local can't give - a model you were never allowed to download - and you pay with per-call cost, inputs leaving your machine, and a content filter you can't patch because there are no weights to edit. The loud center of r/comfyui reads "not local, through an API" as a reason to skip a release. The honest counter is that Nano Banana genuinely does things local models struggle with - instruction editing and text rendering especially.
Ace Data Cloud isn't Google. It's one of a crowd of resellers proxying the model - kie.ai and friends do the same job - used for cost, region or billing rather than first-party polish. Worth knowing: "acedata" returns literally zero threads in our community corpus. Nobody on Reddit is vouching for this pack, so skim it before you paste a key into it.
How it actually works
AceNanoBananaGenerate submits one paid task and returns immediately. Under the hood it POSTs to https://api.acedata.cloud/nano-banana/images with action: generate and async: true, then normalizes whatever comes back into four strings.
Two design details worth appreciating, because they're the opposite of sloppy:
- Paid submissions are sent exactly once. The client retries read-only lookups three times, but a generate attempt gets one shot. A retry on a paid call is how you get billed twice for one image. This is deliberate.
- You get a task ID, not an image. If the API finishes synchronously you'll see URLs already; otherwise the ID is the thing you carry forward. Do not press Queue again to "check" - that submits a second paid generation.
The inputs that matter
- prompt - multiline, and the only field you truly think about. Nano Banana likes plain instruction sentences more than keyword soup.
- model - nine IDs, defaulting to
nano-banana-2-lite. The:officialsuffixed variants exist alongside the plain ones. Two of them,nano-bananaandnano-banana-2-lite, only support1K, so if you pick 4K on the default model, fix the model first. - aspect_ratio -
1:1,3:2,2:3,16:9,9:16,4:3,3:4. - resolution -
1K,2K,4K. Bigger costs more, per the service pricing. - count - 1 to 4. Handy: at count 4 on one model and one aspect ratio, the images come back a consistent size, which matters later at the Load Images step.
Outputs are status, task_id, image_urls_json and trace_id. Wire task_id into Retrieve Task, and keep trace_id for anything you have to argue about with support.
Install
ComfyUI Manager → Custom Nodes → search Nano Banana, publisher acedatacloud, package "Nano Banana by Ace Data Cloud", install, restart. Or from source:
cd ComfyUI/custom_nodes
git clone https://github.com/AceDataCloud/NanoBananaComfyUI.git
cd NanoBananaComfyUI
python -m pip install -r requirements.txt
That requirements file is one line: requests>=2.31,<3. No torch install, no model download - it reuses ComfyUI's existing PyTorch, NumPy and Pillow for decoding. Refreshing.
Then set the key in the process environment and restart ComfyUI:
export ACEDATACLOUD_API_KEY='paste-your-key-here'
python main.py
ACEDATACLOUD_API_TOKEN also works. The node reads it at call time from the environment, so it never lands in a workflow JSON - which is the right way round.
Where people get burned
- "Set ACEDATACLOUD_API_KEY..." means the variable isn't in the actual ComfyUI process. If you launched it from a desktop shortcut or a service, your shell export did nothing.
- HTTP 401/403 - bad key, no Nano Banana access on that key, or a content-policy refusal.
- HTTP 429 - rate limited. Keep any task ID you already got and query it rather than resubmitting.
- Submission timed out or a 5xx? Check the Ace request history in the console before running it again. The paid task may already have been accepted, and the node's error text says exactly that.
- Still pending after retrieving? That's normal. Rerun only the retrieve workflow.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A watercolor landscape at sunrise. | — |
| model | COMBO | nano-banana-2-lite | 9 options: nano-banana, nano-banana-2-lite, nano-banana-2, nano-banana-2.1, nano-banana-pro, nano-banana:official, +3 |
| aspect_ratio | COMBO | 1:1 | 7 options: 1:1, 3:2, 2:3, 16:9, 9:16, 4:3, +1 |
| resolution | COMBO | 1K | 3 options: 1K, 2K, 4K |
| count | INT | 11–4 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |
| task_id | STRING | — |
| image_urls_json | STRING | — |
| trace_id | STRING | — |