Add OmniVoice Voice Preset node with two female voice samples

Two built-in presets, auto-downloaded and cached to ComfyUI/models/omnivoice/presets/:
- "Nature – female, warm" (F5-TTS basic_ref_en.wav, transcript included)
- "Shadowheart – female, expressive" (Chatterbox demo, connect Whisper for transcript)

Outputs ref_audio (AUDIO) and ref_text (STRING) — wire directly into
OmniVoice Generate. Updated default workflow to use this node.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-05 18:19:29 +02:00
parent d779526225
commit 8de201a4c9
4 changed files with 96 additions and 57 deletions
+22 -55
View File
@@ -1,84 +1,57 @@
{
"last_node_id": 4,
"last_link_id": 3,
"last_link_id": 4,
"nodes": [
{
"id": 1,
"type": "OmniVoiceModelLoader",
"pos": [40, 80],
"size": {"0": 320, "1": 130},
"size": {"0": 300, "1": 100},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "model",
"type": "OMNIVOICE_MODEL",
"links": [1],
"shape": 3,
"slot_index": 0
}
{"name": "model", "type": "OMNIVOICE_MODEL", "links": [1], "shape": 3, "slot_index": 0}
],
"properties": {"Node name for S&R": "OmniVoiceModelLoader"},
"widgets_values": ["cuda:0", "float16"]
},
{
"id": 2,
"type": "LoadAudio",
"pos": [40, 280],
"size": {"0": 320, "1": 76},
"type": "OmniVoiceVoicePreset",
"pos": [40, 240],
"size": {"0": 300, "1": 80},
"flags": {},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "AUDIO",
"type": "AUDIO",
"links": [2],
"shape": 3,
"slot_index": 0
}
{"name": "ref_audio", "type": "AUDIO", "links": [2], "shape": 3, "slot_index": 0},
{"name": "ref_text", "type": "STRING", "links": [3], "shape": 3, "slot_index": 1}
],
"properties": {"Node name for S&R": "LoadAudio"},
"widgets_values": ["reference_voice.wav"]
"properties": {"Node name for S&R": "OmniVoiceVoicePreset"},
"widgets_values": ["Nature female, warm (F5-TTS ref)"]
},
{
"id": 3,
"type": "OmniVoiceGenerate",
"pos": [440, 80],
"pos": [420, 80],
"size": {"0": 380, "1": 310},
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "OMNIVOICE_MODEL",
"link": 1,
"slot_index": 0
},
{
"name": "ref_audio",
"type": "AUDIO",
"link": 2,
"slot_index": 1
}
{"name": "model", "type": "OMNIVOICE_MODEL", "link": 1, "slot_index": 0},
{"name": "ref_audio", "type": "AUDIO", "link": 2, "slot_index": 1},
{"name": "ref_text", "type": "STRING", "link": 3, "slot_index": 2}
],
"outputs": [
{
"name": "audio",
"type": "AUDIO",
"links": [3],
"shape": 3,
"slot_index": 0
}
{"name": "audio", "type": "AUDIO", "links": [4], "shape": 3, "slot_index": 0}
],
"properties": {"Node name for S&R": "OmniVoiceGenerate"},
"widgets_values": [
"Hello! Connect a Whisper node to ref_text for best results.",
"Hello! This is a test of the OmniVoice text-to-speech system.",
"voice_cloning",
"",
"",
1.0,
32
]
@@ -86,18 +59,13 @@
{
"id": 4,
"type": "SaveAudio",
"pos": [900, 80],
"size": {"0": 320, "1": 100},
"pos": [880, 80],
"size": {"0": 300, "1": 100},
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "audio",
"type": "AUDIO",
"link": 3,
"slot_index": 0
}
{"name": "audio", "type": "AUDIO", "link": 4, "slot_index": 0}
],
"properties": {"Node name for S&R": "SaveAudio"},
"widgets_values": ["omnivoice"]
@@ -106,12 +74,11 @@
"links": [
[1, 1, 0, 3, 0, "OMNIVOICE_MODEL"],
[2, 2, 0, 3, 1, "AUDIO"],
[3, 3, 0, 4, 0, "AUDIO"]
[3, 2, 1, 3, 2, "STRING"],
[4, 3, 0, 4, 0, "AUDIO"]
],
"groups": [],
"config": {},
"extra": {
"ds": {"scale": 0.9, "offset": [0, 0]}
},
"extra": {"ds": {"scale": 0.9, "offset": [0, 0]}},
"version": 0.4
}