OmniVoice Load Model
OmniVoice Load Model
- reference audio (optional)
- pipe
The name doesn't lie much: this node is the checkpoint loader for k2-fsa/OmniVoice, a genuinely good multilingual zero-shot TTS that runs fully local - no API, no key, no ElevenLabs invoice. OmniVoice Load Model is where the pipeline starts. You point it at a bit of reference audio and it quietly loads the model, transcribes your sample, and hands you a pipe that the next node turns into speech. It's the audio equivalent of a checkpoint loader, and it behaves like one: download once, cache, reuse.
How it works
Under the hood it's a few smart defaults doing the heavy lifting. The OmniVoice model (a diffusion language model that handles 600+ languages and does both voice cloning and voice design) is downloaded from Hugging Face into ComfyUI/models/omnivoice on first run and cached from then on. device: auto picks cuda:0 with float16 if it's there, MPS float16 on Apple silicon, otherwise CPU float32 - so you can leave the defaults alone and it'll usually do the right thing.
The interesting part is the reference audio. Connect one and leave the transcript blank, and the node auto-transcribes it with Whisper (openai/whisper-large-v3-turbo by default) so the clone knows what your sample says. Give it a transcription override instead and it skips the ASR entirely - useful when Whisper mangles a short or accented clip. If you type an override but forget to connect audio, it's silently ignored. That's the author being safe, not buggy.
The inputs that matter
- device / dtype - leave both on
autountil something breaks. Thencuda+float16is the standard combo;cpuworks but expect it to crawl. - offload_after_generate - unloads OmniVoice from VRAM once you're done, so it stops holding ~5–6.5 GB. Handy if you're sharing your card with image generation, but it makes repeat runs slower.
- reference audio (optional) - the voice you want to clone. A few seconds of clean, single-speaker audio is the sweet spot; the community finds short or noisy clips give worse clones.
- transcription override - the text of your reference clip. Providing it saves a Whisper download and run.
Everything goes out one wire: pipe, which feeds straight into OmniVoice Generate Audio. There's also a status output on the model node in the shipped workflow, but it's not part of this node's schema - the actual pipe is all you need.
Installing it
Install via ComfyUI Manager (search ComfyUI-OmniVoice_CRT) or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/PGCRT/ComfyUI-OmniVoice_CRT.git
cd ComfyUI-OmniVoice_CRT
install_omnivoice_safe.bat
That .bat targets Windows (python_embeded\python.exe). It installs omnivoice>=0.1.0 with --no-deps on purpose - so it can't clobber your existing Torch - plus huggingface_hub>=1.3.0,<2.0. On Linux or Mac you do the equivalent pip installs by hand. Then restart ComfyUI; the first run pulls the OmniVoice model and, if you're cloning, a Whisper model.
Where people get burned
The usual failure is a model download error - that's a Hugging Face access or network issue, and there's no offline fallback baked in. ASR auto-transcription failing means the Whisper download failed or your reference is weird; provide the transcript yourself and it goes away. And if install feels broken, remember the pack ships a Windows-only installer and only that one --no-deps dependency - dependency conflicts elsewhere in ComfyUI are the classic "delete venv and reinstall" problem, not this pack's fault.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| device | COMBO | auto | Model execution device |
| dtype | COMBO | auto | Model tensor dtype |
| offload_after_generate | BOOLEAN | false | Unload OmniVoice from memory after generation |
| asr_model_name | COMBO | openai/whisper-large-v3-turbo | Whisper model used when transcription override is empty |
| reference audio (optional)opt | AUDIO | Reference speaker audio for voice clone | |
| transcription overrideopt | STRING | Optional transcript for reference audio; ignored if no reference audio |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | OMNIVOICE_PIPE | — |