Seedream Image Generate
The Closed Image Model Your GPU Can't Run, Now a Node
- image1
- image2
- image3
- image4
- image5
- images
- text
Seedream is ByteDance's flagship image model, and it is never coming to your disk. The company's posture is blunt: components and accelerators ship open, anything that competes with the flagship stays on the API. So if you want Seedream 5.0 Pro quality inside a ComfyUI graph, this is the node you do it through - it's a thin wrapper around the Volcengine ARK image API, cloud generation with an API key instead of a checkpoint. Your 3090 gets a vacation.
That framing matters, because it changes what "using" the node means. There's no models folder to fill, no VAE to match. You install one Python SDK, paste a key, and every image costs whatever ByteDance charges per call. Worth it if you need Seedream's specific strengths - the multi-reference identity work the community raves about, top-tier text rendering - and pointless if your workflow is a fully local, private pipeline.
The inputs that matter
Most of the node is pass-through to the API, but three settings decide everything:
- model - four choices: Seedream 4.0, 4.5, 5.0, and
5.0-pro. Defaults to the pro. Don't assume newer is strictly better for your use case; 5.0 Pro actually has a smaller resolution ceiling than the others (more on that below). - prompt - multiline, works in Chinese and English. This is the whole game.
- aspect_ratio - 14 presets from 1:1 to 21:9, plus 2K/3K/3.5K/4K. Each maps to a fixed size; there's no arbitrary resolution here. That's what the V2 variant is for.
Then the multi-image feature: image1 through image5 optional image inputs. None connected = text-to-image. One or more = image-to-image, and this is the identity-preservation sweet spot - feed a few reference shots and Seedream holds the subject across style changes. That's the use case people actually run this for.
Multi-image output (read this twice)
The default config returns exactly one image, and the path to more is non-obvious. To generate several variants you need all three of: sequential_image_generation on enabled (or auto), max_images above 1, and stream set to True. Miss the stream toggle and you silently get one image. The node then works the streaming response for image_generation.partial_succeeded events and collects only the ones that carry a real URL or base64 payload - so the count you get back can be less than max_images. The console logs the collection progress; the text output lists every image's URL.
Outputs and the reproducibility lie
You get images (a list of real IMAGE tensors - wire it into SaveImage and it works) plus a text log with the generation info. But here's a detail the node is honest about in its own source: the seed input is normalized and never sent to the API. The Seedream API doesn't support seeding yet, so the seed is workflow-tracking sugar. Don't expect identical reruns - if you need to reproduce a result, you reproduce the call, not the seed.
Install
ComfyUI Manager → search "Seedream Image Generate", or:
cd ComfyUI/custom_nodes
git clone https://github.com/dzy1128/Seedream-Image-Generate-ComfyUI
pip install volcengine-python-sdk[ark]
You must also activate the model in the Volcengine console (model square → find a Seedream model → API接入 → pick your key → 开通模型) and set ARK_API_KEY. No model files, no heavy deps beyond the SDK - the "heavy" part is that the API needs network access and has quotas, so budget for a few failed calls while you tune prompts. Watch the resolution ceiling: 5.0 Pro is capped around 2048×2048 while the older models stretch to 4096×4096. If you hit a "resolution" error in text, that's why - switch models or use the V2 node with explicit dimensions.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | COMBO | doubao-seedream-5-0-pro-260628 | 4 options: doubao-seedream-4-0-250828, doubao-seedream-4-5-251128, doubao-seedream-5-0-260128, doubao-seedream-5-0-pro-260628 |
| aspect_ratio | COMBO | 1:1 | 14 options: 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, +8 |
| sequential_image_generation | COMBO | auto | 顺序生成模式:auto=自动,enabled=启用,disabled=禁用 |
| max_images | INT | 11–10 | sequential_image_generation_options.max_images - 最大生成图片数量(用于顺序生成) |
| response_format | COMBO | url | 2 options: url, b64_json |
| watermark | BOOLEAN | false | — |
| stream | BOOLEAN | false | 流式传输模式 - 启用后与max_images配合可生成多张图片 |
| base_url | STRING | https://ark.cn-beijing.volces.com/api/v3 | — |
| use_local_images | BOOLEAN | true | 使用本地图像(Base64格式,官方支持) |
| seed | INT | 00–18446744073709550000 | — |
| enable_auto_retry | BOOLEAN | true | 启用自动重试机制,处理云端工作流的异步执行问题 |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| text | STRING | — |