Nodes/comfyui-api429/API429 · Generate Image
ComfyUI Node

API429 · Generate Image

Nano Banana in ComfyUI Without Downloading a Single Weight

By veresk06·Created 3 days ago·Updated 3 days ago· 0
API429 · Generate Image
    • IMAGE
    modelgemini-3.1-flash-image
    promptA ceramic mug on a light studio table, no text
    size
    run_idimage-001
    allow_paid_generationfalse
    quality

    There is no download button for Nano Banana, Veo or GPT Image. Google doesn't publish those weights, so "run it locally" isn't a slower option or a bigger-VRAM option - it isn't an option. That's the premise of the comfyui-api429 pack, and API429GenerateImage is where you start: type a prompt, spend credits on your api429.com account, get an IMAGE tensor out the other side. No checkpoint, no VAE, no CUDA. Your GPU stays cold.

    What this node actually is

    The pack is the vendor's own ComfyUI wrapper for its own reseller service - publisher ID api429, repo by veresk06, wired to gateway.api429.com - and ships four nodes: generate, edit a reference, queue a prompt list, read the public price catalog.

    Worth knowing before you build on it: nobody on Reddit has posted about API429 - zero threads through September 2026 - and the README's own scope is one live test (Nano Banana 2, 1024×1024, ComfyUI 0.35.0, macOS). FLUX and GPT presets have local tests only.

    The inputs that matter

    model is a free-text field, not a dropdown, defaulting to gemini-3.1-flash-image - which is Nano Banana 2, Google's Gemini 3.1 Flash image model. The shipped example workflows also use FLUX.2-pro and gpt-image-2. It has to match an exact model ID your key can reach (GET /v1/models); a typo gets you an HTTP error, not a fuzzy match.

    size gives you four choices: 1024x1024, 1536x1024, 1024x1536, 2048x2048.

    run_id is the field beginners get wrong, because it looks like a seed and it isn't. It's a billing and recovery identity. The node hashes your full request and files it under that ID in a local state folder. Same ID plus identical parameters → the saved response is replayed, no new POST, no new charge. Same ID plus changed parameters → it refuses outright. A new image needs a new ID, which is why the default image-001 won't give you a second image - it'll error, and that's the design working.

    allow_paid_generation defaults to off, and off means the node raises before anything is sent. Deliberate: imported workflows can enable paid nodes, and this is the brake.

    quality is optional (default, low, medium, high) and only forwarded upstream when it isn't default - leave it alone unless the model documents it. The GPT Image example sets low.

    Output is a single IMAGE, a plain batch-of-1 RGB tensor in Comfy's usual 0–1 float format - exactly what a local sampler would hand you. Wire it to Save Image, Preview Image, or into a local upscale or detail pass. Want four variations? That's four runs; n is hardcoded to 1 in the request. Use the queue node for batches.

    How it works

    The node POSTs to /v1/images/generations with response_format: b64_json and decodes the base64 into a tensor. Async jobs poll only the /v1/balancer/jobs/{id}/result route, about five minutes per run; re-queue the same ID and parameters and it resumes polling instead of submitting again. A POST is never repeated automatically - a timeout before a job ID arrives leaves the record in an unknown state on purpose, so you reconcile with account history rather than paying twice. State lives in ~/.api429-comfyui (override with API429_STATE_DIR) and never stores your key.

    Install

    ComfyUI Manager → search "api429". Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/veresk06/comfyui-api429
    cd comfyui-api429 && pip install -r requirements.txt
    

    That requirements file is two lines - numpy and Pillow; torch comes from ComfyUI. No weights to download. Set the key in the server process environment, then restart:

    export API429_API_KEY="your-key-here"
    python main.py
    

    Windows portable: set it in the launcher environment before ComfyUI starts. Keep the key out of workflows, prompts and screenshots - the pack reads it from the environment so a shared graph can't leak it.

    Where people get burned

    • "Set API429_API_KEY in the ComfyUI server environment." The key was set in a terminal, then ComfyUI was launched from a shortcut that didn't inherit it. Restart ComfyUI from the shell that has the variable.
    • Digest errors on a reused run_id. You changed the prompt, the size, or the model but kept image-001. Change the ID.
    • A .lock file after a crash. The node leaves one while a run is active, and it tells you so. Reconcile that run before deleting anything - wiping the state folder as a "retry" is how people buy the same image twice.
    • "Still pending." Polling gave up at the five-minute mark; re-queue with the same ID and it resumes. Don't invent a fresh ID until you've checked account history.

    And the README says plainly: your prompts and images leave your machine, the provider's filter isn't patchable, and you should check every result before commercial use - text and product details drift.

    CategoryAPI429

    Inputs (6)

    NameTypeDefaultDescription
    modelSTRINGgemini-3.1-flash-image
    promptSTRINGA ceramic mug on a light studio table, no text
    sizeCOMBO4 options: 1024x1024, 1536x1024, 1024x1536, 2048x2048
    run_idSTRINGimage-001
    allow_paid_generationBOOLEANfalse
    qualityoptCOMBO4 options: default, low, medium, high

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE