Nodes/ComfyUI-DialogueTTS/IrodoriTTS-v2 Model Loader
ComfyUI Node

IrodoriTTS-v2 Model Loader

The node that actually loads IrodoriTTS-v2 — and where 'model not found' lives

By kantan-kanto·Created 4 months ago·Updated 4 months ago· 0
IrodoriTTS-v2 Model Loader
    • irodori_model
    model_name
    model_device
    model_precision
    codec_device
    codec_precision
    enable_watermarkfalse

    IrodoriTTS-v2 is a Japanese zero-shot TTS model by Aratako, and this node is the front door to it inside ComfyUI. Every other node in the DialogueTTS/IrodoriTTS-v2 category - the Sampler, the Dialogue TTS node - wants the irodori_model this thing outputs. If your workflow says "no model found" or "IRODORI_V2_MODEL is missing," you either skipped this node or you haven't actually put the checkpoint on disk. Most of the time it's the second one.

    Here's the trap that catches everyone: the loader does not download the model for you. The README is blunt about it - "モデル本体の自動ダウンロードは行いません" (no auto-download of the main model). You have to grab the checkpoint yourself and drop it in ComfyUI/models/checkpoints/:

    cd ComfyUI/models/checkpoints
    # download Irodori-TTS-500M-v2 model.safetensors from
    # https://huggingface.co/Aratako/Irodori-TTS-500M-v2 and name it:
    # Irodori-TTS-500M-v2.safetensors
    

    Once it's there, the loader's model_name dropdown lists every file in your checkpoints folder, so you pick it from the list. Nothing gets downloaded at this step. The parts that do auto-download - and this is where the loader genuinely earns its keep - are the supporting weights: the codec (Aratako/Semantic-DACVAE-Japanese-32dim, about 410MB) and the tokenizer (llm-jp/llm-jp-3-150m, a few MB). They're pulled on first load. If you'd rather not let it phone home, drop the codec at ComfyUI/models/checkpoints/Semantic-DACVAE-Japanese-32dim-weights.pth (or in models/vae/) and it uses that instead.

    The inputs are where the "just load it" instinct and the "actually tune it" instinct split:

    • model_device / model_precision - where the 500M model runs and at what precision (fp32 or bf16). Note the source checks this: bf16 currently wants a CUDA device, so on CPU or MPS you're staying in fp32.
    • codec_device / codec_precision - the codec gets its own device and precision. This is a nice touch: you can run the model on your GPU and park the codec on CPU, or shave VRAM with a bf16 codec, without touching the main model.
    • enable_watermark (default off) - flips on the DACVAE decoder's inaudible watermark so generated clips carry a provenance marker. Leaving it off isn't just fine, it's marginally faster, because the code skips the watermark encode/decode path entirely.

    The runtime is cached by a key built from checkpoint, devices, and precision, so re-running the same combo doesn't reload the world each time.

    Install, for completeness, since this is the node you'll hit first:

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

    Or just search "ComfyUI-DialogueTTS" in ComfyUI Manager. The requirements.txt is deliberately lean - it installs dacvae (from Facebook Research's git), torchcodec, transformers<5, sentencepiece, and soundfile, and skips torch/torchaudio/safetensors on purpose so it doesn't clobber your existing ComfyUI environment. That's a good sign; a pack that tries to reinstall torch is the pack that breaks your install.

    One more gotcha while you're here: this pack is built on the newer ComfyUI extension API (comfy_api.latest), so it wants a reasonably current ComfyUI, not a 2024-era build. And if the README's mention of an old repo name (ComfyUI_IrodoriTTS-v2_Wrapper) matches a folder you already have, read the paths as that folder. New installs get the current name.

    Wire the irodori_model output into an IrodoriTTS-v2 Sampler for one line of text, or into IrodoriTTS-v2 Dialogue TTS for the two-character conversation node the pack was actually built around.

    CategoryDialogueTTS/IrodoriTTS-v2

    Inputs (6)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:
    model_deviceCOMBO1 options: cpu
    model_precisionCOMBO2 options: fp32, bf16
    codec_deviceCOMBO1 options: cpu
    codec_precisionCOMBO2 options: fp32, bf16
    enable_watermarkBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    irodori_modelIRODORI_V2_MODEL