Nodes/ComfyUI_AIIA/CosyVoice 3.0 TTS (AIIA)
ComfyUI Node

CosyVoice 3.0 TTS (AIIA)

Five ways to make it talk, from clone to 'describe a voice'

By havvk·Created about a year ago·Updated 6 months ago· 13
CosyVoice 3.0 TTS (AIIA)
  • model
  • reference_audio
  • audio
prompt_label_1📖 第一步:在此输入您想让 AI 说的话 (TTS Text)
tts_text你好,这是 CosyVoice 3.0 的全能模式测试。
prompt_label_2🎨 第二步:在此输入对表现力/情感的文字描述 (Style Description)
instruct_text语速非常慢,语气充满磁性,情感饱满。
base_genderFemale
dialectNone (Auto)
emotionNone (Neutral)
spk_id
speed1.0
seed42

This is the one node that speaks with the entire CosyVoice family - V1's 300M, V2, and the 3.0 0.5B - and switches its behavior to match whatever the Loader handed it. The author's framing is "版本自适应" (version-agnostic), and it's not hype: the same text field does different things depending on which model you loaded, and the node knows which. That flexibility is the whole point. CosyVoice 3.0 is one of the best open TTS models around - 3-second cloning, natural emotion, real dialect support - and this node is how you drive it without touching the upstream code.

The five generation modes

The README breaks it into five, and they're worth internalizing:

  1. Instruct - text plus a style description ("speak very slowly, magnetic tone"). The description controls performance, not identity.
  2. Zero-shot clone - text plus a short reference_audio. The clone path; V3 needs only ~3 seconds.
  3. Hybrid - reference audio for identity plus a description for emotion/dialect.
  4. Cross-lingual - a cloned voice speaking any of the 9 supported languages.
  5. SFT / fixed ID - pick a built-in voice via spk_id.

The inputs that matter

  • tts_text - what it says. CosyVoice uses a streaming architecture, so long text isn't a problem here (unlike the token-window-limited models in this pack).
  • instruct_text - the style/emotion/dialect description. With V3 this is powerful and literal: "在大雨中嘶吼" works. The README's tip: specific scene descriptions ("whispering at 3am") land better than single adjectives.
  • reference_audio (optional) - the clone source. For V3, feed the highest-quality clip you have; the model rewards it.
  • base_gender - Female/Male, the identity fallback when you're in pure instruct mode with no reference audio.
  • dialect / emotion - preset dropdowns (Cantonese, Sichuan, Henan... and Happy, Sad, Robotic, even "Peppa Pig style") that get prepended to your instruction. Handy, but the free-text field does the same thing.
  • speed / seed - the usual.
  • spk_id - for SFT mode (e.g. pure_1). Leave empty for zero-shot models.

Output: audio (AUDIO).

Version-specific traps

  • 300M-Instruct needs English instructions. The README is emphatic: "Sad tone", "Fast speed" work; Chinese instructions get silently ignored. There's also a fixed bug where the model used to read its own instruction aloud.
  • 300M-Instruct can't do dialects - architecture limitation, not a setting.
  • The 0.6B/0.5B V3 class wants a reference audio for the "identity" layer; without one it falls back to a built-in seed voice based on base_gender, which is fine for testing but not for shipping a character.

Wiring it up

CosyVoice Model Loader → CosyVoice 3.0 TTS → Audio Enhance (Resemble) → Audio Post-Process. That's the "sounds like a real recording" chain, because CosyVoice outputs at 22/24kHz and the enhance step rebuilds the missing top end.

Troubleshooting

  • Instructions do nothing - you're on a Base/SFT-style model that doesn't take them, or on 300M-Instruct with Chinese text.
  • Clones sound flat - V3's clone quality scales with reference quality; give it a clean, unprocessed clip.
  • Crashes (AudioDecoder, KeyError) - the old upstream bugs; the pack ships fixes, but keep your PyTorch off 2.9.x (the README documents the regression).
CategoryAIIA/Synthesis

Inputs (12)

NameTypeDefaultDescription
modelCOSYVOICE_MODEL
prompt_label_1STRING📖 第一步:在此输入您想让 AI 说的话 (TTS Text)
tts_textSTRING你好,这是 CosyVoice 3.0 的全能模式测试。
prompt_label_2STRING🎨 第二步:在此输入对表现力/情感的文字描述 (Style Description)
instruct_textSTRING语速非常慢,语气充满磁性,情感饱满。文字描述:在 0.5B 中主要控制情感、方言、语速等'表现风格',而非从零生成音色身份。
base_genderCOMBOFemale基础性别底色。在“描述生成”模式下,这提供初始的声音身份(性别/音感底色)。
dialectCOMBONone (Auto)预设方言指令。会自动添加在自定义描述之前。若与自定义文字描述冲突,模型表现将不可预测。
emotionCOMBONone (Neutral)预设情感指令。会自动添加在自定义描述之前。
spk_idSTRING固定音色 ID (如 pure_1)。对于 0.5B/V3 等 Zero-Shot 模型,此项通常为空,需配合参考音频使用。
speedFLOAT1.00.5–2
seedINT42-1–2147483647
reference_audiooptAUDIO

Outputs (1)

NameTypeDescription
audioAUDIO