FAL Qwen Edit Plus LoRA
Qwen-Image-Edit with LoRAs, run on FAL instead of your own GPU
- image
- image_2
- image_3
- image_4
- image
- width
- height
Qwen-Image-Edit is a 20B model - out of reach at full precision for most consumer cards without a GGUF quant and a step-reduction LoRA to make it bearable. QwenEditPlusLoraNode sidesteps all of that by calling FAL's hosted qwen-image-edit-plus-lora endpoint instead: you send images and a prompt, FAL runs the model on their hardware, and you get the edited image back. No local weights, no VRAM math - just an API key and a bill.
What it's for
Qwen-Image-Edit is the model that took over most of what used to need a mask, a ControlNet, or a face adapter - you describe the change in plain language ("remove the watermark," "swap the jacket to red") and it does it, reasoning about what should fill in behind whatever you removed. This node gets you that capability without standing up a local Qwen-Edit install, and it layers on the thing that makes the model genuinely powerful in 2026: its own LoRA ecosystem. Community LoRAs like AnyPose (reference-driven posing) or Multiple-Angles (camera control) are trained specifically against Qwen-Image-Edit revisions, not the base text-to-image model, and this node lets you stack up to three of them by URL with per-LoRA weights.
How it works
It uploads your image(s) to FAL automatically - you don't need a separate hosting step - sends your prompt and any LoRA URLs along with it, and returns the edited result. Up to four images can go in: the first is required, the other three are optional extra references, which matters because Qwen-Image-Edit 2509 onward accepts multiple inputs for composition tasks (person+product, person+scene, and so on).
The inputs and outputs that matter
Every field here has the author's own tooltip, so trust those over guessing:
image- "Input image (first, required)."prompt- your edit instruction, multiline.model(default"fal-ai/qwen-image-edit-plus-lora") - the FAL model string; you can point it elsewhere if FAL adds variants.image_2/image_3/image_4(optional) - additional reference images for multi-image composition.image_size(defaultauto, with presets likesquare_hd,portrait_16_9,landscape_16_9, orcustom) pluscustom_width/custom_heightwhen you pickcustom.lora1_url/lora2_url/lora3_urlwith matchinglora1_weight/lora2_weight/lora3_weight(default 1, range 0–2) - point these at hosted LoRA files (a HuggingFace link works) to layer in community LoRAs like AnyPose or a consistency LoRA.num_inference_steps(default 28),guidance_scale(default 4),seed,num_images(default 1) - the standard generation knobs.enable_safety_checker(default false) - worth calling out explicitly: this node ships with FAL's own safety filter off by default, unlike a lot of hosted-API wrappers you'll run into elsewhere. Know that before you assume it's on.api_key- your FAL key.
Outputs: image, width, height.
How to install it
Via ComfyUI Manager: search "ComfyUI-utils-nodes," install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/zhangp365/ComfyUI-utils-nodes
Restart ComfyUI. No local model download - get a FAL API key at fal.ai (account → API keys), same process the pack's other FAL-backed nodes use, and paste it into api_key.
Common issues & troubleshooting
Qwen-Image-Edit's known limitation carries straight through to this node because it's the same model: it re-emits the whole frame rather than patching a masked region, so pixels you didn't ask about can drift, and that drift compounds if you chain edits. Community consensus is that faces are the part most likely to shift across a chain of edits - if you need a specific face to stay pixel-identical, plan on a separate inpaint pass afterward rather than expecting this node alone to hold it steady.
On the practical side: an invalid or missing api_key fails every call, and LoRA URLs need to actually be reachable and in a format FAL's loader accepts - a broken or private link will fail silently-ish rather than obviously, so if a LoRA doesn't seem to be affecting the output, check the URL resolves before assuming the weight setting is wrong.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image (first, required) | |
| prompt | STRING | Prompt for image generation | |
| model | STRING | fal-ai/qwen-image-edit-plus-lora | FAL model name |
| api_keyopt | STRING | FAL API key | |
| image_2opt | IMAGE | Input image (second, optional) | |
| image_3opt | IMAGE | Input image (third, optional) | |
| image_4opt | IMAGE | Input image (fourth, optional) | |
| image_sizeopt | COMBO | auto | Image size |
| custom_widthopt | INT | 12801–4096 | Custom width (used when image_size is custom) |
| custom_heightopt | INT | 7201–4096 | Custom height (used when image_size is custom) |
| num_inference_stepsopt | INT | 281–100 | Number of inference steps |
| seedopt | INT | 00–18446744073709550000 | Random seed |
| guidance_scaleopt | FLOAT | 4.01–20 | Guidance scale |
| num_imagesopt | INT | 11–10 | Number of images to generate |
| enable_safety_checkeropt | BOOLEAN | false | Enable safety checker |
| output_formatopt | COMBO | png | Output format |
| negative_promptopt | STRING | Negative prompt | |
| accelerationopt | COMBO | regular | Acceleration mode |
| lora1_urlopt | STRING | LoRA 1 URL | |
| lora1_weightopt | FLOAT | 1.00–2 | LoRA 1 weight |
| lora2_urlopt | STRING | LoRA 2 URL | |
| lora2_weightopt | FLOAT | 1.00–2 | LoRA 2 weight |
| lora3_urlopt | STRING | LoRA 3 URL | |
| lora3_weightopt | FLOAT | 1.00–2 | LoRA 3 weight |
| timeoutopt | INT | 3001–3000 | Timeout in seconds |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| width | INT | — |
| height | INT | — |