Nodes/comfyui-indextts25-t8/IndexTTS 2.5 采样设置 · T8star-Aix
ComfyUI Node

IndexTTS 2.5 采样设置 · T8star-Aix

The sampling node where IndexTTS 2.5's knobs actually live

By T8mars·Created 14 days ago·Updated a day ago· 25
IndexTTS 2.5 采样设置 · T8star-Aix
    • 采样设置
    • 采样信息
    do_samplefalse
    temperature0.80
    top_p0.80
    top_k30
    num_beams3
    repetition_penalty10.0
    length_penalty0.00
    max_mel_tokens1500
    diffusion_steps25
    inference_cfg_rate0.70
    cfm_temperature1.00
    segmentation_modeauto
    max_text_tokens_per_segment120
    segment_silence_ms200
    pause_presetoff
    comma_pause_ms100
    sentence_pause_ms300
    paragraph_pause_ms600
    text_normalizationtrue

    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.

    CategoryT8star-Aix/Audio/IndexTTS 2.5

    Inputs (19)

    NameTypeDefaultDescription
    do_sampleBOOLEANfalse关闭时结果更稳定;开启后 temperature/top_p/top_k 生效。
    temperatureFLOAT0.800.1–2
    top_pFLOAT0.800.05–1
    top_kINT300–200
    num_beamsINT31–10
    repetition_penaltyFLOAT10.00.1–20
    length_penaltyFLOAT0.00-2–2
    max_mel_tokensINT1500256–4096
    diffusion_stepsINT255–100官方默认 25;更高通常更稳定但更慢,旁白可尝试 40–50。
    inference_cfg_rateFLOAT0.700–1.5提高后更贴近参考音色/音高;过高可能过度平滑。
    cfm_temperatureFLOAT1.000.1–1.5降低可减少抖动;稳定旁白可尝试 0.8。
    segmentation_modeCOMBOautoauto:EN/ES=60、AR=80、JA=100、ZH=120 Token;custom 使用下方数值。
    max_text_tokens_per_segmentINT12020–300
    segment_silence_msINT2000–3000
    pause_presetCOMBOoff显式 <pause=0.5> 或 <pause=500ms> 在任意预设下都有效。
    comma_pause_msINT1000–5000
    sentence_pause_msINT3000–5000
    paragraph_pause_msINT6000–5000
    text_normalizationBOOLEANtrue

    Outputs (2)

    NameTypeDescription
    采样设置T8_INDEXTTS25_SAMPLING
    采样信息STRING