Nodes/ComfyUI Kaola MOSS-TTS/Generates MOSS Voice from Text
ComfyUI Node

Generates MOSS Voice from Text

Describe a voice, get the voice — no reference audio required

By kana112233·Created 6 months ago·Updated 6 months ago· 3
Generates MOSS Voice from Text
  • moss_vg_model
  • audio
textHello, this is a test.
instructionA clear, neutral voice for reading.
audio_temperature1.0
audio_top_p0.80
audio_top_k50
audio_repetition_penalty1.0
max_new_tokens2000
text_normalizetrue

Every other voice-cloning workflow starts with the same problem: you need a clip of the voice you want. MossVoiceGeneratorGenerate skips that step entirely. You type "a warm, deep male voice, slightly tired" into one field, type what you want it to say into another, and out comes a sample of that voice speaking. No reference audio, no hunting through your hard drive for a clean recording. For people who make narrated videos or want distinct characters in a podcast, this is the hook of the MOSS-VoiceGenerator model.

How it works

Under the hood it's the same MOSS trick as the rest of the family: text and an instruction get encoded alongside audio tokens from the shared MOSS-Audio-Tokenizer codec, the model generates tokens, and the codec decodes them into a waveform. The instruction field is doing the heavy lifting - it's the "prompt" for the timbre, and the model has clearly been trained to honor it across gender, age, tone, and emotion. The default "A clear, neutral voice for reading." is a fine starting point; from there, describe the voice the way you'd brief a voice actor.

Inputs that matter

  • text - the content to be spoken. Keep it short for a first test; this is meant to generate a voice sample, not a whole audiobook.
  • instruction - the voice description. Try "A warm, deep male voice" or "年轻女性,温柔的声音" - it handles non-English descriptions fine.
  • audio_temperature - default 1.0 (0.1–2.0). Higher gives more variation and drama per run; if the same instruction sounds different every time, drop it.
  • audio_top_p / audio_top_k / audio_repetition_penalty - standard sampling dials; the defaults (0.8 / 50 / 1.0) are sane, leave them alone until you're chasing a specific artifact.
  • max_new_tokens - how long the sample can be in audio tokens.

The output is one ComfyUI AUDIO tensor. Wire it to SaveAudio to audition, or - and here's the real move - feed it into MossTTSDGenerate's reference_audio_s1 input with mode set to voice_clone. The pack's own example workflow does exactly this: design a synthetic speaker, then use that designed voice as the reference for a full multi-speaker dialogue. You get custom characters without ever recording anything.

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 VoiceGenerator model (~3GB) downloads automatically to ComfyUI/models/moss_ttsd/ on first run. You'll also need the shared audio codec (~1GB) - the loader node resolves it automatically if you don't connect one, but connecting moss_codec from MossAudioCodecLoadModel avoids a redundant download.

Where people get burned: MOSS is a brand-new family and the ComfyUI wrapper is barely a year old, so the community signal is thin - you won't find many shared voice-design workflows to crib from yet. The practical fix is to lean on the generation dials. If your "designed" voice sounds unstable or robotic, drop the temperature toward 0.7 and re-run; the model is more consistent when you don't push its sampling.

CategoryKaola/MOSS-TTSD

Inputs (9)

NameTypeDefaultDescription
moss_vg_modelMOSS_VOICE_GENERATOR_MODELLoaded MOSS-VoiceGenerator model.
textSTRINGHello, this is a test.The content to be spoken.
instructionSTRINGA clear, neutral voice for reading.Describe the desired voice characteristics (gender, age, tone, emotion).
audio_temperatureFLOAT1.00.1–2Higher = more variation/drama.
audio_top_pFLOAT0.800.1–1Nucleus sampling probability.
audio_top_kINT501–200Top-K sampling.
audio_repetition_penaltyFLOAT1.01–2Penalty for repeating audio tokens.
max_new_tokensINT2000100–10000Max audio length in tokens.
text_normalizeBOOLEANtrueNormalize text input.

Outputs (1)

NameTypeDescription
audioAUDIO