WaveSpeedAI Bytedance Seedream V4 Edit Sequential
One prompt, up to fifteen edited images — Seedream V4's batch mode
- client
- output_images
Storyboards, product variations, character sheets, "same scene, four moods" - that's what this node exists for. It's the edit-flavored sibling of the Seedream V4 Sequential node: instead of generating a series from nothing, it runs the Seedream V4 edit model to produce a batch of images from a description, optionally guided by reference images you supply. From the razvanmatei-sf/razv-wavespeed pack, and like everything in it, it's a paid call to the WaveSpeed AI API.
The honest pitch: if you've ever wanted a set of consistent variations in one shot, this beats generating one at a time - both in effort and in the model keeping the style locked across the batch. The fine print: it's per-image billing, so a 15-image batch is 15 billable generations.
How it works
You describe the whole series in a single prompt, set max_images, and the node POSTs to the Seedream V4 edit-sequential endpoint. The output comes back as output_images - a batched IMAGE tensor, so all of them land in one tensor and you can preview or save the batch with normal batch-aware nodes.
The prompt is doing real work here, and the tooltip is unusually specific about it: you have to specify the number of images in the prompt and use series language - phrases like "a series of" or "group of images" - and the max_images count must align with what you describe. If you say "a series of 4" but set max_images to 8, you're asking the model to reconcile a mismatch. Don't.
Reference images are optional and go up to ten of them (image_1 through image_10) - handy when you want the batch to follow a particular subject or composition rather than a purely text-defined one.
The inputs that matter
- prompt - must name the count and the series ("a series of 6 product shots..."). This is the one that determines whether you get 6 good variations or 6 confused ones.
- max_images - 1–15, default 2. Match it to the prompt.
- size_preset - the same nine Seedream presets as the single-image node, up to 4096×4096.
- seed - and yes, same quirk as its sibling: 0 means random for Seedream. Set a nonzero value to reproduce.
image_1…image_10 are all optional references; enable_sync_mode defaults off.
Install
Shared pack:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/razv-wavespeed
# restart ComfyUI
Or ComfyUI Manager → search "razv-wavespeed" → Install. Add a WaveSpeed AI key via the WaveSpeedAI Client node, config.ini (copy from config.ini.tmp, [API] section), or a WAVESPEED_API_KEY env var.
Common issues
- Count mismatch. The #1 failure mode: prompt says one number,
max_imagessays another. The tooltip is warning you, not kidding. - Cost surprises. A big batch at a big preset is a real chunk of change. Watch the size_preset - 4096×4096 × 15 images adds up fast.
- References are URLs, not tensors. There's no "Upload Image" node registered in the current build despite the tooltips, so paste publicly reachable URLs into
image_1etc. - Consistency isn't guaranteed across a large batch. Seedream holds a series together well, but past ~10 images expect drift; the references exist to keep you honest.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | Description of the image editing/generation task. Specify the number of images to generate and use phrases like 'a series of' or 'group of images' for consistency. | |
| max_images | INT | 21–15 | Number of images to generate. Must align with prompt description. |
| size_preset | COMBO | 2048x2048 (1:1) | Resolution preset for the generated images |
| seed | INT | 00–18446744073709550000 | Random seed for reproducible results |
| enable_sync_mode | BOOLEAN | false | Wait for generation to complete before returning |
| image_1opt | STRING | First input image URL (connect from Upload Image node) | |
| image_2opt | STRING | Second input image URL (connect from Upload Image node) | |
| image_3opt | STRING | Third input image URL (connect from Upload Image node) | |
| image_4opt | STRING | Fourth input image URL (connect from Upload Image node) | |
| image_5opt | STRING | Fifth input image URL (connect from Upload Image node) | |
| image_6opt | STRING | Sixth input image URL (connect from Upload Image node) | |
| image_7opt | STRING | Seventh input image URL (connect from Upload Image node) | |
| image_8opt | STRING | Eighth input image URL (connect from Upload Image node) | |
| image_9opt | STRING | Ninth input image URL (connect from Upload Image node) | |
| image_10opt | STRING | Tenth input image URL (connect from Upload Image node) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_images | IMAGE | — |