Bytedance Seedream V4.5 Edit
Cloud image editing that's actually good at text
- client
- image
Seedream V4.5 Edit is ByteDance's image-editing model over the WaveSpeed API, and its party trick is typography. The V4.5 line was built with enhanced text rendering in mind - posters, logos, UI mockups, signage - so if your edit involves changing words on a sign, adding a headline to a poster, or cleaning up garbled text in a render, this is the one you want. Vanilla edit models mangle text; this generation of Seedream is notably better at it.
It's also the "pay per edit" tradeoff, like the rest of this pack. There's no local Seedream - ByteDance keeps the flagship models closed, API-only (their open releases are the research components, not the image model). So this node is the realistic path to ByteDance-grade editing, at the cost of a per-edit bill and no local control over the pipeline.
How it works
The node sends your prompt and up to 10 reference image_urls to the WaveSpeed Seedream V4.5 Edit endpoint, waits for the render, and pulls the result into a ComfyUI IMAGE tensor. The image_url field accepts a single URL string or multiple URLs, which is how multi-image reference edits work. The output drops straight into your image chain like any other IMAGE.
Resolution works like the rest of the Seedream family: pick a size_preset (1:1, 4:3, 3:2, 16:9, etc.) or "Custom" and set width/height yourself, 1024–4096px on this tier.
The inputs that matter
- prompt - the modification description. If text is involved, spell out exactly what the new text should say.
- image_url - the image(s) to edit, as URL string(s), up to 10.
- size_preset / width / height - resolution control. Custom dims only matter when the preset is "Custom."
- seed - cache control. Randomize re-runs (and re-bills); a fixed value reuses the cached result.
enable_sync_mode waits for the result before returning, enable_base64_output returns base64 instead of URLs (useful for scripting), and show_aspect_ratio is cosmetic. The optional client input is for a WaveSpeed API Client node; otherwise the key comes from Settings.
Installing it
Part of the ERPK Collection (eRepublik-Labs/comfyui-nodes-erpk). ComfyUI Manager: search erpk → ERPK Custom Nodes → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk
pip install -r requirements.txt
You need a WaveSpeed API key (Settings → ERPK → API Keys). No model downloads - the pack's WaveSpeed dependency is just pydantic/requests/Pillow.
Common issues
- Source images must be reachable URLs - WaveSpeed fetches the
image_urls itself. Localhost or private links fail; use the pack's upload helper or any public URL. - Text still garbled? - V4.5 is better at text, not infallible. Keep the requested text short and unambiguous, and check your resolution - low outputs at 1024px can't hold legible small type.
- Billed per edit - it's a paid API. Iterate on the seed-pinned cached results where you can.
- Blank prompt errors - the node requires a non-empty prompt; same rule as the rest of the pack.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text description of the desired image modifications | |
| image_url | STRING | Image URL(s) to edit. Accepts single URL (string) or multiple URLs (array). Max 10 images. | |
| size_preset | COMBO | Custom | Recommended resolution presets. Select 'Custom' to use manual width/height. |
| seed | INT | -1-1–2147483647 | Seed for cache control. Randomizes by default. |
| clientopt | WAVESPEED_AI_API_CLIENT | WaveSpeed API client (optional if API key is configured in Settings) | |
| widthopt | INT | 20481024–4096 | Custom width (only used when size_preset is 'Custom') |
| heightopt | INT | 20481024–4096 | Custom height (only used when size_preset is 'Custom') |
| show_aspect_ratioopt | BOOLEAN | true | Show aspect ratio in node title |
| enable_sync_modeopt | BOOLEAN | false | Wait for result generation before returning response |
| enable_base64_outputopt | BOOLEAN | false | Return BASE64 encoded output instead of URLs |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |