Nodes/ComfyUI TS CosyVoice RU Edition/TS CosyVoice Speaker Text To Voice
ComfyUI Node

TS CosyVoice Speaker Text To Voice

The node you'll actually use for a whole podcast season

By AlexYez·Created 5 months ago·Updated about a month ago· 3
TS CosyVoice Speaker Text To Voice
  • model
  • audio
textHello, this is my cloned voice speaking.
instruct_textPlease say this in a warm and soft voice.
speaker_preset
speed1.00
seed42
text_normalizetrue
emotion_presetВаша инструкция

TS CosyVoice Speaker Text To Voice is the "I want this character to sound identical on every single line, forever" node. Plain Text to Voice re-encodes your reference clip every run; this one pulls a saved .pt speaker preset from disk instead. The voice stays stable between sessions, and the only thing you change per line is the text and the emotion instruction. For a series, a podcast, a long dub - anything where voice consistency across hundreds of lines matters - this is the workflow the pack's README calls out as arguably its most useful node.

It exists because of a two-step habit that's easy to build: Save Speaker once to lock in a voice, then this node forever after. The reference clip only ever touches the graph a single time.

How it works

Under the hood it's the same CosyVoice inference_instruct2 path as Text to Voice - text in, instruction guides delivery, out comes speech. The difference is where the timbre comes from. Instead of a raw audio prompt, it loads the precomputed speaker features you saved earlier via Save Speaker (those .pt files live in ComfyUI/models/cosyvoice/speaker/). Because the features are computed once and stored, you get the same voice identity run after run, and the per-line variation comes entirely from instruct_text or emotion_preset.

The inputs that matter

  • speaker_preset - a combo that lists the .pt files in your speaker folder. This is the whole point: pick the voice, don't re-supply audio.
  • text - the line.
  • instruct_text / emotion_preset - same system as Text to Voice: 12 bundled delivery presets, or "Your instruction" plus free-form text. This is how one voice goes from warm to angry to exhausted across a scene.
  • speed - 0.5× to 2×.
  • seed - -1 for variety, fixed otherwise.

Output

One audio output, straight into Save Audio / Preview Audio.

The workflow it belongs to

Model Loader ──→ Save Speaker (once, per voice)
                 └──→ Speaker Text To Voice (every line) → Save Audio

Setup cost is a couple of minutes per voice; after that each line is just text plus an emotion. That's the entire appeal: clone once, direct forever.

Installing

Same pack install as the rest of the family - ComfyUI Manager (search TS CosyVoice) or:

cd ComfyUI/custom_nodes
git clone https://github.com/AlexYez/comfyui-ts-cosyvoice.git
cd comfyui-ts-cosyvoice
pip install -r requirements.txt

Plus the always-two-extras: one ONNX Runtime (onnxruntime-gpu on NVIDIA, onnxruntime on CPU/Apple Silicon) and CUDA torch installed before the pack deps. Model download is automatic on first Model Loader run.

Troubleshooting

  • The preset dropdown is empty - you haven't run Save Speaker yet, or it saved somewhere other than models/cosyvoice/speaker/. Give Save Speaker a descriptive speaker_name and rerun.
  • The voice drifts from the original reference - check what reference_text got baked into the preset when you saved it. If it was empty because Whisper wasn't installed, the clone is noticeably worse; re-save with the text typed in.
  • Lines sound too similar to each other - vary instruct_text or seed rather than the voice.
  • It doesn't appear in the Add Node menu - this pack needs ComfyUI >= 0.3.40 (V3 schema).

If you're doing more than a handful of lines in one voice, skip the raw reference path and go straight to the preset. It's the difference between babysitting a reference clip and just writing lines.

CategoryTS CosyVoice3/Synthesis

Inputs (8)

NameTypeDefaultDescription
modelCOSYVOICE_MODELЗагруженная модель CosyVoice из ноды загрузчика.
textSTRINGHello, this is my cloned voice speaking.Текст, который нужно озвучить выбранным сохраненным голосом.
instruct_textSTRINGPlease say this in a warm and soft voice.Текстовая инструкция для эмоции и манеры речи; используется только при выборе 'Ваша инструкция'.
speaker_presetCOMBOВыберите ранее сохраненный пресет голоса из папки models/cosyvoice/speaker.
speedFLOAT1.000.5–2Множитель скорости итоговой речи.
seedoptINT42-1–2147483647Зерно случайности; значение -1 использует случайный seed.
text_normalizeoptBOOLEANtrueВключает нормализацию текста; отключайте для фонем CMU и специальных тегов.
emotion_presetoptCOMBOВаша инструкцияГотовый пресет эмоции и манеры подачи; при выборе 'Ваша инструкция' используется поле instruct_text.

Outputs (1)

NameTypeDescription
audioAUDIO