Nodes/ComfyUI-DialogueTTS/IrodoriTTS-v2 Advanced CFG
ComfyUI Node

IrodoriTTS-v2 Advanced CFG

The optional CFG override nobody needs — until they do

By kantan-kanto·Created 4 months ago·Updated 4 months ago· 0
IrodoriTTS-v2 Advanced CFG
    • cfg_config
    cfg_scale_override-1.0
    cfg_min_t0.50
    cfg_max_t1.00

    IrodoriTTS-v2 Advanced CFG is a config-bundle node: it doesn't generate anything, it just builds a small cfg_config object that the IrodoriTTS-v2 Sampler and IrodoriTTS-v2 Dialogue TTS nodes can accept as an optional input. If you've never seen a use for it, that's correct - most people never wire it in. It exists for the specific case where the Sampler's built-in cfg_scale_text / cfg_scale_speaker sliders aren't enough control.

    What it lets you do is two things:

    • cfg_scale_override (default -1, tooltip: "Set to > 0 to override") - replaces the combined CFG scale with a single number you set here, overriding whatever the Sampler or Dialogue node has in its own widgets. The sampler still passes its two separate text/speaker scales through; this is a third, overriding CFG scale that takes precedence.
    • cfg_min_t (default 0.5) and cfg_max_t (default 1.0) - the denoising-time window in which CFG is applied. t runs from 0 to 1 across the sampling steps; these two set where guidance is active. The defaults already bracket the whole latter half of the schedule, so you're really tuning this when you want guidance off early or want it to drop off before the very end.

    Mechanically, that's all it is: three floats packed into a config dict that the sampling request unpacks into cfg_scale, cfg_min_t, and cfg_max_t. No audio is touched here. It's the same pattern as the pack's Rescale Config node - a small object that rides along into the sampler.

    When would you actually reach for it? The realistic scenario is artifact hunting. If you're getting text that's stable but the voice sounds overdriven, or the tail end of a clip is wobbling, constraining the guidance window (say cfg_min_t 0.6–0.7, cfg_max_t 1.0) can clean it up without touching the other scales. And cfg_scale_override is handy when you want to A/B a single CFG value across a batch without editing three widgets per run.

    If you're not in artifact-hunting mode, ignore this node entirely. Wire cfg_config from it into the Sampler's or Dialogue node's cfg_config input only when you've decided the defaults aren't doing it - the tools to tune a voice properly are the reference clip and cfg_scale_speaker, and you'll get more mileage from those first.

    Installing it is installing the pack, once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kantan-kanto/ComfyUI-DialogueTTS
    pip install -r ComfyUI-DialogueTTS/requirements.txt
    

    then restart ComfyUI (or find "ComfyUI-DialogueTTS" in ComfyUI Manager). As with every node in this pack, the main IrodoriTTS-v2 checkpoint won't download itself - put Irodori-TTS-500M-v2.safetensors in models/checkpoints/ - while the codec and tokenizer grab themselves on first run. Keep in mind this pack runs on the newer ComfyUI extension API, so it wants a current ComfyUI build, and the transformers<5 pin in requirements is the thing to check first if another pack's transformers version collides on startup.

    CategoryDialogueTTS/IrodoriTTS-v2

    Inputs (3)

    NameTypeDefaultDescription
    cfg_scale_overrideFLOAT-1.0-1–10Set to > 0 to override
    cfg_min_tFLOAT0.500–1
    cfg_max_tFLOAT1.000–1

    Outputs (1)

    NameTypeDescription
    cfg_configIRODORI_V2_CFG_CONFIG