Nodes/FL Voxtral TTS/FL Voxtral TTS Generate
ComfyUI Node

FL Voxtral TTS Generate

Running Mistral's Voxtral TTS locally in ComfyUI

By filliptm·Created 5 months ago·Updated 8 days ago· 12
FL Voxtral TTS Generate
  • model
  • audio
textHello, this is a test of the Voxtral text to speech system.
voicecasual_male
seed-1
max_frames2048
cfg_alpha1.20
noise_scale1.00
euler_steps8

This is the node that actually talks. Most Voxtral nodes you'll find in ComfyUI are thin wrappers that call Mistral's hosted demo over the internet - this one loads the real 4B weights onto your GPU and runs the whole pipeline locally. No API key, no gradio client, no latency gamble. The name is the honest one: you feed it text, it returns speech.

FL Voxtral TTS Generate is the synthesis half of the filliptm/ComfyUI-FL-VoxtralTTS pack. It takes the VOXTRAL_MODEL object that FL Voxtral TTS Model Loader hands you, plus your text and a voice, and returns a ComfyUI AUDIO output you can wire straight into SaveAudio, PreviewAudio, or SaveAudioMP3 (the pack's own example workflow uses the latter). That's the whole graph: Loader → Generate → save.

How it actually works

The pipeline under the hood is the same shape as the image side of ComfyUI, just inverted. Text gets tokenized with Mistral's Tekken tokenizer, the chosen voice's embedding is injected where the audio tokens belong, and a Ministral-based backbone runs it forward. Then an autoregressive loop takes over: at each frame, a flow-matching acoustic transformer predicts 37 codes - one semantic code (greedy) plus 36 acoustic codes walked out with an 8-step Euler ODE under classifier-free guidance. A codec decoder turns those codes into a 24 kHz mono waveform. Generation stops on its own at an END_AUDIO token, which is why most clips finish well short of your caps.

If you've tuned Flux or SD3, the flow-matching bits will feel familiar: euler_steps is your quality-per-cost knob, and cfg_alpha is guidance aimed at keeping the voice consistent rather than the text consistent.

The inputs that matter

Only a handful, and the defaults are sane:

  • text (multiline) - the thing to say. This is the input you'll actually change every run.
  • voice - 20 presets across 9 languages (casual_male, fr_female, hi_male…). That's the whole list; Mistral hasn't shipped a speaker-embedding model, so no voice cloning locally.
  • seed - -1 for random, any number for a reproducible take.
  • euler_steps (default 8) - raise to 16–32 if prosody sounds mushy; each step costs real GPU time.
  • cfg_alpha (default 1.2), noise_scale (default 1.0) - leave alone until you have a reason.
  • max_frames (default 2048) - a safety ceiling, not a length you'll normally hit. At the codec's 24 kHz rate it covers a couple of minutes, so treat it as insurance, not a slider.

The one output, audio (type AUDIO), plugs into any core save/preview audio node.

Install & first run

Same pack as the Model Loader, one install. Via ComfyUI Manager, search "FL Voxtral TTS" and install; or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-VoxtralTTS.git
cd ComfyUI-FL-VoxtralTTS
pip install -r requirements.txt

Then restart ComfyUI. The first generation is slow for a different reason: the ~8 GB Voxtral-4B-TTS-2603 checkpoint downloads from HuggingFace automatically before anything runs. Budget 16 GB RAM minimum, and a 12 GB+ VRAM card is the comfortable recommendation - CPU and Mac MPS work, but you'll be waiting.

Where people get burned

  • The Generate node won't download anything. The Model Loader does that, so your first run is Loader → download → Generate. Don't restart ComfyUI mid-download and wonder where the model went.
  • 24 kHz mono. This is voice-agent quality, not a studio master. If you need crisp 44.1 kHz for a podcast, route the output through an upscaler-style audio node or process it outside.
  • The license. The pack's code is Apache-2.0, but the model weights inherit CC BY-NC 4.0 from Mistral. Non-commercial. That's a dealbreaker if you were hoping to ship a product on this.

It's the one I'd reach for when I want real local TTS inside a graph with no accounts and no keys - just know it's a heavyweight, and that Kokoro is the much lighter option if you don't need the 4B-quality bar.

CategoryFL/TTS

Inputs (8)

NameTypeDefaultDescription
modelVOXTRAL_MODEL
textSTRINGHello, this is a test of the Voxtral text to speech system.
voiceCOMBOcasual_male20 options: casual_female, casual_male, cheerful_female, neutral_female, neutral_male, fr_female, +14
seedINT-1-1–9223372036854776000
max_framesINT2048128–4096
cfg_alphaFLOAT1.200–3
noise_scaleFLOAT1.000–2
euler_stepsINT82–32

Outputs (1)

NameTypeDescription
audioAUDIO