🚀 Seedream 4.5 Image2Image
The Image2Image API Node
- image
- image2
- image3
- image4
- IMAGE
The "🚀 Seedream 4.5 Image2Image" node is a wrapper that calls ByteDance's Seedream 4.5 through the Volcengine Ark API - so it runs nothing locally. No checkpoint, no VAE, no VRAM, no CUDA. You feed it an image and a prompt, it phones ByteDance's cloud, and a generated image comes back as a normal IMAGE tensor you can wire into the rest of your graph. For the Image2Image/editing use case this is worth taking seriously: when Seedream 4.5 shipped in late 2025 it ranked #3 on the image-edit leaderboard, and it was in high demand in ComfyUI precisely because it has no open weights. This pack filled that gap two weeks later, in December 2025.
What it actually does
Like every API-wrapper node, this one is an HTTP client dressed as a generator. Under the hood it takes your ComfyUI IMAGE tensors, encodes each as a base64 PNG data URL, and POSTs them - plus your prompt and settings - to https://ark.cn-beijing.volces.com/api/v3/images/generations with your key as a Bearer token. The API replies with URLs, the node downloads the images, converts them back to float tensors, and hands you one IMAGE output. From the canvas it looks like a local sampler did the work; underneath, your prompt and reference images just left your machine.
The default model is doubao-seedream-4-5-251128. That model name, the endpoint, and the whole workflow are things you don't touch - this isn't a "hack the config" node, it's a paste-a-key-and-go one.
The inputs that matter
image(required) - your reference image. Seedream is genuinely good at "keep the subject, change the scene/material," which is what the default prompt (保持模特姿势不变,改变材质..., "keep the pose, change the material") points at.image2/image3/image4(optional) - up to four reference images total. All of them go to the API as a multi-image reference array, so you can do things like identity-plus-outfit-plus-background.api_key- from the Volcengine Ark console (console.volcengine.com). It's a password-type field, so it won't be visible on the canvas.size-1K,2K,720x1280,1280x720; defaults to2K. The API honors whatever you pick.timeout- 1–300s, default 30. The README is loud about this: set it to something in the 30–100s range before your first run. Generations can genuinely take longer than 30 seconds.sequential_image_generation(disabled/auto/enabled) +max_images(1–8) - only relevant if you want multiple variations out of one call.
Output is a single IMAGE tensor - a batch if you asked for multiple images. Wire it to a Preview/Save node and you're done.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/ninepoin4/Seedream4.5-comfyui-doubao4.5-comfyui
pip install -r Seedream4.5-comfyui-doubao4.5-comfyui/requirements.txt
Or search the pack title in ComfyUI Manager. The dependency list is refreshingly tiny - just requests and Pillow - and there are no model files to download and no GPU needed, because there's no model. Restart ComfyUI and the node appears under the Seedream category. One caveat: the README is entirely in Chinese. It's short and this article covers everything in it, but if you're going to poke at settings yourself, have a translator handy.
Where people get burned
- The timeout. The README's first line is literally a warning to set it before doing anything else. Start at 60.
- Silent failure. When the API call fails, the node doesn't crash the workflow - it catches the exception, prints to the console, and returns the input image as if nothing happened. If your output suddenly looks identical to your input, that's not a creative decision; that's the error path. Watch the ComfyUI console.
- Cost and keys. This is metered, per-call inference. You need credit on your Volcengine account or every request fails. Seedream 4.0 was known as cheap, but "cheap per call" adds up fast if you batch.
- The filter. Seedream is a ByteDance-hosted model, and you can't abliterate a model you never downloaded. Whatever ByteDance moderates, this node can't get around - so don't route anything through it you know the filter won't pass.
- The security posture. A node whose job is to hold your API key and phone the network is exactly the shape of thing this ecosystem got burned by once. The code is three files and
requests+Pillow, so glance at it before you paste a paid key in. And note it's not the official ComfyUI Partner Node path - it's a direct-to-Volcengine wrapper, which is the point if you want your own key and billing.
Use it when you need a closed model inside your workflow - because Seedream 4.5 is only ever going to be an API, and this is the cheapest door in.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| prompt | STRING | 保持模特姿势不变,改变材质... | — |
| api_key | STRING | — | |
| model | STRING | doubao-seedream-4-5-251128 | — |
| size | COMBO | 2K | 4 options: 1K, 2K, 720x1280, 1280x720 |
| watermark | BOOLEAN | false | — |
| timeout | INT | 301–300 | — |
| sequential_image_generation | COMBO | disabled | 3 options: disabled, auto, enabled |
| max_images | INT | 11–8 | — |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |