Qwen Image Edit Plus LoRA (fal)
The open instruction editor, with LoRA slots
- images
- IMAGE
This is the node people reach for when Kontext's content policy gets in the way. Qwen-Image-Edit is the open instruction editor from Alibaba's Qwen team - hand it an image and a sentence, and the change happens with no mask, no ControlNet, no face adapter. It absorbed a huge class of work that used to need three tools: object removal, garment swaps, relighting, re-posing, camera-angle changes. QwenImageEditPlusLoRA_fal runs it on fal and, crucially, gives you four LoRA slots so you can apply Qwen-Image-Edit's purpose-built LoRAs on top.
It won its category over Flux Kontext on licensing, not just quality: Apache 2.0, no NSFW clause, so the community built the whole LoRA library on the model it was allowed to build on. That library is the reason this node has LoRA slots at all - pose, angle, next-scene, clothing-transfer, and expression LoRAs are all trained against the editor.
The one thing to know about those LoRA slots
The Qwen-Image-Edit LoRAs are trained on the editor and do nothing on the plain Qwen-Image text-to-image model - they're a separate library with separate authors. So lora_path_1 through lora_path_4 want URLs to Edit-line LoRAs specifically (AnyPose, Multiple-Angles, Next Scene, Clothing Transfer, and friends). Point them at a Qwen-Image base LoRA and nothing useful happens.
The inputs that matter
- prompt - the edit, plain-language and specific: "change her dress to blue," "make this man lie down on his back." Bilingual English/Chinese, and it can edit text inside the image while keeping font and style.
- images - the picture(s) to edit. The "Plus" here is the multi-image revision, so this handles person+person or person+product setups, not just a single frame.
- lora_path_1..4 / lora_scale_1..4 - optional Edit LoRAs by URL, each with a strength (default 1.0).
Then the standard batch: image_size (with custom_width/custom_height), num_inference_steps (28), guidance_scale (4), negative_prompt, seed, num_images, enable_safety_checker, output_format. Output is one IMAGE.
Installing it
ComfyUI Manager → search ComfyUI-fal-API → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
pip install -r ComfyUI-fal-API/requirements.txt
No 20B model to download - it runs on fal, which is the whole appeal, since Qwen-Image-Edit at full precision is out of reach for consumer cards anyway. Set your key (config.ini, or export FAL_KEY=your_key; fal.ai/dashboard/keys), restart, look under FAL.
Where people get burned
The honest structural limit, straight from its own users: it re-emits the whole frame. The model returns a new image, not a patched one, so pixels you didn't ask to change come back close but not identical, and that error compounds across a chain of edits. Faces drift worst. The standard 2026 workaround is to inpaint the face back afterward - or, if you need the untouched-background guarantee, mask the edit with a fill node instead.
Watch input resolution too: uncontrolled input size causes a geometric offset that skews proportions. And the usual API notes apply - paid per call, identical calls served from the pack's cache, and a refused edit surfaces as fal's real error message rather than a blank.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| images | IMAGE | — | |
| image_sizeopt | COMBO | landscape_16_9 | 7 options: custom, square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, +1 |
| custom_widthopt | INT | 1920128–2048 | — |
| custom_heightopt | INT | 1080128–2048 | — |
| num_inference_stepsopt | INT | 282–50 | — |
| guidance_scaleopt | FLOAT | 4.00–20 | — |
| negative_promptopt | STRING | — | |
| seedopt | INT | -1 | — |
| num_imagesopt | INT | 11–4 | — |
| enable_safety_checkeropt | BOOLEAN | true | — |
| output_formatopt | COMBO | png | 2 options: png, jpeg |
| lora_path_1opt | STRING | — | |
| lora_scale_1opt | FLOAT | 1.000–2 | — |
| lora_path_2opt | STRING | — | |
| lora_scale_2opt | FLOAT | 1.000–2 | — |
| lora_path_3opt | STRING | — | |
| lora_scale_3opt | FLOAT | 1.000–2 | — |
| lora_path_4opt | STRING | — | |
| lora_scale_4opt | FLOAT | 1.000–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |