Model reference · open weights
Dia2 is an open-weight audio or speech model from nari-labs. Dia2-2B (FP32) weighs 3.8 GB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the nari-labs/Dia2-2B model card, 2026-10-01
What it is
| Released by | nari-labs |
|---|---|
| Released | 2025-11-15 |
| Parameters | 1.9B |
| VRAM | 3.8 GB for the weights |
What it runs on
| Card | One stream | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
Builds
From the model card
Dia2 is a streaming dialogue TTS model created by Nari Labs.
The model does not need the entire text to produce the audio, and can start generating as the first few words are given as input. You can condition the output on audio, enabling natural conversations in realtime.
We provide model checkpoints (1B, 2B) and inference code to accelerate research. The model only supports up to 2 minutes of generation in English.
Requirement — install uv and use CUDA 12.8+ drivers. All commands below run through
uv run …as a rule.
uv sync
input.txt using [S1] / [S2] speaker tags.uv run -m dia2.cli \
--hf nari-labs/Dia2-2B \
--input input.txt \
--cfg 2.0 --temperature 0.8 \
--cuda-graph --verbose \
output.wav
The first run downloads weights/tokenizer/Mimi. The CLI auto-selects CUDA when available (otherwise CPU) and defaults to bfloat16 precision—override with --device / --dtype if needed.uv run -m dia2.cli \
--hf nari-labs/Dia2-2B \
--input input.txt \
--prefix-speaker-1 prefix_speaker1.wav \
--prefix-speaker-2 prefix_speaker2.wav \
--cuda-graph --verbose \
output_conditioned.wav
Condition the generation on previous conversational context in order to generate natural output for your speech-to-speech system. For example, place the voice of your assistant as prefix speaker 1, place user's audio input as prefix speaker 2, and generate the response to user's input.uv run gradio_app.py
from dia2 import Dia2, GenerationConfig, SamplingConfig
dia = Dia2.from_repo("nari-labs/Dia2-2B", device="cuda", dtype="bfloat16")
config = GenerationConfig(
cfg_scale=2.0,
audio=SamplingConfig(temperature=0.8, top_k=50),
use_cuda_graph=True,
)
result = dia.generate("[S1] Hello Dia2!", config=config, output_wav="hello.wav", verbose=True)
Generation runs until the runtime config's max_context_steps (1500, 2 minutes)
or until EOS is detected. GenerationResult includes audio tokens, waveform tensor,
and word timestamps relative to Mimi’s ~12.5 Hz frame rate.
| Variant | Repo |
|---|---|
| Dia2-1B | nari-labs/Dia2-1B |
| Dia2-2B | nari-labs/Dia2-2B |
Licensed under Apache 2.0. All third-party assets (Kyutai Mimi codec, etc.) retain their original licenses.
This project offers a high-fidelity speech generation model intended for research and educational use. The following uses are strictly forbidden:
By using this model, you agree to uphold relevant legal standards and ethical responsibilities. We are not responsible for any misuse and firmly oppose any unethical usage of this technology.
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
How it works