Nodes/ComfyUI-Geeky-Kokoro-TTS/๐Ÿ”Š Geeky Kokoro TTS (2025)
ComfyUI Node

๐Ÿ”Š Geeky Kokoro TTS (2025)

Kokoro TTS in ComfyUI without the API key circus

By GeekyGhostยทCreated about a year agoยทUpdated 5 months agoยท 55
๐Ÿ”Š Geeky Kokoro TTS (2025)
    • audio
    • text_processed
    โ—„textWelcome to Geeky Kokoro TTS with complete voice support across 9 languages and 54+ voices!โ–บ
    โ—„voice๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Heart โค๏ธโ–บ
    โ—„speed1.0โ–บ
    โ—„use_gpufalseโ–บ
    โ—„enable_blendingfalseโ–บ
    โ—„second_voice๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Heart โค๏ธโ–บ
    โ—„blend_ratio0.5โ–บ

    If you've been piecing together ComfyUI video with a separately-invoked TTS, this is the node that kills half the glue code. ๐Ÿ”Š Geeky Kokoro TTS (2025) runs the Kokoro-82M model - a small, surprisingly good neural TTS - fully locally inside ComfyUI. No API, no key, no "free tier exhausted" popup. Just text in, an AUDIO tensor out. For an 82-million-parameter model it punches well above its weight; it's the same model behind a lot of the "why is this TTS so good for its size" posts on r/comfyui, and at ~2GB of VRAM it'll run on hardware that chokes on image models.

    What it actually is

    Kokoro-82M (v0.19) is a decoder-only model built on StyleTTS 2 with an ISTFTNet vocoder, outputting 24kHz mono audio. The node is a full wrapper: it pulls the model from hexgrad/Kokoro-82M on Hugging Face automatically on first run (no manual model download, despite the models/place_models_here.txt folder), then hands your text to per-language KPipelines that handle phonemization (the g2p step - this is where espeak-ng comes in), synthesis, and reassembly.

    Long text gets chunked into ~350-character pieces that respect sentence and paragraph boundaries, synthesized in order, and stitched back with ~150ms pauses. If you've ever had a TTS mangle an audiobook paragraph into run-on garbage, you'll appreciate that this one keeps structure.

    The inputs that matter

    You get a multiline text, a voice dropdown, speed (0.5โ€“2.0x), and a use_gpu toggle. That's the whole core. Two things trip people up:

    • The dropdown shows fewer voices than the README advertises. The author claims 54+ across 9 languages, but the node only lists voices whose model files actually loaded. That's why your menu shows ~41 - and why the Japanese voices are missing unless you've built the custom wheel the README warns about. Don't chase missing entries; pick from what's there.
    • use_gpu defaults to whatever the node detects. For short text, CPU is often just as fast, so don't treat the toggle as mandatory.

    Beyond the core: enable_blending + second_voice + blend_ratio (0.0โ€“1.0) mix two voices. The mechanism is neat - the node blends the voices' reference embeddings and runs the pipeline against the interpolated embedding, so it's a true voice blend, not two clips crossfaded. Same-language pairs sound best; the README's Heart+Bella at 0.6 is a good starting point.

    Outputs are audio (an AUDIO tensor - wire it into a preview or save node) and text_processed, the cleaned/chunked text as a string if you want to display or inspect what was actually spoken.

    Installing it

    ComfyUI Manager: search "Geeky Kokoro TTS" and hit install, or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS
    cd ComfyUI-Geeky-Kokoro-TTS
    pip install -r requirements.txt
    

    Then restart ComfyUI. The requirements pull kokoro>=0.9.4, librosa, scipy, soundfile, and friends - a chunky install, so don't be surprised if it takes a minute. Install espeak-ng for best phoneme handling (sudo apt install espeak-ng, brew install espeak-ng, or the Windows release), though English works without it. Note the head-scratcher: the README title says Python 3.13 doesn't work while the badge says it's supported - treat 3.12 as the tested target.

    Troubleshooting

    • "Kokoro import error" โ†’ pip install --upgrade "kokoro>=0.9.4".
    • Voice not loading โ†’ restart ComfyUI fully; pip install --force-reinstall kokoro if it persists.
    • GPU OOM on long text โ†’ flip use_gpu off; CPU handles long reads fine, just slower.
    • Distorted output โ†’ check you're not clipping before it ever reaches an effects node; the TTS node itself is clean.

    Where the README is honest: Japanese needs a custom wheel, and the advanced voice node is still "under construction." For plain, local, good-sounding narration this is the node to reach for.

    Categoryaudio

    Inputs (7)

    NameTypeDefaultDescription
    textSTRINGWelcome to Geeky Kokoro TTS with complete voice support across 9 languages and 54+ voices!โ€”
    voiceCOMBO๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Heart โค๏ธ41 options: ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Heart โค๏ธ, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Bella ๐Ÿ”ฅ, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Nicole ๐ŸŽง, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Aoede ๐ŸŽต, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Kore, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Sarah, +35
    speedFLOAT1.00.5โ€“2โ€”
    use_gpuBOOLEANfalseโ€”
    enable_blendingoptBOOLEANfalseโ€”
    second_voiceoptCOMBO๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Heart โค๏ธ41 options: ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Heart โค๏ธ, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Bella ๐Ÿ”ฅ, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Nicole ๐ŸŽง, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Aoede ๐ŸŽต, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Kore, ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿšบ Sarah, +35
    blend_ratiooptFLOAT0.50โ€“1โ€”

    Outputs (2)

    NameTypeDescription
    audioAUDIOโ€”
    text_processedSTRINGโ€”