Provider: Volcengine Ark
Volcengine Ark — the door Seedream actually lives behind
- provider
Seedream has no open weights. ByteDance's posture is consistent and worth internalising before you install anything: every flagship generation product stays API-only, everything underneath the product ships free (Depth Anything, PuLID, SDXL-Lightning, Bernini). Seedream is a product, so the weights don't exist and there is nothing to download. ByteDance operates it on Volcengine Ark - its own cloud, mainland China - and that's what this node connects to.
It's also the Seedream node's default provider. So if you've been running Seedream with the provider input empty, this is the connection you were using, with the key read from api_key.json or the environment. Wiring it in explicitly is how you choose the key, the region endpoint, or the proxy.
What it does, and what it doesn't
No network call happens when this node runs. It outputs one provider value that the Seedream node consumes; the request itself is built at the model node, which is where your prompt, reference images, and the selected model version get assembled. Provider and model are separate nodes in this pack precisely so one key can drive several model families and one model can be reached through several channels.
The default endpoint is https://ark.cn-beijing.volces.com/api/v3, exposed as base_url so you can override it. That's the useful part: Ark is region-scoped, and a key issued for one region or one channel is not automatically valid on another endpoint. If you're outside mainland China, the pack ships a separate Provider: BytePlus ModelArk node pointing at ark.ap-southeast.bytepluses.com - that's the international arm of the same service, and it's usually the one you want.
The inputs
api_key- empty falls back to"seedream"(or"ark") inapi_key.json, then toARK_API_KEY(the pack also honoursSEEDREAM_API_KEY). Filling it in the node works, but it lands in the workflow file, so don't do that in anything you share.base_url- leave empty for the Beijing default.proxy_url- HTTP or SOCKS proxy. Realistically required if you're calling Ark from outside China without a fast route to Beijing.timeout- per-request seconds,0for no limit. Seedream jobs are slow and sometimes batch, so leave it at zero.
Output: provider. Wire it to the provider input on Seedream.
Why bother, when a raw HTTP call would do
Because model ids differ per channel, and the pack does that translation for you. On Volcengine the Seedream versions go out with a doubao- prefixed id; on BytePlus and OpenRouter they don't. Hand-rolling that mapping is a genuine afternoon of swearing at 404s, and it's the kind of thing that breaks quietly when a version is renamed. Switching channel becomes a one-wire edit.
Installing
ComfyUI Manager, search the pack title; or:
cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
cd ComfyUI-YogurtNodes && pip install -r requirements.txt
Restart, then look in YogurtNodes/LLM/Providers. Display names pick up a " (Yogurt Nodes)" suffix at runtime, so the browser entry reads "Provider: Volcengine Ark (Yogurt Nodes)". Key file:
# custom_nodes/ComfyUI-YogurtNodes/yogurt_nodes/llm/api_key.json
{ "seedream": "your-ark-api-key" }
Where people get burned
Auth problems here are usually region problems wearing an auth costume: a key that works against Beijing can return nothing useful against another endpoint, and the fix is the matching base_url, not a new key. If the model name isn't provisioned for your account you'll get a not-found that sounds like the pack is sending the wrong id - it isn't, the account just doesn't have that version enabled yet.
And the standing complaint about all of this, from people who actually use it: per-call billing on a model family you can't fall back to locally. You can't run Seedream on your own GPU at any VRAM - there is no other door. That's fine as long as the model is doing something your local checkpoints can't, and expensive the moment it isn't.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | Leave empty to use 'seedream' from api_key.json, then the ARK_API_KEY environment variable. | |
| base_url | STRING | Default https://ark.cn-beijing.volces.com/api/v3. | |
| proxy_url | STRING | Proxy URL, e.g. http://127.0.0.1:7890 or socks5://127.0.0.1:1080. | |
| timeout | INT | 00–3600 | Request timeout in seconds; 0 means no limit. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| provider | YOGURT_LLM_PROVIDER | — |