Extensions/MOSS-TTS
ComfyUI Extension

MOSS-TTS

ComfyUI nodes for MOSS-TTS (OpenMOSS): multilingual text-to-speech with zero-shot voice cloning and continuation. 8B and 1.7B models download automatically on first use.

By marduk191·Created 7 months ago·Updated a day ago· 0
marduk191/ComfyUI-MOSS-TTS
Nodes—
On cloudLocal install
Stars0
Updateda day ago
Readme

ComfyUI-MOSS-TTS

ComfyUI custom nodes for MOSS-TTS — a high-quality multilingual TTS system from OpenMOSS. Supports voice cloning, continuation, and all sampling parameters. Models are downloaded automatically from HuggingFace on first use.


Models

| Node option | HuggingFace repo | VRAM (bf16) | |---|---|---| | MossTTSDelay (8B) | OpenMOSS-Team/MOSS-TTS | ~16 GB | | MossTTSLocal (1.7B) | OpenMOSS-Team/MOSS-TTS-Local-Transformer | ~3.4 GB |

The audio tokenizer (OpenMOSS-Team/MOSS-Audio-Tokenizer) is downloaded automatically alongside the main model.

Models are saved to ComfyUI/models/moss_tts/.


Installation

cd ComfyUI/custom_nodes
git clone https://github.com/marduk191/ComfyUI-MOSS-TTS
cd ComfyUI-MOSS-TTS
pip install -r requirements.txt

Restart ComfyUI. Models will download automatically when the loader node first runs.

Also available from the Comfy Registry:

comfy node install comfyui-moss-tts

Flash Attention 2 (optional)

Not currently implemented — selecting flash_attention_2 falls back to sdpa when flash-attn is not installed.


Nodes

MOSS-TTS Model Loader

Loads and caches the model. Switching models evicts the previous one from VRAM automatically.

| Parameter | Options | Description | |---|---|---| | model_type | MossTTSDelay (8B), MossTTSLocal (1.7B) | Which model to load | | device | auto, cuda, cpu | Target device (auto picks CUDA if available) | | dtype | bfloat16, float16, float32 | Weight precision. bfloat16 recommended | | attn_implementation | sdpa, flash_attention_2, eager | Attention backend. sdpa recommended unless flash-attn is installed |

Output: MOSS_TTS_MODEL handle — connect to the Generate node.


MOSS-TTS Generate

Generates speech from text. Supports four generation modes.

| Parameter | Default | Description | |---|---|---| | text | — | Text to synthesize | | mode | default | See modes below | | language | auto | Language hint (auto detects automatically) | | temperature | 1.7 | Audio sampling temperature | | top_p | 0.8 | Nucleus sampling probability | | top_k | 25 | Top-k sampling | | repetition_penalty | 1.0 | Penalise repeated tokens | | max_new_tokens | 4096 | Maximum audio tokens to generate | | reference_audio | — | (optional) Reference audio for cloning/continuation | | reference_text | — | (optional) Transcript of reference audio | | seed | 0 | (optional) Sampling seed. Same seed + settings = same output; change it for a new take |

Output: AUDIO — compatible with all standard ComfyUI audio nodes (Preview Audio, Save Audio, etc).

Generation modes

| Mode | Reference audio | Reference text | Description | |---|---|---|---| | default | No | No | Generate speech in the model's default voice | | clone | Yes | No | Clone the voice from the reference audio | | continuation | Yes | Yes | Continue speech from the reference audio | | continuation_clone | Yes | Yes | Continue speech while also cloning the voice |


Supported languages

auto, English, Chinese, German, Spanish, French, Japanese, Korean, Portuguese, Italian, Dutch, Russian, Polish, Turkish, Arabic, Hindi, Indonesian, Swedish, Finnish, Danish


Requirements

  • Python 3.10+
  • PyTorch 2.0+
  • transformers >= 5.0.0
  • accelerate >= 0.30.0
  • CUDA GPU recommended (CPU supported but very slow)
  • 25 GB VRAM to run the 8B model entirely on GPU

Notes

  • Only one model is kept in VRAM at a time. Switching models in the loader node automatically frees the previous one.
  • The 8B model uses device_map="auto" which will offload layers to system RAM if VRAM is insufficient.
  • torchaudio is not required — reference audio is resampled with scipy and encoded directly; if torchaudio is missing or broken, a small built-in fallback is used so the model code can still import.
  • Reference audio of any sample rate / channel count is accepted; it is downmixed to mono and resampled to the model rate (24 kHz).

Compatibility

Tested on CPU with ComfyUI 0.43.0 (master, 2026-10-31), PyTorch 2.15, transformers 5.22.1, huggingface_hub 2.4.0, Python 3.13, using the MossTTSLocal (1.7B) model in all four modes.