DeepFuze Openai LLM
The DeepFuze node that isn't lipsync at all — an OpenAI chat call in a box
- LLM_RESPONSE
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_KEYas 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 runecho $OPENAI_API_KEYto 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, thenpip install -r requirements.txtin 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| system_prompt | STRING | — | |
| user_query | STRING | — | |
| model_name | COMBO | 5 options: gpt-3.5-turbo, gpt-4o, gpt-4-turbo, gpt-4, | |
| api_key | STRING | — | |
| max_tokensopt | INT | 25010–2000 | — |
| temperatureopt | FLOAT | 0.00–1 | — |
| timeoutopt | INT | 101–200 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LLM_RESPONSE | NEW_STRING | — |