💀Text with Deepseek
Cheap LLM calls straight into the graph — DeepSeek in a ComfyUI node
- text
The whole point of DeepSeek in the API world is price. 💀Text with Deepseek puts that directly inside ComfyUI: a system prompt, a user prompt, your API key, and a text string comes back out - no SDK, no separate script, just an HTTP call from inside the graph. If you want a cheap LLM to write, rewrite, or generate prompts as part of a workflow, this is the cheapest mainstream option of the three API text nodes in this pack.
How it works
Under the hood it's a plain requests POST to https://api.deepseek.com/v1/chat/completions in standard chat format - system message plus user message, stream: false, a 120-second timeout. Nothing clever, which is the point: your key, your billing, direct communication, and the README's privacy framing holds - no intermediate service stores your prompts.
The inputs you'll actually touch:
- api_key - your DeepSeek key. This is the one that matters; nothing runs without it.
- system_prompt and user_prompt - the usual chat split. Empty user prompt raises an error, so give it something to chew on.
- model -
deepseek-chat(default) ordeepseek-reasoner. Chat is the fast general model; reasoner is the reasoning model, which is slower and largely ignorestemperatureandtop_pbecause reasoning models set their own sampling. Pick reasoner only when you actually want the thinking. - max_tokens (2048), temperature (0.7), top_p (0.95) - standard knobs. The seed field is real but capped: the tooltip flags a 32-bit limit, and the code only sends the seed when it's above zero.
Output is a single STRING named text. Wire it into a text encoder, a prompt input, or this pack's Replace node for cleanup. The console prints token usage after each call, so you can watch your spend in real time.
Gotchas that will bite you
The cache ignores your API key. The node caches responses keyed on model, prompts, temperature, top_p, max_tokens, and seed - not the key. So if you paste a wrong key, get an error, fix the key, and re-run with the same seed, you may get the old cached text back. Bump the seed (or change any input) to force a real call.
The key is in your workflow. Because the API key is a widget value, it lands in the workflow JSON - and if you share a PNG with its workflow embedded, you share the key. This is the same leak pattern that makes API-key nodes the recurring cautionary tale in the ComfyUI ecosystem. Don't post workflows containing your key; if you must, rotate it after.
Reasoning mode is slow by nature. A long reasoner response at max_tokens is a synchronous 120-second block in the middle of your graph. Keep max_tokens sane.
Install
One pack install covers all six nodes:
# ComfyUI Manager: search "PromptsO", install, restart.
cd ComfyUI/custom_nodes
git clone https://github.com/S4MUEL-404/ComfyUI-PromptsO.git
pip install -r ComfyUI-PromptsO/requirements.txt
No model downloads - this is a pure API node, and beyond requests (already in ComfyUI) it needs nothing new. Grab a key from DeepSeek's platform, drop it in, and you're generating text inside the graph for a few cents per thousand tokens. For prompt variants on a budget, that's hard to argue with.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| system_prompt | STRING | System instruction for the AI | |
| user_prompt | STRING | User prompt for Deepseek | |
| api_key | STRING | Your Deepseek API Key | |
| model | COMBO | deepseek-chat | Choose Deepseek model |
| max_tokens | INT | 20481–32768 | Maximum number of tokens to generate |
| temperature | FLOAT | 0.70–2 | Sampling temperature (0.0 = deterministic, 2.0 = very random) |
| top_p | FLOAT | 0.950–1 | Top-p sampling threshold |
| seed | INT | 00–2147483647 | Random seed for reproducible results (32-bit limit for Deepseek API) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |