Load Dia Model
The node that drags a 1.6B TTS model into ComfyUI
- model
- STRING
Load Dia Model is the first node in any ComfyUI-Dia workflow, and usually the slowest. It's the node that pulls Nari Labs' Dia - a 1.6-billion-parameter text-to-speech model - from Hugging Face onto your machine. The first time you run it, plan for a real download and a long, quiet load into VRAM. Every run after that is faster, because the weights stay in the Hugging Face cache and just load from disk.
Dia itself is a dialogue model, not a generic TTS assistant: it generates realistic, emotionally-flavored English speech from a transcript and can be conditioned on a reference audio clip for voice and tone. It'll cough, laugh, and clear its throat if the text calls for it. That's the model this node fetches, plus the audio codec (DAC) Dia needs to turn generated tokens back into sound.
How it works
Under the hood, Load Dia Model calls the model's from_pretrained with the repo id you give it. That does three things:
- Downloads
config.jsonand the checkpoint (dia-v0_1.pth) from Hugging Face into the local cache. The.pthis the big one - a 1.6B-parameter model in fp32 is roughly 6 GB, so make sure you've got disk space and a working internet connection. - Loads the weights onto the device you picked.
- Fetches a separate DAC codec model (via
descript-audio-codec, thedacpackage), which is what decodes the model's audio tokens into a waveform you can hear.
"Auto" device resolution checks for CUDA first, then MPS (Apple Silicon), then falls back to CPU. On CPU it technically runs. It's just not a good time.
The inputs and outputs
Two inputs, both plain text fields:
- model_path - the Hugging Face repo id, defaulting to
nari-labs/Dia-1.6B. Leave it unless you've downloaded the weights somewhere specific or a newer repo exists. - device -
auto,cuda,cpu, ormps.autois right for almost everyone; hard-setcpuonly if you're deliberately avoiding the GPU.
The first output, model, is what you wire into Dia TTS. The second output is declared as a STRING, but here's the thing: the node's code only ever returns the model. That dangling second output is a quirk of this early pack - newer ComfyUI versions enforce that a node returns what it declares, so you may hit an "expected 2 outputs, got 1" style error. If you do, it's a pack bug, not your setup.
Installing
Same as the rest of the pack - via ComfyUI Manager (search "ComfyUI-Dia") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Yuan-ManX/ComfyUI-Dia.git
cd ComfyUI-Dia
pip install -r requirements.txt
The dependency list is worth a glance before you commit: torch, torchaudio, numpy, soundfile, pydantic, huggingface-hub, descript-audio-codec, and triton. Torch and torchaudio you almost certainly already have in ComfyUI's environment. descript-audio-codec is the new one and it's essential. triton, meanwhile, is listed in requirements.txt but never imported anywhere in the pack's code - it's a vestigial entry, and on Windows it's a notorious pip headache. If pip install triton fails, skip it. The node doesn't need it.
Common issues
- First run stalls - it's downloading ~6 GB of weights plus a DAC model. Check the terminal for progress; it's not hung, just hungry.
- Out of memory - a 1.6B model plus the codec adds up. This is a "has a GPU" tool. Community reports show it running on cards as small as 6 GB VRAM, but slowly.
- The output won't connect to Dia TTS - the model output is typed
NARIMODELwhile the TTS node declares aMODELinput. ComfyUI may refuse the connection; a type-conversion node is the workaround. It's a known rough edge.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | STRING | nari-labs/Dia-1.6B | — |
| device | STRING | auto | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | NARIMODEL | — |
| STRING | STRING | — |