RunningHUB LLM
One node, every frontier LLM, zero VRAM
- text
- reasoning
- raw_response
RunningHUB LLM is the "which model do I feel like calling today" node. Same trick as its sibling in this pack, RunningHub DeepSeek Chat - a thin HTTP client that talks to RunningHub's OpenAI-compatible relay - except the model dropdown isn't two DeepSeek entries, it's 53. OpenAI GPTs, Claude, Gemini, DeepSeek, Qwen, GLM, Doubao, Grok, MiniMax. If a frontier model has an API, this node probably has a slot for it.
It's part of ComfyUI-WBLESS, LaoMaoBoss's utility grab-bag, which also carries global variables, flow switches, scaling helpers, and a matching family of single-vendor chat nodes. This one is the kitchen-sink member of that family.
Why you'd reach for it
Same calculus as every API-wrapper node, in the KB's words: a model with no open weights has only one door, and it's a network call. But the real draw here is the menu. Instead of installing a separate node per vendor - a Gemini node here, a Qwen node there - you get every provider behind one key and one base URL. It's especially handy on RunningHub's own cloud ComfyUI, where you can't run a local Ollama anyway because it's a shared environment. The relay also solves a practical Chinese-user problem baked into the README: switch base_url to https://llm.runninghub.cn/v1 and you're on the domestic endpoint without changing anything else.
One honest caveat from the KB: for plain prompt enhancement, a small local model is usually the better default - free, offline, uncensored. This node is for when you specifically want frontier-chat quality, don't mind per-call cost, and accept that the API path filters what it will produce.
How it works
No magic, and that's a feature. It builds an OpenAI-style /chat/completions request with your system and user messages, POSTs it to {base_url}/chat/completions with Authorization: Bearer <key>, and parses the reply - all in Python's stdlib urllib. No openai SDK, no heavy pip dependency to nuke your environment, and the source in core/runninghub_llm.py is short enough to read on a coffee break.
The security frame applies here louder than usual: this node holds a key and calls the network by design, from the exact category the KB warns shipped credential-stealing malware once (LLMVISION). This one is open, small, and uses only stdlib - but it also disables SSL certificate verification to tolerate corporate proxies. Skim the code, and don't reuse your main platform key if that bugs you.
The inputs and outputs that matter
You'll touch maybe four fields:
- api_key - from
runninghub.ai/enterprise-api/sharedApi(the CN mirror at.cnif you switched base URLs). "Bearer" optional. - model - the 53-entry dropdown. Slugs are vendor-prefixed, like
openai/gpt-5.4-pro,anthropic/claude-sonnet-4.5,google/gemini-2.5-pro. The list mirrors RunningHub's catalog at pack release, so it drifts - which is why there's… - custom_model - type any model ID here and it overrides the dropdown. This is the field that keeps the node useful after the menu goes stale, and it's the one beginners miss.
- reasoning_effort -
noneby default; bump tolow/high/maxto get chain-of-thought from the reasoning models, which lands in the reasoning output.
Everything else - system_instruction, user_input, max_tokens, temperature, top_p, and the two penalties - is standard chat-apparatus. Leave the sampling knobs alone until you have a reason.
Outputs are the same trio as the sibling node: text (the answer, wire it into a prompt or text node), reasoning (scratch-work when effort > none), and raw_response (the raw JSON, for when you suspect something).
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/LaoMaoBoss/ComfyUI-WBLESS.git
Or just search ComfyUI-WBLESS in ComfyUI Manager and install. No model files, no pip install - the one helper it uses (cozy_comfyui) is bundled in the repo.
Common issues
Missing or wrong key fails loudly with "please provide a valid RunningHub API Key" - it's the enterprise/shared key, not a personal account. The subtler trap: when the relay returns an error object the node doesn't crash, it stuffs API error: ... into text and looks successful. If output seems off, check raw_response. And remember the CN-mirror rule: key and base_url have to come from the same side of the runninghub.ai/.cn divide, or you'll chase auth errors that are really an endpoint mismatch.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| base_url | STRING | https://llm.runninghub.ai/v1 | — |
| model | COMBO | deepseek/deepseek-v4-flash | 53 options: openai/gpt-5.6-sol-saver, openai/gpt-5.6-terra-saver, openai/gpt-5.6-luna, openai/gpt-5.5-saver, openai/gpt-5.5-pro, openai/gpt-5.4-pro, +47 |
| custom_model | STRING | — | |
| reasoning_effort | COMBO | none | 4 options: none, low, high, max |
| system_instruction | STRING | You are a helpful assistant | — |
| user_input | STRING | — | |
| max_tokens | INT | 20481–131072 | — |
| temperature | FLOAT | 1.00–2 | — |
| top_p | FLOAT | 1.000–1 | — |
| presence_penalty | FLOAT | 0.0-2–2 | — |
| frequency_penalty | FLOAT | 0.0-2–2 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| reasoning | STRING | — |
| raw_response | STRING | — |