Nodes/IndexTTS 2.5 · T8star-Aix/IndexTTS 2.5 语音生成 · T8star-Aix
ComfyUI Node

IndexTTS 2.5 语音生成 · T8star-Aix

Zero-shot voice cloning with IndexTTS 2.5

By T8mars·Created about a month ago·Updated 6 days ago· 53
IndexTTS 2.5 语音生成 · T8star-Aix
  • model
  • speaker_audio
  • emotion
  • sampling
  • 生成音频
  • 生成信息
  • 全部候选音频
text欢迎使用 IndexTTS 2.5,来自 B 站:T8star-Aix。
languageZH
duration_factor1.00
target_duration_modeoff
target_duration_seconds0.0
postprocess_presetoff
postprocess_strength1.00
seed0
quality_retry_count0
quality_asr_backendauto
quality_asr_modelbase
quality_asr_deviceauto
quality_threshold0.82

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 Audio respectively. 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). off leaves 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 use duration_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 a natural run by padding silence or force-trimming to the exact sample. exact can 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.

CategoryT8star-Aix/Audio/IndexTTS 2.5

Inputs (17)

NameTypeDefaultDescription
modelT8_INDEXTTS25_MODEL
speaker_audioAUDIO
textSTRING欢迎使用 IndexTTS 2.5,来自 B 站:T8star-Aix。可直接使用 <文字|读音>:中文 <行|XING2>、英文 CMU 音素、日语假名;批量规则建议连接“发音控制”节点。年份建议开启采样设置里的文本归一化;若环境报告显示后端不可用,可直接写“一九三九年”等口语形式。
languageCOMBOZH5 options: ZH, EN, JA, ES, AR
duration_factorFLOAT1.000.5–2控制目标声学长度,不等同于自然语气语速;建议 0.8–1.25,极端值可能拉长或失真。
target_duration_modeCOMBOoffnatural/pad 不裁掉超长句;native/exact 会在最后精确裁剪,只适合必须严格对齐且确认台词能完整放入的场景。
target_duration_secondsFLOAT0.00–3600
postprocess_presetCOMBOoff6 options: off, voice_clarity, clear_narration, deharsh, warm, normalize
postprocess_strengthFLOAT1.000–1
seedINT00–18446744073709550000
quality_retry_countINT00–30 为单次;1–3 会更换 seed 生成额外候选并自动选优,同时从“全部候选”输出供试听或单段替换。
quality_asr_backendCOMBOauto3 options: auto, openai_whisper, faster_whisper
quality_asr_modelCOMBObase5 options: tiny, base, small, medium, turbo
quality_asr_deviceCOMBOauto3 options: auto, cuda, cpu
quality_thresholdFLOAT0.820–1
emotionoptT8_INDEXTTS25_EMOTION不连接时跟随音色参考。
samplingoptT8_INDEXTTS25_SAMPLING不连接时使用稳定默认值。

Outputs (3)

NameTypeDescription
生成音频AUDIO
生成信息STRING
全部候选音频AUDIO