Voxtral TTS Voice Clone
Clone a voice inside ComfyUI, no API key included
- reference_audio
- audio
When Mistral shipped Voxtral TTS in early 2026, the open-weight release came with a catch that half the comments on r/StableDiffusion were about: the weights are CC-BY-NC, and voice cloning is API-only. That last part is exactly the itch Voxtral TTS Voice Clone scratches. It clones a voice from a short reference clip, running inside your ComfyUI graph, with zero API keys, zero accounts, and zero model downloads.
Here's the honest version of what it is: a thin wrapper. The node doesn't run any inference locally and it doesn't touch your GPU. Each generation makes a call over the internet to Mistral's public Hugging Face demo Space (mistralai-voxtral-tts-demo.hf.space) using gradio_client, grabs the result, and hands it back to ComfyUI as a standard AUDIO object. The name is a lie in the best possible way - no key, no paid tier, no signup. The "API-only" cloning that the open-weights crowd complained about is alive and well in the hosted demo; this node just opens a door to it.
How it works
The mechanism is simple but worth knowing, because there's one thing it implies: your reference clip gets uploaded to Hugging Face's servers. The node takes the AUDIO input, writes it to a temporary WAV file, posts it alongside your text to the Space's /lambda_1 endpoint, then downloads the synthesized audio and returns it as a ComfyUI AUDIO dict (waveform + sample rate). If you're synthesizing anything private, remember where the compute actually happens.
The two inputs are all there is: a multiline text field (it defaults to Mistral's own tagline, "Frontier AI in your hands.") and a reference_audio socket. Feed the reference from a LoadAudio node - the README asks for a clean 5–30 second clip in WAV or MP3. The output, named audio, wires straight into PreviewAudio to hear it, SaveAudio to keep it, or VHS-style video nodes if you're dubbing something. The shipped example workflow is literally LoadAudio → VoxtralTTSClone → PreviewAudio, and it works as drawn.
Install
Two ways, both painless:
# ComfyUI Manager (easiest): Custom Nodes Manager → search "voxtral" → Install → restart
cd ComfyUI/custom_nodes
git clone https://github.com/marduk191/comfyui-voxtral
pip install -r requirements.txt # gradio_client + soundfile
Then restart ComfyUI and look under audio/voxtral. That's the whole dependency story: gradio_client and soundfile in requirements.txt, with torch/torchaudio picked up from ComfyUI itself. No model files to babysit. The author, marduk191, is a familiar name on CivitAI for model collections and FluxD GGUFs, and this pack is a tidy little API wrapper in his stable.
Where people get burned
- It's slow. The demo Space runs the 4B model on a single CPU replica. A generation can sit for a while - that's expected, not a hang. Give it time before you assume it's dead.
- It needs the internet, full stop. No network, no audio. The README calls this out, and it's the first thing to check when you get nothing.
- It's a demo Space, and the endpoints are hardcoded. The code pins
api_name="/lambda_1"and the Space URL. If Mistral gates the demo, changes its API, or retires it, this node breaks - that's the structural risk of the whole pack, and there's no local fallback. - The reference clip is the whole game. Clean, single speaker, decent mic, in the 5–30s window. A muddy clip gives you a muddy clone, and that's on you, not the node.
- Voice cloning is legally and ethically loaded. Cloning a real person's voice without consent is a fast way to earn a ban (or worse). Use your own voice or a licensed one. The model's CC-BY-NC license is another reason to keep this in the demo/tinkering lane rather than shipping a product off it.
For stock voices without the cloning song and dance, grab the sibling Voxtral TTS Fixed Voice node instead. For a specific voice, this is the one - just bring your patience and a clean reference.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Frontier AI in your hands. | — |
| reference_audio | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |