DeepSeek R1
A reasoning model that hands you its homework
- text
- thinking
DeepSeek R1 is the node that drops the famous open reasoning model into your graph - as a hosted API call, not a local load. It sends your prompt to DeepSeek's endpoint, and you get back two strings: the final answer, and the model's full chain-of-thought. Yes, the thinking is yours to keep, which is half the fun of a reasoner.
Reach for it when you want frontier-class reasoning without a GPU big enough to host it. The usual jobs: turning a rough idea into a rich, structured prompt, writing long-form creative text for a video project, or answering a question about a scene before you prompt for it. DeepSeek is also the cheapest frontier-tier API going, so the meter barely tickles. But be honest about the use case - for plain prompt rewriting a small local model is usually the better call (see llm-in-comfyui.md). A reasoner spends tokens deliberating, and that deliberation can leak its scratch-work into whatever you feed the sampler. You're here because you want the thinking, or because you want DeepSeek-grade quality with zero VRAM spent.
How it works
Under the hood it's the openai Python SDK pointed at https://api.deepseek.com with the deepseek-reasoner model. The model dropdown has exactly one choice (DeepSeek-R1) - treat it as a label, not a setting; the request always goes to deepseek-reasoner. The API key comes from the DEEPSEEK_API_KEY environment variable if it's set, otherwise from the node's api_key field. If neither is present you get a ValueError("API Key is not set").
The inputs that matter
prompt(multiline) - everything you want the model to chew on. Nosystem_prompthere, unlike the V3 node; R1 through this pack is a pure user-message call.api_key- leave blank if you set the env var. If you paste a key here, remember it travels inside your workflow file; don't share that JSON publicly.seed- accepted, but the request never actually sends it. LLM APIs don't promise seed-based reproducibility anyway, so don't chase the same answer twice.
The outputs are text (the answer) and thinking (the reasoning trace). Wire text into a prompt text box feeding your KSampler, and thinking into a text viewer - or both into a text-concatenate node if you want them stitched.
Installing it
It ships in the ComfyUI_Prompt-All-In-One pack by billwuhao. Easiest: ComfyUI Manager → "Install Custom Nodes" → search Prompt-All-In-One. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/billwuhao/ComfyUI_Prompt-All-In-One.git
cd ComfyUI_Prompt-All-In-One
pip install -r requirements.txt # or ./python_embeded/python.exe -m pip install -r requirements.txt on the portable build
Then restart ComfyUI. The node appears under 🎤MW/MW-Prompt-All-In-One.
Where people get burned
The API Key is not set error is the classic. It fires when the env var is missing and the field is blank - either set DEEPSEEK_API_KEY (on Windows, reboot after adding it, environment variables aren't picked up live) or paste the key into the node. And don't expect the seed to reproduce output - it's decorative here. The node does no local model work at all, so "it needs no GPU" is genuinely true; what it needs is a key and an internet connection. This is also a small, niche pack in a crowded space, so if a call fails in a way that smells like a bad dependency, check that the pack is updated rather than assuming your setup is the problem.
Thinking output alone makes this worth keeping around - there are very few ways to get an open reasoner's actual reasoning inside ComfyUI, and this is one of them.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| prompt | STRING | — | |
| model | COMBO | DeepSeek-R1 | 1 options: DeepSeek-R1 |
| seed | INT | 00–18446744073709550000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| thinking | STRING | — |