Load MOSS-TTS Foundation Model
The 8B flagship or the 1.7B that fits in your card
- moss_codec
- moss_tts_model
MossTTSLoadModel is the loader for the narration side of this pack: it pulls in a MOSS-TTS foundation model and hands a moss_tts_model object to MossTTSGenerate. What makes this one different from the other loaders is that it actually has a choice to make - you pick between two very different models, and the right answer depends on your GPU.
The model_path decision
OpenMOSS-Team/MOSS-TTS- the 8B foundation model (~7GB). This is the quality pick: the high-fidelity narration and cloning model that MOSS-TTSD was built on top of. Needs a card with real headroom (16GB is comfortable; 8GB is painful).OpenMOSS-Team/MOSS-TTS-Local-Transformer- the 1.7B lightweight model (~1.7GB). This is the "runs on a small card" pick. Less polish, but it fits where the 8B can't, and it's a much faster load. If your GPU is modest, this is not the consolation prize - it's the sensible choice.
Both auto-download into ComfyUI/models/moss_ttsd/ on first load.
The rest of the inputs
device-auto/cuda/cpu/mps, defaultauto. It resolves CUDA → MPS → CPU in that order, so you can usually leave it.precision-fp32orbf16, and notice the default here isbf16, unlike the VoiceGenerator and SoundEffect loaders (which default tofp32). The narration model is expected to run in bf16; if you hit a CUDA device-side assert during generation, the generate node will tell you to switch this tofp32.moss_codec(optional) - wire the shared codec fromMossAudioCodecLoadModelin to reuse its local path and skip a redundant tokenizer download. Same advice as every loader in this pack: do it.
How it loads
HuggingFace AutoModel + AutoProcessor with remote code. The loader passes normalize_inputs=True to the processor and falls back gracefully if the model doesn't support it. On CUDA it probes for flash-attn and opts into flash_attention_2 if the GPU is Ampere-or-newer and precision is fp16/bf16; otherwise it uses sdpa. The audio tokenizer is loaded alongside the processor, using the connected codec's path if you gave one.
Install
ComfyUI Manager → search ComfyUI Kaola MOSS-TTS, or:
cd ComfyUI/custom_nodes
git clone https://github.com/kana112233/ComfyUI-kaola-moss-tts.git
cd ComfyUI-kaola-moss-tts
pip install -r requirements.txt
The README's two standing warnings apply: transformers>=5.0.0 is required, and a fresh Python 3.12 environment with flash-attn is the recommended GPU setup. First load of the 8B model is a multi-GB download, so budget for it.
Where people get burned: grabbing the 8B "because bigger is better," then watching an 8GB card OOM during generation. Run the 1.7B first to confirm your workflow works, then decide if the quality jump justifies the memory.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | 2 options: OpenMOSS-Team/MOSS-TTS, OpenMOSS-Team/MOSS-TTS-Local-Transformer | |
| device | COMBO | auto | 4 options: auto, cuda, cpu, mps |
| precision | COMBO | bf16 | 2 options: fp32, bf16 |
| moss_codecopt | MOSS_AUDIO_CODEC | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| moss_tts_model | MOSS_TTS_MODEL | — |