ComfyUI-Supertonic3TTS
A suite of ComfyUI custom nodes integrating Supertone's Supertonic-3 — a lightning-fast, on-device, multilingual Text-to-Speech system running natively via ONNX Runtime.
📦 Nodes
| Node | Input | Output | Description |
|---|---|---|---|
| Supertonic Model Loader 🎤 | — | SUPERTONIC_MODEL |
Initialises the TTS engine. Auto-downloads ~400MB model on first run, stored locally in models/. |
| Supertonic Text-to-Speech 🗣️ | model, text, lang, voice, speed, steps |
AUDIO |
Synthesises speech from text. 31 languages, 10 preset voices, expression tags, custom style .json via custom_style_path. |
| Supertonic Effects ✨ | audio |
AUDIO |
Optional post-processing (trim, normalize, pitch, stretch, chorus). Apply to any AUDIO source. |
✨ Features
Supertonic TTS
- 31 languages —
en,ko,ja,id,ar,de,es,fr,hi,vi, and more - 10 built-in voices — M1–M5 (male), F1–F5 (female)
- Custom voice styles — Pass an absolute path to a Supertonic
.jsonvoice profile in thecustom_style_pathfield (e.g. from Supertone's Voice Builder) - Expression tags — Type tags like
<laugh>or<sigh>directly into text for vocal expressions - Speed control — Native SDK speed parameter (0.5x – 2.0x). For finer post-synthesis tempo tweaks, use the SupertonicEffects
time_stretchslider. - Steps — Diffusion steps (5–12, default 8). Higher = smoother, slower.
- CPU-friendly — Runs entirely on CPU via ONNX Runtime, no GPU required
- Local model cache — Model files stored in
models/supertonic-3/inside this node's directory (not~/.cache/)
Pipeline
┌──────────────┐ ┌────────────────────────────┐ ┌──────────────┐
│ text + │ → │ SupertonicTTS │ → │ AUDIO │
│ language │ │ (lang, voice, speed, steps)│ │ │
└──────────────┘ └─────────────┬──────────────┘ └──────┬───────┘
│ │
│ ┌──────────────┐ │
└─────→ │ SupertonicEffects│ ←─┘
│ (trim/pitch/etc)│
└──────┬────────┘
▼
Preview / Save Audio
🎭 Expression Tags
Type any of the following tags directly into your text to add vocal expressions:
| Tag | Effect |
|---|---|
<laugh> |
Laughter |
<breath> |
Breath intake |
<surprise> |
Surprise tone |
<sigh> |
Sigh |
<scream> |
Scream / shout |
<throatclear> |
Throat clear |
<sad> |
Sad tone |
<angry> |
Angry tone |
<cough> |
Cough |
<yawn> |
Yawn |
Example:
Halo! <laugh> Senang bertemu denganmu! <sigh> Tapi aku lelah.
The tags are passed to the Supertonic SDK which interprets them during synthesis.
🚀 Installation
Requirements
- ComfyUI (any recent version)
- Python 3.10+
1. Clone the repository
cd ComfyUI/custom_nodes/
git clone https://github.com/Anonymzx/ComfyUI-Supertonic3TTS.git
2. Install Python dependencies
Activate your ComfyUI virtual environment first, then:
pip install -r ComfyUI-Supertonic3TTS/requirements.txt
ComfyUI Manager is already!
you can install it on comfyui-manager!
Note:
torchandtorchaudioare not listed in requirements.txt — they are inherited from ComfyUI itself. Onlysupertonic,numpy,soundfile, andlibrosaare required on top of ComfyUI's base dependencies.
3. Restart ComfyUI
The nodes will appear under audio/Supertonic in the node menu.
First run only — the Loader auto-downloads the ~400MB Supertonic-3 model into
models/supertonic-3/. A clean 0–100% slider shows progress in the console. Subsequent loads skip the download.
🎮 Usage
Basic TTS Pipeline
- Add Supertonic Model Loader (no inputs needed)
- Add Supertonic Text-to-Speech
- Connect the model from step 1
- Type your text (include expression tags like
<laugh>if desired) - Configure: language, voice, speed, steps
- Add Preview Audio or Save Audio to hear the result
- Run the workflow
Add post-processing
Wire the TTS AUDIO output into Supertonic Effects, then into Preview/Save. Adjust pitch / stretch / chorus as needed.
Use a custom voice style
Set the optional custom_style_path field on the Supertonic Text-to-Speech node to an absolute path of a Supertonic voice style .json (e.g. generated from Supertone's Voice Builder). When set, it overrides the preset voice_style dropdown.
Speed vs Time Stretch
- SupertonicTTS
speedchanges tempo during synthesis (model-aware, cleanest). - SupertonicEffects
time_stretchuses phase vocoder after synthesis (any source, slight artifacts at extremes). - Combine both: SDK
speedfirst, then Effectstime_stretchon the output. Effective tempo ≈speed × time_stretch.
🌍 Supported Languages
| Code | Language | Code | Language | Code | Language |
|---|---|---|---|---|---|
en |
English | ko |
Korean | ja |
Japanese |
ar |
Arabic | bg |
Bulgarian | cs |
Czech |
da |
Danish | de |
German | el |
Greek |
es |
Spanish | et |
Estonian | fi |
Finnish |
fr |
French | hi |
Hindi | hr |
Croatian |
hu |
Hungarian | id |
Indonesian | it |
Italian |
lt |
Lithuanian | lv |
Latvian | nl |
Dutch |
pl |
Polish | pt |
Portuguese | ro |
Romanian |
ru |
Russian | sk |
Slovak | sl |
Slovenian |
sv |
Swedish | tr |
Turkish | uk |
Ukrainian |
vi |
Vietnamese | na |
Unknown / fallback |
📄 License
Code: MIT License Model: OpenRAIL-M License (Supertone)
Supertonic: Copyright (c) 2026 Supertone Inc.