ComfyUI Node

TTS WebUI MMS

One TTS node, 1100+ languages

By rsxdalv·Created 10 months ago·Updated 10 months ago· 5
TTS WebUI MMS
    • audio
    • wav_path
    • metadata_json
    textHello
    api_basehttp://127.0.0.1:7778
    api_key
    languageeng
    speaking_rate1.00
    noise_scale0.67
    noise_scale_duration0.80
    timeout_sec120
    channels_firsttrue
    also_save_wavfalse
    save_prefixtts
    return_metadatatrue

    Every other node in this pack is about which model you use. MMS is the node about which language you use. Meta's Massively Multilingual Speech project trained VITS models for over 1,100 languages, and this node is the thin client for driving them through the TTS WebUI server. If you need TTS in a language that's barely supported anywhere else, this is probably the node in the pack that actually does it.

    How it works

    Same pack plumbing: the node POSTs an OpenAI-style body to http://127.0.0.1:7778/v1/audio/speech with model: "mms", and the server synthesizes. The server picks the right language model based on the language code you give it, so this is also the node where a wrong string produces the most confusing failures - there are no random voices to fall back on.

    The inputs that matter

    • language - the language code, default eng. This is the input that makes or breaks the node. It uses the ISO-style codes MMS knows (eng, spa, fra, deu, and a very long tail of rarer ones). Use exactly what the server expects - a name like "English" won't match the code the model lookup needs.
    • speaking_rate - 0.25 to 4.0, default 1.0.
    • noise_scale (default 0.667) and noise_scale_duration (default 0.8) - the two classic VITS synthesis knobs. The first controls randomness in the speech itself; the second controls variation in phoneme duration. If the output sounds dead, nudge these up a little; if it sounds warbly, nudge them down.

    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. MMS language models are small and live on the TTS WebUI server - the first request may pull one down.

    When it breaks

    • "Language not found"-style errors: your language string doesn't match a code the server recognizes. Check the server's language list; it's codes, not display names.
    • Connection refused: server not running on 127.0.0.1:7778, or api_base points at the wrong host.
    • First call slow: model download server-side. Raise timeout_sec (max 600).

    The honest framing: MMS is a niche-slayer, not a quality champion. Its voices are functional VITS output - think Piper-grade - and the English default is nothing special when Kokoro is sitting right there. But for a language with almost no open TTS options, "functional and in 1,100+ languages" is a superpower. That's what you're buying this node for.

    CategoryAudio/TTS

    Inputs (12)

    NameTypeDefaultDescription
    textSTRINGHello
    api_baseSTRINGhttp://127.0.0.1:7778
    api_keyoptSTRING
    languageoptSTRINGeng
    speaking_rateoptFLOAT1.000.25–4
    noise_scaleoptFLOAT0.670–2
    noise_scale_durationoptFLOAT0.800–2
    timeout_secoptINT1201–600
    channels_firstoptBOOLEANtrue
    also_save_wavoptBOOLEANfalse
    save_prefixoptSTRINGtts
    return_metadataoptBOOLEANtrue

    Outputs (3)

    NameTypeDescription
    audioAUDIO
    wav_pathSTRING
    metadata_jsonSTRING