Nodes/ComfyUI-KokoroTTS/Kokoro TTS 🔊
ComfyUI Node

Kokoro TTS 🔊

Give your ComfyUI videos a voice with the 82M Kokoro TTS node

By 1038lab·Created 2 years ago·Updated about a year ago· 13
Kokoro TTS 🔊
    • AUDIO
    ◄text—►
    â—„voiceAmerican Female (Heart)â–º
    â—„speed1.0â–º
    â—„volume1.0â–º

    Your silent video wants to talk

    Finished an AnimateDiff or Wan clip and wished it could narrate itself? This is the node for that. Kokoro TTS drops hexgrad's Kokoro-82M text-to-speech model straight into a ComfyUI graph - text in, audio out, no API key, no account, no network call at inference time. The name is the whole pitch: Kokoro is the lightweight corner of open TTS, the model the community called "the previous open source king" before Chatterbox raised the quality ceiling. At 82M parameters it's an order of magnitude smaller than the big TTS models, which is exactly why it runs in real time and is perfectly happy on CPU.

    So when you need a pleasant generic voice for narration, character lines, or a long-form readout and you don't need to clone anyone specific, this is the one you'd reach for. Need a cloned or emotionally expressive voice? Go somewhere else - base Kokoro can't clone, by design. That's not a flaw in this node; it's a boundary you should know before you start.

    How it works

    Under the hood it's a thin wrapper around Kokoro's KPipeline. The architecture is StyleTTS2-derived with an ISTFTNet vocoder instead of a diffusion loop - that's the secret to the speed. The first time you run it, the node downloads kokoro-v1_0.pth plus a config into ComfyUI/models/TTS/KokoroTTS/ from the pack author's Hugging Face repo, then fetches the specific voice file you picked (each voice is a small .pt file downloaded on demand). The README tells you to download models manually; the code auto-downloads them for you, so skip that step.

    Output is a standard AUDIO tensor (waveform + 24 kHz sample rate), so it plugs straight into ComfyUI's audio stack - into a Save Audio node to write a file, or onward into a video assembly workflow.

    The inputs that matter

    Four inputs, and honestly only two you'll touch:

    • text - your line, multiline textbox. The obvious one.
    • voice - a dropdown of 50 preset voices, defaulting to "American Female (Heart)". The labels are readable English ("British Female (Emma)", "Japanese Female (Nezumi)"), and the language is baked into the choice: American and British English, then Spanish, French, Hindi, Italian, Japanese, Portuguese and Chinese. Pick by ear; running it once is your preview.
    • speed - 0.5 to 2.0, default 1.0. Slower reads are easier to cut around.
    • volume - 0.1 to 2.0, default 1.0.

    Installing it

    Search "ComfyUI-KokoroTTS" in ComfyUI Manager, or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/1038lab/ComfyUI-KokoroTTS.git
    cd ComfyUI-KokoroTTS
    ./ComfyUI/python_embeded/python -m pip install -r requirements.txt
    

    Then restart ComfyUI. Dependencies are kokoro, torch/torchaudio, soundfile and huggingface_hub - nothing exotic, but the torch pin is a classic conflict source if you run other audio packs.

    The catch is languages. English works out of the box. Chinese and Japanese need misaki - the shipped requirements file already has Chinese enabled, but Japanese is commented out, so uncomment it and re-pip if you want those voices. The European voices (French, Spanish, Hindi, Italian, Portuguese) expect espeak-ng installed as a system package: sudo apt-get install espeak-ng on Linux, a download on Windows, brew install espeak on macOS. Pick a Japanese voice without misaki and the node raises a clear error telling you exactly what to install; the espeak-ng case only warns and degrades pronunciation.

    When it goes quiet

    Here's the gotcha that'll cost you an hour: if anything fails mid-run, the node doesn't crash - it returns a silent one-second audio clip. So "silent output" almost always means an error got swallowed, and the real message is in the ComfyUI console under Kokoro TTS Error:. Check there first. For batch runs (many text files to speech), the pain people actually hit is filename handling in the frontend's Save Audio nodes, not the TTS itself. And note the pack is GPL-3.0 - fine for personal use, but read the terms before embedding it in a shipped product. It's also from the same AILab/1038lab behind the much bigger ComfyUI-RMBG pack - reputation context worth filing away, not a reason to skip this one.

    Category🧪AILab/🔊Audio

    Inputs (4)

    NameTypeDefaultDescription
    textSTRING—
    voiceCOMBOAmerican Female (Heart)Select a voice style
    speedoptFLOAT1.00.5–2Speech rate (0.5 to 2.0)
    volumeoptFLOAT1.00.1–2Audio volume

    Outputs (1)

    NameTypeDescription
    AUDIOAUDIO—