Provider: Alibaba DashScope
Qwen Image and Wan, If You Pick the Right Continent
- provider
Alibaba's Tongyi lab became the local community's default model source by shipping Apache-2.0 weights when everyone else stopped - Wan owns local video, Qwen-Image went toe-to-toe with Flux Kontext for editing. What you don't get locally is the newest stuff: the top-shelf Qwen Image and Wan versions are API-only, and DashScope (Bailian, in Alibaba's own naming) is the door they live behind. This node is that door.
Typical use is well-defined: you already have a DashScope key, or you're about to buy one, to call Qwen Image or Wan Image from inside a graph instead of in a browser tab. Compared with the open local checkpoints, you're paying per call for the newest version and for not owning an A100.
What it is
A provider node. No model runs here. It carries connection settings and outputs one provider socket (YOGURT_LLM_PROVIDER) that plugs into a model node - the pack's Qwen Image or Wan Image nodes. The model node picks a route based on the provider's kind, and swapping providers is a re-wire rather than a re-prompt.
The fields
- api_key - leave blank and it resolves to
dashscope(orqwen, orwan- all three are accepted keys) inapi_key.json, thenDASHSCOPE_API_KEY. The error message names the exact places to put it, which is more than most packs bother with. - base_url - the important one. Default is
https://dashscope.aliyuncs.com/api/v1for mainland China; international accounts needhttps://dashscope-intl.aliyuncs.com/api/v1. Note that, unlike the pack's other providers, this one wants the version path included. - proxy_url -
http://127.0.0.1:7890orsocks5://.... - timeout - seconds,
0for no limit. Image generation is slow enough that the default is the sane choice.
Output: provider. That's the lot.
The trap that will actually get you
Mainland vs international are separate accounts on separate hosts. A key minted at dashscope.aliyuncs.com gets a 401-ish failure on the -intl host and vice versa. This is the same pattern as BytePlus vs Volcengine Ark and it catches people every time, because the error reads like an auth problem rather than a wrong-host problem. If you're outside China, force the intl base URL explicitly rather than trusting a default.
While we're here: this provider declares an image protocol only. Chat isn't routed through it in this pack, so if you point a chat node at it, you'll be told the provider doesn't support custom text models - and that's correct, not broken. For Qwen chat, use a Provider: OpenAI Compatible node pointed at DashScope's compatible-mode endpoint instead.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes
cd ComfyUI-YogurtNodes
pip install -r requirements.txt
Or ComfyUI Manager, searching "YogurtNodes". Use ComfyUI's own Python for the pip step. Keep your key in:
custom_nodes/ComfyUI-YogurtNodes/yogurt_nodes/llm/api_key.json
{ "dashscope": "sk-...", "dashscope_base_url": "https://dashscope-intl.aliyuncs.com/api/v1" }
Both the key and the base URL can live there, and the JSON fallback uses dashscope_base_url, qwen_base_url and wan_base_url in that order. Cramming a key into a node widget is fine for a one-off but it gets saved into the workflow JSON, which is how keys end up in a Discord screenshot.
Sensible expectations
Per-call cost applies to every image you make, and fine-grained iteration on a graph is exactly the workflow where that adds up fastest - the standard objection to API nodes full stop (the KB's external-api-nodes.md covers the trade-offs). Set n deliberately, keep retry_count at 1 while testing so you see the real error rather than three copies of it, and remember the seed rules: 0 means the service picks, and changing a non-zero seed is what forces a fresh generation instead of a cached result.
Where this genuinely earns its place: batch work where you need the newest Qwen or Wan version and don't want to babysit a browser session. Where it doesn't: drafts. Your local checkpoint is free.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | Leave empty to use 'dashscope' from api_key.json, then the DASHSCOPE_API_KEY environment variable. | |
| base_url | STRING | Default https://dashscope.aliyuncs.com/api/v1; international: https://dashscope-intl.aliyuncs.com/api/v1. | |
| 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 | — |