Nodes/ComfyUI-YogurtNodes/Provider: Alibaba DashScope
ComfyUI Node

Provider: Alibaba DashScope

Qwen Image and Wan, If You Pick the Right Continent

By yogurt7771·Created 2 years ago·Updated 6 days ago· 3
Provider: Alibaba DashScope
    • provider
    ◄api_key►
    ◄base_url►
    ◄proxy_url►
    ◄timeout0►

    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 (or qwen, or wan - all three are accepted keys) in api_key.json, then DASHSCOPE_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/v1 for mainland China; international accounts need https://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:7890 or socks5://....
    • timeout - seconds, 0 for 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.

    CategoryYogurtNodes/LLM/Providers

    Inputs (4)

    NameTypeDefaultDescription
    api_keySTRINGLeave empty to use 'dashscope' from api_key.json, then the DASHSCOPE_API_KEY environment variable.
    base_urlSTRINGDefault https://dashscope.aliyuncs.com/api/v1; international: https://dashscope-intl.aliyuncs.com/api/v1.
    proxy_urlSTRINGProxy URL, e.g. http://127.0.0.1:7890 or socks5://127.0.0.1:1080.
    timeoutINT00–3600Request timeout in seconds; 0 means no limit.

    Outputs (1)

    NameTypeDescription
    providerYOGURT_LLM_PROVIDER—