Qwen Image-to-Image (fal.ai)
Qwen Image-to-Image
- image
- image
Every other node in the Qwen family takes your image and your words and decides for itself how much to change. FAL_QwenImageToImage is the one that hands you the dial. It's the same 20B Qwen-Image model as the text-to-image node, but with an image input and a strength slider (0–1, default 0.6) that says how far the result may wander from your source. Low strength keeps the composition and just nudges detail; high strength lets the prompt take over. That predictability is why you reach for img2img over a full edit when you want to restyle something without losing the bones of it.
Like the rest of the pack, this is a rental, not a download: your image gets uploaded to fal.ai, generated against, and the output comes back as a standard ComfyUI IMAGE tensor. Your GPU is a spectator.
How it works
The node converts your image tensor to a PNG, uploads it with fal's file API, and sends image_url plus strength to the fal-ai/qwen-image/image-to-image endpoint. The model conditions on your picture at that strength and generates from your prompt. Feed it one clean image - the upload takes the first frame of whatever tensor you hand it, so don't expect batch semantics here.
The inputs that matter:
- image (required) and prompt (required) - the raw materials. The prompt drives what changes; the image anchors what doesn't.
- strength - the whole point of this node over its Edit sibling. 0.0–1.0; 0.6 default is a sensible middle. Drop to ~0.3 for subtle texture or color shifts, push toward 0.9 if you're basically regenerating.
Everything else is inherited from the text-to-image node: image_size presets plus custom width/height, num_inference_steps (30), guidance_scale (2.5 - Qwen likes it low), seed (-1 random), optional negative_prompt, png/jpeg output_format, the acceleration and use_turbo speed toggles, and enable_safety_checker (defaults on). One output, IMAGE, ready for a Preview, Save, or the next stage of the workflow.
Installing
Same as the whole pack - this is one of eleven nodes shipped together:
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 search ComfyUI fal.ai Nodes in ComfyUI Manager. No models to download - everything runs in fal's cloud. You still need an API key, set either as FAL_KEY or in a config.ini inside the node folder (the ComfyUI Desktop route), from fal.ai/dashboard/keys. Restart after installing.
Gotchas
- "FAL_KEY not set" on your first run means the key never made it into the environment - env var or
config.ini, then restart. - It costs real money per call, and img2img uploads plus generation means two things hitting fal's API. Fine for a few test runs; a brute-force settings sweep adds up.
- Strength is a fader, not a guarantee. Qwen re-emits the whole frame, so even at low strength fine details can drift. If you need pixel-level control over a specific region, that's a mask-based job, not an img2img job.
- Only the first image of a batch is used - don't wire a batch into
imageexpecting all frames processed.
If your end goal is "change this thing about the picture," the Edit node in this pack is usually the better tool. This one is for when you want the familiar strength lever instead.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| prompt | STRING | — | |
| strengthopt | FLOAT | 0.600–1 | — |
| num_imagesopt | INT | 11–4 | — |
| image_sizeopt | COMBO | landscape_4_3 | 7 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, +1 |
| custom_widthopt | INT | 102464–14142 | — |
| custom_heightopt | INT | 76864–14142 | — |
| num_inference_stepsopt | INT | 302–250 | — |
| guidance_scaleopt | FLOAT | 2.50–20 | — |
| seedopt | INT | -1-1–2147483647 | — |
| negative_promptopt | STRING | — | |
| output_formatopt | COMBO | png | 2 options: png, jpeg |
| accelerationopt | COMBO | none | 3 options: none, regular, high |
| use_turboopt | BOOLEAN | false | — |
| enable_safety_checkeropt | BOOLEAN | true | — |
| private_modeopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |