IndexTTS 2.5 采样设置 · T8star-Aix
The sampling node where IndexTTS 2.5's knobs actually live
- 采样设置
- 采样信息
The Generate node stays clean on purpose: all the fiddly stuff - determinism, sampling, text segmentation, pauses, normalization - gets packed into this one config node, and you attach it to Generate's optional sampling input. Don't attach it and Generate uses "stable defaults," which for most people is the right call. This node is for when you actually want to steer things.
What's in it
Four groups, roughly:
Sampling and determinism. do_sample off (default) is the stable, boring, usually-good setting. Flip it on and temperature (0.8), top_p (0.8), and top_k (30) take effect for more varied delivery - and num_beams, repetition_penalty, length_penalty are there too. If you're hunting for "why is this node giving me a different result every run," it's probably not this - check the Generate seed first.
CFM diffusion (the audio-quality knobs). diffusion_steps defaults to the official 25; 40–50 is more stable but roughly scales runtime. inference_cfg_rate (0.7) pulls the output closer to the reference voice/pitch when raised, too high and it over-smooths. cfm_temperature (1.0) - drop to 0.8 for less jitter. The README's advice is the right one: change one of these at a time with a fixed seed and A/B the results. Example workflow 19_cfm_advanced.json uses 40/0.85/0.8 as an example, not a new default.
Segmentation. Long text gets chunked before the model sees it, and auto picks per-language token caps (EN/ES 60, AR 80, JA 100, ZH 120). Switch to custom to set max_text_tokens_per_segment yourself, and segment_silence_ms controls the gap between chunks.
Pauses. pause_preset (off / natural / narration / dialogue / custom) plus comma_pause_ms, sentence_pause_ms, paragraph_pause_ms for fine control. The pleasant surprise: explicit <pause=0.5> or <pause=500ms> markup in your text works under any preset - that's the one pause trick you'll actually remember.
Text normalization. text_normalization on (default) handles Chinese numerals, dates, and friends before synthesis. It's an optional dependency on some platforms (wetext on Windows); if it's missing, the node falls back to your raw text rather than failing - the README suggests writing numbers in spoken form in that case.
Where people get burned
The pause presets have a real tradeoff that isn't obvious from the dropdown. Punctuation presets split sentences into separate speech blocks, which means more inference passes - the README says it plainly: more precise than just raising inter-segment silence, but slower. And on the GPT side, not every sampling combination is expressible on the accelerated path; when the node hits an incompatible combo it silently uses the normal GPT path instead of changing your semantics. That's a deliberate design call, not a bug - read the sampling_info string output if you want to confirm which path ran.
Installation
Nothing special here. It ships in the pack, so it arrives with the ComfyUI Manager install (search IndexTTS 2.5 · T8star-Aix) or a git clone of the repo. It's a pure config node - no model load, no extra deps, no VRAM of its own. The only real prerequisite is the same one as everywhere else in this pack: transformers < 5.
The output is T8_INDEXTTS25_SAMPLING, which you connect to Generate (or the text preview node, if you want to see segmentation decisions before committing GPU time). The sampling_info string is a genuinely useful readout of what got applied, so don't treat it as decoration.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| do_sample | BOOLEAN | false | 关闭时结果更稳定;开启后 temperature/top_p/top_k 生效。 |
| temperature | FLOAT | 0.800.1–2 | — |
| top_p | FLOAT | 0.800.05–1 | — |
| top_k | INT | 300–200 | — |
| num_beams | INT | 31–10 | — |
| repetition_penalty | FLOAT | 10.00.1–20 | — |
| length_penalty | FLOAT | 0.00-2–2 | — |
| max_mel_tokens | INT | 1500256–4096 | — |
| diffusion_steps | INT | 255–100 | 官方默认 25;更高通常更稳定但更慢,旁白可尝试 40–50。 |
| inference_cfg_rate | FLOAT | 0.700–1.5 | 提高后更贴近参考音色/音高;过高可能过度平滑。 |
| cfm_temperature | FLOAT | 1.000.1–1.5 | 降低可减少抖动;稳定旁白可尝试 0.8。 |
| segmentation_mode | COMBO | auto | auto:EN/ES=60、AR=80、JA=100、ZH=120 Token;custom 使用下方数值。 |
| max_text_tokens_per_segment | INT | 12020–300 | — |
| segment_silence_ms | INT | 2000–3000 | — |
| pause_preset | COMBO | off | 显式 <pause=0.5> 或 <pause=500ms> 在任意预设下都有效。 |
| comma_pause_ms | INT | 1000–5000 | — |
| sentence_pause_ms | INT | 3000–5000 | — |
| paragraph_pause_ms | INT | 6000–5000 | — |
| text_normalization | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 采样设置 | T8_INDEXTTS25_SAMPLING | — |
| 采样信息 | STRING | — |