Nodes/ComfyUI-Qwen-Node/Qwen API (Lumi)
ComfyUI Node

Qwen API (Lumi)

No local model, no VRAM, just a key

By Yukinoshita-Yukinoe·Created about a year ago·Updated 5 months ago· 2
Qwen API (Lumi)
  • image_input
  • generated_text
  • status_message
  • is_success
api_key
modelqwen-plus-latest [T]
promptHello, Qwen!
system_messageYou are a helpful assistant.
temperature0.85
top_p0.80
max_tokens1500
seed0
enable_searchfalse
enable_thinkingfalse
max_retries1
multi_image_modeNative Batch
sequential_delimiter\n\n---\n\n

ComfyUI's text conditioning is static. You type a prompt, it stays that way, and if you want variations you sit there retyping. This node is the fix: Qwen API (Lumi) drops a live Alibaba Qwen model into your graph and talks to it over the network. No local weights, no GPU memory, no 20GB download - it's a thin wrapper around Alibaba's DashScope API, and it's the easiest way to make your workflows actually think about what they're doing.

The pack is a single node and the whole thing is one file, so the behavior is easy to read from source. When you run it, it POSTs your prompt (and optionally your image) to one of two DashScope endpoints - text-generation for plain LLMs, multimodal-generation for the vision models - and hands the reply back as a string. It needs an API key from Alibaba Cloud's DashScope console, and the key comes from one of two places: the api_key input, or the DASHSCOPE_API_KEY environment variable if you leave the field empty. The node reads the env var itself, so it plays nice with a shared config file or a launcher script.

The inputs that actually matter

You'll touch maybe four of them. The rest are either sensible defaults or niche.

  • model - a dropdown of 22 Qwen models. The [T] suffix means the model supports thinking mode (you can toggle it), [T-only] would mean it thinks whether you like it or not, and no suffix means thinking is off the table. qwen-plus-latest is the default and a good starting point; grab a qwen3-vl-* variant when you need vision.
  • prompt and system_message - your message and the model's instructions, both multiline. system_message is where you set the job: "You are a prompt-rewriting engine. Return only the rewritten prompt."
  • image_input (optional) - any IMAGE tensor. The node converts it to a base64 JPEG and sends it along, so vision models can caption, describe, or critique your renders. Feed it to a text-only model and it politely refuses via the status output rather than crashing.

The rest are standard LLM knobs - temperature (0.85), top_p (0.8), max_tokens (1500), seed - plus enable_search for web-grounded answers, enable_thinking, max_retries (1–5), and multi_image_mode for batched image inputs (Sequential joins per-image answers with the sequential_delimiter, which defaults to \n\n---\n\n). One quirk worth knowing: seed = 0 doesn't mean "no seed," it means "pick a random one." Set it nonzero if you want reproducible answers.

Outputs and where they wire in

It returns three things: generated_text (STRING - the model's answer, what you actually use), status_message (STRING - "Success (HTTP 200)" or the failure detail), and is_success (BOOLEAN - check this to gate downstream steps). In practice generated_text feeds a text node that later gets tokenized into conditioning, or feeds a file/display node. The boolean is your friend in bigger graphs: route it to a switch so a failed API call doesn't silently pipe garbage downstream.

Installing

ComfyUI Manager: search "ComfyUI-Qwen-Node" and hit install. Or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/Yukinoshita-Yukinoe/ComfyUI-Qwen-Node

then restart ComfyUI. The only dependency is requests - no torch, no model downloads. Then grab a DashScope API key (Alibaba Cloud's paid, pay-as-you-go model service - your card gets involved) and either paste it into the node or export it in your shell before launching ComfyUI:

export DASHSCOPE_API_KEY="sk-..."

Where people get burned

Three things, mostly. First, no key - the node returns ("", "API Key is missing.", False) from the is_success/status_message outputs, so check those before assuming the graph hung. Second, the wrong model for the job: text-only models reject image_input, and models without thinking support reject enable_thinking, both as clean errors - read the status output. Third, it's a cloud API: unlike Qwen-Image or Wan, nothing here runs locally, so it's billed per token and won't work offline. If your instinct is "give me Qwen without sending anything anywhere," this isn't that node - that's a GGUF download, and it'll cost you a chunk of VRAM instead of a few cents.

CategoryLumi/LLM

Inputs (14)

NameTypeDefaultDescription
api_keySTRING
modelCOMBOqwen-plus-latest [T]22 options: qwen-plus-latest [T], qwen-plus [T], qwen-flash [T], qwen-turbo-latest [T], qwen-turbo [T], qwen3-max [T], +16
promptSTRINGHello, Qwen!
system_messageSTRINGYou are a helpful assistant.
temperatureFLOAT0.850–2
top_pFLOAT0.800–1
max_tokensINT15001–65536
seedINT00–18446744073709550000
enable_searchBOOLEANfalse
enable_thinkingBOOLEANfalse
max_retriesINT11–5
multi_image_modeCOMBONative Batch2 options: Native Batch, Sequential
sequential_delimiterSTRING\n\n---\n\n
image_inputoptIMAGE

Outputs (3)

NameTypeDescription
generated_textSTRING
status_messageSTRING
is_successBOOLEAN