CosyVoice Model Loader (AIIA)
One node, the whole TTS family, no third-party pack needed
- model
CosyVoice is the workhorse of this whole pack - Alibaba's open TTS family, and the model line people actually run for production-grade speech. The 3.0 release (December 2025) made it especially hard to ignore: 3-second zero-shot cloning, 9 languages, 18 Chinese dialects, and first-token latency low enough for "type-to-speech." This loader is how you get any of that into ComfyUI, and the useful bit is the model_name dropdown covering the whole generation line - V1's 300M, V2's 0.5B, and V3's 0.5B - so you're not locked to the newest.
What it does
It's the "I don't want to install the CosyVoice ecosystem by hand" node. On first run it does the heavy lifting itself: it clones the official FunAudioLLM/CosyVoice repo into ComfyUI_AIIA/libs/CosyVoice (recursive, because it needs Matcha-TTS from third-party), installs that repo's requirements, and wires it into Python's path. Then it downloads the model weights you picked into ComfyUI/models/cosyvoice/ and hands you a COSYVOICE_MODEL object. The author also built a compatibility shim so current transformers versions don't break CosyVoice's Qwen2 encoder - the upstream code genuinely breaks on newer transformers, and this is a real fix, not a marketing bullet.
The inputs
- model_name - five options:
FunAudioLLM/Fun-CosyVoice3-0.5B-2512- V3, the recommended one.FunAudioLLM/CosyVoice2-0.5B- V2.CosyVoice-300M/-SFT/-Instruct- the V1 family.
- use_fp16 - on by default; halves VRAM with negligible quality cost.
- use_rl_model - on by default. Uses the
llm.rl.ptreinforcement-learning-optimized weights if the model folder contains them. Only relevant for V2/V3.
Output: model (COSYVOICE_MODEL), which feeds the pack's CosyVoice 3.0 TTS and Voice Conversion nodes.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/havvk/ComfyUI_AIIA.git
The loader auto-installs and auto-downloads, but the README's honest caveats: the first-run repo clone + pip install is slow, and auto-downloads can stall. If they do, fetch manually into ComfyUI/models/cosyvoice/ - folder names must match the dropdown exactly, minus the FunAudioLLM/ prefix:
cd ComfyUI/models/cosyvoice
modelscope download --model FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local_dir Fun-CosyVoice3-0.5B-2512
(ModelScope is the README's recommended source, especially outside the US; HuggingFace URLs are also given.)
Gotchas
- PyTorch 2.9.x is broken for this - the README calls it a regression bug. If you're on 2.9 and seeing weird generation, upgrade to 2.10 (
pip install torch==2.10.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu128). - First run looks like a hang. Clone + pip install + model download can take a while. Let it cook.
- Wrong folder name = silent failure. If the dropdown name and the folder name don't match exactly, the loader won't find the weights and will try (and possibly fail) to re-download.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 5 options: FunAudioLLM/Fun-CosyVoice3-0.5B-2512, FunAudioLLM/CosyVoice2-0.5B, CosyVoice-300M, CosyVoice-300M-SFT, CosyVoice-300M-Instruct | |
| use_fp16 | BOOLEAN | true | — |
| use_rl_model | BOOLEAN | true | Use llm.rl.pt (Reinforcement Learning optimized) if available. Only for V3/V2 models. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | COSYVOICE_MODEL | — |