Nodes/ComfyUI fal.ai Nodes/Qwen Image 2 (fal.ai)
ComfyUI Node

Qwen Image 2 (fal.ai)

The API-only Qwen you've been waiting for

By elle-trudgett·Created 5 months ago·Updated 5 months ago· 0
Qwen Image 2 (fal.ai)
    • image
    prompt
    num_images1
    image_sizesquare_hd
    custom_width1024
    custom_height1024
    seed-1
    negative_prompt
    output_formatpng
    enable_prompt_expansiontrue
    enable_safety_checkertrue
    private_modefalse

    Here's the thing about Qwen-Image 2: the community has been begging for its weights since it launched in February 2026, and Alibaba kept them. It's a 7B unified generation-and-editing model with native 2K output - genuinely interesting architecture, far lighter than the 20B v1 - and there's no checkpoint to download. FAL_QwenImage2 is one of the few places you can actually run it, because it wraps fal's hosted fal-ai/qwen-image-2/text-to-image endpoint.

    So this node is the "sneak peek" of the Qwen lineup, in a good way. You get the newer model's look and its 2K ceiling without the 20B VRAM tax, and the whole thing costs you a few API calls instead of a download. The trade: it's a rental, and it behaves like the new architecture - no steps, no CFG, no sampler. You prompt, it generates.

    How it works

    The node sends your prompt to fal's endpoint with the settings below, waits, and converts the returned images into a normal IMAGE tensor. That's the whole mechanism - fal.subscribe behind a tidy wrapper, one output, nothing local.

    The inputs that matter:

    • prompt (required) - the only required field. With no diffusion dials, the prompt is everything.
    • image_size - presets (square_hd default, square, the portrait/landscape ratios) or custom, where custom_width/custom_height apply. Custom here is bounded to 512–2048px, which is the native 2K design - don't expect the 14K ceilings of the v1 node.
    • enable_prompt_expansion (default true) - the model rewrites/expands your prompt internally before generating. This is the closest thing to a quality lever this node has; turn it off if you've already written a detailed prompt and want it taken literally.
    • enable_safety_checker (default on), negative_prompt (optional, only sent when non-empty), num_images (1–4), seed (-1 random), output_format (png/jpeg/webp), private_mode.

    Output: one IMAGE, straight into a Preview, Save, or the rest of the graph.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/elle-trudgett/fal-ai-comfyui-nodes
    pip install -r fal-ai-comfyui-nodes/requirements.txt
    

    or ComfyUI Manager → ComfyUI fal.ai Nodes. No model files to download - that's the point of an API wrapper. Set your fal key: export FAL_KEY="...", or a config.ini with [API] / FAL_KEY in the node folder for ComfyUI Desktop; keys live at fal.ai/dashboard/keys. Restart after.

    Gotchas

    • "FAL_KEY not set" - env var or config.ini, restart, done.
    • No steps or guidance knobs. If you're used to tuning diffusion settings, this node will feel sparse - that's the model's design, not a bug. The prompt and enable_prompt_expansion are your levers.
    • It's a paid API. A settings sweep on a metered 2K model adds up; iterate on the prompt first.
    • 2K is the ceiling, not a guarantee - and higher sizes bill more.
    • Errors arrive as fal.ai error: ..., unwrapped from the API so you can read them.

    If you've been following the Qwen-Image 2.0 story and want to try the future before the weights (if ever) drop, this is the node. Just know you're renting it.

    Categoryfal.ai/Image

    Inputs (11)

    NameTypeDefaultDescription
    promptSTRING
    num_imagesoptINT11–4
    image_sizeoptCOMBOsquare_hd7 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, +1
    custom_widthoptINT1024512–2048
    custom_heightoptINT1024512–2048
    seedoptINT-1-1–2147483647
    negative_promptoptSTRING
    output_formatoptCOMBOpng3 options: png, jpeg, webp
    enable_prompt_expansionoptBOOLEANtrue
    enable_safety_checkeroptBOOLEANtrue
    private_modeoptBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    imageIMAGE