ComfyUI custom nodes for OmniVoice.
Zero-shot voice cloning, voice design, multilingual TTS, pronunciation helpers, and standard ComfyUI model-folder support in one custom node package.
[!WARNING] This node is currently pinned to
transformers==5.3.0. OmniVoice needs a Transformers build that includesHiggsAudioV2TokenizerModel. If your ComfyUI environment is still pinned to oldertransformersreleases, OmniVoice will fail before model loading even starts.
Quick check inside the same Python environment used by ComfyUI:
python -m pip show transformers
Or list installed packages and filter for it:
python -m pip list | findstr transformers
If you get an import error mentioning HiggsAudioV2TokenizerModel, your current transformers build is too old for OmniVoice.
Be aware that some other custom nodes still depend on older Hugging Face stacks. If you mix them in one ComfyUI environment, you can run into dependency conflicts. In that case, the cleanest solution is usually a separate ComfyUI environment for OmniVoice.
| Item | Value |
|---|---|
| Package name | comfyui-omnivoice |
| Recommended Transformers | 5.3.0 |
| Model folder | ComfyUI/models/OmniVoice/ |
| Main workflows | voice clone, voice design |
| Included helper ASR | Whisper via transformers |
| Node | Purpose |
|---|---|
OmniVoice Load Model | Loads OmniVoice from ComfyUI/models/OmniVoice/ and downloads missing support files when enabled. |
OmniVoice Transcribe Reference | Transcribes reference audio into ref_text with a Whisper ASR model stored under ComfyUI/models/OmniVoice/asr/. |
OmniVoice Create Voice Clone Prompt | Converts ref_audio + ref_text into a reusable voice_clone_prompt. |
OmniVoice Build Voice Design | Builds a valid OmniVoice instruct string from presets and supported attributes. |
OmniVoice Apply English Pronunciation | Inserts CMU / ARPABET pronunciation hints such as [IH1 T]. |
OmniVoice Apply Chinese Pronunciation | Inserts pinyin-with-tone hints such as ZHE2. |
OmniVoice Generate | Runs TTS with the main OmniVoice generation settings. |
Download model weights manually into:
ComfyUI/models/OmniVoice/model.safetensors
ComfyUI/models/OmniVoice/audio_tokenizer/model.safetensors
ASR models used by OmniVoice Transcribe Reference are stored here:
ComfyUI/models/OmniVoice/asr/<repo-id>/
The node also stores these support files under ComfyUI/models/OmniVoice/:
config.jsontokenizer.jsontokenizer_config.jsonchat_template.jinjaaudio_tokenizer/config.jsonaudio_tokenizer/preprocessor_config.jsonComfyUI/custom_nodes/ComfyUi_OmniVoice
python -m pip install -r requirements.txt
torch and torchaudio.Recommended dependency set from this repo:
transformers==5.3.0
accelerate
huggingface_hub
pydub
numpy
soundfile
Workflow: workflow_omnivoice_voice_clone.json
Flow:
LoadAudioOmniVoice Transcribe ReferenceOmniVoice Load ModelOmniVoice Create Voice Clone PromptOmniVoice GeneratePreviewAudio or SaveAudioMP3Workflow: workflow_omnivoice_voice_design.json
Flow:
OmniVoice Load ModelOmniVoice Build Voice DesignOmniVoice GeneratePreviewAudio or SaveAudioMP3OmniVoice Create Voice Clone Prompt DoesThis node is not an ASR node. It prepares the reusable voice-clone conditioning object that OmniVoice needs for cloning.
In practice it:
voice_clone_prompt passed into OmniVoice GenerateSo:
OmniVoice Transcribe Reference answers: "what was said?"OmniVoice Create Voice Clone Prompt answers: "how should this voice be conditioned for cloning?"OmniVoice Generate exposes:
languageseednum_stepguidance_scalespeeddurationt_shiftdenoisepreprocess_promptpostprocess_outputlayer_penalty_factorposition_temperatureclass_temperatureaudio_chunk_durationaudio_chunk_thresholdThe language widget includes the full OmniVoice language list plus Auto.
OmniVoice voice design supports the upstream attribute set:
It does not support arbitrary emotion labels such as angry, happy, or sad in the official instruct vocabulary.
Use bracketed CMU / ARPABET:
You could probably still make [IH1 T] look good.
Use pinyin with tone numbers directly in the text, for example:
... ZHE2 ... SHE2 ... MA1 ...
When the node downloads missing files from Hugging Face, it logs:
3 commits
Python
100.0%
ComfyUI custom nodes for OmniVoice.
Zero-shot voice cloning, voice design, multilingual TTS, pronunciation helpers, and standard ComfyUI model-folder support in one custom node package.
[!WARNING] This node is currently pinned to
transformers==5.3.0. OmniVoice needs a Transformers build that includesHiggsAudioV2TokenizerModel. If your ComfyUI environment is still pinned to oldertransformersreleases, OmniVoice will fail before model loading even starts.
Quick check inside the same Python environment used by ComfyUI:
python -m pip show transformers
Or list installed packages and filter for it:
python -m pip list | findstr transformers
If you get an import error mentioning HiggsAudioV2TokenizerModel, your current transformers build is too old for OmniVoice.
Be aware that some other custom nodes still depend on older Hugging Face stacks. If you mix them in one ComfyUI environment, you can run into dependency conflicts. In that case, the cleanest solution is usually a separate ComfyUI environment for OmniVoice.
| Item | Value |
|---|---|
| Package name | comfyui-omnivoice |
| Recommended Transformers | 5.3.0 |
| Model folder | ComfyUI/models/OmniVoice/ |
| Main workflows | voice clone, voice design |
| Included helper ASR | Whisper via transformers |
| Node | Purpose |
|---|---|
OmniVoice Load Model | Loads OmniVoice from ComfyUI/models/OmniVoice/ and downloads missing support files when enabled. |
OmniVoice Transcribe Reference | Transcribes reference audio into ref_text with a Whisper ASR model stored under ComfyUI/models/OmniVoice/asr/. |
OmniVoice Create Voice Clone Prompt | Converts ref_audio + ref_text into a reusable voice_clone_prompt. |
OmniVoice Build Voice Design | Builds a valid OmniVoice instruct string from presets and supported attributes. |
OmniVoice Apply English Pronunciation | Inserts CMU / ARPABET pronunciation hints such as [IH1 T]. |
OmniVoice Apply Chinese Pronunciation | Inserts pinyin-with-tone hints such as ZHE2. |
OmniVoice Generate | Runs TTS with the main OmniVoice generation settings. |
Download model weights manually into:
ComfyUI/models/OmniVoice/model.safetensors
ComfyUI/models/OmniVoice/audio_tokenizer/model.safetensors
ASR models used by OmniVoice Transcribe Reference are stored here:
ComfyUI/models/OmniVoice/asr/<repo-id>/
The node also stores these support files under ComfyUI/models/OmniVoice/:
config.jsontokenizer.jsontokenizer_config.jsonchat_template.jinjaaudio_tokenizer/config.jsonaudio_tokenizer/preprocessor_config.jsonComfyUI/custom_nodes/ComfyUi_OmniVoice
python -m pip install -r requirements.txt
torch and torchaudio.Recommended dependency set from this repo:
transformers==5.3.0
accelerate
huggingface_hub
pydub
numpy
soundfile
Workflow: workflow_omnivoice_voice_clone.json
Flow:
LoadAudioOmniVoice Transcribe ReferenceOmniVoice Load ModelOmniVoice Create Voice Clone PromptOmniVoice GeneratePreviewAudio or SaveAudioMP3Workflow: workflow_omnivoice_voice_design.json
Flow:
OmniVoice Load ModelOmniVoice Build Voice DesignOmniVoice GeneratePreviewAudio or SaveAudioMP3OmniVoice Create Voice Clone Prompt DoesThis node is not an ASR node. It prepares the reusable voice-clone conditioning object that OmniVoice needs for cloning.
In practice it:
voice_clone_prompt passed into OmniVoice GenerateSo:
OmniVoice Transcribe Reference answers: "what was said?"OmniVoice Create Voice Clone Prompt answers: "how should this voice be conditioned for cloning?"OmniVoice Generate exposes:
languageseednum_stepguidance_scalespeeddurationt_shiftdenoisepreprocess_promptpostprocess_outputlayer_penalty_factorposition_temperatureclass_temperatureaudio_chunk_durationaudio_chunk_thresholdThe language widget includes the full OmniVoice language list plus Auto.
OmniVoice voice design supports the upstream attribute set:
It does not support arbitrary emotion labels such as angry, happy, or sad in the official instruct vocabulary.
Use bracketed CMU / ARPABET:
You could probably still make [IH1 T] look good.
Use pinyin with tone numbers directly in the text, for example:
... ZHE2 ... SHE2 ... MA1 ...
When the node downloads missing files from Hugging Face, it logs:
3 commits
Python
100.0%