IndexTTS 2.5 语音生成 · T8star-Aix
Zero-shot voice cloning with IndexTTS 2.5
- model
- speaker_audio
- emotion
- sampling
- 生成音频
- 生成信息
- 全部候选音频
This is the node the whole pack exists for. You hand it a model, a short reference clip of a voice, and some text, and it gives you back a standard ComfyUI AUDIO of that voice speaking your words - in Chinese, English, Japanese, Spanish, or Arabic. No training, no fine-tuning, no API. IndexTTS 2.5 is the current flagship of the open-source Chinese TTS scene, and this node is the cleanest way I've found to run it inside ComfyUI without fighting a gradio app.
How it works
Under the hood it's the modern TTS stack: a GPT-style model predicts audio codec tokens conditioned on your text and reference clip, a CFM diffusion model turns those into a spectrogram, and a BigVGAN vocoder renders the waveform. The pack pins the official 2.5 core and model commits, so you're not getting a fork that drifted. Output is always 22050 Hz, float32, mono [1,1,T] standard ComfyUI AUDIO - it plugs straight into Save Audio, audio merging, or a video node.
Reference audio wants to be 3–10 seconds of clean, single-speaker, no-background-music material. Anything over 15 seconds gets truncated with a warning, and the reference is cached by content hash so re-runs don't re-encode it.
The inputs that matter
- model and speaker_audio - from the model loader and
Load Audiorespectively. Nothing happens without both. - text - you can write the official
<文字|读音>annotations right in here for the odd polyphonic word (银行|YIN2 HANG2), but for a whole dictionary use the separate pronunciation node and chain its text output in. - language -
ZH / EN / JA / ES / AR. The reference voice stays yours across languages; quality varies per language, and the README's auto-segmentation token limits differ per language for a reason. - duration_factor - the official speed dial, 0.5 (faster) to 2.0 (slower), 1.0 native. It's a real model-internal length adjustment, not a post-stretch.
- seed - the reproducibility lever. Fix it whenever you're A/B testing anything else.
- postprocess_preset / postprocess_strength - optional built-in voice cleanup (
voice_clarity,clear_narration,deharsh,warm,normalize).offleaves the waveform untouched.
The optional emotion and sampling inputs let you wire in the emotion-control and sampling nodes; leave them unconnected and you get stable defaults and whatever emotion the reference carries.
Target duration, briefly
target_duration_mode is where beginners get lost, and the five options are genuinely different:
off- just useduration_factor.native- the recommended one: allocates your total seconds into the length regulator and synthesizes once, pauses included.natural- synthesizes, measures, then re-runs with a fitted 0.5–2.0 factor.pad/exact- post-process anaturalrun by padding silence or force-trimming to the exact sample.exactcan cut off tail consonants, so it's for hard subtitle slots only.
Installation and gotchas
Same pack install as everywhere else in this family: ComfyUI Manager (search IndexTTS 2.5 · T8star-Aix or the node id indextts25-t8), or clone the repo and pip install -r requirements.txt using ComfyUI's own Python. The ~5GB of weights go in ComfyUI/models/TTS/IndexTTS-2.5, downloaded via the pack's scripts/download_models.py - and you must restart ComfyUI afterward.
Where people get burned: transformers must stay <5 (the pack is verified against 4.52.1 and 4.57.6 - ComfyUI's bundled version is fine). Expect a first run to take a while: lazy weight load plus any torch_compile / BigVGAN kernel compile you've enabled. And remember TTS here is the cheap part of a pipeline - the expensive compute is the video that voice eventually drives.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | T8_INDEXTTS25_MODEL | — | |
| speaker_audio | AUDIO | — | |
| text | STRING | 欢迎使用 IndexTTS 2.5,来自 B 站:T8star-Aix。 | 可直接使用 <文字|读音>:中文 <行|XING2>、英文 CMU 音素、日语假名;批量规则建议连接“发音控制”节点。年份建议开启采样设置里的文本归一化;若环境报告显示后端不可用,可直接写“一九三九年”等口语形式。 |
| language | COMBO | ZH | 5 options: ZH, EN, JA, ES, AR |
| duration_factor | FLOAT | 1.000.5–2 | 控制目标声学长度,不等同于自然语气语速;建议 0.8–1.25,极端值可能拉长或失真。 |
| target_duration_mode | COMBO | off | natural/pad 不裁掉超长句;native/exact 会在最后精确裁剪,只适合必须严格对齐且确认台词能完整放入的场景。 |
| target_duration_seconds | FLOAT | 0.00–3600 | — |
| postprocess_preset | COMBO | off | 6 options: off, voice_clarity, clear_narration, deharsh, warm, normalize |
| postprocess_strength | FLOAT | 1.000–1 | — |
| seed | INT | 00–18446744073709550000 | — |
| quality_retry_count | INT | 00–3 | 0 为单次;1–3 会更换 seed 生成额外候选并自动选优,同时从“全部候选”输出供试听或单段替换。 |
| quality_asr_backend | COMBO | auto | 3 options: auto, openai_whisper, faster_whisper |
| quality_asr_model | COMBO | base | 5 options: tiny, base, small, medium, turbo |
| quality_asr_device | COMBO | auto | 3 options: auto, cuda, cpu |
| quality_threshold | FLOAT | 0.820–1 | — |
| emotionopt | T8_INDEXTTS25_EMOTION | 不连接时跟随音色参考。 | |
| samplingopt | T8_INDEXTTS25_SAMPLING | 不连接时使用稳定默认值。 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 生成音频 | AUDIO | — |
| 生成信息 | STRING | — |
| 全部候选音频 | AUDIO | — |