Nodes/ComfyUI-ChatTTS/ChatTTS Model Loader
ComfyUI Node

ChatTTS Model Loader

The node that quietly does the hard part for you

By neverbiasu·Created about a year ago·Updated about a year ago· 4
ChatTTS Model Loader
    • MODEL

    ChatTTS isn't an image model, so there's no civitai page to download from and no checkpoints folder convention that everyone already knows. That's what this node is for: it's the front door of the whole ComfyUI-ChatTTS pack. Drop it in, hit run, and it either finds the weights you already have or pulls them for you. No inputs, one output, and it's the only node in the pack that ever touches the disk.

    If you've never met ChatTTS, the short version: it's a text-to-speech model from the 2noise project, notable for Chinese and English, and for sounding genuinely conversational rather than like a newsreader. This pack wraps it in ComfyUI, so instead of running a Python script you build a little graph - Loader, a speaker node, Sampler, then an audio preview - and everything stays reproducible and shareable as a workflow file.

    How it works

    The loader looks in ComfyUI/models/chattts/ for any .pth, .pt, .ckpt, or .safetensors file. If one exists, it uses it. If the folder is empty, it runs ChatTTS's own downloader, which pulls the 0.2.10 asset set - the GPT backbone, the Vocos vocoder, the DVAE, and the tokenizer, a few hundred MB in total - and stashes everything in that same folder so the next run is instant.

    Two things to know before your first run:

    • First load is slow. Download plus numba's JIT compile of ChatTTS's text-normalization code means you'll watch the console for a while. Subsequent loads are much faster.
    • The MODEL output is not what you think it is. This is the #1 trap. It's not a diffusion checkpoint - it's a custom MODEL type wrapping the loaded Chat object. It only plugs into other ChatTTS nodes (Seed-Based Speaker, Sampler, Voice Extractor). Drag it toward image nodes and you get nothing, because there's nothing to connect. That's correct behavior.

    Installation

    Via ComfyUI Manager, search for "ChatTTS" and install. Or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/neverbiasu/ComfyUI-ChatTTS
    cd ComfyUI-ChatTTS
    pip install -r requirements.txt
    

    Then restart ComfyUI. The dependency list is the heavy part: torch, torchaudio, transformers, vocos, numba, av, pydub, pybase16384, plus numpy<2.0.0 - a pin you'll feel if anything else in your environment wants numpy 2.x. Linux installs also pull pynini, WeTextProcessing and nemo_text_processing, which are only used for advanced text normalization and are skipped on Windows.

    If you're on the Windows portable build, use the embedded Python - this trips up everyone sooner or later:

    cd ComfyUI\python_embeded
    python -s -m pip install -r ..\custom_nodes\ComfyUI-ChatTTS\requirements.txt
    

    Common issues

    The one real failure mode, from the source itself: if the download fails or lands in a corrupted state, the loader wipes the HuggingFace cache entry and raises an error telling you to place model files in models/chattts manually. That's your move if you're offline, behind a proxy, or on a network where the downloader can't reach GitHub - grab the assets from the ChatTTS repo and drop them in that folder, and the loader picks them up as local files.

    The TTS-node family is also the classic ComfyUI dependency-hell poster child: a "ModuleNotFoundError" on something like vocos almost always means pip installed into the wrong Python, not that the package is missing. Install into the environment ComfyUI actually runs on, and the import error disappears.

    Categorychattts

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    MODELMODEL