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

arkennemasis fal · Nano Banana · $0.0398/image

25 closed-model images for a dollar

By Hishamahmer·Created 3 months ago·Updated 10 days ago· 11
arkennemasis fal · Nano Banana · $0.0398/image
    • images
    • image_paths
    • description
    • info
    ◄prompt►
    ◄num_images1►
    ◄seed-1►
    ◄aspect_ratio1:1►
    ◄output_formatpng►
    ◄safety_tolerance4►
    ◄limit_generationstrue►
    ◄max_cost_usd20.0►
    ◄reuse_identical_runtrue►
    ◄extra_json►
    ◄max_concurrent1►

    Nano Banana is Google's Gemini-native image generation - the one that started as an anonymous codename on a leaderboard and ended up as official branding after Google executives kept posting banana emojis. The base model here is the cheap one: $0.0398 an image, which is 25 images for a dollar. Nothing else in this category comes close on price.

    It's text-in, image-out. There's no image socket on this node at all - everything editing-shaped lives in the separate Nano Banana Edit node. Get that straight before you start wiring.

    Why people put it in a local graph

    The KB's API-node chapter splits the reasons for leaving the machine, and this is squarely reason one: the model has no open weights, so local is not an option at any VRAM. You cannot download Nano Banana. Meanwhile the demand inside graphs is enormous - nano banana saturates the corpus cap in the first seven months of 2026, and co-occurs with comfyui in 711 of those threads. The canonical workflow is a closed Google model for the frames and an open model for the motion, and this node is the first half of it.

    It's also the best "one-off idea" generator in the pack. Base Nano Banana is fast, knows a bit about the world, and renders short pieces of text convincingly enough for a poster mockup or a thumbnail - which is exactly what most people want from a quarter of a cent... sorry, from four cents.

    The settings that change your output

    • prompt - the text. Nothing exotic; this model rewards plain description over prompt-craft.
    • aspect_ratio - defaults to 1:1, not auto. If your image came out square and you wanted a 16:9 thumbnail, that's why.
    • num_images - 1 to 4 per request. All four bill.
    • safety_tolerance - 1 (strictest) to 6 (loosest), default 4. This is your only moderation dial, and it's a real constraint rather than a formality: Google's line enforces IMAGE_SAFETY filtering, and the January 2026 policy update tightened famous-IP and celebrity generation further. Notably, routing through a reseller won't help - the filter lives at the model.
    • output_format - png by default; jpeg and webp supported.
    • seed - an integer, with -1 leaving it to the model. Useful when you want a reroll to be deliberate rather than accidental.
    • limit_generations - on by default, and it's the one people misread. It's an experimental flag that caps each prompting round at one generation and disregards any instruction in your prompt about how many images to make. If your prompt says "give me four variations" and you got one, that's this checkbox.

    Outputs

    images - a real IMAGE output, and it can carry a batch (up to num_images), so a num_images=4 request hands four tensors downstream. image_paths - the files under output/fal/fal-ai_nano-banana/, as a string. description - fal returns the model's own text about what it made; useful as an instant caption or as input to a prompt-rewriting chain. info - the JSON receipt: request id, cost estimate, saved files and fal's full answer.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Hishamahmer/comfyui-arkennemasis
    

    Restart ComfyUI, or search arkennemasis in ComfyUI-Manager. The pack declares exactly one dependency - httpx, for its Codex nodes - and the fal side uses the standard library, so the install really is a clone and a restart. Then:

    FAL_KEY=your-key-from-fal.ai/dashboard/keys
    

    in the .env next to run_nvidia_gpu.bat. The pack ships no key field on any node, which is the right call: widget values get written into workflow JSON verbatim.

    Where people get burned

    • "It gave me one image when I asked for four." limit_generations is on by default. Turn it off, and raise num_images.
    • Square images, unwanted. aspect_ratio defaults to 1:1 on this node - unlike the Nano Banana 2 family, which defaults to auto.
    • A refusal you can't argue with. That's Google, not the node. Loosening safety_tolerance to 6 moves the line slightly; it doesn't remove it.
    • You're feeding it an image to edit. This node has no image input. Use Nano Banana Edit.
    • A prompt-optimiser-style surprise. Not here - Nano Banana changes what you asked for when the prompt is vague, not because a rewrite pass ate it.
    Categoryarkennemasis/fal/Image/Google

    Inputs (11)

    NameTypeDefaultDescription
    promptSTRINGThe text prompt to generate an image from.
    num_imagesINT11–4The number of images to generate.
    seedINT-1-1–2147483647The seed for the random number generator. -1 leaves it to the model.
    aspect_ratioCOMBO1:1The aspect ratio of the generated image.
    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.
    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.