Nodes/comfyui-deepseek/DeepSeek Chat Pro
ComfyUI Node

DeepSeek Chat Pro

A near-free LLM node that runs on no GPU at all

By yanhuifair·Created 2 years ago·Updated about a year ago· 4
DeepSeek Chat Pro
    • content
    prompt
    frequency_penalty0
    max_tokens4096
    presence_penalty0
    temperature1
    top_p1
    logprobstrue
    top_logprobs0

    The name is a lie, sort of. DeepSeek Chat Pro doesn't run any model on your machine - it's an API call dressed up as a ComfyUI node. That's not a downside; it's the whole point. It calls DeepSeek's deepseek-chat model (the V3-class one) over the internet, costs fractions of a cent per call, and uses exactly zero of your VRAM. If you've been eyeing LLM prompt-enhancer nodes but don't want to budget memory for a chat model next to your diffusion one, this is the cheat code.

    What it is and why you'd reach for it

    It's the "pro" variant in the small yanhuifair/comfyui-deepseek pack (three nodes, one file, all API wrappers). Where the plain DeepSeek Chat node only exposes max_tokens and temperature, Chat Pro gives you the full sampling dial set. Under the hood it's the openai Python client pointed at base_url="https://api.deepseek.com" with the standard "You are a helpful assistant" system message bolted on - nothing running locally, a single round trip per call.

    Why DeepSeek specifically? Price, mostly. This is the "frontier-quality LLM, can't run it at home" case from the API-node playbook: DeepSeek's models are dramatically cheaper per token than the GPT-class APIs, and people in the community say it out loud - "really inexpensive, and generate beautiful results" is how one prompt-expansion node author pitched it. Full R1 needs a server rack; your GPU never touches it.

    The inputs that matter

    You'll set the first one and probably never touch the rest:

    • prompt (multiline string) - the only required input you actually think about.
    • temperature (0–2, default 1) and top_p (0–2, default 1) - the author's tooltips carry DeepSeek's own advice: alter one or the other, not both. Lower temperature for predictable structured output.
    • presence_penalty and frequency_penalty (−2–2, default 0) - presence pushes the model toward new topics; frequency discourages repeating the same words. For prompt rewriting, a small presence bump beats a frequency one.
    • max_tokens (default 4096, max 8192) - generous; you rarely need more.
    • logprobs (default true - annoying) and top_logprobs (0–20). Turn logprobs off unless you're actually scoring token probabilities. It's on by default for no reason you'd ever care about in an image workflow.

    One output, content (STRING): the model's reply. Wire it into anything that takes text - a CLIP text encode, a prompt merge node, a save-to-file, whatever. There's no conversation memory: each call is stateless, so if you want multi-turn context, you paste prior turns into the prompt yourself or reach for the pack's Reasoner node instead.

    Installing it

    Same for all three nodes in the pack. ComfyUI Manager, search comfyui-deepseek (or "DeepSeek"), install, restart. Or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/yanhuifair/comfyui-deepseek
    

    The only Python dependency is openai, which Manager installs for you. There are no model files to download - if a tutorial tells you to fetch DeepSeek weights for this pack, it's talking about a different node.

    Then the part people miss: create a file called api_key.txt in the pack's folder and paste in your DeepSeek API key (from platform.deepseek.com). No config UI, no environment variable - a plain text file next to the node's code.

    Where people get burned

    • The key is read once, when the node is created. Edit api_key.txt and the already-placed node still holds the old key - delete it from the canvas and re-add it (or restart ComfyUI).
    • It's an API node, which means your prompt leaves the machine and DeepSeek's content filter applies. Fine for SFW prompt work; useless if your whole reason for going local was avoiding both.
    • Calls cost money, billed per token. Cheap, but not free - a long session of full-context rewrites adds up.
    • Errors surface in the ComfyUI console as OpenAI-style exceptions. If you get an auth error, it's the key file. If it's a 400, you sent a parameter the API rejected - which is what flipping logprobs to true can do on some model/endpoint combos, so if it errors, try turning it off.

    For a no-fuss LLM in the graph that respects your VRAM budget and your wallet, this is the one I'd reach for.

    CategoryFair/deepseek

    Inputs (8)

    NameTypeDefaultDescription
    promptSTRING
    frequency_penaltyFLOAT0-2–2Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
    max_tokensINT40961–8192Integer between 1 and 8192. The maximum number of tokens that can be generated in the chat completion. The total length of input tokens and generated tokens is limited by the model's context length. If max_tokens is not specified, the default value 4096 is used.
    presence_penaltyFLOAT0-2–2Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
    temperatureFLOAT10–2What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both.
    top_pFLOAT10–2An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
    logprobsBOOLEANtrueWhether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the content of message.
    top_logprobsINT00–20An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. logprobs must be set to true if this parameter is used.

    Outputs (1)

    NameTypeDescription
    contentSTRING