Nodes/ComfyUI-Omnivoice/OmniVoice Model Loader
ComfyUI Node

OmniVoice Model Loader

The heavy-lifter node every OmniVoice workflow starts at

By ethanfel·Created 5 months ago·Updated 5 months ago· 6
OmniVoice Model Loader
    • model
    devicecuda:0
    dtypefloat16
    compilefalse

    Every OmniVoice workflow in this pack starts at the Model Loader. It's the node that grabs the actual model - k2-fsa's OmniVoice, the zero-shot multilingual TTS that clones a voice from a short clip and speaks 600+ languages - and hands it to every Generate node downstream. No loader, no speech; it's the checkpoint node of this little TTS ecosystem.

    Here's the thing about TTS in ComfyUI, though: unlike checkpoints, these models arrive through bespoke node packs with their own dependency stacks bolted on top of a system that was never designed for audio. The Loader is where most of that friction lands. Get it green once and the rest of the pack is smooth sailing.

    How it works

    The Loader pulls k2-fsa/OmniVoice from HuggingFace on first run - a multi-GB download that gets cached to ComfyUI/models/omnivoice/ - then loads it onto the device and dtype you pick. It's a one-shot operation per ComfyUI session; after that the model stays resident and you just keep generating. The community reports roughly 5–6.5GB VRAM in use with voice cloning, so it's a genuine GPU model, not a Kokoro-style CPU toy - though the actual generation is fast, with people measuring well over 10x real-time on newer cards.

    The inputs that matter

    Only three, and you mostly care about one of them:

    • device - cuda:0, cuda:1, or cpu. If you have a GPU, leave the default. The cpu option exists for honesty more than usability; expect slow generation.
    • dtype - float16 (default), bfloat16, or float32. Default float16 is the right call for most people. bfloat16 is worth a try if you're on Ampere+ and want a bit more headroom; float32 is there if you're chasing precision, at double the memory.
    • compile - the interesting one, and easy to miss. Default false. Flip it on and the loader runs torch.compile() on the model after loading: the first generation pays a 30–60 second warmup while the graph compiles, then every subsequent generation in the session is faster. The README recommends it specifically for audiobook pipelines, where you're generating chapter after chapter and the warmup amortizes away. Requires PyTorch 2.0+.

    One output: model, type OMNIVOICE_MODEL, which wires into Generate (and only Generate).

    Installing it

    Standard for the pack - ComfyUI Manager, search "OmniVoice", install. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ethanfel/ComfyUI-Omnivoice.git
    

    then restart. The important bit is that Manager runs the pack's install.py, which installs the omnivoice Python package with --no-deps. Why: the omnivoice pip package pins torch==2.8.* from a CUDA 12.8 index, and installed normally it would overwrite ComfyUI's torch. The --no-deps flag skips that pin; requirements.txt covers the remaining deps safely.

    Common issues

    • "omnivoice failed to import" - this is the Loader's signature error, and it means the pip package didn't actually install. If you installed manually, run pip install omnivoice --no-deps and reinstall requirements.txt. Windows embedded Python gets the same command via .\\python_embeded\\python.exe -m pip.
    • The first run looks frozen. It's downloading the model from HuggingFace to models/omnivoice/; give it time, and on a slow connection give it a lot of it.
    • Generation is slow and you're doing long text - flip compile on and suffer one warmup instead of slow runs forever.
    • Torch version anxiety. Because the pack intentionally doesn't let omnivoice manage torch, your ComfyUI torch build needs to be reasonably recent. Old ComfyUI installs are where people hit the weirdest import errors.

    If the Loader goes green and Generate still complains, the model's almost never the problem - check that a voice source is actually connected on the Generate node next.

    CategoryOmniVoice

    Inputs (3)

    NameTypeDefaultDescription
    deviceCOMBOcuda:03 options: cuda:0, cuda:1, cpu
    dtypeCOMBOfloat163 options: float16, bfloat16, float32
    compileBOOLEANfalseRun torch.compile() on the model after loading. First generation will be slow (~30-60s warmup) while the graph is compiled, then every subsequent generation in the session will be faster. Recommended for audiobook pipelines. Requires PyTorch 2.0+.

    Outputs (1)

    NameTypeDescription
    modelOMNIVOICE_MODEL