Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Nano Banana Lite · ~$0.05/image
ComfyUI Node

arkennemasis fal · Nano Banana Lite · ~$0.05/image

The cheap Gemini image node you'll actually spam

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Nano Banana Lite · ~$0.05/image
    • images
    • image_paths
    • description
    • info
    ◄prompt►
    ◄system_prompt►
    ◄aspect_ratioauto►
    ◄num_images1►
    ◄seed-1►
    ◄output_formatpng►
    ◄safety_tolerance4►
    ◄limit_generationstrue►
    ◄thinking_level(not set)►
    ◄max_cost_usd20.0►
    ◄reuse_identical_runtrue►
    ◄extra_json►
    ◄max_concurrent1►

    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 spans 21:9 down to 9:16 plus the extreme 4:1, 1:4, 8:1, 1:8. Pick a ratio when you need a specific frame for a video model downstream; leave auto when you're exploring.
    • num_images - 1 to 4. Each one bills.
    • output_format - png, jpeg, webp.
    • seed - -1 lets 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) to 6 (loosest), default 4. 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 httpx the 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.

    Categoryarkennemasis/fal/Image/Google

    Inputs (13)

    NameTypeDefaultDescription
    promptSTRINGThe text prompt to generate an image from.
    system_promptSTRINGOptional 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_ratioCOMBOautoThe 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_imagesINT11–4The number of images to generate.
    seedINT-1-1–2147483647The seed for the random number generator. -1 leaves it to the model.
    output_formatCOMBOpngThe format of the generated image.
    safety_toleranceCOMBO4The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.
    limit_generationsBOOLEANtrueExperimental 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_levelCOMBO(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_usdoptFLOAT20.00–100000Safety 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_runoptBOOLEANtrueIf 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_jsonoptSTRINGAdvanced: 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_concurrentoptINT11–32How 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)

    NameTypeDescription
    imagesIMAGE—
    image_pathsSTRING—
    descriptionSTRING—
    infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.