Nodes/ComfyUI_AIIA/VoxCPM Loader
ComfyUI Node

VoxCPM Loader

The fast TTS loader — it downloads the model so you don't have to

By havvk·Created about a year ago·Updated 6 months ago· 13
VoxCPM Loader
    • voxcpm_model
    model_nameVoxCPM-1.5-800M
    precisionfp16
    enable_denoisertrue

    VoxCPM 1.5 is the "tokenizer-free" TTS that people keep bringing up: instead of shoving speech through discrete token codes and then upsampling, it generates audio more directly - and it's fast, with the AIIA README quoting an RTF around 0.17. This loader is the unglamorous but necessary half of that story. VoxCPM Loader downloads and loads the model into memory; the synthesis node does the actual talking.

    If you're coming from the standalone ComfyUI-VoxCPMTTS wrapper, note it's a different project - same model, different nodes, different naming. The AIIA pair is AIIA_VoxCPM_LoaderAIIA_VoxCPM_TTS.

    How it works

    On first run it checks models/voxcpm/VoxCPM1.5/ (relative to your ComfyUI root), and if the folder's empty it pulls openbmb/VoxCPM1.5 (the 800M model) from Hugging Face via snapshot_download. Then it loads the weights at your chosen precision and hands you a model bundle. It also handles a second download: with enable_denoiser on (default), it pulls the ZipEnhancer speech denoiser (speech_zipenhancer_ans_multiloss_16k_base) from ModelScope into models/voxcpm/speech_zipenhancer_ans_multiloss_16k_base/.

    The inputs that matter

    • model_name - currently a single option: VoxCPM-1.5-800M. Not much to choose from, which is honest.
    • precision - fp16 default, fp32 if you want maximum numerical stability or run into weirdness on fp16.
    • enable_denoiser - default on, and it's the one you should actually think about. VoxCPM 1.5 outputs 44.1kHz, but the "neural upsampling" gives it a characteristic sound: an elevated noise floor, some horizontal spectral striping, a slightly muffled or metallic feel. The denoiser cleans that up. Leave it on unless you're offline or you want the raw model output for research.

    Output: voxcpm_model - the only consumer is AIIA_VoxCPM_TTS. Wire it there and forget it.

    Install

    Standard pack install; the model download happens on first run, so the second part is mostly waiting:

    cd ComfyUI/custom_nodes
    git clone https://github.com/havvk/ComfyUI_AIIA.git
    

    If the auto-download stalls (it happens behind slow Hugging Face connections), grab it manually:

    mkdir -p models/voxcpm/VoxCPM1.5
    hf download openbmb/VoxCPM1.5 --local-dir models/voxcpm/VoxCPM1.5
    

    And for the denoiser if you need it offline:

    pip install modelscope
    modelscope download --model iic/speech_zipenhancer_ans_multiloss_16k_base \
      --local_dir models/voxcpm/speech_zipenhancer_ans_multiloss_16k_base
    

    Common issues

    • First run looks stuck. Two models download (weights + denoiser); on a slow connection that's several minutes of apparent nothing. Watch the console for progress.
    • Auto-download failed. The node logs a warning and moves on - but then synthesis fails with a missing-model error. Manual download (above) fixes it.
    • The muffled/metallic sound. That's the model's upsampling character, not a bad install. If the denoiser is on and you still hear it, that's just what VoxCPM 1.5 sounds like; the README documents the spectral signature openly.
    CategoryAIIA/VoxCPM

    Inputs (3)

    NameTypeDefaultDescription
    model_nameCOMBOVoxCPM-1.5-800M1 options: VoxCPM-1.5-800M
    precisionCOMBOfp162 options: fp16, fp32
    enable_denoiserBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    voxcpm_modelVOXCPM_MODEL