JILIGULU Nano Banana
Nano Banana in your graph — no GPU, but it's a paid cloud call
- image
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image_11
- image_12
- image_13
- image_14
- image
The name suggests a chunky local checkpoint. It isn't. JILIGULU Nano Banana is a thin API client node: it takes your prompt (and optionally up to ten reference images) and ships them to a cloud service called JILIGULU (jiligulu.art), which resells Google's "Nano Banana" - the Gemini-native image model family - through a simple HTTP API. Your GPU does none of the work. Your wallet does some of it, and the images do come back as a normal ComfyUI IMAGE.
Why reach for it? Nano Banana is genuinely good at things local models still fumble: clean text rendering, subject consistency across a few reference images, and reference-based editing. If you've ever wanted Gemini-grade output piped into the rest of your graph - upscale it, img2img it, composite it - this is the plug. The community does exactly that: generating character sheets and multi-angle reference sets with Nano Banana and feeding them into LoRA training runs. That's the killer workflow here, and it's why the reference-image inputs matter so much.
How it actually works
Open the source and it's boring in the best way - no requirements.txt, no model files, just Python's standard urllib plus numpy/torch/PIL, which ComfyUI already bundles. The request chain:
GET /api/v1/models/nano-banana/config- pull the server's defaults for the model- Upload each reference image as PNG via
POST /api/v1/assets/upload POST /api/v1/models/nano-banana/runwith your prompt, aspect ratio, and size- Poll
GET /api/v1/tasks/{task_id}every 5 seconds, up to 15 minutes - Download the result and convert it to an
IMAGEtensor
So when you hit Run, the node isn't generating anything locally - it's queueing a job on a remote machine and babysitting it.
The inputs that matter
- prompt - the only thing that always matters. Empty prompt is a hard local error.
- api_key - the node takes it directly, or you can set
JILIGULU_API_KEYas an environment variable before launching ComfyUI. If neither exists, you get an error before anything leaves your machine. - aspect_ratio -
autoplus the usual 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, and 21:9. - image_size -
1K,2K, or4Kfor this node. - image / image_2 … image_10 - optional reference images. This node caps at 10, enforced locally so a bad request never reaches the backend.
One output: image (IMAGE). Wire it into a PreviewImage or SaveImage, or anywhere an IMAGE is expected.
A real gotcha: the node flattens batch frames. Feed it a 4-frame batch from one input and that counts as four references. The cap is per frame, not per input socket.
Installing it
Easiest: ComfyUI Manager → search "JILIGULU Nano Banana" → install → restart. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/XYQC-LH/ComfyUI-JILIGULU-Nano-Banana
Then restart ComfyUI. No pip step, no model downloads. That's the whole install, and it's the pack's main virtue.
Common issues
- "缺少 api_key" and other Chinese errors. The author raises errors in Chinese. Translate them - they're usually accurate (missing key, upload failed, task timed out).
- A generation can take a while. The node polls for up to 15 minutes per job. This is not a fast local sampler.
- It costs money. Every run spends credits on JILIGULU's side. Don't fire off a ten-reference batch to test a typo'd prompt.
- It's an obscure service. At the time of writing, "jiligulu" has effectively zero footprint in the English community, and this pack is brand new. Treat it like any small third-party API: your prompts and images leave your machine for a Chinese aggregator, and the underlying Google model is heavily filtered and stamps an invisible SynthID watermark. Read the terms, test with a trivial prompt first, and don't put confidential material through it.
The reference-editing and character-sheet workflows are genuinely compelling. Just know exactly what you're plugging into your graph before you make it a permanent fixture.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| api_key | STRING | — | |
| aspect_ratio | COMBO | auto | 11 options: auto, 1:1, 16:9, 9:16, 4:3, 3:4, +5 |
| image_size | COMBO | 1K | 3 options: 1K, 2K, 4K |
| imageopt | 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 | — | |
| image_11opt | IMAGE | — | |
| image_12opt | IMAGE | — | |
| image_13opt | IMAGE | — | |
| image_14opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |