Nodes/ComfyUI Razv WaveSpeed Nodes/WaveSpeedAI Bytedance Seedream V4 Edit
ComfyUI Node

WaveSpeedAI Bytedance Seedream V4 Edit

Seedream V4 editing at up to 4096x4096 — ByteDance's flagship, via API

By razvanmatei-sf·Created 12 months ago·Updated 9 months ago· 0
WaveSpeedAI Bytedance Seedream V4 Edit
  • client
  • output_image
prompt
image_url
size_preset2048x2048 (1:1)
seed0
enable_sync_modefalse

ByteDance's whole Seedream line is an API product - no weights, ever, no local version, not a rumor of one. If you want Seedream's edit quality, you rent it, and this node is the rental contract in ComfyUI form. What makes it worth a look is the resolution ceiling: the size presets run up to 4096x4096, which is a scale most local open editors can't reach without tiling. For big-canvas edits where detail density matters, that's the entire pitch.

What it is

A hosted wrapper around ByteDance's Seedream V4 image editor. Give it a prompt, an image_url, and a size_preset, and it returns the edited image as an IMAGE tensor. The preset list is nine deep, from 2048x2048 (1:1) through 2560x1440 (16:9) and 3024x1296 (21:9) up to the flagship 4096x4096. Note the seed behavior here: default is 0, and the node treats 0 as "random" - pass a nonzero seed for reproducible edits.

How it works

The client comes from the WaveSpeedAI Client node. The node maps your chosen preset to an explicit width*height string, POSTs {images, prompt, size} to the Seedream edit endpoint, and fetches the returned image URL back as an IMAGE tensor. enable_sync_mode defaults to off here - unusual for the pack's image nodes - so by default it submits and polls up to five minutes. If you want it to block and return, flip it on.

The inputs that matter

  • prompt - the edit to apply, described plainly.
  • image_url - the source image as a public URL.
  • size_preset - where the node earns its keep. 4096x4096 is the headline; 21:9 is useful for wide banners.
  • seed - 0 means random (default); set a real number to reproduce.
  • enable_sync_mode - off by default; turn on for a blocking call.

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

  • Sync mode surprises - if you expected the node to return instantly and it doesn't, you've got the default async behavior; enable_sync_mode is off. Conversely, in async the node still blocks while polling, so don't expect queue-parallel behavior.
  • Huge output, small VRAM - a 4096x4096 result becomes a large tensor when fetched back. If ComfyUI chokes downstream, downscale before further processing.
  • "No output received" - unreachable image URL or task timeout.
  • 401 - key issue.

Reach for this node when you genuinely need Seedream's quality or its resolution headroom - the 4096 preset has no serious open local equivalent without heavy tiling. If your edits fit in 2048 or below, the open Qwen-Edit route (or this pack's own Qwen nodes) is cheaper and unrestricted. Seedream is the "when it has to be big and it has to be good" button.

CategoryWaveSpeedAI

Inputs (6)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
promptSTRINGDescription of the image editing you want to apply
image_urlSTRINGURL of input image (connect from Upload Image node)
size_presetCOMBO2048x2048 (1:1)Resolution preset for the generated image
seedINT00–18446744073709550000Random seed for reproducible results
enable_sync_modeBOOLEANfalseWait for generation to complete before returning

Outputs (1)

NameTypeDescription
output_imageIMAGE