WaveSpeedAI Flux Kontext Dev
Instruction editing with real guidance and step controls
- client
- output_image
Flux Kontext was the moment instruction-based editing went mainstream - hand it a picture and a sentence, get back the same picture with the clothes changed or the sky swapped. It's also a 12B model with a famously awkward license for anything you might want to do beyond its rules. This node sidesteps both problems: the model runs on WaveSpeed AI (so no 24GB of VRAM), and the API version is the one case where the licensing friction of running it locally doesn't touch you. The node even ships with a sensible default prompt: "Turn pictures into anime style."
What it is
A hosted Flux Kontext [dev] node. Unlike most pack image nodes, this one exposes guidance_scale (1.0 to 20.0) and num_inference_steps (10 to 100) - actual generation dials you'd normally only get on a local sampler. Defaults are guidance 2.5 and 28 steps, which is a sane starting point. It also takes a num_images option (1–4) so you can request several takes of the same edit in one call.
How it works
client from the WaveSpeedAI Client node, image_url as the source, and the node POSTs {prompt, image, guidance_scale, num_inference_steps, num_images, seed, output_format} to the Flux Kontext endpoint. Results come back as IMAGE tensors (one per requested image, batched into the tensor). enable_sync_mode defaults on, so it blocks until the edit is in your graph.
The inputs that matter
- prompt - the transformation to apply. The default "Turn pictures into anime style" is a fine demo; anything from object removal to relighting works.
- image_url - the source, as a public URL.
- guidance_scale - how strictly the output follows the prompt. 2.5 is loose-ish; crank toward 20 for "make it exactly this." Note this is a different scale range than you might be used to from SD's CFG.
- num_inference_steps - more steps, more quality, slower (and costlier) queue time. 28 is a good default; drop to 10 for drafts.
- num_images - 1–4 takes per call. Cheap way to pick a winner.
- seed, output_format (jpeg/png/webp).
Output name is output_image, type IMAGE.
Install & setup
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/razv-wavespeed.git
cd razv-wavespeed
pip install -r requirements.txt
or ComfyUI Manager → "razv-wavespeed" → Install, restart. API key from wavespeed.ai in config.ini (from config.ini.tmp), the Client node, or WAVESPEED_API_KEY. Deps: requests, pillow, numpy<2.0.0, torch.
Common issues
- "No output received" - unreachable source URL or job timeout; retry with fewer steps.
- Four images at once - num_images=4 returns four tensors; make sure your downstream node expects a batch.
- License comfort - running Kontext locally comes with BFL's anti-circumvention terms. The hosted API is a different (paid) arrangement, which for some people is precisely the point.
- 401 - key issue.
The takeaway: this is the most "sampler-like" node in the pack, and if you want to feel like you're tuning a local pipeline without owning one, it's the closest thing here. Kontext's editing quality remains excellent, and the hosted route removes the two reasons most people passed on it locally: VRAM and licensing.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | Turn pictures into anime style | Text prompt describing the desired transformation (e.g., 'Turn pictures into anime style') |
| image_url | STRING | The image URL to transform (connect from Upload Image node) | |
| guidance_scale | FLOAT | 2.51–20 | How closely to follow the prompt (1.0 = loose, 20.0 = strict) |
| num_inference_steps | INT | 2810–100 | Number of denoising steps (more steps = higher quality, slower) |
| 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 |
| num_imagesopt | INT | 11–4 | Number of images to generate (1-4) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_image | IMAGE | — |