AllTalk TTS Generator
Give your ComfyUI videos an actual voice
- audio
- audio_path
The name lies a little. "AllTalk TTS Generator" doesn't generate anything itself - it's a remote control for a separate AllTalk server, and it's the cleanest way to get an actual voice into your ComfyUI video workflow without wrestling model weights into the graph. AllTalk (erew123's alltalk_tts, now on the betav2 branch) is a full TTS server with model swapping, RVC voice cloning and a narrator, and it's one of the community's real answers here - especially for non-English, where the KB's own audio notes keep pointing at it.
How it works
The node is a thin HTTP client. On every run it pings {server}/api/ready, then POSTs to /api/tts-generate with your text and all the generation params. AllTalk renders the audio on its side, the node downloads the file into ComfyUI's output folder, parses it, and hands you two things:
- audio (
AUDIO) - a waveform tensor plus sample rate, ready to feed any node that accepts the AUDIO type - audio_path (
STRING) - the local path, if you'd rather save or reference the file yourself
That AUDIO output is the win. You can wire it straight into a video save node or an audio preview, no file-juggling.
The inputs that matter
You mostly set text, character_voice, and alltalk_server_url. The voice dropdown is built from a folder on your machine, and language covers auto plus 11 codes (en, es, fr, de, it, pt, nl, ru, ja, zh, ko). Behind those: speed (0.25–2.0), temperature (0.1–1.0), repetition_penalty (1.0–20.0), and pitch (-10.0–10.0). Optional narrator_enabled (false / true / silent) plus narrator_voice drives AllTalk's built-in narrator for scene text - handy if you want a second voice for directions.
Installing it
The pack installs light - its requirements are just requests and numpy, no models inside. Use ComfyUI Manager (search "ComfyUI Lackluster Nodes") or:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/LacklusterOpsec/ComfyUI-Lackluster-Nodes.git
cd ComfyUI-Lackluster-Nodes
pip install -r requirements.txt
The heavier lift is AllTalk itself, which the README walks through:
git clone -b betav2 https://github.com/erew123/alltalk_tts.git
cd alltalk_tts
# Windows: run atsetup.bat and follow the prompts
# or with uv:
uv venv
.venv\Scripts\activate
uv pip install -r .\system\requirements\requirements_standalone.txt
python script.py
Verify it's up at http://localhost:7851/api/ready before blaming the node.
Where people get burned
- "Cannot connect to AllTalk server" - the node's #1 failure. The server isn't running, isn't reachable, or you changed the port. Check
/api/readyin a browser first. - The voice dropdown doesn't match the server. The
character_voicelist comes from your localvoices_dir(defaultC:\Tavern\alltalk\voices), not from what the server has loaded. Pointvoices_dirat your real voices folder, and refresh the browser tab - the node saves a config file and the dropdown only reloads on refresh. - Non-WAV output needs librosa. If AllTalk returns mp3/ogg/m4a/flac, the node falls back to
librosa, which isn't in the pack's requirements.pip install librosa, or set AllTalk to output WAV. - It's still a server dependency. AllTalk holds its own VRAM and models; the node is the remote, not the brain.
For a single-character narration setup this is the whole pipeline. If you're cloning voices, do that inside AllTalk, then just pick the clone here.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello, this is a test. | — |
| character_voice | COMBO | female_01.wav | 5 options: female_01.wav, female_02.wav, female_03.wav, male_01.wav, male_02.wav |
| language | COMBO | auto | 12 options: auto, en, es, fr, de, it, +6 |
| speed | FLOAT | 1.00.25–2 | — |
| temperature | FLOAT | 0.750.1–1 | — |
| repetition_penalty | FLOAT | 2.51–20 | — |
| pitch | FLOAT | 0.0-10–10 | — |
| alltalk_server_url | STRING | http://localhost:7851 | — |
| narrator_enabledopt | COMBO | false | 3 options: false, true, silent |
| narrator_voiceopt | COMBO | male_01.wav | 5 options: female_01.wav, female_02.wav, female_03.wav, male_01.wav, male_02.wav |
| voices_diropt | STRING | C:\Tavern\alltalk\voices | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_path | STRING | — |