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

MiniMax Speech 2.8 Turbo · Text to Speech

Same 400 voices, 40% cheaper per character

By popnow-ai·Created 24 days ago·Updated about 20 hours ago· 0
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►

    Identical inputs to the HD node. Same voices, same emotion control, same thirteen fields. The only differences are the rate - 10.8 credits ($0.108) per 1,000 characters against HD's 18 - and whatever fidelity you give up for it. For a first pass on a long script, or anything going under music, that trade is usually the right one.

    What it is

    MiniMax Speech 2.8 Turbo as a PopNow node: text in, ComfyUI AUDIO out, no local model, no GPU. It's the throughput tier of the same model family, and the pack exposes the full parameter set rather than a cut-down version, which is not always the case with hosted TTS wrappers.

    Where it earns its place in a graph: dialogue for a video, narration for a slideshow, scratch tracks while you're still editing the script. All of those are cases where you'll re-render three or four times, and per-character billing makes the cheaper tier compound into real money saved.

    How it works

    Your text and voice settings go out as one request; PopNow renders the speech and the node decodes the returned audio into the standard AUDIO dict that Save Audio understands. No caching, no reuse - every run is a fresh render at the per-character rate, which is exactly why a 400-character audition costs almost nothing and a 5000-character chapter doesn't.

    The formatting details are the ones people miss. output_format defaults to mp3; pcm gives you headerless 16-bit little-endian samples if something downstream parses raw audio. sample_rate, bitrate and audio_channels sit on model default unless you change them, which the model reads as 32000 Hz, 128000 bps and mono - sensible, but worth knowing if you're matching an existing track.

    The inputs

    • text - exactly what gets spoken, up to 5000 characters. Sound tags in parentheses, like (sighs) or (laughs), are performed rather than said aloud.
    • voice_id - Calm_Woman by default, out of a list of 400-plus, labelled with the language each was built for. The English selection is enormous and uneven - English_expressive_narrator and English_Aussie_Bloke are the two I'd audition first for a normal read.
    • emotion - neutral, plus happy, sad, angry, fearful, disgusted, surprised. This is the field that does the acting.
    • speed, pitch, volume - rate, semitones, loudness multiplier. Small moves.
    • language - pronunciation hint; auto detects from the text, and setting it helps on mixed-language lines.
    • english_normalization - off by default; on makes numbers, dates and abbreviations read the way a person says them.
    • pronunciation_dict - JSON list of {"alias", "pronunciation"} objects for the names the voice keeps getting wrong.

    Outputs: audio and task id.

    Swapping Turbo for HD without wrecking your mix

    The temptation is to draft on Turbo and re-render the final on HD with the same settings. Do it - but listen to the swap before you commit. Two models at the same declared pitch, speed and emotion still deliver differently, and a line that sounded wry on Turbo may land flatter on HD. Re-audition the three or four key lines rather than the whole script.

    Also resist stacking delivery settings. emotion: sad plus speed: 0.7 plus pitch: -6 doesn't give you a sadder read, it gives you a slowed-down robot. Pick the emotion, keep speed near 1, and let the voice do the work.

    Install

    Manager → search PopNow → Install, or:

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

    Restart, add a key from popnow.ai/api/console/keys via Settings > PopNow, restart again so the node list comes from your account. Nothing else installs: the pack's dependency list is empty and audio decoding uses ComfyUI's bundled PyAV.

    Troubleshooting

    PopNow 40201 means the wallet is empty - at this rate that takes real volume. PopNow 40310 means the account's email isn't verified, which can look like a broken voice list until you read the error. A 400 naming pronunciation_dict is malformed JSON: it wants a list of objects, not a plain dictionary. And if you cancel a long render, the job keeps running on PopNow and is charged if it succeeds - the node stops waiting, not the job.

    CategoryPopNow/Audio/MiniMax

    Inputs (13)

    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".

    Outputs (2)

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