IrodoriTTS-v2 Model Loader
The node that actually loads IrodoriTTS-v2 — and where 'model not found' lives
- irodori_model
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 (fp32orbf16). 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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: | |
| model_device | COMBO | 1 options: cpu | |
| model_precision | COMBO | 2 options: fp32, bf16 | |
| codec_device | COMBO | 1 options: cpu | |
| codec_precision | COMBO | 2 options: fp32, bf16 | |
| enable_watermark | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| irodori_model | IRODORI_V2_MODEL | — |