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

arkennemasis fal · Nano Banana 2 · $0.06-0.16/image

The image model that can look things up first

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

    Nano Banana 2 is the Gemini 3.1 Flash generation of Google's image line - the speed-quality hybrid that landed after the Pro model. Base rate on fal is $0.08 an image, and the interesting part isn't the pixels. It's that this endpoint can search the web mid-request and think before it draws.

    That matters more than it sounds. A local model generates what it memorised. This one can go check what a specific product's packaging looks like now, then draw it. For anything time-sensitive or brand-specific, that's a capability nothing you can download has.

    What the settings do, priced honestly

    The price isn't flat, and the node's live badge follows your widgets:

    • resolution - 0.5K, 1K (default), 2K, 4K. Billed at 0.75× for 0.5K, 1× at 1K, 1.5× at 2K and 2× at 4K. So a 4K image is sixteen cents, not eight.
    • enable_web_search - off by default, +$0.015 per request when on. A rounding error next to the image itself.
    • thinking_level - (not set) by default; minimal or high turns on model thinking, which adds +$0.002 at high. Two-tenths of a cent to have the model reason about the composition first is the best-value toggle on this node.
    • num_images - 1 to 4, each billed, with every multiplier applied per image.

    Then the composition controls. aspect_ratio defaults to auto - the model reads the prompt and picks - and this family supports genuinely extreme ratios: 4:1, 1:4, 8:1 and 1:8 alongside the usual set. An 8:1 banner is something you cannot get out of a local SDXL workflow without a lot of stitching. system_prompt is a persona/style instruction applied across the request - a place to put "always add film grain, never add text" once instead of in every prompt. safety_tolerance (1–6, default 4) is the moderation dial, and per the KB this line is aggressively filtered: the January 2026 update tightened restrictions on famous IP and celebrity likeness. seed takes -1 for model's choice. output_format is png, jpeg or webp. limit_generations is on by default and disregards in-prompt requests for multiple variations - the usual cause of "I asked for four and got one".

    Outputs

    images - a batchable IMAGE output, which is what you'd feed a local upscaler, a ControlNet preprocessor, or an open video model's image input. image_paths - files under output/fal/fal-ai_nano-banana-2/. description - the model's own text about the result, ideal as a caption or as a handoff into an LLM node. info - JSON with the request id, the cost estimate, the saved files and fal's complete answer.

    Install

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

    Restart ComfyUI, or search arkennemasis in ComfyUI-Manager. requirements.txt is a single line - httpx, for the pack's Codex nodes - because the fal provider talks to fal.ai with Python's standard library. Then:

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

    in the .env next to run_nvidia_gpu.bat. The pack deliberately ships no key input on any node, since widget values are written into workflow JSON verbatim.

    Where people get burned

    • The bill is bigger than the badge suggested. Resolution multipliers and num_images compound: four 4K images is 64 cents, not 32. The node's own price badge tracks this as you change widgets, so look at it.
    • You asked for four images and got one. limit_generations, on by default.
    • auto reframed your scene. Convenient until it isn't. Pin the ratio when shape matters - and note this family's extreme ratios are also useful for cheating a "wide establishing shot" out of a stills model.
    • The web search gave you an old logo. Search is a tool, not a truth. The model still draws what it decides.
    • It's a $0.08 toll on every experiment. The cheap first pass is base Nano Banana at $0.0398; come here when you need resolution, research or thinking.
    Categoryarkennemasis/fal/Image/Google

    Inputs (15)

    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_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.
    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.
    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.
    resolutionCOMBO1KThe resolution of the image to generate.
    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.
    enable_web_searchBOOLEANfalseEnable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.
    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.