MiMo 预置音色合成
Pick a voice, type words, get audio — no GPU, no model download
- audio
You want a voice, you don't want to download a model, and you definitely don't want to fight a transformers dependency war to get it. This is that node. MiMoPresetVoiceTTS is a thin wrapper around Xiaomi's hosted MiMo-V2.5-TTS API: pick one of nine preset voices, type what you want spoken, and a standard ComfyUI AUDIO comes out the other side. The model never touches your machine - it runs on Xiaomi's servers, and all you bring is an API key.
That trade is worth being honest about up front. The KB's line on audio is that open TTS got genuinely good - Chatterbox is "ElevenLabs-class" and Kokoro is the lightweight king, both running locally. So why reach for a paid API? Because local TTS means installing a model and living with the dependency stack that keeps breaking ("add one new model and break three old ones" is the community's own summary of the audio layer). This node inverts all of it: nothing to download, no VRAM, no pip installs, works from a laptop with zero GPU. If you just need a reliable voice for a narration track or a character line and don't want to run a TTS stack, that's a real win. The cost is per-call, your text leaves the machine, and the voice is what Xiaomi decides it is.
How it works: the node POSTs to https://api.xiaomimimo.com/v1/chat/completions with your key in an api-key header. Cute detail - the API is chat-shaped, so the node stuffs your style_instruction in as a user message and your actual text as the assistant turn, which is how the model knows what to "say." The response is a WAV, decoded into the standard ComfyUI AUDIO format (waveform + sample_rate). The pack ships no extra Python deps - it only uses av (PyAV) and torch, which ComfyUI already bundles.
The inputs that matter are three:
- voice - pick from
mimo_default, 冰糖, 茉莉, 苏打, 白桦 (Chinese) or Mia, Chloe, Milo, Dean (English).mimo_defaultis 冰糖 on the China cluster and Mia elsewhere. - text - the words to speak. You can even drop audio tags right in, like
(温柔)or[停顿]for softness or a pause. - style_instruction - optional natural-language direction: speed, emotion, dialect, role. Leave it empty and it just reads flat.
Then api_key (leave blank if you've set the MIMO_API_KEY env var), plus timeout (default 180s) and max_retries (default 2, for 429/5xx hiccups). Output is one audio - wire it to a preview or Save Audio node, or feed it into a talking-head pipeline downstream.
Install is the easy part:
cd ComfyUI/custom_nodes
git clone https://github.com/TimekeeperXY/ComfyUI-MiMo-TTS.git
Restart ComfyUI, done. Or search "MiMo TTS" in ComfyUI Manager. You'll need ComfyUI ≥ 0.30. The README strongly suggests setting the key via $env:MIMO_API_KEY = "your key" (PowerShell) rather than pasting it into the node - a key in the field gets saved into your workflow JSON, so scrub it before you share a workflow. That's a real leak vector, not paranoia.
Two gotchas worth knowing. Same inputs hit ComfyUI's execution cache, so re-running won't re-charge or re-synthesize - tweak any input to force it. And remember it's a paid API; iterate on your text before you run, not after. If the voice reads wooden, that's the preset, not your prompt - the sibling node in this pack, MiMoVoiceDesignTTS, is the one that lets you describe a voice instead of picking one.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| voice | COMBO | mimo_default | 9 options: mimo_default, 冰糖, 茉莉, 苏打, 白桦, Mia, +3 |
| style_instruction | STRING | — | |
| text | STRING | 请输入待合成的文字。 | — |
| timeout | INT | 18010–600 | — |
| max_retries | INT | 20–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |