ByteDance Seedream 5
ByteDance's Seedream 5, Wrapped for Your Workflow
- image
- images
- image_urls
- image_paths
The odd one out in a video pack: an image generator. And it's a good one to have around, because it pairs perfectly with the Seedance video nodes in the same repo - generate a still with Seedream, feed it into an Image-to-Video node, and you've got a complete shot. Same BytePlus ARK API, same ByteDance closed-model story: Seedream is ByteDance's flagship image line, there are no weights to download, and every generation is a metered cloud call.
What makes this node mechanically different from its pack-mates is that it's synchronous. The Seedance nodes submit a task and poll for minutes; Seedream just POSTs to /images/generations and gets URLs back in the response. It downloads them into an IMAGE tensor batch, saves copies to ComfyUI/output/ as seedream_<timestamp>.png, and returns. No poll_interval, no max_wait - it's a one-shot HTTP request, which makes it feel instant by comparison.
What you actually set
model-seedream-5-0-260128(full) orseedream-5-0-lite-260128(the cheaper lite variant).size_preset- the big one. Seventeen presets across 2K and 3K with ratios from 1:1 to 21:9, pluscustom. Pick a preset and forget the raw dimensions.width/height- 512 to 4704, only read whensize_presetiscustom.sequential_image_generation- the genuinely unusual feature. Turn this on and the model can return a group of up tomax_imagesrelated images in one request, like a quick character or style sheet.seed- 0 lets the server pick; set one for reproducibility.output_format- png or jpeg.watermarkif you're feeling cooperative.fail_on_partial- when grouped generation returns fewer images than requested, error out instead of silently returning the short batch.
The optional image input is multi-reference: a batched IMAGE is sent as several reference images, which makes this node a legit image-editing tool - reference a character or a scene and generate variations around it. Or skip tensors entirely with image_url (multiple URLs, one per line).
Three outputs: images (an IMAGE batch - wire straight into the video nodes' first_frame), plus image_urls and image_paths as newline-joined STRINGs.
Install
Same as the rest of the pack - ComfyUI Manager, search comfyui-seedance-nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/theclueless-ai/comfyui-seedance-nodes
pip install -r ComfyUI/custom_nodes/comfyui-seedance-nodes/requirements.txt
Just requests, Pillow, numpy, opencv-python; no model files. Key via ARK_API_KEY env var or the api_key field, restart, and it appears under Seedance / Image Generation.
Where people get burned
- The 15-image budget. Reference images plus generated images must be ≤ 15. Feed in 14 references and ask for 5 images and the node clamps
max_imagesdown (or errors if there's no room at all). The console tells you what it did - check it. - Custom sizes are easy to forget. The
width/heightinputs sit there looking active, but they're ignored unlesssize_presetiscustom. - The bill and the filter. This is a paid, metered call, and 3K multi-image runs add up fast. Your prompt and reference images leave the machine and pass through ByteDance's moderation - the model refuses at the source, and no node setting changes that.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | BytePlus ARK API key. Leave empty to use ARK_API_KEY env variable. | |
| prompt | STRING | Vibrant close-up editorial portrait, sharp focus on eyes, dramatic studio lighting. | Text description of the image to generate. |
| model | COMBO | seedream-5-0-260128 | seedream-5-0-260128 (full) or seedream-5-0-lite-260128 (lite). |
| size_preset | COMBO | 2K 1:1 | Aspect-ratio + resolution preset. Choose 'custom' to use the width/height inputs instead. |
| width | INT | 2048512–4704 | Custom image width (only used when size_preset = 'custom'). |
| height | INT | 2048512–4704 | Custom image height (only used when size_preset = 'custom'). |
| sequential_image_generation | BOOLEAN | false | Enable grouped image generation. When True the model can return up to max_images related images in a single request. |
| max_images | INT | 11–15 | Maximum generated images (only used when sequential_image_generation is True). Reference images + generated images must be ≤ 15. |
| seed | INT | 00–18446744073709550000 | Random seed. 0 = server picks a random seed. |
| watermark | BOOLEAN | false | Add a BytePlus watermark to the output image. |
| fail_on_partial | BOOLEAN | false | When sequential generation returns fewer images than requested, raise an error instead of returning the partial batch. |
| output_format | COMBO | png | 2 options: png, jpeg |
| imageopt | IMAGE | Optional reference image(s). A batched IMAGE is sent as multiple reference images (multi-reference mode). | |
| image_urlopt | STRING | Optional HTTP URL(s) to use instead of the IMAGE input. Separate multiple URLs with newlines. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| image_urls | STRING | — |
| image_paths | STRING | — |