SF WaveSpeed Seedream V4 Edit
Seedream V4 editing through an API, with a 4096px preset your local card can only dream about
- client
- output_image
ByteDance's Seedream line is the poster child for "closed model, API only." The entire Seedream and Seedance product family lives behind ByteDance's API - there were never open weights for it, and there's no indication there will be. So if you want Seedream V4's editing in a ComfyUI workflow, an API wrapper is the only way it happens. This node from the SF ComfyUI Nodes pack (Stillfront/comfyui-sf-nodes) is exactly that: it sends your image and an edit instruction to WaveSpeed's hosted Seedream V4 and returns the result as a normal IMAGE tensor.
The headline feature is the resolution table. The size presets top out at 4096x4096, with a 21:9 option at 3024x1296 along the way. Generating 4K on a local card means tiling and patience; here you just pick the preset. If you're making print-size or large-format work from an edit, that's the whole reason to reach for this node.
How it works
The node builds a payload - images, prompt, size (resolved from the preset), and an optional seed - and POSTs it to /api/v3/bytedance/seedream-v4/edit. The response is a URL, which the node downloads and decodes into an IMAGE tensor. Nothing runs on your machine beyond the HTTP call, so there's no VRAM floor and no model directory to manage.
The inputs that matter
- client - required, from the SF WaveSpeed Client node (same pack). No client, no call.
- prompt - your edit instruction in plain language. This is an instruction-editing model: "change the lighting to golden hour," "replace the background," that kind of thing. It works better when you describe the change and let it keep the rest.
- image_url - the source image as a URL string, wired from ComfyUI's Upload Image node per the tooltip. Must be reachable by WaveSpeed's servers - a local path or localhost URL won't do.
- size_preset - nine presets from 1:1 2048x2048 up to square 4096x4096. Pick the one that matches your aspect, don't just max it out; bigger isn't automatically better for an edit.
- seed - 0 means random. Set a fixed seed to reproduce a result; useful once you find an edit you like and want to tune it.
- enable_sync_mode - defaults to off here, which is the one surprise. Leave it off and the node submits the job and polls every second until it's done (up to a 300s timeout); flip it on and it expects the API to return the result in the POST response. Either way the workflow blocks until the edit is back.
Output: output_image (IMAGE). Preview it, save it, or chain it into a local upscale/restore pass - although at 4K you might not need one.
Install
ComfyUI Manager → search "SF ComfyUI Nodes" → Install → restart. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/Stillfront/comfyui-sf-nodes.git
cd comfyui-sf-nodes
pip install -r requirements.txt
Then add the SF WaveSpeed Client node, paste your WaveSpeed API key into it (or set [API] api_key in config.ini, or WAVESPEED_API_KEY), and connect its client output here. No model downloads, period - the whole pack is API-driven.
Gotchas
- Config naming: the README shows
wavespeed_api_keyin its config.ini example, but the code readsapi_key. Copyconfig.ini.tmpas-is and you're fine. - Image URLs must be public. WaveSpeed's servers fetch them; anything on localhost or a private range gets rejected.
- Billable: every edit costs credits. The 4K presets cost more than the small ones, and the node won't warn you. Treat it like a paid API - because it is.
If you want the open-source alternative with the same "describe the change" workflow, Qwen Image Edit (also wrapped in this pack as the Qwen Edit nodes) is the Apache 2.0 path. Seedream V4 Edit is the one you pick when you specifically want ByteDance's quality at sizes local models can't reach.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | Description of the image editing you want to apply | |
| image_url | STRING | URL of input image (connect from Upload Image node) | |
| size_preset | COMBO | 2048x2048 (1:1) | Resolution preset for the generated image |
| seed | INT | 00–18446744073709550000 | Random seed for reproducible results |
| enable_sync_mode | BOOLEAN | false | Wait for generation to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_image | IMAGE | — |