Nodes/ComfyUI-DiaTTS/Dia 1.6b Loader
ComfyUI Node

Dia 1.6b Loader

The Loader That Keeps Dia TTS Fast — and Where the Model File Hides

By BobRandomNumber·Created about a year ago·Updated 7 months ago· 7
Dia 1.6b Loader
    • dia_model
    ckpt_name

    Every ComfyUI audio workflow starts with the boring half: the loader. DiaLoader is the boring half of the ComfyUI-DiaTTS pack, and it's about as simple as a loader gets - one dropdown, one output, no settings to mis-tune. But get it right and it decides whether your Dia TTS runs take ten seconds to start or three minutes.

    What it is. DiaLoader (display name "Dia 1.6b Loader") loads the Nari-Labs Dia 1.6B text-to-speech model from a local .safetensors file and prepares it for the DiaGenerate node. It does three jobs under the hood: instantiates the Dia model with the hardcoded config for the 1.6B architecture, loads your weights file straight onto the GPU, and pulls in the Descript Audio Codec (DAC) that turns the model's code tokens into actual sound. There's no other way to get a DIA_MODEL - this node is the front door, and DiaGenerate will not run without it.

    How it works. Under the hood it's more thoughtful than it looks. The model weights load directly to the CUDA device to save memory, compute stays in float32 (Dia is currently configured for float32, which is a big reason this thing is VRAM-hungry), and the loaded object gets cached in a global dict keyed by model file, dtype, and device. Run the same checkpoint again and the loader skips the reload entirely - that's the speedup. Switch to a different .safetensors file and it clears the cache so you don't end up with two copies of the model fighting over VRAM. It also handles the edge cases: if a cached model is on the wrong device it moves it, and if the DAC somehow vanished it reloads that too.

    The one input. ckpt_name is a dropdown that lists every .safetensors file it finds in your diffusion_models folder - yes, the same folder that holds your UNet/checkpoint files for image models. That's intentional, if slightly weird: the node just reads that folder via ComfyUI's standard path system, so a TTS model lives beside your image checkpoints. Drop the Dia weights in there, ideally renamed to something like Dia-1.6B.safetensors, and it'll show up in the list. If the dropdown only offers "None", no safetensors file was found - that's the thing to check first when the node errors.

    Output: a single dia_model output, typed DIA_MODEL, which feeds the matching dia_model input on DiaGenerate. Nothing else wires into it, and nothing else wires out.

    Install. The pack comes in via ComfyUI Manager (search "ComfyUI-DiaTTS") or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/BobRandomNumber/ComfyUI-DiaTTS.git
    cd ComfyUI-DiaTTS
    pip install -r requirements.txt
    

    That requirements.txt is one dependency: descript-audio-codec. The Dia-1.6B weights come separately from the nari-labs/Dia-1.6B page on Hugging Face - download model.safetensors into ComfyUI/models/diffusion_models/. The first time you run, the loader downloads the DAC codec model automatically; later runs skip it.

    Gotchas. This pack hard-requires CUDA - no GPU, no dice, it raises immediately. And the float32 compute means it eats roughly 10 GB VRAM in real-world use, so don't be surprised if it crowds out other models in the same workflow. The one dependency conflict to know about: descript-audio-codec pins a specific protobuf range, and pip occasionally resolves a very old 3.19.6 that breaks unrelated nodes (a clean install should land on 4.25.8). If other nodes start throwing protobuf errors after installing this pack, that's your culprit - fix it in the environment, not the workflow.

    Categoryaudio/DiaTTS

    Inputs (1)

    NameTypeDefaultDescription
    ckpt_nameCOMBO1 options: None

    Outputs (1)

    NameTypeDescription
    dia_modelDIA_MODEL