OpenRouter LLM
OpenRouter turns ComfyUI into a model router
- STRING
OpenRouter is the aggregator - one API that fronts dozens of LLM providers - and this node puts that whole catalog behind a single dropdown in your graph. Claude from Anthropic, GPT from OpenAI, Gemini from Google, Grok from xAI, DeepSeek, Qwen, Mistral, GLM from Z.ai, Kimi from Moonshot, Perplexity Sonar: pick a model, get a STRING. This is the node you reach for when you're not loyal to one provider - you want to A/B Claude against Grok against a cheap DeepSeek model without rebuilding your workflow, or you want one Comfy credits bill instead of five vendor accounts.
The mechanism
The model dropdown is a dynamic combo over a curated OpenRouter lineup, and each model grows its own inputs. Reasoning models (most of the current field) reveal a reasoning_effort control - off/low/medium/high, and "off" genuinely disables reasoning for providers that support it. The Perplexity Sonar models expose search_context_size because they do live web search. Multimodal models get image inputs (up to 20 for the big ones) and, for the video-capable ones, video inputs too. The request goes to OpenRouter's chat-completions API through Comfy's proxy, billed in Comfy credits - same storefront model as the rest of the family.
The inputs that matter
prompt- the text, multiline.model- the dynamic combo. The practical trade-off: the frontier_reasoning tier (Claude Opus, GPT-5.6) is the priciest; the reasoning tier (Grok, DeepSeek, Qwen, Kimi) is where the value lives; Sonar adds grounding via search. Read the price badge - it updates per model.seed- default 0. The tooltip gets it exactly right: set 0 to omit, and most models treat this as a hint only. Don't build anything that depends on it.system_prompt- optional foundational instructions.
Output is a STRING.
Getting it and the honest catches
Ships with ComfyUI core - the OpenRouter node landed May 2026. Nothing to install.
The fine print: it's a curated list, not the entire OpenRouter catalog, so your favorite obscure model may be missing. Reasoning models can take a while and spend tokens on thinking before a single visible word appears - that's the price of the smarter answers. Sonar's web search is slower and pricier than plain generation, which you'll feel on every run. And if a provider refuses or returns nothing, the node surfaces the refusal rather than guessing. The deeper appeal is genuinely nice though: one node, one credits bill, and the freedom to swap "which model answers this" without touching the rest of the graph - which, if you're iterating on prompts, is most of the workflow.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text input to the model. | |
| model | COMBO | The OpenRouter model used to generate the response. | |
| seed | INT | 00–2147483647 | Seed for sampling. Set to 0 to omit. Most models treat this as a hint only. |
| system_promptopt | STRING | Foundational instructions that dictate the model's behavior. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |