Nodes/TTS Audio Suite/⚙️ Dots TTS Engine
ComfyUI Node

⚙️ Dots TTS Engine

Fast multilingual TTS with distilled variants

By diodiogod·Created about a year ago·Updated 22 days ago· 1,098
⚙️ Dots TTS Engine
    • TTS_engine
    model_variantdots.tts-soar
    deviceauto
    languageAuto
    num_steps10
    guidance_scale1.2
    speaker_scale1.5
    max_generate_length500
    template_modeTTS
    precisionauto
    normalize_textfalse
    optimizefalse

    Dots TTS is the speed pick among the newer engines. It covers a wide spread of languages with official auto-detection, and - the useful bit - it ships distilled variants (SOAR and MeanFlow) that generate in far fewer steps than a normal diffusion/flow model, which means faster turnaround without a huge quality hit. At ~6GB it's mid-weight. If you're iterating on multilingual lines and don't want to wait, it's a sensible engine to have wired up. This node configures it and outputs a TTS_ENGINE for 🎤 TTS Text or 📺 TTS SRT.

    How it works

    Dots is a flow-matching TTS (hence num_steps and guidance_scale). The trick is the distilled checkpoints: dots.tts-soar and dots.tts-mf (MeanFlow) are trained to produce good audio in a handful of steps, where the plain dots.tts-base needs more. That's why the default step count here (10) is so much lower than the 32-ish you see on other flow engines - the distilled variants are built to run short. Language handling is official rather than bolted-on: it auto-detects or you set it explicitly.

    The inputs and outputs that matter

    • model_variant (dots.tts-soar, dots.tts-mf, dots.tts-base, default SOAR) - SOAR and MF are the fast distilled variants and the reason to pick this engine; base is the full model. Start on the default.
    • language (default Auto, 24 languages) - Auto detects from text, or pin one. There's also a None option to skip language conditioning entirely.
    • num_steps (1–64, default 10) - generation steps. The low default suits the distilled variants; if you switch to dots.tts-base you'll likely want more steps for clean output.
    • guidance_scale (0–5, default 1.2) - prompt/conditioning adherence. Modest by default; nudge up if delivery drifts from the reference.
    • speaker_scale (0–5, default 1.5) - how strongly it locks onto the reference speaker identity. Raise it if the clone feels loose, lower it if it sounds forced.

    max_generate_length caps output length in tokens. The optionals - template_mode (TTS vs Instruction TTS, for instruction-style prompting), precision, normalize_text, and optimize (a speed switch) - are refinements you can leave at defaults. Output is a single TTS_engine.

    Installing it

    Part of TTS Audio Suite. Easiest: ComfyUI Manager → search TTS Audio Suite → install → restart, which runs the pack's install.py and handles the dependency conflicts (NumPy, librosa, s3tokenizer) and Python 3.13. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/diodiogod/TTS-Audio-Suite.git, then python install.py from inside the folder with your ComfyUI venv active (run the script, not just a bare requirements install). Linux: portaudio19-dev libsamplerate0-dev first. The Dots checkpoints (~6GB, with tokenizer, vocoder, and speaker encoder) auto-download into ComfyUI/models/TTS/dots_tts/ on first use.

    Common issues

    • Base variant sounds rough at 10 steps. The low default step count is calibrated for the SOAR/MF distilled models. If you switch to dots.tts-base, raise num_steps accordingly - the distillation is exactly what lets the others run short.
    • Weak or drifting clone. Bump speaker_scale (toward 2–2.5) so it holds the reference identity harder, and make sure you're feeding a clean reference via 🎭 Character Voices.
    • Wrong language pronunciation. Auto usually gets it, but on short or ambiguous text it can guess wrong - pin language explicitly.
    • Not sure it's worth it over F5/ChatterBox. Its edge is speed on multilingual work via the distilled variants. If you're English-only and happy with F5's pace, you may not need it - but for fast iteration across languages it's a nice option.
    CategoryTTS Audio Suite/⚙️ Engines

    Inputs (11)

    NameTypeDefaultDescription
    model_variantCOMBOdots.tts-soarOfficial Dots checkpoint. • dots.tts-soar: best zero-shot voice cloning • dots.tts-mf: fastest distilled MeanFlow checkpoint; use 4 steps • dots.tts-base: pretrained baseline
    deviceCOMBOautoDevice to run Dots TTS on. • auto: use the best available device • cuda: NVIDIA GPU • cpu: CPU-only (very slow for 2B model)
    languageCOMBOAutoOfficial Dots language tag. • Auto: let Dots detect language from text • None: disable explicit language tagging • Full language names: force the model-side language tag Voice-cloning note: reference/narrator audio works best when the generated language matches the language spoken in the reference. Cross-language cloning can degrade quality, accent, and speaker similarity.
    num_stepsINT101–64Flow-matching sampling steps. Official recommendation: 10-32 for base/soar, 4 for mf.
    guidance_scaleFLOAT1.20–5Official CFG guidance scale. Higher values can increase energy and instability.
    speaker_scaleFLOAT1.50–5Official speaker embedding scale for reference audio conditioning.
    max_generate_lengthINT50032–1024Official maximum audio patch budget. 500 is roughly 160 seconds of output budget.
    template_modeoptCOMBOTTSOfficial non-standard Dots template mode from upstream. • TTS: standard Dots speech synthesis template • Instruction TTS: uses the same text field as normal TTS Upstream does not clearly document what behavior difference this mode is meant to produce. It may yield different results, or little noticeable difference, versus standard TTS. Needs testing.
    precisionoptCOMBOautoRuntime precision. • auto: bfloat16 on newer CUDA GPUs, else float16, cpu -> float32
    normalize_textoptBOOLEANfalseUse Dots native text normalization before inference.
    optimizeoptBOOLEANfalseEnable official Dots runtime optimization / warmup. First load is slower; steady-state inference is faster.

    Outputs (1)

    NameTypeDescription
    TTS_engineTTS_ENGINE