Load TTS model
The one-input node that drags a 1.6B TTS model onto your disk
- TTSMODEL
DiaModelLoader (displayed as "Load TTS model") is the unglamorous half of the rkfg/ComfyUI-Dia_tts pack, and it's the half you'll probably never look at twice. It exists for one reason: every pack that wraps a serious model needs someone to download the weights, hold them in memory, and hand them to the thing that actually generates. That's this node. One input, one output, and a surprisingly heavy first click.
What it actually does
It takes a HuggingFace repo ID and calls Dia.from_pretrained() on it, loading the weights in bfloat16. Here's the sneaky part: it also pulls down the Descript DAC codec that Dia needs to turn its predicted audio tokens back into sound. You never see that second model - it's bundled inside the TTSMODEL object it outputs. The 1.6B checkpoint is a few gigabytes, so the first time you run it the node looks frozen while it's actually quietly downloading from HuggingFace. It's not broken; it's just hauling.
The one input that matters
- model_name - a plain string holding the HF repo ID, defaulting to
nari-labs/Dia-1.6B. Because it's just a string, you can point it at any compatible Dia checkpoint published to the Hub - community fine-tunes and quants included, if and when they land.
Output is a single TTSMODEL, which you wire straight into the model input on DiaSampler. That's the whole job. A loader with nothing to feed is a paperweight, so you always use this in a pair: Load → Sample → save audio.
Installing it
Same as the sampler, because it's the same pack. Use ComfyUI Manager and search "Dia TTS" (pack title: "Dia realistic TTS"), or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/rkfg/ComfyUI-Dia_tts
# restart ComfyUI
The dependencies are torchaudio and descript-audio-codec, both in the pack's requirements.txt and installed with it. No HuggingFace token needed for the default public model - you just need network access on first load.
Where people get burned
- First load takes a while. The node loads both the Dia weights and the DAC codec, so give it a minute before you assume it's stuck. A "Failed to load DAC model" error (that's the literal message in the code) usually means the DAC download failed partway - retry and it'll pick up.
- It wants a bf16-capable GPU. The loader hardcodes bfloat16, which is fine on modern cards but a fight on older ones.
- It unloads nothing by itself - but the sampler that consumes its output will happily clear your VRAM of other models before running, so don't be surprised when that happens mid-workflow.
This node is about as boring as ComfyUI gets, and that's a compliment. It downloads, loads, hands off, and stays out of the way - leaving the fun stuff to the sampler.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | STRING | nari-labs/Dia-1.6B | HF model name |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| TTSMODEL | TTSMODEL | — |