Nodes/MOSS-TTS/MOSS-TTS Voice Clone
ComfyUI Node

MOSS-TTS Voice Clone

MOSS-TTS Voice Clone

By Saganaki22·Created 3 months ago·Updated 2 months ago· 30
MOSS-TTS Voice Clone
  • mosstts_model
  • reference_audio
  • audio
textThis line will be spoken in the reference voice.
languageauto
instruction
duration_tokens0
quality
sound_event
ambient_sound
max_new_tokens4096
do_sampletrue
text_temperature1.00
text_top_p1.00
text_top_k50
audio_temperature1.70
audio_top_p0.80
audio_top_k25
audio_repetition_penalty1.00
seed0

MOSS-TTS Voice Clone is the node that made people care about this pack. Drop in a few seconds of someone's voice, type a sentence, and it comes back at 48 kHz stereo in that voice - no fine-tuning, no transcript of the reference, no API key, nothing phoned home. In the 2026 local-TTS conversation this model keeps getting name-dropped as the one that nails expression rather than just timbre, and this is the node that puts that behind a single ComfyUI AUDIO input.

"Zero-shot" means the voice isn't stored or trained on - it's conditioned on at generation time. You change the reference clip and the same workflow speaks in a different voice.

How it works

The reference audio gets encoded into acoustic codes by MOSS-Audio-Tokenizer-v2, the same codec used to decode the output. Those codes ride along as context when the model generates new acoustic codes for your text, and the tokenizer decodes the result back into a 48 kHz stereo waveform. Because the reference and the target share the same tokenizer, the model can copy prosody and delivery, not just pitch. That's why it needs no transcript - it never transcribes the reference, it just uses it.

The inputs that matter

  • mosstts_model - the bundle from MOSS-TTS Load Model. Nothing to set.
  • reference_audio - ComfyUI AUDIO, so load a clip with ComfyUI's Load Audio (or any audio node feeding the graph). Five to ten seconds of clean, single-speaker audio is the sweet spot; the reference is the quality bar.
  • text - what you want said. Inline [pause 0.5s], Pinyin, and IPA all pass straight through to MOSS-TTS.
  • language - set it. v1.5 performs noticeably better when you tell it the language (31 choices; auto just omits the field). Match the reference's language.
  • instruction - free-form delivery hint ("whisper, slightly amused" - that kind of thing). This is where the expression the model is known for actually comes from.
  • duration_tokens - optional; 0 omits it. MOSS runs at about 12.5 acoustic frames per second, so a number here targets a length.
  • max_new_tokens - generation budget. 4096 default is roughly 5.5 minutes of audio; raise it for long-form.
  • Sampling: do_sample on, with the model-card defaults - audio_temperature 1.7, audio_top_p 0.8, audio_top_k 25 - doing the real work. The text-side knobs (text_temperature, text_top_p, text_top_k) matter less. seed 0 is unseeded; set a positive value when you want the same settings to reproduce.

Output: audio - a ComfyUI AUDIO, ready for Save Audio or whatever you'd feed a generated clip into.

Installing

Pack-wide, so it's the same as the other nodes: ComfyUI Manager → search MOSS-TTS, or

cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/Moss_TTS-ComfyUI.git
../venv/bin/python Moss_TTS-ComfyUI/install.py

then restart. You need the Load Model node first anyway - Voice Clone only works downstream of it, so the loader's model download is a prerequisite, not an extra step here.

Common issues

Weak clones almost always trace back to the reference, not the settings: short clips, background noise, or two speakers in the frame and the clone gets mushy. Try a cleaner, longer reference before you start cranking sampling knobs. If the output sounds garbled rather than just different, the language field is the usual culprit - leave it on auto and the model guesses, and guessing costs you.

One honest caveat that's in the pack's own README: only clone voices you own or have explicit permission to use. The tool has no opinion about that; it'll do exactly what you ask. Keep it for voices you're allowed to have.

CategoryMOSS-TTS

Inputs (19)

NameTypeDefaultDescription
mosstts_modelMOSSTTS_MODELLoaded MOSS-TTS model bundle.
reference_audioAUDIOReference speaker audio. The node encodes it with MOSS-Audio-Tokenizer-v2 before generation.
textSTRINGThis line will be spoken in the reference voice.Text to synthesize. Inline [pause 0.5s], Pinyin, and IPA are passed through to MOSS-TTS.
languageCOMBOautoLanguage hint. v1.5 performs best when the language is specified.
instructionSTRINGOptional free-form style or delivery instruction.
duration_tokensINT00–45000Optional duration target in audio tokens. 0 omits the field. MOSS runs around 12.5 tokens per second.
qualitySTRINGOptional quality hint field exposed by the MOSS user-message schema.
sound_eventSTRINGOptional sound-event hint field exposed by the MOSS user-message schema.
ambient_soundSTRINGOptional ambient-sound hint field exposed by the MOSS user-message schema.
max_new_tokensINT40961–45000Generation budget in audio frames. At 12.5 frames per second, 4096 is roughly 5.5 minutes.
do_sampleBOOLEANtrueUse stochastic sampling. Disable for deterministic greedy decoding.
text_temperatureFLOAT1.000–2Sampling temperature for assistant text/audio-control tokens.
text_top_pFLOAT1.000–1Nucleus sampling for assistant text/audio-control tokens.
text_top_kINT500–4096Top-K sampling for assistant text/audio-control tokens.
audio_temperatureFLOAT1.700–3Recommended v1.5 audio sampling temperature.
audio_top_pFLOAT0.800–1Recommended v1.5 nucleus sampling cutoff for audio codebooks.
audio_top_kINT250–1024Recommended v1.5 Top-K cutoff for audio codebooks.
audio_repetition_penaltyFLOAT1.001–2Penalty for repeated acoustic code patterns.
seedINT00–92233720368547760000 leaves sampling unseeded. Positive values make identical settings repeatable.

Outputs (1)

NameTypeDescription
audioAUDIO