DiaTTS Speakers Preview
Reuse a saved Dia voice pair without digging out the original clips
- prompt
- audio_s1
- audio_s2
What it's for
This node is the "load your saved cast" button for the Dia TTS pack, not a generator in its own right. It does one job: pick a voice pair you saved earlier, and hand it back to DiaTTSRun so you don't have to re-upload the same two reference clips every time you want another conversation.
Here's the workflow it's built for. First time out, you load two reference voice clips into DiaTTSRun (the audio_s1 / audio_s2 inputs), write the transcript of those clips in the prompt box, generate, and let it save the speaker pair. Next session, you drag DiaSpeakersPreview in instead of LoadAudio - pick the speaker from the dropdown, and out come the prompt, audio_s1 and audio_s2 that plug straight back into DiaTTSRun. It's the pack's own persistence layer, and it's the difference between treating voices as assets and re-finding audio files.
How it works
Mechanically it's simple, which is good. When DiaTTSRun saves a speaker with save_speakers on, it writes three files per speaker id: a .txt holding the transcript and two .wavs for speaker 1 and speaker 2. DiaSpeakersPreview scans for those .txt files, lists them in its speaker dropdown, and on selection reads all three back out. The outputs are exactly what DiaTTSRun wants to see: prompt (the transcript text) into its prompt input, and audio_s1 / audio_s2 into the two audio sockets. One wire each, done.
The one gotcha
The gotcha that will trip you up once: the dropdown and the save location are not the same folder in the current code. DiaTTSRun writes saved speakers to ComfyUI/models/TTS/speakers/dialogue_speakers/, but DiaSpeakersPreview builds its dropdown by scanning ComfyUI/models/TTS/Dia-1.6B/speakers/ - a different directory. So a speaker you just saved may not appear in the list, and if you hand-place files you'll want them in the right one. Before you assume the save failed, check both folders; moving the .txt + two .wavs into the other one is the fix. It's a small thing, and it'll probably get reconciled in a future version, but it's worth knowing on day one.
Install
Install is the same as the rest of the pack: ComfyUI Manager → search "ComfyUI_Dia", or
cd ComfyUI/custom_nodes
git clone https://github.com/billwuhao/ComfyUI_Dia.git
cd ComfyUI_Dia
pip install -r requirements.txt
The node itself only reads wavs, but the pack's other half needs the Dia-1.6B model downloaded before any of this is useful, so grab that while you're at it. It's a thin utility node - but if you're generating more than one conversation with the same voices, it's the difference between a reusable cast and a folder full of clip-hunting.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| speaker | COMBO | 0 options: |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| audio_s1 | AUDIO | — |
| audio_s2 | AUDIO | — |