π£οΈ ComfyUI nodes for KugelAudi- Open-source text-to-speech with voice cloning for 24 European languages
34
stars
37
commits
Python
primary language
Feb 10, 2026
updated
ComfyUI nodes for KugelAudio - Open-source text-to-speech with voice cloning for 24 European languages
Powered by an AR + Diffusion architecture
cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/ComfyUI-KugelAudio.git
Bundled package: The kugelaudio-open folder is included and must be installed. ComfyUI will try to auto-install it on first launch. If that fails, install manually (see below).
β
Windows (Standard & Portable)
β
macOS (Intel & Apple Silicon)
β
Linux (Standard & Portable)
The auto-installer detects your Python environment automatically and installs to the correct location.
If you see errors on startup about missing kugelaudio-open package, install manually:
Windows Portable (recommended):
For first-time installation, use:
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
..\..\..\python_embeded\python.exe -m pip install -e ./kugelaudio-open
For reinstalling after code changes (safer - won't break dependencies):
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
..\..\..\python_embeded\python.exe -m pip install --no-deps --force-reinstall -e ./kugelaudio-open
Or use the provided batch files in the ComfyUI-KugelAudio folder.
Two batch files are provided for Windows Portable:
| Script | When to Use | What It Does | Command Used |
|---|---|---|---|
install_portable.bat | First-time installation | Installs kugelaudio-open in editable mode (-e flag). Creates a link so code changes take effect after restarting ComfyUI. | pip install -e ./kugelaudio-open |
reinstall_no-deps.bat | After modifying code (Recommended!) | Safely reinstalls kugelaudio-open without touching dependencies (--no-deps --force-reinstall -e). Use this when you've edited code or applied fixes and want changes to take effect without risking breaking your environment. | pip install --no-deps --force-reinstall -e ./kugelaudio-open |
Why editable mode (-e flag) is CRITICAL:
-e: Code is copied to Python's site-packages. Editing kugelaudio-open/ files won't do anything until you reinstall!-e: Python creates a link to your kugelaudio-open/ folder. Code changes take effect immediately after restarting ComfyUI.Why --no-deps is important for reinstalls:
When should I reinstall?
kugelaudio-open/ folderHaving issues? See Troubleshooting for more solutions.
Windows Portable (python_embeded):
# Navigate to node folder
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
# First install (editable mode)
..\..\..\python_embeded\python.exe -m pip install -e ./kugelaudio-open
# Safe reinstall after edits (editable + no deps)
..\..\..\python_embeded\python.exe -m pip install --no-deps --force-reinstall -e ./kugelaudio-open
Standard Python (Windows/Linux/macOS):
# First install (editable mode)
pip install -e ./kugelaudio-open
# Safe reinstall after edits (editable + no deps)
pip install --no-deps --force-reinstall -e ./kugelaudio-open
| Mode | VRAM | Quality | Attention Types |
|---|---|---|---|
| Full Precision | ~19GB | Best | All (Sage/Flash/SDPA/Eager) |
| 4-bit Quantization | ~8GB | Slight reduction | SDPA/Eager only |
4-bit quantization requires bitsandbytes. If you encounter issues:
# Standard installation
pip install bitsandbytes
Note: 4-bit quantization only supports SDPA and Eager attention types.
All nodes include a Device dropdown to control where inference runs:
| Option | Description |
|---|---|
auto | Automatically detects best available (CUDA β MPS β CPU) |
cuda | Force NVIDIA GPU (recommended for best performance) |
mps | Force Apple Silicon GPU (may have compatibility issues) |
cpu | Force CPU execution (slower but most compatible) |
Apple Silicon Users: β οΈ MPS may cause mps_matmul errors during generation. If you encounter crashes, manually select cpu from the device dropdown.
4-bit Quantization: Requires CUDA GPU. Automatically disabled for CPU/MPS devices.
CPU Optimization: If using CPU mode with low utilization, set thread count:
import torch
torch.set_num_threads(8) # Match your CPU cores
Precision by Device:
The model automatically uses optimal precision for each device:
| Device | Precision | Notes |
|---|---|---|
| CUDA | bfloat16 | Best performance/quality balance on NVIDIA GPUs |
| MPS | float16 | Required for Apple Silicon (bfloat16 not supported) |
| CPU | float32 | Full precision for best compatibility |
Generate speech from text with full control over generation parameters.
Inputs:
text: Text to synthesizemodel: Model selection (auto-downloads on first run)device: Device selection (auto/cuda/mps/cpu)attention_type: Attention implementation (auto/sage_attn/flash_attn/sdpa/eager)use_4bit: Enable 4-bit quantization (~8GB VRAM, requires CUDA, SDPA/Eager only)cfg_scale: Guidance scale (1.0-10.0, default 3.0) - higher = more adherence to textmax_new_tokens: Max generation length (512-4096, default 2048)language: Optional language hint (auto-detects if not set)keep_loaded: Keep model in VRAM (faster subsequent runs)output_stereo: Output stereo audioseed: Random seed for reproducibility (default 42)max_words_per_chunk: Split long text at sentence boundaries (100-500, default 250)do_sample: Enable sampling for varied output (default False)temperature: Sampling temperature (0.1-2.0, default 1.0)Clone any voice using a short reference audio sample (5-30 seconds recommended).
Same inputs as TTS plus:
voice_prompt: Reference audio file for voice cloningGenerate conversations with up to 6 speakers with automatic pause between speakers.
Inputs:
text: Conversation text (use Speaker N: format, N=1-6)pause_between_speakers: Silence between speaker turns (0.0-2.0 seconds, default 0.2s)Text Format:
Speaker 1: Hello, I'm the first speaker.
Speaker 2: Hi there, I'm the second speaker.
Speaker 3: I'm the third speaker!
Speaker 4: And I'm the fourth.
Speaker 5: Adding a fifth voice here!
Speaker 6: And the sixth speaker!
Optional voice inputs:
speaker1_voice through speaker6_voice: Voice samples for each speakerAll KugelAudio output contains an inaudible watermark using Facebook's AudioSeal technology. This node detects whether audio was generated by KugelAudio.
Returns:
detected: String ("Detected" / "Not Detected")confidence: Float (0.0-1.0)Audio Format:
The 4-bit toggle quantizes the LLM component (7B parameters), keeping the diffusion head and tokenizers at full precision for best audio quality.
Attention Type Compatibility:
| Mode | Available Attention Types |
|---|---|
| Full Precision | Auto β SageAttention β FlashAttention 2 β SDPA β Eager |
| 4-bit | Auto (falls back to SDPA) β SDPA β Eager only |
Tips:
On first run:
ComfyUI/models/kugelaudio/Both happen automatically on first generation.
KugelAudio achieves state-of-the-art performance, beating industry leaders including ElevenLabs in rigorous human preference testing.
Human Preference Benchmark (A/B Testing): 339 human evaluations comparing KugelAudio against leading TTS models.
OpenSkill Ranking:
| Rank | Model | Score | Record | Win Rate |
|---|---|---|---|---|
| π₯ 1 | KugelAudio | 26 | 71W / 20L / 23T | 78.0% |
| π₯ 2 | ElevenLabs Multi v2 | 25 | 56W / 34L / 22T | 62.2% |
| π₯ 3 | ElevenLabs v3 | 21 | 64W / 34L / 16T | 65.3% |
| 4 | Cartesia | 21 | 55W / 38L / 19T | 59.1% |
| 5 | VibeVoice | 10 | 30W / 74L / 8T | 28.8% |
| 6 | CosyVoice v3 | 9 | 15W / 91L / 8T | 14.2% |
Model Specs:
| Model | Parameters | Quality | RTF | VRAM |
|---|---|---|---|---|
| kugelaudio-0-open | 7B | Best | 1.00 | ~19GB / ~8GB (4-bit) |
RTF = Real-Time Factor (generation time / audio duration).
Windows:
pip install bitsandbytes
Linux:
pip install bitsandbytes
macOS (Apple Silicon):
pip install bitsandbytes
Note: 4-bit quantization on macOS with MPS may have limited compatibility.
huggingface-cli download kugelaudio/kugelaudio-0-open --local-dir ComfyUI/models/kugelaudio/kugelaudio-0-open
If the auto-installer fails or you need to reinstall the bundled package:
Find your Python path:
pythonpython_embeded\python.exeInstall the bundled package:
# Navigate to the custom node folder
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
# Install using portable Python (replace /path/to/ComfyUI with your actual path) or run .bat file
C:\path\to\ComfyUI\python_embeded\python.exe -m pip install ./kugelaudio-open
# For standard Python installation
python -m pip install ./kugelaudio-open
Verify installation:
C:\path\to\ComfyUI\python_embeded\python.exe -c "import kugelaudio_open; print('kugelaudio-open installed successfully')"
Note: The bundled package is located at ComfyUI/custom_nodes/ComfyUI-KugelAudio/kugelaudio-open/
If you see warnings about attention types:
Apple Silicon (MPS) Issues:
mps_matmul errors during generationcpu from the Device dropdownCPU Mode:
cpu from the Device dropdownimport torch
torch.set_num_threads(8) # Match your CPU cores
Forcing Specific Device:
auto: Tries CUDA β MPS β CPU (with warnings for MPS)cuda: NVIDIA GPU onlymps: Apple Silicon GPU only (may have issues)cpu: CPU only (most compatible)max_words_per_chunk to split long text (recommended: 200-300)Speaker N: Text (N = 1-6)MIT License - Same as KugelAudio
This model would not have been possible without the contributions of many individuals and organizations:
@software{kugelaudio2026,
title = {KugelAudio: Open-Source Text-to-Speech for European Languages with Voice Cloning},
author = {Kratzenstein, Kajo and Menke, Carlos},
year = {2026},
institution = {Hasso-Plattner-Institut},
url = {https://huggingface.co/kugelaudio/kugelaudio-0-open}
}
37 commits
Python
99.0%
π£οΈ ComfyUI nodes for KugelAudi- Open-source text-to-speech with voice cloning for 24 European languages
34
stars
37
commits
Python
primary language
Feb 10, 2026
updated
ComfyUI nodes for KugelAudio - Open-source text-to-speech with voice cloning for 24 European languages
Powered by an AR + Diffusion architecture
cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/ComfyUI-KugelAudio.git
Bundled package: The kugelaudio-open folder is included and must be installed. ComfyUI will try to auto-install it on first launch. If that fails, install manually (see below).
β
Windows (Standard & Portable)
β
macOS (Intel & Apple Silicon)
β
Linux (Standard & Portable)
The auto-installer detects your Python environment automatically and installs to the correct location.
If you see errors on startup about missing kugelaudio-open package, install manually:
Windows Portable (recommended):
For first-time installation, use:
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
..\..\..\python_embeded\python.exe -m pip install -e ./kugelaudio-open
For reinstalling after code changes (safer - won't break dependencies):
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
..\..\..\python_embeded\python.exe -m pip install --no-deps --force-reinstall -e ./kugelaudio-open
Or use the provided batch files in the ComfyUI-KugelAudio folder.
Two batch files are provided for Windows Portable:
| Script | When to Use | What It Does | Command Used |
|---|---|---|---|
install_portable.bat | First-time installation | Installs kugelaudio-open in editable mode (-e flag). Creates a link so code changes take effect after restarting ComfyUI. | pip install -e ./kugelaudio-open |
reinstall_no-deps.bat | After modifying code (Recommended!) | Safely reinstalls kugelaudio-open without touching dependencies (--no-deps --force-reinstall -e). Use this when you've edited code or applied fixes and want changes to take effect without risking breaking your environment. | pip install --no-deps --force-reinstall -e ./kugelaudio-open |
Why editable mode (-e flag) is CRITICAL:
-e: Code is copied to Python's site-packages. Editing kugelaudio-open/ files won't do anything until you reinstall!-e: Python creates a link to your kugelaudio-open/ folder. Code changes take effect immediately after restarting ComfyUI.Why --no-deps is important for reinstalls:
When should I reinstall?
kugelaudio-open/ folderHaving issues? See Troubleshooting for more solutions.
Windows Portable (python_embeded):
# Navigate to node folder
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
# First install (editable mode)
..\..\..\python_embeded\python.exe -m pip install -e ./kugelaudio-open
# Safe reinstall after edits (editable + no deps)
..\..\..\python_embeded\python.exe -m pip install --no-deps --force-reinstall -e ./kugelaudio-open
Standard Python (Windows/Linux/macOS):
# First install (editable mode)
pip install -e ./kugelaudio-open
# Safe reinstall after edits (editable + no deps)
pip install --no-deps --force-reinstall -e ./kugelaudio-open
| Mode | VRAM | Quality | Attention Types |
|---|---|---|---|
| Full Precision | ~19GB | Best | All (Sage/Flash/SDPA/Eager) |
| 4-bit Quantization | ~8GB | Slight reduction | SDPA/Eager only |
4-bit quantization requires bitsandbytes. If you encounter issues:
# Standard installation
pip install bitsandbytes
Note: 4-bit quantization only supports SDPA and Eager attention types.
All nodes include a Device dropdown to control where inference runs:
| Option | Description |
|---|---|
auto | Automatically detects best available (CUDA β MPS β CPU) |
cuda | Force NVIDIA GPU (recommended for best performance) |
mps | Force Apple Silicon GPU (may have compatibility issues) |
cpu | Force CPU execution (slower but most compatible) |
Apple Silicon Users: β οΈ MPS may cause mps_matmul errors during generation. If you encounter crashes, manually select cpu from the device dropdown.
4-bit Quantization: Requires CUDA GPU. Automatically disabled for CPU/MPS devices.
CPU Optimization: If using CPU mode with low utilization, set thread count:
import torch
torch.set_num_threads(8) # Match your CPU cores
Precision by Device:
The model automatically uses optimal precision for each device:
| Device | Precision | Notes |
|---|---|---|
| CUDA | bfloat16 | Best performance/quality balance on NVIDIA GPUs |
| MPS | float16 | Required for Apple Silicon (bfloat16 not supported) |
| CPU | float32 | Full precision for best compatibility |
Generate speech from text with full control over generation parameters.
Inputs:
text: Text to synthesizemodel: Model selection (auto-downloads on first run)device: Device selection (auto/cuda/mps/cpu)attention_type: Attention implementation (auto/sage_attn/flash_attn/sdpa/eager)use_4bit: Enable 4-bit quantization (~8GB VRAM, requires CUDA, SDPA/Eager only)cfg_scale: Guidance scale (1.0-10.0, default 3.0) - higher = more adherence to textmax_new_tokens: Max generation length (512-4096, default 2048)language: Optional language hint (auto-detects if not set)keep_loaded: Keep model in VRAM (faster subsequent runs)output_stereo: Output stereo audioseed: Random seed for reproducibility (default 42)max_words_per_chunk: Split long text at sentence boundaries (100-500, default 250)do_sample: Enable sampling for varied output (default False)temperature: Sampling temperature (0.1-2.0, default 1.0)Clone any voice using a short reference audio sample (5-30 seconds recommended).
Same inputs as TTS plus:
voice_prompt: Reference audio file for voice cloningGenerate conversations with up to 6 speakers with automatic pause between speakers.
Inputs:
text: Conversation text (use Speaker N: format, N=1-6)pause_between_speakers: Silence between speaker turns (0.0-2.0 seconds, default 0.2s)Text Format:
Speaker 1: Hello, I'm the first speaker.
Speaker 2: Hi there, I'm the second speaker.
Speaker 3: I'm the third speaker!
Speaker 4: And I'm the fourth.
Speaker 5: Adding a fifth voice here!
Speaker 6: And the sixth speaker!
Optional voice inputs:
speaker1_voice through speaker6_voice: Voice samples for each speakerAll KugelAudio output contains an inaudible watermark using Facebook's AudioSeal technology. This node detects whether audio was generated by KugelAudio.
Returns:
detected: String ("Detected" / "Not Detected")confidence: Float (0.0-1.0)Audio Format:
The 4-bit toggle quantizes the LLM component (7B parameters), keeping the diffusion head and tokenizers at full precision for best audio quality.
Attention Type Compatibility:
| Mode | Available Attention Types |
|---|---|
| Full Precision | Auto β SageAttention β FlashAttention 2 β SDPA β Eager |
| 4-bit | Auto (falls back to SDPA) β SDPA β Eager only |
Tips:
On first run:
ComfyUI/models/kugelaudio/Both happen automatically on first generation.
KugelAudio achieves state-of-the-art performance, beating industry leaders including ElevenLabs in rigorous human preference testing.
Human Preference Benchmark (A/B Testing): 339 human evaluations comparing KugelAudio against leading TTS models.
OpenSkill Ranking:
| Rank | Model | Score | Record | Win Rate |
|---|---|---|---|---|
| π₯ 1 | KugelAudio | 26 | 71W / 20L / 23T | 78.0% |
| π₯ 2 | ElevenLabs Multi v2 | 25 | 56W / 34L / 22T | 62.2% |
| π₯ 3 | ElevenLabs v3 | 21 | 64W / 34L / 16T | 65.3% |
| 4 | Cartesia | 21 | 55W / 38L / 19T | 59.1% |
| 5 | VibeVoice | 10 | 30W / 74L / 8T | 28.8% |
| 6 | CosyVoice v3 | 9 | 15W / 91L / 8T | 14.2% |
Model Specs:
| Model | Parameters | Quality | RTF | VRAM |
|---|---|---|---|---|
| kugelaudio-0-open | 7B | Best | 1.00 | ~19GB / ~8GB (4-bit) |
RTF = Real-Time Factor (generation time / audio duration).
Windows:
pip install bitsandbytes
Linux:
pip install bitsandbytes
macOS (Apple Silicon):
pip install bitsandbytes
Note: 4-bit quantization on macOS with MPS may have limited compatibility.
huggingface-cli download kugelaudio/kugelaudio-0-open --local-dir ComfyUI/models/kugelaudio/kugelaudio-0-open
If the auto-installer fails or you need to reinstall the bundled package:
Find your Python path:
pythonpython_embeded\python.exeInstall the bundled package:
# Navigate to the custom node folder
cd ComfyUI/custom_nodes/ComfyUI-KugelAudio
# Install using portable Python (replace /path/to/ComfyUI with your actual path) or run .bat file
C:\path\to\ComfyUI\python_embeded\python.exe -m pip install ./kugelaudio-open
# For standard Python installation
python -m pip install ./kugelaudio-open
Verify installation:
C:\path\to\ComfyUI\python_embeded\python.exe -c "import kugelaudio_open; print('kugelaudio-open installed successfully')"
Note: The bundled package is located at ComfyUI/custom_nodes/ComfyUI-KugelAudio/kugelaudio-open/
If you see warnings about attention types:
Apple Silicon (MPS) Issues:
mps_matmul errors during generationcpu from the Device dropdownCPU Mode:
cpu from the Device dropdownimport torch
torch.set_num_threads(8) # Match your CPU cores
Forcing Specific Device:
auto: Tries CUDA β MPS β CPU (with warnings for MPS)cuda: NVIDIA GPU onlymps: Apple Silicon GPU only (may have issues)cpu: CPU only (most compatible)max_words_per_chunk to split long text (recommended: 200-300)Speaker N: Text (N = 1-6)MIT License - Same as KugelAudio
This model would not have been possible without the contributions of many individuals and organizations:
@software{kugelaudio2026,
title = {KugelAudio: Open-Source Text-to-Speech for European Languages with Voice Cloning},
author = {Kratzenstein, Kajo and Menke, Carlos},
year = {2026},
institution = {Hasso-Plattner-Institut},
url = {https://huggingface.co/kugelaudio/kugelaudio-0-open}
}
37 commits
Python
99.0%