Nodes/ComfyUI_fal_image/FAL Text2Image
ComfyUI Node

FAL Text2Image

The Only Way to Run FLUX Pro Inside ComfyUI

By Paddel87·Created 8 months ago·Updated 8 months ago· 2
FAL Text2Image
    • image
    • image_url
    • context_id_out
    • safety_applied
    model_id
    prompt
    width1024
    height1024
    num_images1
    seed0
    steps28
    guidance3.50
    safety_mode
    timeout_sec60
    retries2
    context_id

    FAL Text2Image is the reason this pack exists. You can run FLUX Dev and Schnell locally, but FLUX Pro v1.1 and Pro "new" only ever exist behind an API - there are no weights to download. This node is a thin client that makes fal.ai's hosted FLUX the backend of a ComfyUI node, which means you get the API-only tiers without leaving your graph.

    Be honest with yourself about what you're buying, though. For Dev and Schnell you're paying per image to run something your own GPU could handle. The sensible use is the Pro models, or the days when you want results without babysitting VRAM and offloading. That trade is the whole pitch.

    How it works

    Under the hood it's a queue poller, not a local sampler. The node builds a JSON payload and POSTs it to https://queue.fal.run/<model_id>, then polls the status endpoint every ~0.8s until the job is COMPLETED, errors out, or your timeout_sec expires. Transient failures retry with a short backoff, and once the image is ready the node downloads it and converts the URL into a numpy array (HWC, 0-1) so the rest of ComfyUI treats it like any locally generated image. Every run logs model_id, seed, and safety_applied to the console.

    One nice touch: the payload is filtered per model. The node only sends parameters the endpoint actually accepts - so if you pick flux-pro-v1.1, which doesn't take steps or guidance, those inputs are silently ignored rather than causing a 400.

    The inputs that matter

    • model_id - feed it from FAL Model Select, or type an endpoint id like fal-ai/flux/dev directly.
    • prompt - plain English works great; FLUX's T5 encoder likes full sentences, not comma soup.
    • width / height - 1024 default, up to 2048. FLUX holds up fine in the two-megapixel range.
    • steps - 28 default. Dev likes 20-40; Schnell genuinely only needs about 4.
    • guidance - 3.5 default, and here's the community's standing complaint: 3.5 is too high for a lot of prompts. If things look overcooked, drop toward 2.5.
    • seed - 0 means random.
    • num_images - 1-4, and remember every one of them is a separate billable render.
    • safety_mode - auto / enabled / disabled. Some endpoints ignore your flag and force filtering anyway; the node retries without the flag and reports that as forced_by_model (more on this below).

    It outputs image (wire it into Save Image), image_url, a context_id_out for Kontext chaining, and safety_applied.

    Install

    Grab it via ComfyUI Manager (search "ComfyUI_fal_image"), or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Paddel87/ComfyUI_fal_image.git
    pip install -r ComfyUI_fal_image/requirements.txt
    

    Dependencies are just requests, Pillow, and numpy - nothing heavy, no model files. Then set your key and restart:

    export FAL_KEY="fal-..."
    

    Get the key at fal.ai/dashboard/keys. On the Windows portable build, run the pip install with its bundled python_embeded/python.exe instead. Nodes show up under fal.ai/Image.

    Common issues

    • "FAL_KEY missing" - you didn't set the env var (or a config.ini with a [fal] key = ... line).
    • Timeout errors - Pro models and big batches are slow. Raise timeout_sec (up to 600) before you blame the node.
    • safety_applied = forced_by_model - the endpoint rejected your safety flag and regenerated with the filter on. That's fal's call, not the node's; if a prompt keeps tripping it, that's why.
    • The bill - every click spends real money. It's the pack's dirty secret and nobody mentions it. num_images is where people get burned.

    It's a small, early-stage pack from a solo author, so treat it as a convenience wrapper rather than a supported product. But for reaching FLUX Pro from ComfyUI, it's currently one of the only games in town.

    Categoryfal.ai/Image

    Inputs (12)

    NameTypeDefaultDescription
    model_idSTRING
    promptSTRING
    widthINT102464–2048
    heightINT102464–2048
    num_imagesINT11–4
    seedINT0
    stepsINT281–100
    guidanceFLOAT3.500–20
    safety_modeCOMBO3 options: auto, enabled, disabled
    timeout_secINT6010–600
    retriesINT20–5
    context_idoptSTRING

    Outputs (4)

    NameTypeDescription
    imageIMAGE
    image_urlSTRING
    context_id_outSTRING
    safety_appliedSTRING