Nodes/SpicyAPI/MiniMax Speech 2.8 Turbo · Text to Speech
ComfyUI Node

MiniMax Speech 2.8 Turbo · Text to Speech

The Cheap One. For Most Scripts, Take It.

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
MiniMax Speech 2.8 Turbo · Text to Speech
    • audio
    • task id
    ◄text►
    ◄voice_idCalm_Woman►
    ◄emotionneutral►
    ◄speed1.00►
    ◄pitch0►
    ◄volume1.0►
    ◄languageauto►
    ◄output_formatmp3►
    ◄sample_ratemodel default►
    ◄bitratemodel default►
    ◄audio_channelsmodel default►
    ◄english_normalizationfalse►
    ◄pronunciation_dict►
    ◄seed0►

    Same 472 voices, same emotion dial, same sound tags, 40% cheaper than the HD sibling: $0.072 per 1,000 characters against $0.12. Unless you're cutting a broadcast spot, start here.

    What it is

    MiniMax's speech line has been positioned against ElevenLabs since 2025 - the London voice company whose closed TTS is the quality bar everything open gets measured against - and it's the reason the API route still wins "I need reliable multi-language narration today" in this ecosystem's audio discussions. Turbo is the speed-and-cost variant of Speech 2.8; HD is the fidelity one. You get a system voice, an emotion, and a 32 kHz mono MP3 by default, straight into your graph as a ComfyUI AUDIO.

    The relevant context if you're weighing local: the open TTS field is genuinely good now - Chatterbox closed a lot of the gap, Kokoro runs in real time on a CPU - but every local option comes with an install story and a dependency-churn tax that the people maintaining those node packs complain about openly. Metered text-to-speech is what you reach for when you want a voiceover, not a project.

    The inputs, and which ones actually change the result

    Required, in the sense that they always exist on the node: text (the script, billed per 1,000 characters; (sighs), (laughs) and friends are performed rather than read aloud), voice_id (default Calm_Woman; the label carries the voice's name and language where known), emotion (default neutral), speed (0.5–2, default 1), pitch (−12 to +12 semitones), volume, language (auto detects from the text), output_format (mp3; pcm is headerless 16-bit little-endian), and the three format knobs - sample_rate, bitrate, audio_channels - each sitting on model default, which resolves to 32000 Hz, 128000 bps and mono.

    Then the two that most people never find and should:

    • english_normalization - off by default. Turn it on and numbers, dates and abbreviations are read like a person would read them. Test it on a script containing "$1,250" and you'll hear the difference immediately.
    • pronunciation_dict - a JSON string: a list of objects with "alias" and "pronunciation", where each alias in your text gets read as the pronunciation. Names, brand words, anything the model mangles. This is the escape hatch for the specific words you actually care about.

    If you're choosing between this and HD: the difference is in the voice's fidelity, and it's most audible on longer, slower reads. For a 15-second line under a video, you will probably not notice. Spend the 40%.

    Outputs: audio and task id. audio goes into Save Audio; if the model returns several clips they arrive as a batch and Save Audio writes a file for each.

    Installing it

    ComfyUI Manager → search SpicyAPI → install → restart. Manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/spicyapi-ai/comfyui-spicyapi
    

    Restart ComfyUI, then Settings > SpicyAPI → paste a key from spicyapi.ai/console/keys → restart once more so your node list is built from your account. Remote or headless box? SPICY_API_KEY in the environment replaces the settings field, and the pack honours HTTPS_PROXY if you're behind one. Nothing else installs: the pack has no dependencies, so it can't break your torch or transformers versions the way local TTS packs sometimes do.

    Traps and errors

    Billing is by characters, so the only way to run up a tab is a long script - but set Max cost per run in Settings > SpicyAPI anyway; the node quotes first and refuses anything over your ceiling before creating a task. 40310 is simply an unverified email on your SpicyAPI account. 40004 means the model has no deployment for that exact parameter combination, and the message names the option to change - change it rather than re-queueing. And if you cancel a run, it keeps generating server-side: charged if it succeeds, retrievable in your console for up to 14 days.

    CategorySpicyAPI/Audio/MiniMax

    Inputs (14)

    NameTypeDefaultDescription
    textSTRINGThe words to be spoken, exactly as written. Sound tags such as (sighs) or (laughs) are performed. Billed per 1,000 characters.
    voice_idCOMBOCalm_WomanSystem voice. The label shows the voice name and, where known, the language it is built for.
    emotionCOMBOneutralEmotion of the reading.
    speedFLOAT1.000.5–2Speaking rate; 1 is the voice's normal pace.
    pitchINT0-12–12Pitch shift in semitones; 0 keeps the voice's own pitch.
    volumeFLOAT1.00.1–10Loudness multiplier; 1 is the normal level.
    languageCOMBOautoLanguage hint that improves pronunciation; auto detects it from the text.
    output_formatCOMBOmp3File format of the result; pcm is headerless 16-bit little-endian samples.
    sample_rateCOMBOmodel defaultSample rate in Hz. The model uses 32000 when omitted.
    bitrateCOMBOmodel defaultMP3 bitrate in bits per second; ignored for other formats. The model uses 128000 when omitted.
    audio_channelsCOMBOmodel defaultMono or stereo output. Mono when omitted.
    english_normalizationBOOLEANfalseRead numbers, dates and abbreviations in English text the way a person would say them.
    pronunciation_dictSTRINGCustom pronunciations: each alias in the text is read as its pronunciation. JSON. A list of objects with "alias", "pronunciation".
    seedINT00–2147483647This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed.

    Outputs (2)

    NameTypeDescription
    audioAUDIOSeveral results come back as a batch; Save Audio writes one file each.
    task idSTRINGThe SpicyAPI task id, for the console logs or support.