MiniMax Speech 2.8 HD (Replicate)
MiniMax Speech 2.8 HD — the TTS with an emotion dial and pause markers
- audio
MiniMax Speech 2.8 HD is the most controllable text-to-speech in this pack, and for narration work that's the whole game. Where most TTS nodes give you a voice dropdown and a speed slider, this one hands you an emotion selector (happy, sad, angry, calm, excited - ten of them), a pitch knob in semitones, pause markers you type straight into the text, and a voice list long enough to scroll. It also plays nicely with ComfyUI's native AUDIO type, which is the quiet technical detail that makes everything downstream work.
TTS is the "cheap part" of any audio pipeline - the expensive compute is the video the voice drives. This node fits that: it's a cloud TTS with real production polish (MiniMax's speech models are genuinely good), and because it returns AUDIO rather than a file path, you can wire it straight into a lipsync node or SaveAudio. The pack's README specifically calls out that pattern: TTS → AUDIO → lipsync nodes via upload.
How it works
Standard engine around minimax/speech-2.8-hd. Your text goes up, the synthesized audio comes back, and the node converts it into a ComfyUI AUDIO dict (waveform + sample_rate). The single output is named audio and is native ComfyUI AUDIO - not a path string. That's why it can feed SaveAudio directly or upload into a lipsync model without any file juggling.
The inputs that matter
- text (required) - up to 10,000 characters. The neat trick: type markers like
<#0.5#>to insert a 0.5-second pause. This is how you get natural pacing without post-editing. - voice_id - default
English_Wiselady. Any MiniMax system voice, or a voice_id from MiniMax's voice-cloning model on Replicate. That's your cloning door: clone a voice elsewhere, paste its id here. - emotion -
autoby default, plus happy/sad/angry/fearful/disgusted/surprised/calm/fluent/neutral. This is the differentiator; a "calm" vs "happy" render of the same line is dramatically different. - speed - 0.5–2.0x.
- pitch - ±12 semitones. Nudge a voice up or down without changing who it is.
- volume - 0–10, default 1.0 (the model's native gain).
- audio_format - mp3 (default), wav/flac for lossless, or
pcmfor raw bytes. - channel - mono or stereo.
- sample_rate - up to 44100.
- bitrate - only applies to mp3.
- english_normalization - improves number/date reading for English, at a small latency cost.
- subtitle_enable - returns sentence timestamps (non-streaming only). Turn this on if you're syncing subtitles to the audio.
- language_boost - an optional language hint;
None/Automaticor pick a locale.
Output: audio, native ComfyUI AUDIO.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Pharma-Lobby/ComfyUI-Replicate-Select
Or ComfyUI Manager → Install Custom Nodes → "Replicate Select", restart. Dependency: replicate>=1.0.7. Auth via environment variable:
export REPLICATE_API_TOKEN=r8_...
Where people get burned
- Forgetting you can control delivery, not just content. The emotion dial and pause markers are the features; if your narration sounds flat it's because you're treating this like a basic TTS.
- Voice cloning needs its own model. The pack's nodes only use cloned voice ids - you clone through MiniMax's separate voice-cloning model, then paste the id here.
- mp3 vs pcm. The
pcmformat is raw bytes, useful for some pipelines and useless for others. Stick to wav for anything going into a lipsync node.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Text to narrate (max 10,000 characters). Use markers like <#0.5#> to insert pauses in seconds. | |
| voice_idopt | STRING | English_Wiselady | Voice to synthesize. Pick any MiniMax system voice (e.g. English_Wiselady, English_Deep-VoicedGentleman) or a voice_id returned by https://replicate.com/minimax/voice-cloning. See the full list of voi |
| speedopt | FLOAT | 1.000.5–2 | Speech speed multiplier (0.5–2.0). Lower is slower, higher is faster. |
| volumeopt | FLOAT | 1.000–10 | Relative loudness. 1.0 is default MiniMax gain. Range 0–10. |
| pitchopt | INT | 0-12–12 | Semitone offset applied to the voice (−12 to +12). |
| emotionopt | COMBO | auto | Desired delivery style. Use auto to let MiniMax choose, or pick a specific emotion. |
| english_normalizationopt | BOOLEAN | false | Improve number/date reading for English text (adds a small amount of latency). |
| sample_rateopt | COMBO | 32000 | Audio sample rate in Hz. |
| bitrateopt | COMBO | 128000 | MP3 bitrate in bits per second. Only used when audio_format is mp3. |
| audio_formatopt | COMBO | mp3 | File format for the generated audio. Choose mp3 for general use, wav/flac for lossless, or pcm for raw bytes. |
| channelopt | COMBO | mono | mono for 1 channel (default), stereo for 2 channels. |
| subtitle_enableopt | BOOLEAN | false | Return MiniMax subtitle metadata with sentence timestamps (non-streaming only). |
| language_boostopt | COMBO | None | Optional language hint. Choose Automatic to let MiniMax detect the language, or pick a specific locale. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |