Nodes/NanoBananaComfyUI/Nano Banana Generate Image (Ace Data Cloud)
ComfyUI Node

Nano Banana Generate Image (Ace Data Cloud)

Nano Banana in ComfyUI Without a GPU (Because You Can't Download the Model)

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Nano Banana Generate Image (Ace Data Cloud)
    • status
    • task_id
    • image_urls_json
    • trace_id
    ◄promptA watercolor landscape at sunrise.►
    ◄modelnano-banana-2-lite►
    ◄aspect_ratio1:1►
    ◄resolution1K►
    ◄count1►

    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 :official suffixed variants exist alongside the plain ones. Two of them, nano-banana and nano-banana-2-lite, only support 1K, 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.
    CategoryAce Data Cloud/Nano Banana

    Inputs (5)

    NameTypeDefaultDescription
    promptSTRINGA watercolor landscape at sunrise.—
    modelCOMBOnano-banana-2-lite9 options: nano-banana, nano-banana-2-lite, nano-banana-2, nano-banana-2.1, nano-banana-pro, nano-banana:official, +3
    aspect_ratioCOMBO1:17 options: 1:1, 3:2, 2:3, 16:9, 9:16, 4:3, +1
    resolutionCOMBO1K3 options: 1K, 2K, 4K
    countINT11–4—

    Outputs (4)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    image_urls_jsonSTRING—
    trace_idSTRING—