Nodes/ComfyUI Assistant Node/PVL QwenImage txt2img (fal.ai)
ComfyUI Node

PVL QwenImage txt2img (fal.ai)

Qwen-Image's 20B, rented by the click

By pvlprk·Created about a year ago·Updated 10 months ago· 1
PVL QwenImage txt2img (fal.ai)
    • IMAGE
    ◄prompt—►
    ◄width1024►
    ◄height768►
    ◄steps30►
    ◄CFG2.5►
    ◄seed-1►
    ◄num_images1►
    ◄enable_safety_checkertrue►
    ◄output_formatpng►
    ◄sync_modefalse►
    ◄accelerationnone►
    ◄negative_prompt►
    ◄loras►

    Qwen-Image is Alibaba's 20B text-to-image model, Apache 2.0 and legitimately good at rendering text in the image - the one thing diffusion models historically fumbled. The catch is the size. Twenty billion parameters is a "do you actually have a 4090 and 24GB of spare VRAM" conversation. This node skips that conversation: it calls fal.ai's hosted fal-ai/qwen-image endpoint, so the model runs on fal's servers and you just write a prompt.

    If you mostly want Qwen-Image's text rendering or its strong prompt adherence for the occasional job, this is the cheap path in. You're paying per generation instead of buying the hardware.

    How it works

    Straightforward: the node builds an arguments dict from your inputs and POSTs it to fal's API. Width and height become the image_size, steps become num_inference_steps, CFG becomes guidance_scale. Results come back as hosted images and get converted into a normal IMAGE tensor. Nothing runs locally, so there's no model download and no VRAM involved at all.

    The inputs that matter

    • prompt / negative_prompt - the usual pair. The negative prompt defaults to empty, and that's fine; Qwen-Image responds more to prompt quality than to a long negative list.
    • width / height - 256 to 2048, defaulting to 1024x768. Good enough for most work; push higher if text legibility is the goal.
    • steps (default 30) and CFG (default 2.5) - note how low the CFG default is. That's deliberate; Qwen-Image is a flow-ish model that likes low guidance. If you dial it up to the 7.5 you're used to from SD, you'll get over-saturated mush.
    • seed - -1 means random. Set a real number for reproducibility.
    • acceleration - none, regular, or high. Higher acceleration means faster and cheaper but slightly lower quality. Start at none.
    • loras (optional) - a JSON list like [{"path": "...", "scale": 1.0}]. Qwen-Image's LoRA ecosystem is real, and fal hosts a bunch of them; this is how you attach one.

    One output: IMAGE. That's it - no mask, no text.

    Installing it

    Pack install, same as the rest of "ComfyUI Assistant Node":

    cd ComfyUI/custom_nodes
    git clone https://github.com/pvlprk/comfyui-pvl-api-nodes
    

    Restart, then set FAL_KEY in the environment (export FAL_KEY="..." before launching ComfyUI). No model files download - that's the entire trick.

    Common issues

    Here's the trap this node doesn't advertise: on API error it doesn't fail - it returns a 1×64×64 black image. The code catches exceptions and hands you a dummy tensor so the graph keeps running. If your outputs suddenly look like a black dot, check the ComfyUI console - the real error is printed there. That silent black output has burned more than one person who assumed their sampler was broken.

    Beyond that, the usual suspects apply: FAL_KEY not set throws loudly, batch size is capped at 4 per call, and every generation bills fal's pay-per-use. And remember the privacy note - your prompt goes to fal's servers, so don't put proprietary prompt secrets in a workflow you share.

    CategoryPVL_tools_FAL

    Inputs (13)

    NameTypeDefaultDescription
    promptSTRING—
    widthINT1024256–2048—
    heightINT768256–2048—
    stepsINT301–100—
    CFGFLOAT2.51–20—
    seedINT-1-1–4294967295—
    num_imagesINT11–4—
    enable_safety_checkerBOOLEANtrue—
    output_formatCOMBOpng2 options: jpeg, png
    sync_modeBOOLEANfalse—
    accelerationCOMBOnone3 options: none, regular, high
    negative_promptSTRING—
    lorasoptSTRING—

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE—