SF WaveSpeed Qwen Edit Plus
Qwen Edit with up to three reference images — consistency across a whole batch
- client
- output_image
Single-image editing has a ceiling: it can't see who your character is across multiple shots, or what style your whole set is supposed to match. SF WaveSpeed Qwen Edit Plus is the multi-reference version of the pack's Qwen editor - up to three images ride along with your edit instruction, so the output can match a face, an outfit, or a look you've already established elsewhere.
This is the node for character-consistency work. Give it a reference of the character plus a reference of the target style, tell it what to do, and the edit inherits from both. It's also genuinely useful for "change the background but keep the subject" jobs where one reference is the subject and another is the new environment.
It's part of the comfyui-stillfront pack, and like all the WaveSpeed nodes it runs server-side - no local model.
How it works
You wire up to three image URLs plus an instruction, and WaveSpeed's Qwen-Image-Edit Plus endpoint renders the result. The interesting structural detail is that this node's defaults are inverted from its siblings: client is the only required input, and everything else - including the prompt - is optional. The tooltips make clear the references cap at three (image_url_1 plus up to two more), and the edit instruction stays bilingual-capable like the base Qwen editor.
The inputs that matter:
image_url_1/image_url_2/image_url_3- reference image URLs from an Upload Image node. One is the practical minimum for an edit; two or three unlock the consistency magic.prompt- the edit instructions.size- seven presets (1328x1328 (1:1)and friends - the native Qwen canvas sizes), orcustom_sizeaswidth*height(e.g.1920*1080), which overrides the dropdown if you provide it.seed,output_format,enable_sync_mode(default on) - the usual suspects.enable_base64_output- returns the image as a base64 string instead of a URL. You almost never want this; it exists for piping into systems that want raw data.
Output is a single output_image (IMAGE).
Installing it
Pack install plus WaveSpeed key:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/comfyui-stillfront
cd comfyui-stillfront
pip install -r requirements.txt
Restart, then wire in an SF WaveSpeed Client node with your key (or config.ini / WAVESPEED_API_KEY).
Troubleshooting
- "No output received." With everything optional, it's easy to send an empty edit - no prompt and no references means the API has nothing to work with. Give it at least one reference and an instruction.
- References fight each other. Three images pulling in different directions (different lighting, different angles, different styles) produce mush. Keep the references visually coherent - same character, consistent lighting.
- custom_size not taking effect. It overrides the dropdown only when it's a valid
width*heightstring. A trailing space or axinstead of*and it silently falls back to the preset. - Consistency still off. Qwen's plus-tier editing is good, not telepathic. More reference images ≠ more consistency past a point; quality of references beats quantity.
The sibling nodes in this pack cover the simple and the LoRA-flavored cases. This one is the answer when your edit needs to agree with other images you already have - which, for any real character-driven workflow, is most of the time.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| promptopt | STRING | Edit instructions (supports Chinese & English). Describes the changes you want to make to the image. | |
| image_url_1opt | STRING | First reference image URL (connect from Upload Image node) | |
| image_url_2opt | STRING | Second reference image URL (optional, max 3 total) | |
| image_url_3opt | STRING | Third reference image URL (optional, max 3 total) | |
| sizeopt | COMBO | 1328x1328 (1:1) | The aspect ratio and resolution of the output image |
| custom_sizeopt | STRING | Custom size as 'width*height' (e.g. '1920*1080'). Overrides size dropdown if provided. | |
| seedopt | INT | -1-1–2147483647 | Random seed for reproducible results. -1 for random seed |
| output_formatopt | COMBO | jpeg | Output image format |
| enable_base64_outputopt | BOOLEAN | false | Return image as BASE64 encoded string instead of URL |
| enable_sync_modeopt | BOOLEAN | true | Wait for generation to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_image | IMAGE | — |