Seedream Image Generate V2
Stop Picking Presets, Just Type the Resolution
- image1
- image2
- image3
- image4
- image5
- images
- text
The base SeedreamImageGenerate node makes you pick an aspect ratio from a preset list and take whatever pixel size comes with it. Fine for most work. But the moment you need a canvas that isn't one of the 14 presets - a 1536×1024 character sheet, a 900×1600 vertical for a specific ad slot - the presets don't cooperate. That's the entire reason SeedreamImageGenerateV2 exists: same API, same everything, except you type width and height directly instead of choosing "3:2".
Under the hood it's not even a rewrite. V2 subclasses the base node and just converts your width × height into the API's size string, then calls the exact same generation path. The real difference is in the validation, which is where the node earns its keep. Different Seedream models have different resolution limits, and V2 knows them:
- 5.0 Pro - 1280×720 to 2048×2048. Capped low.
- 5.0 Lite / 4.5 - 2560×1440 to 4096×4096.
- 4.0 - 1280×720 to 4096×4096.
Total pixels are checked per model, the aspect ratio has to stay between 1/16 and 16, and there's no single-side 4096 hard stop anymore - a recent update relaxed that so you can push one dimension far as long as total pixels comply. If you exceed a limit you get a clear error telling you the model's actual range, which beats the silent letterboxing you'd get from a local pipeline.
Inputs that changed, and what didn't
Everything else carries over from the base node: prompt, model (same four Seedream versions), sequential_image_generation + max_images + stream for multi-image output (stream still must be True for more than one), response_format (url or b64_json), watermark, use_local_images, seed, enable_auto_retry, and the five optional image inputs. Outputs are the same pair: images as a real IMAGE tensor list, plus the text log. And the same reproducibility caveat applies - the seed is tracked but never sent to the API, so don't expect deterministic reruns.
When to reach for it
My rule of thumb: if a preset ratio gets you there, use the plain node and don't think about it. Reach for V2 when you need an exact size, or when you're hitting the resolution ceiling and want to squeeze a specific dimension out of a model. The per-model pixel limits make it the better node for experimenting with big canvases, because the error messages are actually informative. Just remember 5.0 Pro is the one with the small ceiling - if you're pushing 4K, you're on 4.0 or 4.5, not the flagship.
Install
Identical to the rest of the pack. 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]
Same requirements: ARK_API_KEY set, model activated in the Volcengine console, network access. No local models, no VRAM, just the API key and a bit of patience while the cloud does the heavy lifting.
Inputs (18)
| 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 |
| width | INT | 20481–16384 | 生成图片宽度。最终会与height组合成 widthxheight 传给API;上限按总像素和宽高比校验,不按单边4096限制 |
| height | INT | 20481–16384 | 生成图片高度。单边可超过4096;总像素范围随模型变化:5.0 Pro为1280x720到2048x2048;5.0 Lite/4.5为2560x1440到4096x4096;4.0为1280x720到4096x4096 |
| 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 | — |