arkennemasis fal · Nano Banana Lite · ~$0.05/image
The cheap Gemini image node you'll actually spam
- images
- image_paths
- description
- info
What it is, in one breath
Text prompt in, image out, about five cents per picture, no GPU involved. This is the text-to-image member of the Nano Banana Lite pair - the sibling node with the image_1…image_6 sockets is the edit variant (fal lists them as separate endpoints, hence two nodes here).
If you landed on this page by searching "nano banana lite" and you're not sure which of the two you want: reach for this one when you're starting from nothing but words. Reach for the Edit node when you already have a picture to change.
Why it earns a slot
Because it's the cheapest way to get a closed model's prompting into an otherwise local pipeline. Nano Banana is Gemini-native image generation - there are no weights to download, ever - and the community's standard move is to use it for the frame and then animate with something open. Same reason the official API nodes exist at all: some models you can't run, only call.
A nickel a picture also changes how you use it. At that price, prompt exploration is basically free - spin four variations, pick one, upscale the winner locally. What you should not expect is Nano Banana Pro behaviour: Lite is fixed at 1K output and has no 4K, no 14-reference-image stacking, and no thinking mode by default.
How it works
The node uploads nothing (there's nothing to upload in text-only mode), sends your prompt to fal's google/nano-banana-lite endpoint, waits showing status and the estimate on the node, and downloads the returned images into output/fal/google_nano-banana-lite/. One billed request per run. Cancel in ComfyUI cancels the request on fal.
Inputs that matter
- prompt - write prose, not tags. It's a Gemini-under-the-hood endpoint, so "a battered fishing trawler at dawn, low fog, shot on 35mm, muted greens" works better than a comma-separated spell list.
- aspect_ratio - default
auto, which lets the model infer shape from the prompt. The full list spans21:9down to9:16plus the extreme4:1,1:4,8:1,1:8. Pick a ratio when you need a specific frame for a video model downstream; leaveautowhen you're exploring. - num_images - 1 to 4. Each one bills.
- output_format -
png,jpeg,webp. - seed -
-1lets the model pick, which is the default and means reruns aren't reproducible. Set an explicit seed when you want to re-run the same picture after changing one word. - system_prompt - a genuine system instruction, sent as Gemini's system instruction. Empty leaves it out entirely.
- safety_tolerance -
1(strictest) to6(loosest), default4. Useful to know, limited in effect: it's Google's moderation you're adjusting. - limit_generations - default on. Forces one image per round of prompting and ignores instructions inside the prompt about how many images to make, plus any intermediate images the model drew. Handy for keeping a "six-panel comic" prompt from becoming one comic-page picture. Off if you actually want a grid.
- thinking_level -
(not set),minimal,high. Off unless you ask for it; when on, the model reasons about the prompt first and those thoughts ride along in the generation.
Plus the four shared money widgets every fal node in this pack carries: max_cost_usd ($20 cap, stops before upload, 0 disables), reuse_identical_run (returns the paid result instead of paying twice for identical inputs), extra_json (merge raw JSON into fal's request for fields without a widget) and max_concurrent (default 1 - one paid fal call at a time across the run).
Outputs
images (the IMAGE batch - wire it to Save Image, an upscaler, or an image-to-video node), image_paths, description (fal's text for the result) and info (request id, estimate, files, fal's full answer).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Then either the portable-build pip line -
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\comfyui-arkennemasis\requirements.txt
- or the plain
pip install httpxthe README gives for a normal install. Restart ComfyUI. ComfyUI-Manager's Install via Git URL does the same thing with auto-deps.
Then put the key in the .env beside run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
No key box exists on the node on purpose - a widget value would be written into every workflow you save and every screenshot you post.
Where people get burned
Expecting the Pro model. Lite is 1K, fixed, and efficiency-first. If a prompt comes back softer or less composed than the Nano Banana Pro output you've seen, that's the tier you bought, not a broken node.
Token billing vs the nickel badge. The endpoint charges per input and output token (image tokens cost ~120× text tokens on the way out), and the node's pre-run estimate is an approximation of a typical one-image request. Long prompts and multi-image runs are where the badge and the invoice drift apart.
Filters you can't remove. Content policy is applied at Google's end. safety_tolerance gives you a little room and that's all there is.
Everything is sent to a third party. The prompt leaves your machine - that is the entire function of this node. If that's a dealbreaker for a project, this isn't the tool for that project.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The text prompt to generate an image from. | |
| system_prompt | STRING | Optional system instruction that steers the model's persona and output style across the request. Leave blank to omit; when provided, it is sent as the system instruction to Gemini (or as a system message on OpenAI-compatible providers). Empty leaves it out. | |
| aspect_ratio | COMBO | auto | The aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8. Use "auto" to let the model decide based on the prompt. |
| num_images | INT | 11–4 | The number of images to generate. |
| seed | INT | -1-1–2147483647 | The seed for the random number generator. -1 leaves it to the model. |
| output_format | COMBO | png | The format of the generated image. |
| safety_tolerance | COMBO | 4 | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. |
| limit_generations | BOOLEAN | true | Experimental parameter to limit the number of generations from each round of prompting to 1. Set to `True` to to disregard any instructions in the prompt regarding the number of images to generate and ignore any intermediate images generated by the model. This may affect generation quality. |
| thinking_level | COMBO | (not set) | When set, enables model thinking with the given level ('minimal' or 'high') and includes thoughts in the generation. Omit to disable. '(not set)' leaves it to the model. |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap. |
| reuse_identical_runopt | BOOLEAN | true | If these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings. |
| extra_jsonopt | STRING | Advanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally. | |
| max_concurrentopt | INT | 11–32 | How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| image_paths | STRING | — |
| description | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |