Nodes/DeepFuze/DeepFuze Openai LLM
ComfyUI Node

DeepFuze Openai LLM

The DeepFuze node that isn't lipsync at all — an OpenAI chat call in a box

By SamKhoze·Created 2 years ago·Updated about a year ago· 461
DeepFuze Openai LLM
    • LLM_RESPONSE
    system_prompt
    user_query
    model_name
    api_key
    max_tokens250
    temperature0.0
    timeout10

    DeepFuze is a video faceswap-and-lipsync pack, so the first surprise about "DeepFuze Openai LLM" is that it has nothing to do with faces. It's a thin wrapper around the OpenAI Python SDK - one chat completion call with a ComfyUI face on it. Its actual job in the pack is to write the dialogue that the TTS node then speaks in your cloned voice, but you can also use it as a plain "ask the LLM anything" node for prompt generation or whatever you'd normally tab over to ChatGPT for. The name is a little misleading: this is not "an LLM node for ComfyUI" in the sense of running a local model. It calls OpenAI's hosted API, so it needs a real key and an internet connection - it's the one node in the whole pack that isn't offline.

    How it works

    The mechanism is almost boringly simple. The node builds a two-message chat - a system_prompt and a user_query - and calls client.chat.completions.create() with the model, temperature, max_tokens, and timeout you set. It returns whatever choices[0].message.content comes back. No local model, no weights, no tokens of your own. On an error it re-raises as a ValueError, so a bad key shows up as the raw OpenAI error text in the terminal.

    Inputs that matter

    • api_key - required, and here's the gotcha: the README says the key is never saved and you'll re-paste it every time you use the node. It suggests setting OPENAI_API_KEY as an environment variable, but be clear on what that buys you - the node itself never reads the env var. It uses whatever is in the widget. Setting the var just lets you run echo $OPENAI_API_KEY to copy the value in quickly.
    • system_prompt and user_query - both multiline. system_prompt is your "you are a helpful dialogue writer" instruction; user_query is the actual request.
    • model_name - a dropdown with gpt-3.5-turbo, gpt-4o, gpt-4-turbo, gpt-4, and an empty option. Leave the empty one alone.
    • max_tokens (default 250, 10–2000) and temperature (default 0, 0–1) - the README claims a 4096-token default, but the shipped code defaults to 250. Trust the node, not the README; it's old.
    • timeout (default 10s) - the request timeout. Too low and long generations get cut off.

    The only output is LLM_RESPONSE, a NEW_STRING. Wire it into the DeepFuze TTS node's llm_response input to have the text spoken by your cloned voice, or into rgthree's Display Any node to actually read it - that's the pairing the pack's own docs recommend.

    Install

    It ships with the rest of DeepFuze, so install is the same story as every node in the pack:

    • Windows: ComfyUI Manager → search "DeepFuze" → install → restart ComfyUI. Or install via Git URL:
      https://github.com/SamKhoze/ComfyUI-DeepFuze.git
      
    • Mac: don't use Manager - clone manually into custom_nodes, then pip install -r requirements.txt in the pack folder.

    The openai package comes from requirements.txt, so nothing extra to fetch for this node. It's the only DeepFuze node with zero model downloads.

    Troubleshooting

    Because it's a plain API call, most failures are boring: no key, wrong key, expired quota, timeout too small. Two things worth knowing. First, the pack is unmaintained - the README itself warns it isn't compatible with the latest ComfyUI, and people on r/StableDiffusion report it breaking after ComfyUI updates. This node is simple enough that it usually keeps working anyway, but don't expect fixes. Second, if you want the whole pipeline offline, skip this node: type your text straight into the TTS node instead.

    CategoryDeepFuze

    Inputs (7)

    NameTypeDefaultDescription
    system_promptSTRING
    user_querySTRING
    model_nameCOMBO5 options: gpt-3.5-turbo, gpt-4o, gpt-4-turbo, gpt-4,
    api_keySTRING
    max_tokensoptINT25010–2000
    temperatureoptFLOAT0.00–1
    timeoutoptINT101–200

    Outputs (1)

    NameTypeDescription
    LLM_RESPONSENEW_STRING