Kokoro TTS v3
Voice blending with a real mix dial (slerp included)
- audio
This is the pack's main event. KokoroTTS_v3 blends two of Kokoro's built-in voices like v2 does, but it adds the two things v2 was missing: a choice of how to blend, and a dial for how much of each voice goes in. If you're going to use one blending node from this pack, it's this one.
What changed from v2
The earlier blend node (v2) averages two voice embeddings with a fixed weighted-sum and no way to tune the ratio. v3 keeps that "default" method as an option but adds a second one - spherical interpolation, or slerp - plus a slerp_t slider that controls the mix regardless of which method you pick. The author's own framing (from the pack's changelog) is that slerp exists "for enhanced quality," and that tracks with why slerp gets used for blending vectors in general: a straight average can shrink the resulting vector's magnitude when the two sources point in different directions, which tends to sound like a slightly flattened, less distinct voice. Slerp interpolates along the arc between the two vectors instead of cutting straight through, which keeps more of each voice's character intact through the blend. It's not a night-and-day difference on every pair, but on two voices that are far apart, it's the one worth trying first.
Inputs and outputs
- text (STRING, default "Hello, world!") - what gets spoken.
- voice1 / voice2 (enum, 46 choices each) - the two Kokoro presets you're blending. Named by accent and gender:
af_*/am_*American female/male,bf_*/bm_*British. - speed1 / speed2 (FLOAT, 0.5–2, default 1) - playback speed per source voice.
- blend_modes (enum:
default,slerp) - pick the averaging method. - slerp_t (FLOAT, 0–1, default 0.5, step 0.1) - the mix ratio: 0 leans fully toward voice1, 1 fully toward voice2, 0.5 is even.
One output: audio (AUDIO), ready for Save Audio / Preview Audio or further downstream.
Installing it
- ComfyUI Manager - search "DJZ-KokoroTTS", install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/MushroomFleet/DJZ-KokoroTTS, then restart.
Windows portable users: run the repo's install-portable.bat with ComfyUI closed - it sets up dependencies and paths for the portable build specifically.
You also need two model files sitting in /comfyui/models/kokoro/. The README hands you a direct link to the ONNX weights - kokoro.onnx from taylorchu/kokoro-onnx's v0.2.0 release - but is vague about the second file's exact filename, so check the repo's models.json rather than guessing at it.
Where people get stuck
The README's own troubleshooting section points at the same thing every time: model files not sitting exactly in /comfyui/models/kokoro/. That's the first thing to check if generation fails rather than just sounding off.
More generally, this is a small custom node pack installing its own requirements.txt into ComfyUI's shared Python environment - like every other pack, it has no dependency isolation from whatever else you've got installed. If the node itself won't load (as opposed to failing to generate), a version clash is a likelier culprit than the model files, and the console log at startup is where you'll see the actual conflicting or missing package.
One thing to know about slerp_t: it's a single dial that applies no matter which blend_modes you've chosen, so don't skip setting it just because you left blend_modes on default - 0.5 is an even split either way, but if you want voice1 to dominate, you still need to move it off center. And if you're happy with a particular blend and plan to reuse it, don't keep regenerating it here every time - bake it once with KokoroTTS_SaveVoice_v1 and pull it back with KokoroTTS_LoadVoice_v1 instead.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello, world! | — |
| voice1 | COMBO | 46 options: af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, +40 | |
| voice2 | COMBO | 46 options: af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, +40 | |
| speed1 | FLOAT | 1.00.5–2 | — |
| speed2 | FLOAT | 1.00.5–2 | — |
| blend_modes | COMBO | default | 2 options: default, slerp |
| slerp_t | FLOAT | 0.50–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |