MOSS-TTS Voice Reference
The one node that stops MOSS-TTS talking with a Chinese accent
- audio
- voice
If your MOSS-TTS output sounds like a Chinese speaker doing a very determined English reading, this is the node you skipped. MOSS-TTS was trained primarily on Chinese, so its default voice leans Chinese - including when you feed it English. A clean reference clip fixes that, and it's also the entire voice-cloning story. This node is how you hand that clip to the model.
What it actually is
MOSSTTSVoiceReference is not a model and doesn't do any synthesis. It's a thin wrapper that takes an AUDIO input or a file path and wraps it into the MOSS_TTS_VOICE container that the MOSSTTSGenerate node eats through its voice input. Think of it as a voice-selector cartridge: load a clip, feed it in, done.
It exists because of a quirk in the wider workflow: ComfyUI's Load Audio node gives you an AUDIO dict, but MOSS-TTS's processor wants a file path. This node bridges the two by writing the audio to a temp WAV behind the scenes.
The two inputs (both optional, wire one)
audio(AUDIO) - from aLoad Audionode. Gets written to a temp WAV and used as the reference.audio_path(STRING) - a path to a file on disk instead.
If you set both, audio wins and audio_path is silently ignored (the code logs a warning). If you set neither, you get the default voice - which is exactly the Chinese-leaning one you're probably trying to escape. To use the default voice on purpose, just leave the voice socket on Generate empty.
The single output is voice (MOSS_TTS_VOICE), which wires straight into MOSSTTSGenerate.voice.
Getting a good reference
The author's guidance, and it's good: a 5–15 second clip, clean, one speaker, no background music. The reference is what carries pronunciation and identity, so the quality of the clip matters far more than its length. A 30-second clip with music in it will give you a voice that sounds like it's cloning a music video. For English output, the clip must be English - the model clones the clip's phonetics, and a Mandarin reference won't magically make your English clean.
Installing and using it
It ships in the MOSS-TTS pack, so install once and you get all four nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/Eutectico/ComfyUI-MOSS-TTS.git
pip install -r ComfyUI-MOSS-TTS/requirements.txt
Then restart ComfyUI - or just search "MOSS-TTS" in ComfyUI Manager and let it handle both steps. There's no per-node install; this node adds no extra dependencies beyond the pack's.
Minimal voice-cloning chain: Load Audio → MOSSTTSVoiceReference → MOSSTTSGenerate.voice, with the audio output going to Save Audio. First run downloads ~13 GB of weights, so the first generation is the slow one; everything after is fast.
Troubleshooting
- Path not found error -
audio_pathmust point at a real file; the node validates it and raisesFileNotFoundErrorif it's wrong. Easiest fix: use theaudioinput instead. - Still Chinese-accented - you either left
voicedisconnected, or your clip is in the wrong language. - Weird voice but not yours - check the clip itself. MOSS-TTS clones what you feed it; garbage in, garbage out.
This is a niche node in a small pack, but it's quietly the most important one in it - it's the difference between "a Chinese TTS reading your English" and actual voice cloning.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| audioopt | AUDIO | — | |
| audio_pathopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| voice | MOSS_TTS_VOICE | — |