Nodes/ComfyUI_CSM/Speakers Preview
ComfyUI Node

Speakers Preview

Save a voice once, bring it back forever

By billwuhao·Created about a year ago·Updated about a year ago· 7
Speakers Preview
    • prompt
    • audio_s1
    • audio_s2
    speaker

    Speakers Preview is the pack's "voice library" node. It doesn't generate anything - it reads a previously saved speaker pair from disk and hands you back exactly the three things you'd need to rebuild that conversation: the reference prompt, and the two reference audio clips. In other words, it's the other half of the save button on CSM Dialog Run.

    What it does

    When CSM Dialog Run runs with save_speakers on, it writes your two reference clips and the prompt into ComfyUI/models/TTS/speakers/dialogue_speakers/ as <id>_1.wav, <id>_2.wav, and <id>.txt (default id A_and_B). Speakers Preview simply reads one of those saved sets and outputs:

    • prompt - the [S1]/[S2] reference dialog that was saved with the voices.
    • audio_s1 / audio_s2 - the two reference clips, as AUDIO.

    The intended loop is: run CSM Dialog Run once with your cloned voices, save them, then in any future workflow drop in Speakers Preview, pick the pair from the dropdown, and wire prompt + audio_s1 + audio_s2 straight into a fresh CSM Dialog Run. You get the same voices back without hunting down the original audio files or re-typing the prompt. That's the whole point - persist voices, reuse them, don't re-clone.

    The one real gotcha

    The speaker dropdown is populated once, at ComfyUI startup, by scanning that speakers directory. So if you save a new speaker pair mid-session, it won't show up in the dropdown until you restart ComfyUI (or at minimum reload the node). You'll see the empty dropdown in some UIs right after install precisely because nothing's been saved yet - that's expected, not a bug. Save your first pair with CSM Dialog Run, restart, and it appears. It's a small annoyance that catches basically everyone once.

    Also worth knowing: it's a lookup by directory listing, not a database. Files get matched by name - <id>.txt plus the two wavs must all exist, or the node errors when it tries to load a missing _1.wav or _2.wav. If you move or delete files behind its back, that's on you.

    Install

    Same pack, same install - this isn't a separate download:

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

    Or install via ComfyUI Manager by searching ComfyUI_CSM. Either way, the node appears under 🎤MW/MW-CSM as Speakers Preview and needs no models of its own - all the heavy lifting lives in CSM Dialog Run.

    Honest take: as a standalone node it's about as simple as it gets, and that's fine. The moment you've built one workflow with cloned voices you care about, this is the node that stops you from re-recording reference clips or re-saving the same pair under new names. It's the boring, dependable half of the pair.

    Category🎤MW/MW-CSM

    Inputs (1)

    NameTypeDefaultDescription
    speakerCOMBO0 options:

    Outputs (3)

    NameTypeDescription
    promptSTRING
    audio_s1AUDIO
    audio_s2AUDIO