qwen2 / editImage
The node where the mask died, billed by the edit
- images
- api_config
- images
- errors
- workflow_id
- raw_json
The "qwen2 / editImage" display name undersells this node by a mile. What it actually runs is Qwen-Image-Edit, the model that quietly became the open standard for instruction-based editing - the thing that absorbed "a mask, a ControlNet, and an IP-Adapter" worth of work into one sentence. You hand it an image and a prompt ("make it night", "change the coat to leather", "remove the person in the background") and the change happens, whole-frame, no inpainting mask required. Via Civitai's orchestration through fal, billed in Buzz, returned as a native IMAGE tensor. Same hosted pattern as every node in this pack; the model is the story.
Qwen-Image-Edit won its category the way communities actually decide these things: it's Apache 2.0, so nobody got threatened for building on it, and the LoRA library that grew around it - pose LoRAs, expression LoRAs, angle LoRAs - only works on the editor, not the generator. That's why this node is the one you reach for over the createImage sibling when the job is "change what's in this picture." The editing model is also the family's best-known failure mode, so know it going in: it re-emits the whole frame, meaning pixels you never mentioned can drift, and faces wander across a chain of edits.
The inputs that matter
Required: prompt and images (IMAGE socket - wire a LoadImage or any image output).
- prompt - the instruction. Sentence-level prompts work dramatically better than tag soup here; this model understands "make it a rainy night" in exactly the way a local workflow wishes its model did.
- enable_prompt_expansion - on by default, same as the create node. Consider turning it off for edits, where a rewritten prompt can move pixels you wanted untouched.
- enable_safety_checker - off by default; flip it on for platform-bound work.
- image_size - square_hd default, six presets. Note your input image gets resized to whatever you pick, so match it to your source's ratio.
- negative_prompt, quantity, seed, output_format - standard.
- operation - defaults to editImage; the create node's operation defaults the other way. They're two nodes for one API.
Outputs: images (IMAGE), errors, workflow_id, raw_json.
Install and auth
The pack-wide one-time setup. ComfyUI Manager → Civitai Comfy Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Authenticate (Civitai account with Buzz): export CIVITAI_API_TOKEN=..., a Civitai Auth node, or the sidebar sign-in.
The honest limit
Same one the model's own users state first: drift. Because the whole frame is re-emitted, a long chain of edits will slowly rearrange things you didn't ask about - and unlike local, you can't reach for a mask node to lock pixels down; the hosted API is what it is. Mitigate by doing edits in short, single-subject steps and re-seeding, rather than one giant "and then also…" prompt. If your job is surgical local precision, the pack's HiDream edit nodes or a local Qwen-Image-Edit install with a mask are better; if your job is "make these ten product shots all have a sunset background" on a machine with no GPU, this is the node, and it's excellent at exactly that.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| operation | COMBO | editImage | 2 options: editImage, proEditImage |
| prompt | STRING | — | |
| images | IMAGE | — | |
| output_formatopt | COMBO | 4 options: , jpeg, png, webP | |
| image_metadataopt | STRING | External metadata that will be stored with the image | |
| negative_promptopt | STRING | — | |
| quantityopt | INT | 11–10 | — |
| image_sizeopt | COMBO | square_hd | 6 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9 |
| seedopt | INT | 00–4294967295 | — |
| enable_prompt_expansionopt | BOOLEAN | true | — |
| enable_safety_checkeropt | BOOLEAN | false | — |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| errors | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |