VoiceBridge AI API
The translation brain hiding in a misleading name
- response
The name is a lie, and the lie is useful. "VoiceBridge AI API" doesn't call any VoiceBridge service - there isn't one. This is a generic, OpenAI-compatible chat-completion node: you give it a base_url, an api_key, a model, and a prompt, and it returns the model's text response. It's the LLM in VoiceBridge's ASR → LLM → TTS speech-translation pipeline - the part that takes a transcript in one language and produces the translated text that the TTS stage then speaks.
Why it's in this pack
The full pipeline is: transcribe the source audio (VoiceBridge ASR Transcribe), translate the transcript with an LLM (this node), then synthesize the translation in the cloned voice (Voice Clone Prompt + SRT To Audio). This node is the middle step, and it's generic by design - you can point it at whichever LLM you like, so the "translate" step is a model choice rather than a fixed thing.
Because it's OpenAI-compatible, base_url isn't locked to OpenAI either. Set it to a local OpenAI-compatible server (Ollama, vLLM, LM Studio, llama.cpp's server), a reseller, or anything that speaks the OpenAI chat-completions protocol. The openai Python package (in the pack's requirements) does the talking, and it treats base_url as the endpoint - swap the URL and you swap providers.
The inputs that matter
model- the model identifier the endpoint expects (e.g. a Qwen/GPT/Claude id, or a local model name). Check your provider's naming; it's not inferred.base_url- the OpenAI-compatible endpoint. The full URL, scheme included.api_key- your key for that endpoint. Local servers often accept any non-empty string, but a real provider needs the real thing.system_prompt(default "You are a helpful assistant.") - set the translator persona here. Something like "You are a professional translator. Output only the translation in the target language" goes a long way toward clean output.prompt(default "Hello") - the user message; wire your transcript in here.
The optional trio - max_tokens (default 4096), temperature (default 0.7), top_p (default 0.95) - are the usual generation knobs. For translation you'll often want temperature lower than the default for consistency.
Installing it
Part of the comfyui_voicebridge pack. ComfyUI Manager search "VoiceBridge", or:
cd ComfyUI/custom_nodes
git clone https://github.com/YanTianlong-01/comfyui_voicebridge.git
cd comfyui_voicebridge
pip install -r requirements.txt
Restart ComfyUI. No model downloads - the model lives behind your API endpoint.
The security note you shouldn't skip
An API-wrapper node is exactly the shape of the thing that has been weaponized in this ecosystem before (the ComfyUI_LLMVISION credential-stealer incident). This node is legitimate and just calls the endpoint you give it, but it stores your api_key in the workflow graph in plain text - which means anyone who gets your workflow file gets your key. Keep the graph private, use a scoped/throwaway key if your provider allows it, and be cautious about downloading shared workflows that contain a pre-filled key. Also remember this node needs network access; if it errors with a connection issue, check that openai is installed and that the endpoint is reachable from your machine.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | STRING | — | |
| base_url | STRING | — | |
| api_key | STRING | — | |
| system_prompt | STRING | You are a helpful assistant. | — |
| prompt | STRING | Hello | — |
| max_tokensopt | INT | 40961–1000000 | — |
| temperatureopt | FLOAT | 0.700–1 | — |
| top_popt | FLOAT | 0.950–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| response | STRING | — |