Nodes/ComfyUI OpenVoice/Open Voice TTS
ComfyUI Node

Open Voice TTS

Clone a voice from one short clip, no training, no API key

By hay86·Created 2 years ago·Updated 2 years ago· 20
Open Voice TTS
    • AUDIO
    • SAMPLE_RATE
    text
    lang
    style
    speed1.0
    ref_voice

    Type text, get a voice that sounds like your reference clip

    Drop in a 10-second recording of someone talking, type a line, and out comes that text spoken in their voice. No training, no LoRA-style finetuning, no API key - the whole thing runs locally. That's what Open Voice TTS gives you, and for a voice-cloning node inside ComfyUI it's remarkably close to plug-and-play.

    ComfyUI grew up as an image and video tool, but the audio flank has been filling in, mostly so people can dub talking-head and lip-sync workflows without leaving the graph. This node is one route: it's hay86's unofficial port of MyShell's OpenVoice, the zero-shot instant voice cloning project, and the author's own example workflow feeds the audio straight into ComfyUI's built-in ACE_AudioSave / ACE_AudioPlay nodes so you can write the WAV or listen to it right away.

    How it works

    OpenVoice is a two-stage pipeline, and it shows in the code. First a base speaker TTS model speaks your text in a neutral voice, with the style you pick (more on that in a second). Then a tone color converter takes the timbre of your reference clip - extracted as a speaker embedding by a VAD-based extractor - and paints it onto the generated speech. That's the whole trick behind "instant" cloning: it transfers the vocal tone, not the actual content.

    Two honest caveats from OpenVoice's own docs. It clones tone color, not accent or emotion - the accent comes from the base model, the emotion from the style you choose, so don't expect your reference's personality to bleed through. And every output carries a hidden @MyShell watermark, which is why you can't use it to fool anyone who checks.

    The inputs that matter

    Most of the node is a single dropdown and a text box:

    • text - what gets spoken. Multiline, so paragraphs are fine.
    • ref_voice - the dropdown of audio files sitting in your ComfyUI/input folder (wav, mp3, or flac). This is your cloning source, and it matters more than any other setting: clean, one speaker, ideally 10-30 seconds.
    • lang - English or Chinese. The README's one hard rule: Chinese only supports the default style.
    • style - default, whispering, cheerful, terrified, angry, sad, friendly. This is OpenVoice's party trick - clone a calm voice and still get a terrified take.
    • speed - a float, default 1.0. The slider's 0–10 range is more generous than you'll ever need.

    Outputs are just AUDIO (a list of samples) and SAMPLE_RATE (an INT, typically 22050). The AUDIO output is typed as *, so anything that accepts raw samples will take it.

    Installing it

    Easiest path is ComfyUI Manager - search openvoice and let it handle the rest. Or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/hay86/ComfyUI_OpenVoice
    sudo apt install ffmpeg
    pip install -r requirements.txt
    

    Then restart ComfyUI. ffmpeg is not optional - the pack's audio handling depends on it. The requirements list is heavy-ish (librosa, faster-whisper, whisper-timestamped, pydub and friends) but nothing exotic. Models are the pleasant surprise: they auto-download from Hugging Face on first run into models/openovice - a folder name that's literally misspelled in the source, and yes, you should not fix it, the node looks for that exact path. The download is sizeable, but it's one-time.

    Common issues

    • The reference clip is everything. Background noise, two speakers, or a 2-second snippet all tank the result. Get a clean mono clip, ideally 10+ seconds.
    • New files don't appear in the dropdown. It's built by scanning input/ when the node loads, so drop files in before you add the node - or re-add it.
    • First run feels frozen. The model download + VAD setup has no progress bar you'll notice; give it time.
    • Silero VAD fails on machines that can't reach GitHub - it downloads the VAD model from GitHub at runtime. OpenVoice's own FAQ has the manual workaround.
    • If you run into weird behavior, the pack also supports OpenVoice V2 (that path needs MeloTTS, mecab, and unidic installed separately - skip it unless you need more languages).

    The honest take

    OpenVoice is 2023-era tech and the field has moved - these days people reach for Chatterbox, F5-TTS, or bundled suites like TTS-Audio-Suite for the heavy lifting. But this node is still the zero-friction option: no key, no training, style control baked in, and it just runs. For a quick dub or a talking-head experiment, that's worth a lot.

    CategoryOpenVoice

    Inputs (5)

    NameTypeDefaultDescription
    textSTRING
    langCOMBO2 options: English, Chinese
    styleCOMBO7 options: default, whispering, cheerful, terrified, angry, sad, +1
    speedFLOAT1.00–10
    ref_voiceCOMBO0 options:

    Outputs (2)

    NameTypeDescription
    AUDIO*
    SAMPLE_RATEINT