OneThingAI Seedream Image
Seedream 4.5 in ComfyUI, 2K/4K rules included
- reference_image
- IMAGE
ByteDance's Seedream is the flagship image line that has never had weights released - the whole Seedream family is API-only, and the community mostly reads about it rather than runs it. OnethingAIImageSeedream ("OneThingAI Seedream Image") is the node in the ComfyUI_Onething_Image pack that finally puts it in a graph: doubao-seedream-4-5-251128, doubao-seedream-4-0-250828, doubao-seedream-3-0-t2i-250415, plus doubao-seededit-3-0-i2i-250628, all served through OneThing AI's API. It's also the pack's most opinionated node, because ByteDance's API has rules the node enforces for you.
How it works. This one isn't OpenAI-compatible under the hood. The pack routes Seedream through a Volcengine-style client: instead of the multipart image-edit endpoint the other nodes use, the reference image gets base64-encoded and sent as a data URI inside the JSON payload to the same /v1/images/generations endpoint. Same result in your graph - a standard IMAGE tensor - but a different transport, and it's worth knowing if you're ever debugging why a request looks the way it does.
Inputs that matter. The model dropdown has four entries. Beyond api_key and prompt, you get image_size (presets or 自定义, custom 512–4096), retries/timeout, and two inputs unique to this node:
seed- -1 for random; honored only on the 3-0 text-to-image and the seededit model, gated off elsewhere.watermark(boolean, default on) - if your results come back with a watermark you don't want, this is the toggle.
In optional: reference_image (enabled for the 4-5, 4-0, and seededit models), guidance_scale (0–10, though anything below 1.0 is dropped, so 0 effectively means "let the API decide"), and the pack-wide extra JSON escape hatch.
Then there are the two rules baked into the code that will bite you if you ignore them. doubao-seededit-3-0-i2i is image-edit only - it requires a reference_image, and the node raises a hard error if you run it without one, forcing the size to "adaptive." And Seedream 4-5 only accepts 2K/4K resolutions: the node checks total pixels and throws "分辨率过低" (resolution too low) below roughly 1920×1920. Don't try 1024×1024 on 4.5 - the node will tell you exactly why.
Install. Same as every node in the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/OneThingAI/ComfyUI_Onething_Image.git
pip install Pillow requests
Restart ComfyUI, or install "ComfyUI OneThing AI Node" from ComfyUI Manager. No weights to download - the model runs on OneThing AI's servers.
Troubleshooting. The three failure modes are all in the rules above: seededit without a reference image (hard error), Seedream 4-5 at too-low resolution (hard error), and the pack-wide always-executes quirk that spends a credit every time you queue, even unchanged. If you're chasing photorealistic 4K output and have the patience for the canvas constraints, this is arguably the strongest model in the pack. Just respect the guardrails.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| model | COMBO | 4 options: doubao-seedream-4-5-251128, doubao-seedream-4-0-250828, doubao-seedream-3-0-t2i-250415, doubao-seededit-3-0-i2i-250628 | |
| prompt | STRING | — | |
| image_size | COMBO | 1024x1024 | 4 options: 1536x1024, 1024x1024, 1024x1536, 自定义 |
| custom_width | INT | 1024512–4096 | — |
| custom_height | INT | 1024512–4096 | — |
| retries | INT | 31–10 | — |
| timeout | INT | 1205–180 | — |
| seed | INT | -1-1–2147483647 | — |
| watermark | BOOLEAN | true | — |
| reference_imageopt | IMAGE | — | |
| extraopt | STRING | — | |
| guidance_scaleopt | FLOAT | 0.000–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |