Nodes/ComfyUI-PromptsO/💀Text with Deepseek
ComfyUI Node

💀Text with Deepseek

Cheap LLM calls straight into the graph — DeepSeek in a ComfyUI node

By S4MUEL-404·Created 11 months ago·Updated 10 months ago· 3
💀Text with Deepseek
    • text
    system_prompt
    user_prompt
    api_key
    modeldeepseek-chat
    max_tokens2048
    temperature0.7
    top_p0.95
    seed0

    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) or deepseek-reasoner. Chat is the fast general model; reasoner is the reasoning model, which is slower and largely ignores temperature and top_p because 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.

    Category💀PromptsO

    Inputs (8)

    NameTypeDefaultDescription
    system_promptSTRINGSystem instruction for the AI
    user_promptSTRINGUser prompt for Deepseek
    api_keySTRINGYour Deepseek API Key
    modelCOMBOdeepseek-chatChoose Deepseek model
    max_tokensINT20481–32768Maximum number of tokens to generate
    temperatureFLOAT0.70–2Sampling temperature (0.0 = deterministic, 2.0 = very random)
    top_pFLOAT0.950–1Top-p sampling threshold
    seedINT00–2147483647Random seed for reproducible results (32-bit limit for Deepseek API)

    Outputs (1)

    NameTypeDescription
    textSTRING