Run MOSS-TTSD Generation
Generating full conversations, not just speech
- moss_model
- moss_codec
- reference_audio_s1
- reference_audio_s2
- reference_audio_s3
- reference_audio_s4
- reference_audio_s5
- audio
This is the node people actually search this pack for. While most ComfyUI TTS setups give you one flat voice reading a script, MossTTSDGenerate runs the MOSS-TTSD dialogue model (from OpenMOSS, the lab behind the MOSS family) and can spit out a full multi-party conversation - up to five speakers bickering, laughing, and taking turns, all in a single pass. It's the difference between "text-to-speech" and "script-to-conversation," and for podcast-style audio it's the whole reason to install this pack.
How it works
MOSS-TTSD is a generative audio model, not a vocoder pipeline. Your text (and any reference audio) gets tokenized into audio tokens by the shared MOSS-Audio-Tokenizer codec, the model autoregressively samples those tokens conditioned on your prompt, and the codec decodes the tokens back into a waveform. All of that happens inside this node, which is why you always feed it two model objects: a moss_model from MossTTSDLoadModel and a moss_codec from MossAudioCodecLoadModel.
You switch speakers inline with tags, right in the text field:
[S1] Hey, did you watch the game last night? [S2] Are you kidding, I recorded it. [S1] And the final call, man...
The inputs that actually matter
mode- four modes, and this is where beginners burn their first hour:generation- pure text-to-speech with an internal voice, no reference needed.voice_clone- clones the timbre of your reference audio. This is the default for a reason.continuation- treats your reference audio + text as the prompt and keeps talking after it. Good for emotion and context.voice_clone_and_continuation- does both; best for mimicking one specific speaker.
audio_temperature- default 1.1, range 0.1–2.0. Higher sounds more dynamic and emotional; if you're getting warbly or unstable output, drop it toward 0.8.max_new_tokens- cap on generation length (default 2000). This is what you raise for long scripts.reference_audio_s1throughreference_audio_s5(optional) - one reference clip per speaker, plus matchingreference_text_s*fields. Give each of your five speakers a distinct clip and the model holds their identities across the conversation.
One gotcha baked into the code: if you pick voice_clone but forget to wire in any reference audio, the node silently falls back to plain generation instead of erroring. Same for the continuation modes - no reference text means it quietly downgrades to voice_clone. You get a warning in the console, but if your output voice sounds wrong, check that your references are actually connected.
Output and wiring
The single output is a ComfyUI AUDIO tensor, which you wire into the built-in SaveAudio node (or VHS if you're syncing to video). Nothing fancy downstream.
Install and the heavy lift
Install via 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 model (~7GB) auto-downloads to ComfyUI/models/moss_ttsd/ on first run. Two things will bite you: the pack needs transformers>=5.0.0 (README explicitly warns, and that version pin collides with a lot of other audio packs), and a fresh Python 3.12 environment plus pip install flash-attn --no-build-isolation is the recommended path for GPU speed. If VRAM is tight, load the TTSD model with 4-bit or 8-bit quantization in its loader node.
Where people get burned: running this alongside a VoiceGenerator or TTS graph in one workflow, because two MOSS models in memory at once is a lot of VRAM. And be honest about expectations - MOSS-TTSD is new and barely discussed in the community yet (the Reddit TTS conversation is still Chatterbox and VibeVoice territory), so treat this as a frontier model with rough edges, not a boringly reliable one.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| moss_model | MOSS_TTSD_MODEL | Loaded MOSS-TTSD model. | |
| moss_codec | MOSS_AUDIO_CODEC | Loaded MOSS Audio Tokenizer/Codec. | |
| text | STRING | [S1] Hello world. | Text to generate speech from. Use [S1]-[S5] tags for specific speakers. |
| mode | COMBO | voice_clone | Generation mode. 'voice_clone' is recommended for reference audio. |
| audio_temperature | FLOAT | 1.10.1–2 | Audio sampling temperature. Higher = more random/emotional. |
| audio_top_p | FLOAT | 0.900.1–1 | Nucleus sampling probability for audio. |
| audio_top_k | INT | 501–200 | Top-K sampling for audio. |
| audio_repetition_penalty | FLOAT | 1.11–2 | Penalty for repeating audio tokens. |
| text_temperature | FLOAT | 1.10.1–2 | Temperature for text generation (if applicable). |
| max_new_tokens | INT | 2000100–10000 | Maximum number of tokens to generate. |
| text_normalize | BOOLEAN | true | Normalize text (clean punctuation, merge tags) before generation. |
| sample_rate_normalize | BOOLEAN | true | Resample all reference audios to the same sample rate. |
| reference_audio_s1opt | AUDIO | — | |
| reference_text_s1opt | STRING | — | |
| reference_audio_s2opt | AUDIO | — | |
| reference_text_s2opt | STRING | — | |
| reference_audio_s3opt | AUDIO | — | |
| reference_text_s3opt | STRING | — | |
| reference_audio_s4opt | AUDIO | — | |
| reference_text_s4opt | STRING | — | |
| reference_audio_s5opt | AUDIO | — | |
| reference_text_s5opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |