WaveSpeedAI Qwen Image Edit
The hosted instruction editor
- client
- image
Qwen-Image-Edit is the open editor that made instruction-based editing the default - hand it a picture and a sentence ("change the shirt to a black coat," "remove the watermark") and it does the work that used to take a mask plus a ControlNet plus an inpainting pass. It's also a ~20B model that eats your VRAM and your patience to set up. This node runs the same model on WaveSpeed AI's servers, so you get the Qwen-Edit magic without the 20GB download or the OOM errors. You're trading a few cents per image for not touching the weights.
What it is
A hosted wrapper around Qwen-Image-Edit. You connect the client (WaveSpeedAI Client node with your API key), give it a prompt (it explicitly supports both Chinese and English), an image_url, and a seed, and the node returns the edited result as an IMAGE tensor - not a URL. That last part is the difference between this and the pack's video nodes: the image edits are fetched back to your machine and appear directly in the ComfyUI graph, so you can chain them into any downstream node.
How it works
The node POSTs {prompt, image, seed, output_format} to the Qwen image edit endpoint, then converts the returned image URL into a tensor using the pack's shared image-fetching helper. That conversion is real work happening on your machine - a small download per image, nothing GPU-bound - which is why the node needs outbound internet even after generation.
The inputs that matter
- prompt - say what changes. Instruction editors are literal, so be specific: "replace the cloudy sky with a clear sunset" beats "make it prettier."
- image_url - the source image, as a public URL.
- seed - -1 for random; fix it when you're iterating so you can compare changes across prompt tweaks.
- output_format - jpeg, png, or webp. The edits come back as an IMAGE either way.
- enable_sync_mode - defaults to
true, so the node waits and returns the image. Flip it off only if you're batching many edits.
Output name is image, type IMAGE - straight into a Save Image / Preview Image node.
Install & setup
Shared pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/razv-wavespeed.git
cd razv-wavespeed
pip install -r requirements.txt
Or via ComfyUI Manager (search "razv-wavespeed"), then restart ComfyUI. API key from wavespeed.ai goes in config.ini (copy config.ini.tmp), the Client node, or WAVESPEED_API_KEY. No model files; pip deps are requests, pillow, numpy<2.0.0, torch.
Common issues
- "No output received from API" - usually the image URL wasn't publicly reachable. The API has to fetch it; localhost or a private LAN address will fail.
- Edits wander from the request - Qwen-Edit re-emits the whole frame, so pixels you didn't ask about can drift. That's the model's known behavior, not a bug in the node. If you need surgical edits, pair it with a mask and inpaint.
- 401 Unauthorized - key missing or out of credit.
The one thing to remember: this is the same model people run locally for free. You're paying for the hosting and the convenience of no install, so if you have the VRAM and use this node constantly, the local route eventually wins. For occasional edits on a modest GPU, hosted is genuinely the better tool.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | The prompt to generate an image from (supports Chinese & English) | |
| image_url | STRING | The image URL to edit (connect from Upload Image node) | |
| seed | INT | -1-1–18446744073709550000 | Random seed for reproducible results. -1 for random seed |
| output_format | COMBO | jpeg | The format of the output image |
| enable_sync_mode | BOOLEAN | true | Wait for image generation to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |