SeedEdit Node
ByteDance's image editor as a ComfyUI node (yes, it's an API)
- client
- image
- IMAGE
SeedEdit Node is a one-node trip to ByteDance's cloud. You feed it an image and an instruction, it calls the doubao SeedEdit 3.0 image-edit model through Volcengine's Ark API, and a few seconds later you get back the edited image as a normal ComfyUI IMAGE tensor. No local GPU, no model weights, no VRAM - the entire model lives in ByteDance's data center, and that's the whole personality of this node.
SeedEdit is real, by the way. It's ByteDance's image-revision model (the Doubao team's answer to "change this picture without regenerating it"), and it's exactly the kind of thing the KB's ByteDance panel describes: flagship products stay API-only, closed weights, no open release. So the trade is straightforward - you skip the hardware and the setup, and in exchange your images leave your machine and you pay per call. Compare that to the open instruction editors like Qwen-Image-Edit or Flux Kontext, which you'd run locally.
How it works
The node does three things under the hood: it converts your input image to a base64 PNG data URL, calls client.images.generate(...) with your prompt and settings, then downloads the returned image URL and converts it back to a ComfyUI tensor. That client is the load-bearing piece - it's an ARK_CLIENT, and you have to build one first with the pack's CreateArkClient node. The client wants an API key from a Volcengine Ark (火山方舟) account, either typed into the node or set as the ARK_API_KEY environment variable. No key, no client, and the client node errors loudly about it.
Inputs and outputs
client(ARK_CLIENT) - fromCreateArkClient, your authenticated session.image(IMAGE) - the photo to edit. Only the first frame of a batch is used.prompt(STRING, multiline) - the edit instruction. The default is Chinese ("make it into a heart-shaped bubble"), which is a hint about the pack author's audience - but you can write English or whatever the model handles.seed(INT, default 123) - for reproducible edits.- Optional:
model(single choice:doubao-seededit-3-0-i2i-250628),size(defaultadaptive),guidance_scale(0–20, default 5.5 - how hard it follows the prompt),watermark(boolean, default true). - Output:
IMAGE, the edited result.
That watermark default is worth a look. ByteDance embeds a visible watermark unless you flip it off - remember it's on, because it's the kind of thing you notice a hundred images later.
Troubleshooting
ImportErrorabout volcengine. The Ark SDK is one of the pack's dependencies; if your ComfyUI environment didn't pick it up,pip install volcengine-python-sdk[ark]fixes it.- 400 errors. This is the real, documented failure mode. The community has threads about SeedEdit 3.0 suddenly throwing 400s - providers quietly retiring the old version in favor of Seedream 4.5 Edit and the like. If you start getting 400s out of nowhere, it may not be your config; the model string may simply no longer be current. Check your key and region first, then check whether
doubao-seededit-3-0-i2i-250628is still a valid Ark model. - The node re-raises API exceptions, so errors surface in the ComfyUI UI instead of silently producing garbage - a small mercy, and not something every API node bothers with.
Install
ComfyUI Manager → search Duanyll Nodepack → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Duanyll/duanyll_nodepack
Setup beyond that is one account on Volcengine Ark, one API key, and a few cents in your wallet. The README won't walk you through it - it's scaffolding - but the CreateArkClient node's own error messages are honest about what's missing.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| client | ARK_CLIENT | — | |
| image | IMAGE | — | |
| prompt | STRING | 改成爱心形状的泡泡 | — |
| seed | INT | 1230–2147483647 | — |
| modelopt | COMBO | doubao-seededit-3-0-i2i-250628 | 1 options: doubao-seededit-3-0-i2i-250628 |
| sizeopt | STRING | adaptive | — |
| guidance_scaleopt | FLOAT | 5.50–20 | — |
| watermarkopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |