TTS WebUI Parler TTS
You describe the voice, it builds it
- audio
- wav_path
- metadata_json
Parler TTS is the Hugging Face model that inverts the usual TTS prompt. Instead of cloning from a reference clip, you describe the voice you want in plain English - "a young woman with a slight British accent, speaking quickly with a bit of emotion" - and the model synthesizes it from your words. It's the closest thing in this pack to prompting for a voice the way you'd prompt for an image. This node is the thin client for running it through the pack's TTS WebUI server.
How it works
Standard pack plumbing: the node POSTs an OpenAI-style body to http://127.0.0.1:7778/v1/audio/speech with model: "parler-tts", and the server does the work. Parler-TTS is a description-conditioned TTS: it takes your prose description as a conditioning signal and generates speech that matches it. The default model is parler-tts/parler-tts-mini-v1 - the "mini" matters, because it's the version that runs reasonably on a consumer GPU; the full parler-tts-large exists but is heavy.
The inputs that matter
- text - the line to be spoken.
- description - the voice prompt. Default is
A neutral voice., and that's a fine starting point. This is the whole trick of Parler: get specific. "A female speaker with a very clear, slightly nasal voice and a soft tone" reads like prompt engineering because it basically is. - model_name - the Hugging Face repo the server loads (
parler-tts/parler-tts-mini-v1by default). Point it at a fine-tune if the server has one. - attn_implementation -
eagerby default; on newer GPUs the server may prefer a flash-attention setting for speed. Leave it unless you're chasing performance. - compile_mode - empty by default; a server-side torch.compile option for the same "make it faster" goal.
Outputs
audio (AUDIO) into a preview/save node, wav_path (STRING) when also_save_wav is on, and metadata_json (STRING) with the request details.
Installing it
ComfyUI Manager → search "TTS WebUI API nodes for ComfyUI", or:
cd ComfyUI/custom_nodes
git clone https://github.com/rsxdalv/ComfyUI-TTS-Webui
then restart. The pack only needs requests, numpy, torch. The Parler model downloads into the TTS WebUI server on first load - the mini model is a real download, so the first request can be slow.
When it breaks
- The voice ignores your description: the description influences style, not identity. Parler won't clone a person no matter how you phrase it - it renders the described delivery. If you want a specific person's voice, use a cloning node (F5-TTS, Chatterbox) instead.
- First call times out: model download/load on the server. Raise
timeout_sec(max 600). - Connection refused: server not running on
127.0.0.1:7778, orapi_basepoints at the wrong host. - Slow generation:
miniis already the compromise. Messing withcompile_mode/attn_implementationis where you go from there.
Parler is the fun node in this pack - the one where you can get a genuinely different-sounding narrator just by writing a better sentence. Just remember the division of labor: text says what, description says how.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello | — |
| api_base | STRING | http://127.0.0.1:7778 | — |
| api_keyopt | STRING | — | |
| descriptionopt | STRING | A neutral voice. | — |
| model_nameopt | STRING | parler-tts/parler-tts-mini-v1 | — |
| attn_implementationopt | STRING | eager | — |
| compile_modeopt | STRING | — | |
| timeout_secopt | INT | 1201–600 | — |
| channels_firstopt | BOOLEAN | true | — |
| also_save_wavopt | BOOLEAN | false | — |
| save_prefixopt | STRING | tts | — |
| return_metadataopt | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| wav_path | STRING | — |
| metadata_json | STRING | — |