qwen / 20b / editImage
Edit a picture with Qwen-Image's instruction following — and keep the text legible
- images
- loras
- api_config
- images
- errors
- workflow_id
- raw_json
The instruction-edit node for Qwen-Image, running on Civitai's sdcpp fleet. Qwen-Image-Edit is the model that made masks and adapters optional for a whole class of edits - you hand it a picture and a sentence ("remove the watermark", "change the sign text to 'Bella's Books'", "make the sky sunset") and it does it, re-emitting the whole frame. This node wraps that for the cloud, so the edit happens without a 20B model on your disk and without the two-encoder setup Qwen needs locally.
Its specific edge over the Flux edit nodes is text. If your edit involves words - fixing a misspelling on a storefront, changing a label, replacing logo copy - Qwen's typography is the best in the open world, and it survives the edit. That's the workflow this node exists for: images where the text is the point, and the edit is about changing it.
How it works
Standard pack client: submit engine: sdcpp, ecosystem: qwen, model: 20b, operation: editImage with your images, prompt, and required output size; long-poll; get the edited IMAGE back.
The inputs that matter
- prompt (required) - the edit instruction, plain language. "Change the text on the menu board to read X" is exactly its home turf.
- images (required,
IMAGE) - the source. Unlike the Flux edit nodes, this one requires it - there's no accidental "edit with no image" here. - width / height (required) - the output size, no inference from the input. Set it to match your source.
- version -
latest/2509/2512. The 2511/2512 builds are the current open editors. - steps / cfg_scale - 20 / 2.5 defaults.
Install
Pack install: ComfyUI Manager → search "Civitai Comfy Nodes" (publisher civitai) → Install → restart. Or clone https://github.com/civitai/civitai-comfy-nodes.git into custom_nodes, pip install -r civitai-comfy-nodes/requirements.txt (just requests), restart.
Common issues
Credentials: Civitai Auth node into api_config or CIVITAI_API_TOKEN (from civitai.com/user/account); headless installs need the env var.
The structural weakness to plan around: Qwen re-emits the whole frame, so pixels you didn't ask about move a little - faces drift across a chain of edits, backgrounds shift. It's the model's known design, not a failure. If an edit must be surgical, the community's standard answer is to bolt a mask on around the region you care about.
And the required width/height: it's easy to wire an image, type a prompt, and queue with blank size widgets - the node catches it locally and blocks. Set the size, check the text, and remember each edit is a billable job.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| images | IMAGE | — | |
| width | INT | 00–2048 | — |
| height | INT | 00–2048 | — |
| output_formatopt | COMBO | 4 options: , jpeg, png, webP | |
| image_metadataopt | STRING | External metadata that will be stored with the image | |
| negative_promptopt | STRING | — | |
| sample_methodopt | COMBO | 16 options: , euler, heun, dpm2, dpm++2s_a, dpm++2m, +10 | |
| scheduleopt | COMBO | 12 options: , simple, discrete, karras, exponential, ays, +6 | |
| stepsopt | INT | 201–150 | — |
| cfg_scaleopt | FLOAT | 2.500–30 | — |
| seedopt | INT | 00–4294967295 | — |
| quantityopt | INT | 11–12 | — |
| lorasopt | CIVITAI_LORAS | — | |
| versionopt | COMBO | latest | 3 options: latest, 2509, 2511 |
| 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 | — |