Nodes/ComfyUI Labnana/Labnana API Client
ComfyUI Node

Labnana API Client

Every Labnana workflow starts here — the node that holds your key

By exoticknight·Created about a month ago·Updated 19 days ago· 0
Labnana API Client
    • client
    api_key
    base_urlhttps://api.labnana.com
    timeout300
    max_retries3

    If you googled "LabnanaClient" expecting a generator, back up a step. This node doesn't make anything - it's the auth card you hand to every other node in the ComfyUI-Labnana pack. Labnana is a pay-per-credit image generation API (from Marswave) that serves closed models you can't download - Google's Gemini 3 Pro Image, GPT Image 2, Seedream 5.0 Pro, and the Wan image models. So instead of a checkpoint loader you get a key, and this is where the key lives. Think of it as the "load model" step of an API workflow: you configure it once and wire its single client output into whatever actually does the work.

    How it works

    The node builds a LABNANA_CLIENT object that every other Labnana node takes as its first input. Under the hood it's a thin requests-based client that sends Authorization: Bearer <key> on every call to https://api.labnana.com. You never see any of that - you just paste a key and the downstream nodes stay configured.

    The inputs you actually set:

    • api_key - your key, which starts with ls_ and is created at labnana.com/api-keys. Leave it empty and the node falls back to the LABNANA_API_KEY environment variable.
    • timeout (default 300s) - per-request timeout. Only touch this if long generations are timing out.
    • max_retries (default 3) - retries on rate limiting, with the documented 20–30s exponential backoff baked in.

    There's a deliberately loud base_url field too, defaulting to the official endpoint. Here's the part worth knowing: custom base URLs are blocked by default. If you change base_url, the client refuses to send your key anywhere but api.labnana.com unless you set LABNANA_ALLOW_CUSTOM_BASE_URL=1 before starting ComfyUI. That's not a bug, it's a security feature - API-wrapper nodes are exactly the shape of thing that gets weaponized in this ecosystem, and a key that happily travels to any host you type in is a key that can leak. The guard is a nice touch you don't see in most packs.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/exoticknight/ComfyUI-Labnana.git
    

    Then restart ComfyUI. Or use ComfyUI Manager → Custom Nodes Manager, search Labnana, and install from there (it's also on the Comfy Registry: comfy node registry-install comfyui-labnana). The only dependency is requests, which ships with ComfyUI - no model downloads, no VRAM, no torch extras. Nodes appear under the Labnana menu.

    Common issues

    • "No API key provided" - you left the field empty and didn't set the env var. Either paste the key or export LABNANA_API_KEY (recommended, so the key never lands inside shared workflow JSON that you paste into Discord or a repo).
    • Error code 21007 - invalid key. Re-check it at labnana.com/api-keys; they start with ls_.
    • "Refusing to send the API key to custom base URL..." - you changed base_url without setting LABNANA_ALLOW_CUSTOM_BASE_URL=1. If that wasn't intentional, just restore the default.
    • Nothing renders in the node itself - it's a config node, so it correctly shows no image output. Wire client into a generation node and run from there.

    One setup habit that saves pain: use the environment variable for the key, and keep the Labnana API Client node at the default endpoint. You get the security guard for free, and shared workflows don't carry a credential around.

    CategoryLabnana/Account

    Inputs (4)

    NameTypeDefaultDescription
    api_keySTRINGLabnana API key (ls_...). Leave empty to use the LABNANA_API_KEY environment variable. Create keys at https://labnana.com/api-keys
    base_urloptSTRINGhttps://api.labnana.comOfficial API endpoint. Custom URLs are blocked unless LABNANA_ALLOW_CUSTOM_BASE_URL=1 is set.
    timeoutoptINT30010–3600Per-request timeout (seconds).
    max_retriesoptINT30–10Retries on rate limiting (20-30s backoff).

    Outputs (1)

    NameTypeDescription
    clientLABNANA_CLIENT