ComfyUI Node

TTS WebUI Parler TTS

You describe the voice, it builds it

By rsxdalv·Created 10 months ago·Updated 10 months ago· 5
TTS WebUI Parler TTS
    • audio
    • wav_path
    • metadata_json
    textHello
    api_basehttp://127.0.0.1:7778
    api_key
    descriptionA neutral voice.
    model_nameparler-tts/parler-tts-mini-v1
    attn_implementationeager
    compile_mode
    timeout_sec120
    channels_firsttrue
    also_save_wavfalse
    save_prefixtts
    return_metadatatrue

    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-v1 by default). Point it at a fine-tune if the server has one.
    • attn_implementation - eager by 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, or api_base points at the wrong host.
    • Slow generation: mini is already the compromise. Messing with compile_mode/attn_implementation is 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.

    CategoryAudio/TTS

    Inputs (12)

    NameTypeDefaultDescription
    textSTRINGHello
    api_baseSTRINGhttp://127.0.0.1:7778
    api_keyoptSTRING
    descriptionoptSTRINGA neutral voice.
    model_nameoptSTRINGparler-tts/parler-tts-mini-v1
    attn_implementationoptSTRINGeager
    compile_modeoptSTRING
    timeout_secoptINT1201–600
    channels_firstoptBOOLEANtrue
    also_save_wavoptBOOLEANfalse
    save_prefixoptSTRINGtts
    return_metadataoptBOOLEANtrue

    Outputs (3)

    NameTypeDescription
    audioAUDIO
    wav_pathSTRING
    metadata_jsonSTRING