Nodes/comfyui-kokoro/Kokoro Speaker Combiner
ComfyUI Node

Kokoro Speaker Combiner

Blend two TTS voices into one you actually like

By stavsap·Created 2 years ago·Updated 6 months ago· 66
Kokoro Speaker Combiner
  • speaker_a
  • speaker_b
  • speaker
weight0.50

None of the 54 stock Kokoro voices feel quite right? This is the node nobody expects a TTS pack to have. KokoroSpeakerCombiner takes two speakers and blends them into a third - a new voice that isn't quite either parent. If you want a narrator who sounds like a warmer af_sarah, or a male voice with a hint of the female lead, this is the knob you've been looking for.

It slots into the stavsap/comfyui-kokoro chain right between the speaker picker and the generator: Kokoro Speaker (voice A) and Kokoro Speaker (voice B) both feed this node, and its output feeds Kokoro Generator.

How it works

This is a math node, not a model node. A Kokoro speaker is a voice-style embedding - a vector. The combiner just takes the weighted average of the two vectors: speaker_a × weight + speaker_b × (1 - weight). No inference, no model reload, effectively instant. That's why it's so cheap to play with: you can dial weights all day and never wait on a queue.

The weight field is the fraction of speaker_a - the README spells it out: a weight of 0.7 means 70% speaker_a and 30% speaker_b. It's a float from 0 to 1, default 0.5, with a 0.05 step, so you can sweep a full blend in fine increments.

The inputs that matter

Three in, one out:

  • speaker_a / speaker_b - both must be KOKORO_SPEAKER type, i.e. wired from Kokoro Speaker nodes. You can't type voice names in.
  • weight - 0 to 1, default 0.5. Strength of speaker_a. 1.0 is just speaker_a; 0.0 is just speaker_b.
  • speaker - a new KOKORO_SPEAKER, straight into the generator.

Two tips from people who actually run these. First, it's an embedding average, not a professional voice-morphing pipeline - blend a male and female voice at exactly 50/50 and the result can sound uncanny or just muddled, so start near one parent and nudge. Second, because it's instant, batch-test weights: run several combiner values into the same generator and pick the one that reads naturally.

Installing it

Same pack, same story as its siblings. ComfyUI Manager → search "Kokoro" by stavsap, or:

cd ComfyUI/custom_nodes
git clone https://github.com/stavsap/comfyui-kokoro.git
cd comfyui-kokoro
pip install -r requirements.txt

Restart, done. Requirements are kokoro-onnx, onnxruntime, numpy, requests, tqdm.

The one shared gotcha applies here too: the first run of any node in the pack downloads the 325 MB kokoro.onnx plus voice data into the node folder, so your first queue stalls on a progress bar. And on Windows portable installs, install requirements into the embedded Python (python_embeded\python.exe -m pip install -r ...\requirements.txt) or the import fails. Cheap node, instant math - the only cost is that first download, paid once.

Categorykokoro

Inputs (3)

NameTypeDefaultDescription
speaker_aKOKORO_SPEAKER
speaker_bKOKORO_SPEAKER
weightFLOAT0.500–1

Outputs (1)

NameTypeDescription
speakerKOKORO_SPEAKER