Centralize numba compatibility system with smart testing Technical implementation: - Replace 15+ duplicate JIT workaround blocks with unified system - Add utils/compatibility/numba_compat.py with startup testing - Implement fallback for environments without compatibility module - Test librosa.stft() at startup and apply workarounds only when needed - Eliminate contradictory startup messages between init and nodes - Maintain backward compatibility with legacy Python 3.13 fixes
1162 lines
27 KiB
JSON
1162 lines
27 KiB
JSON
{
|
|
"id": "4a7cdb14-f535-4923-861b-59ba2c7ee043",
|
|
"revision": 0,
|
|
"last_node_id": 72,
|
|
"last_link_id": 121,
|
|
"nodes": [
|
|
{
|
|
"id": 46,
|
|
"type": "ChatterBoxEngineNode",
|
|
"pos": [
|
|
-1610,
|
|
2620
|
|
],
|
|
"size": [
|
|
270,
|
|
178
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "TTS_engine",
|
|
"type": "TTS_ENGINE",
|
|
"links": [
|
|
101
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "tts_audio_suite",
|
|
"ver": "ee95cad1f155eceb1442723c7f351949b30361e3",
|
|
"Node name for S&R": "ChatterBoxEngineNode"
|
|
},
|
|
"widgets_values": [
|
|
"English",
|
|
"auto",
|
|
0.5,
|
|
0.8,
|
|
0.5,
|
|
"hmm ,, {seg} hmm ,,"
|
|
],
|
|
"color": "#222",
|
|
"bgcolor": "#000"
|
|
},
|
|
{
|
|
"id": 43,
|
|
"type": "PrimitiveStringMultiline",
|
|
"pos": [
|
|
-2260,
|
|
2140
|
|
],
|
|
"size": [
|
|
620,
|
|
1100
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "STRING",
|
|
"type": "STRING",
|
|
"links": [
|
|
104
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.40",
|
|
"Node name for S&R": "PrimitiveStringMultiline",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [
|
|
"Welcome to our multilingual storytelling demonstration. Today we explore the advanced capabilities of modern text-to-speech technology with seamless character and language switching.\n\n[Narrator] In a bustling international café, conversations flow between languages and voices.[pause:2s] Let me tell you about what happened yesterday.\n\n[crestfallen_original] I was sitting at my usual table when I overheard [Alice] Guten Morgen! Wie geht es Ihnen heute? [crestfallen_original] The German woman's voice was so pleasant that [Bob] Hei! Hvordan har du det i dag? [crestfallen_original] Even the Norwegian gentleman couldn't help but join the conversation.\n\n[pause:1.5s][Alice] It's fascinating how [en:Alice] we can switch between languages so naturally, [de:Alice] aber manchmal ist es schwierig [en:Alice] to find the right words in each language.\n\n[crestfallen_original] The conversation continued as [Girl] Oh, I completely understand! [crestfallen_original] said a young woman nearby, [Girl] Sometimes I think in English but [de:Girl] meine Träume sind auf Deutsch [Girl] and it gets quite confusing!\n\n[pause:2s][Cowboy] Well partner, [crestfallen_original] interrupted a distinctive voice from the corner, [Cowboy] back in my day we had to learn languages the hard way. [crestfallen_original] The man's weathered face told stories of [Cowboy] countless adventures across different lands and cultures.\n\n[Bob] Det er veldig interessant! [crestfallen_original] he replied thoughtfully, [no:Bob] Men nå med moderne teknologi [en:Bob] we can preserve and share these voices across the world.\n\n[pause:1s][Old Man] You know, [crestfallen_original] began an elderly gentleman, [Old Man] I've lived through the transition from [no:Old Man] når vi bare hadde radio [en:Old Man] to this incredible digital age where [Old Man] voices can be recreated and shared instantly.\n\n[Alice] Das stimmt! [crestfallen_original] Alice nodded enthusiastically, [de:Alice] Meine Großmutter würde das nicht glauben [en:Alice] if she could see how we communicate today. [Alice] The technology bridges generations and cultures.\n\n[pause:2.5s][crestfallen_original] As the afternoon progressed, the conversation became even more animated. [Girl] Did you hear about the new developments? [crestfallen_original] she asked excitedly, [Girl] They say we can now capture the essence of any voice and [Girl] make it speak in multiple languages perfectly!\n\n[Cowboy] That's mighty impressive, [crestfallen_original] the cowboy drawled, [Cowboy] reminds me of those old radio shows where [Cowboy] one person would voice multiple characters. [crestfallen_original] His eyes twinkled with nostalgia.\n\n[pause:1s][Bob] Nøyaktig! [crestfallen_original] Bob agreed, [no:Bob] Det er som å ha et teaterensemble [en:Bob] right in your pocket. [Bob] The possibilities for storytelling are endless.\n\n[no:Alice] Det er utrolig! [crestfallen_original] Alice switched to Norwegian, [no:Alice] Vi kan nå fortelle historier på så mange måter [en:Alice] and reach audiences we never imagined before.\n\n[pause:3s][Narrator] The café slowly emptied as evening approached, but the conversation had sparked something special. [crestfallen_original] Each person left with [Old Man] a new appreciation for how technology [crestfallen_original] was preserving and expanding [Girl] the beautiful diversity of human speech [crestfallen_original] while bringing people together across linguistic barriers.\n\n[Cowboy] Until we meet again, partners, [crestfallen_original] the cowboy tipped his hat, [Cowboy] remember that every voice tells a story worth hearing.\n\n[pause:1.5s][Alice] Auf Wiedersehen! [Bob] Ha det bra! [Girl] See you all soon! [Old Man] Take care everyone! [crestfallen_original] And with that, the multicultural symphony of voices faded into the evening air.\n\n[pause:2s][Narrator] This is the power of modern voice technology. [pause:1s] Not just converting text to speech, but preserving the rich tapestry of human expression across languages, cultures, and generations. [pause:1s] Every voice matters, every language counts, and every story deserves to be heard.\n\n[pause:3s][crestfallen_original] The future of communication is here, and it speaks with the voices of humanity itself."
|
|
]
|
|
},
|
|
{
|
|
"id": 61,
|
|
"type": "MarkdownNote",
|
|
"pos": [
|
|
-1630,
|
|
2880
|
|
],
|
|
"size": [
|
|
350,
|
|
360
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# 🛡️ ChatterBox Crash Protection System\n\nChatterBox has a bug where text shorter than ~21 characters causes CUDA tensor errors that can crash ComfyUI. The crash protection system automatically pads short text segments to prevent these crashes.\n\n## How It Works\n\n- **Template**: `\"hmm ,, {seg} hmm ,,\"` (default)\n- **Trigger**: Activates when text segments are too short\n- **Process**: Replaces `{seg}` with original text: `\"hello\"` → `\"hmm ,, hello hmm ,,\"`\n\n## Configuration\n\nSet the crash protection template on the **ChatterBox Engine** node:\n\n- **Default**: `\"hmm ,, {seg} hmm ,,\"`\n- **Custom**: `\"Well, {seg}\"`, `\"...ummmmm {seg}\"`, `\"{seg}... yes... {seg}\"`\n- **Disable**: Leave empty string `\"\"`"
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 66,
|
|
"type": "Reroute",
|
|
"pos": [
|
|
-1430.9703369140625,
|
|
2433.110107421875
|
|
],
|
|
"size": [
|
|
75,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 18,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "*",
|
|
"widget": {
|
|
"name": "value"
|
|
},
|
|
"link": 109
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "STRING",
|
|
"links": [
|
|
110
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"showOutputText": false,
|
|
"horizontal": false
|
|
}
|
|
},
|
|
{
|
|
"id": 53,
|
|
"type": "Reroute",
|
|
"pos": [
|
|
-1435.39404296875,
|
|
2489.834228515625
|
|
],
|
|
"size": [
|
|
75,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 15,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "*",
|
|
"link": 104
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "STRING",
|
|
"links": []
|
|
}
|
|
],
|
|
"properties": {
|
|
"showOutputText": false,
|
|
"horizontal": false
|
|
}
|
|
},
|
|
{
|
|
"id": 62,
|
|
"type": "MarkdownNote",
|
|
"pos": [
|
|
-2632.264404296875,
|
|
2189.00732421875
|
|
],
|
|
"size": [
|
|
340,
|
|
240
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"## **❗ ❗ This is a LONG example with multi-character switching + language switching + pause system.**\n\nBe warned that connecting this text will take a long time to generate and will download and load multiple ChatterBox models "
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 54,
|
|
"type": "Reroute",
|
|
"pos": [
|
|
-1101.890625,
|
|
2431.052490234375
|
|
],
|
|
"size": [
|
|
75,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 20,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "*",
|
|
"widget": {
|
|
"name": "value"
|
|
},
|
|
"link": 110
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "STRING",
|
|
"links": [
|
|
108
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"showOutputText": false,
|
|
"horizontal": false
|
|
}
|
|
},
|
|
{
|
|
"id": 57,
|
|
"type": "MarkdownNote",
|
|
"pos": [
|
|
-939.9619750976562,
|
|
1553.8792724609375
|
|
],
|
|
"size": [
|
|
340,
|
|
240
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# **FROM v4 and up!**\n\nUnified nodes:\n- 🎤 **TTS Text**: Direct text-to-speech module \n- 🔄 **Voice Changer**: Voice transformation \n- 📺 **TTS SRT**: Subtitle-compatible TTS output \n\nThese nodes are now **engine-agnostic**, meaning you can plug in **Chatterbox**, **F5**, or future engines seamlessly.\n\n🔄 **Voice Changer** supports both **Chatterbox** and **VCR**, giving you more versatility in voice manipulation.\n"
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 56,
|
|
"type": "MarkdownNote",
|
|
"pos": [
|
|
-1363.54345703125,
|
|
1558.387451171875
|
|
],
|
|
"size": [
|
|
340,
|
|
240
|
|
],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# 🎭 **Chatterbox Voice Tips**\n\n1- For **Chatterbox**, you can connect any audio from a **Load Audio Core** node directly for **zero-shot voice cloning**\n \n2- or use the **🎭 Character Voices** feature to load a narrator from your `Voices` folder.\n\n🎭 **Character Voices** can also be connected to the **Voice Changer** for dynamic voice cloning in Voice Changer when using Chatterbox Engine.\n"
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 60,
|
|
"type": "MarkdownNote",
|
|
"pos": [
|
|
-446.62701416015625,
|
|
1535.305419921875
|
|
],
|
|
"size": [
|
|
450,
|
|
250
|
|
],
|
|
"flags": {},
|
|
"order": 6,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# Tips\n\n## General Use (Chatterbox TTS and Voice Agents):\n\n- The default settings (`exaggeration=0.5`, `cfg_weight=0.5`) work well for most prompts.\n- If the reference speaker has a fast speaking style, lowering `cfg_weight` to around `0.3` can improve pacing.\n\n## Expressive or Dramatic Speech:\n\n- Try lower `cfg_weight` values (e.g. ~`0.3`) and increase `exaggeration` to around `0.7` or higher.\n- Higher `exaggeration` tends to speed up speech; reducing `cfg_weight` helps compensate with slower, more deliberate pacing.\n"
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 35,
|
|
"type": "LoadAudio",
|
|
"pos": [
|
|
-1265.9169921875,
|
|
2734.278076171875
|
|
],
|
|
"size": [
|
|
270,
|
|
136
|
|
],
|
|
"flags": {},
|
|
"order": 7,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "AUDIO",
|
|
"type": "AUDIO",
|
|
"links": [
|
|
116
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.39",
|
|
"Node name for S&R": "LoadAudio",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [
|
|
"Clint_Eastwood CC3 (enhanced2).wav",
|
|
null,
|
|
null
|
|
]
|
|
},
|
|
{
|
|
"id": 34,
|
|
"type": "LoadAudio",
|
|
"pos": [
|
|
-1264.150146484375,
|
|
3006.59716796875
|
|
],
|
|
"size": [
|
|
270,
|
|
136
|
|
],
|
|
"flags": {},
|
|
"order": 8,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "AUDIO",
|
|
"type": "AUDIO",
|
|
"links": [
|
|
115
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.39",
|
|
"Node name for S&R": "LoadAudio",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [
|
|
"Aerith_original.wav",
|
|
null,
|
|
null
|
|
]
|
|
},
|
|
{
|
|
"id": 52,
|
|
"type": "Reroute",
|
|
"pos": [
|
|
-813.7050170898438,
|
|
2613.963623046875
|
|
],
|
|
"size": [
|
|
75,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 14,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "*",
|
|
"link": 101
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "TTS_ENGINE",
|
|
"links": [
|
|
102,
|
|
121
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"showOutputText": false,
|
|
"horizontal": false
|
|
}
|
|
},
|
|
{
|
|
"id": 47,
|
|
"type": "UnifiedTTSTextNode",
|
|
"pos": [
|
|
-657.041015625,
|
|
1982.4339599609375
|
|
],
|
|
"size": [
|
|
400,
|
|
324
|
|
],
|
|
"flags": {},
|
|
"order": 23,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "TTS_engine",
|
|
"type": "TTS_ENGINE",
|
|
"link": 102
|
|
},
|
|
{
|
|
"name": "opt_narrator",
|
|
"shape": 7,
|
|
"type": "*",
|
|
"link": 114
|
|
},
|
|
{
|
|
"name": "text",
|
|
"type": "STRING",
|
|
"widget": {
|
|
"name": "text"
|
|
},
|
|
"link": 108
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "audio",
|
|
"type": "AUDIO",
|
|
"links": [
|
|
93
|
|
]
|
|
},
|
|
{
|
|
"name": "generation_info",
|
|
"type": "STRING",
|
|
"links": [
|
|
100
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "tts_audio_suite",
|
|
"ver": "ee95cad1f155eceb1442723c7f351949b30361e3",
|
|
"Node name for S&R": "UnifiedTTSTextNode"
|
|
},
|
|
"widgets_values": [
|
|
"Hello! This is unified TTS with character switching support.\n[Alice] Hi there! I'm Alice speaking with the selected TTS engine.\n[Bob] And I'm Bob! This works with any TTS engine.\nBack to the main narrator voice for the conclusion.",
|
|
"none",
|
|
1552347952,
|
|
"fixed",
|
|
true,
|
|
400,
|
|
"auto",
|
|
100,
|
|
true,
|
|
0
|
|
],
|
|
"color": "#223",
|
|
"bgcolor": "#335"
|
|
},
|
|
{
|
|
"id": 51,
|
|
"type": "CharacterVoicesNode",
|
|
"pos": [
|
|
-1180.4798583984375,
|
|
2132.017822265625
|
|
],
|
|
"size": [
|
|
232.96051025390625,
|
|
146.08004760742188
|
|
],
|
|
"flags": {},
|
|
"order": 9,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "opt_audio_input",
|
|
"shape": 7,
|
|
"type": "AUDIO",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "opt_narrator",
|
|
"type": "NARRATOR_VOICE",
|
|
"links": [
|
|
114
|
|
]
|
|
},
|
|
{
|
|
"name": "character_name",
|
|
"type": "STRING",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "tts_audio_suite",
|
|
"ver": "ee95cad1f155eceb1442723c7f351949b30361e3",
|
|
"Node name for S&R": "CharacterVoicesNode"
|
|
},
|
|
"widgets_values": [
|
|
"voices_examples/David_Attenborough CC3.wav",
|
|
""
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 26,
|
|
"type": "LoadAudio",
|
|
"pos": [
|
|
-1154.0604248046875,
|
|
1933.3072509765625
|
|
],
|
|
"size": [
|
|
240,
|
|
136
|
|
],
|
|
"flags": {},
|
|
"order": 10,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "AUDIO",
|
|
"type": "AUDIO",
|
|
"links": []
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.39",
|
|
"Node name for S&R": "LoadAudio",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [
|
|
"Tony.mp3",
|
|
null,
|
|
null
|
|
]
|
|
},
|
|
{
|
|
"id": 65,
|
|
"type": "PrimitiveStringMultiline",
|
|
"pos": [
|
|
-1967.4971923828125,
|
|
1812.1561279296875
|
|
],
|
|
"size": [
|
|
310.7043762207031,
|
|
224.9416046142578
|
|
],
|
|
"flags": {},
|
|
"order": 11,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "STRING",
|
|
"type": "STRING",
|
|
"links": [
|
|
109
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.40",
|
|
"Node name for S&R": "PrimitiveStringMultiline",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [
|
|
"On Tuesdays, the pigeons held parliament. They debated the ethics of breadcrumbs and the metaphysics of flight. One particularly philosophical pigeon named Thistle believed gravity was just a suggestion. He once floated for three minutes straight, fueled by sheer conviction and a gust of rebellious wind."
|
|
]
|
|
},
|
|
{
|
|
"id": 69,
|
|
"type": "CharacterVoicesNode",
|
|
"pos": [
|
|
-935.7373046875,
|
|
2755.75244140625
|
|
],
|
|
"size": [
|
|
232.96051025390625,
|
|
146.08004760742188
|
|
],
|
|
"flags": {},
|
|
"order": 12,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "opt_audio_input",
|
|
"shape": 7,
|
|
"type": "AUDIO",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "opt_narrator",
|
|
"type": "NARRATOR_VOICE",
|
|
"links": [
|
|
118
|
|
]
|
|
},
|
|
{
|
|
"name": "character_name",
|
|
"type": "STRING",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "tts_audio_suite",
|
|
"ver": "ee95cad1f155eceb1442723c7f351949b30361e3",
|
|
"Node name for S&R": "CharacterVoicesNode"
|
|
},
|
|
"widgets_values": [
|
|
"voices_examples/Clint_Eastwood CC3 (enhanced2).wav",
|
|
""
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 71,
|
|
"type": "Reroute",
|
|
"pos": [
|
|
-948.1080322265625,
|
|
2925.384765625
|
|
],
|
|
"size": [
|
|
75,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 16,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "*",
|
|
"link": 116
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "AUDIO",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"showOutputText": false,
|
|
"horizontal": false
|
|
},
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 70,
|
|
"type": "Reroute",
|
|
"pos": [
|
|
-947.085693359375,
|
|
2964.313720703125
|
|
],
|
|
"size": [
|
|
75,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 17,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "*",
|
|
"link": 115
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "AUDIO",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"showOutputText": false,
|
|
"horizontal": false
|
|
},
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 49,
|
|
"type": "PreviewAny",
|
|
"pos": [
|
|
-240.49069213867188,
|
|
3012.72412109375
|
|
],
|
|
"size": [
|
|
493.8410949707031,
|
|
203.50367736816406
|
|
],
|
|
"flags": {},
|
|
"order": 22,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "source",
|
|
"type": "*",
|
|
"link": 99
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.57",
|
|
"Node name for S&R": "PreviewAny"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 48,
|
|
"type": "UnifiedVoiceChangerNode",
|
|
"pos": [
|
|
-572.5202026367188,
|
|
2863.7392578125
|
|
],
|
|
"size": [
|
|
273.111328125,
|
|
98
|
|
],
|
|
"flags": {},
|
|
"order": 19,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "TTS_engine",
|
|
"type": "TTS_ENGINE",
|
|
"link": 121
|
|
},
|
|
{
|
|
"name": "source_audio",
|
|
"type": "*",
|
|
"link": 118
|
|
},
|
|
{
|
|
"name": "narrator_target",
|
|
"type": "*",
|
|
"link": 117
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "converted_audio",
|
|
"type": "AUDIO",
|
|
"links": [
|
|
96
|
|
]
|
|
},
|
|
{
|
|
"name": "conversion_info",
|
|
"type": "STRING",
|
|
"links": [
|
|
99
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "tts_audio_suite",
|
|
"ver": "ee95cad1f155eceb1442723c7f351949b30361e3",
|
|
"Node name for S&R": "UnifiedVoiceChangerNode"
|
|
},
|
|
"widgets_values": [
|
|
1
|
|
],
|
|
"color": "#223",
|
|
"bgcolor": "#335"
|
|
},
|
|
{
|
|
"id": 68,
|
|
"type": "CharacterVoicesNode",
|
|
"pos": [
|
|
-935.257568359375,
|
|
3076.891357421875
|
|
],
|
|
"size": [
|
|
232.96051025390625,
|
|
146.08004760742188
|
|
],
|
|
"flags": {},
|
|
"order": 13,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "opt_audio_input",
|
|
"shape": 7,
|
|
"type": "AUDIO",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "opt_narrator",
|
|
"type": "NARRATOR_VOICE",
|
|
"links": [
|
|
117
|
|
]
|
|
},
|
|
{
|
|
"name": "character_name",
|
|
"type": "STRING",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "tts_audio_suite",
|
|
"ver": "ee95cad1f155eceb1442723c7f351949b30361e3",
|
|
"Node name for S&R": "CharacterVoicesNode"
|
|
},
|
|
"widgets_values": [
|
|
"voices_examples/female/female_02.wav",
|
|
""
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 36,
|
|
"type": "PreviewAudio",
|
|
"pos": [
|
|
-248.290771484375,
|
|
2867.75439453125
|
|
],
|
|
"size": [
|
|
499.4865417480469,
|
|
88
|
|
],
|
|
"flags": {},
|
|
"order": 21,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "audio",
|
|
"type": "AUDIO",
|
|
"link": 96
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.39",
|
|
"Node name for S&R": "PreviewAudio",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [],
|
|
"color": "#2a363b",
|
|
"bgcolor": "#3f5159"
|
|
},
|
|
{
|
|
"id": 15,
|
|
"type": "PreviewAudio",
|
|
"pos": [
|
|
-192.89453125,
|
|
1985.134521484375
|
|
],
|
|
"size": [
|
|
560,
|
|
88
|
|
],
|
|
"flags": {},
|
|
"order": 24,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "audio",
|
|
"type": "AUDIO",
|
|
"link": 93
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.39",
|
|
"Node name for S&R": "PreviewAudio",
|
|
"widget_ue_connectable": {}
|
|
},
|
|
"widgets_values": [],
|
|
"color": "#2a363b",
|
|
"bgcolor": "#3f5159"
|
|
},
|
|
{
|
|
"id": 50,
|
|
"type": "PreviewAny",
|
|
"pos": [
|
|
-188.43724060058594,
|
|
2147.539794921875
|
|
],
|
|
"size": [
|
|
552.7586059570312,
|
|
174.5865936279297
|
|
],
|
|
"flags": {},
|
|
"order": 25,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "source",
|
|
"type": "*",
|
|
"link": 100
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"cnr_id": "comfy-core",
|
|
"ver": "0.3.57",
|
|
"Node name for S&R": "PreviewAny"
|
|
},
|
|
"widgets_values": []
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
93,
|
|
47,
|
|
0,
|
|
15,
|
|
0,
|
|
"AUDIO"
|
|
],
|
|
[
|
|
96,
|
|
48,
|
|
0,
|
|
36,
|
|
0,
|
|
"AUDIO"
|
|
],
|
|
[
|
|
99,
|
|
48,
|
|
1,
|
|
49,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
100,
|
|
47,
|
|
1,
|
|
50,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
101,
|
|
46,
|
|
0,
|
|
52,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
102,
|
|
52,
|
|
0,
|
|
47,
|
|
0,
|
|
"TTS_ENGINE"
|
|
],
|
|
[
|
|
104,
|
|
43,
|
|
0,
|
|
53,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
108,
|
|
54,
|
|
0,
|
|
47,
|
|
2,
|
|
"STRING"
|
|
],
|
|
[
|
|
109,
|
|
65,
|
|
0,
|
|
66,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
110,
|
|
66,
|
|
0,
|
|
54,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
114,
|
|
51,
|
|
0,
|
|
47,
|
|
1,
|
|
"*"
|
|
],
|
|
[
|
|
115,
|
|
34,
|
|
0,
|
|
70,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
116,
|
|
35,
|
|
0,
|
|
71,
|
|
0,
|
|
"*"
|
|
],
|
|
[
|
|
117,
|
|
68,
|
|
0,
|
|
48,
|
|
2,
|
|
"*"
|
|
],
|
|
[
|
|
118,
|
|
69,
|
|
0,
|
|
48,
|
|
1,
|
|
"*"
|
|
],
|
|
[
|
|
121,
|
|
52,
|
|
0,
|
|
48,
|
|
0,
|
|
"TTS_ENGINE"
|
|
]
|
|
],
|
|
"groups": [
|
|
{
|
|
"id": 2,
|
|
"title": "ChatterBox Text-to-Speech",
|
|
"bounding": [
|
|
-1269.5645751953125,
|
|
1833.0001220703125,
|
|
1663.6541748046875,
|
|
752.8804931640625
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"title": "ChatterBox Voice Conversion",
|
|
"bounding": [
|
|
-1270,
|
|
2660,
|
|
1656.163330078125,
|
|
596.253173828125
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"title": "Load Engine",
|
|
"bounding": [
|
|
-1620,
|
|
2550,
|
|
290,
|
|
260
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"title": "LONG Text",
|
|
"bounding": [
|
|
-2270,
|
|
2070,
|
|
640,
|
|
1183.5999755859375
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 6,
|
|
"title": "Simple text exemple",
|
|
"bounding": [
|
|
-1978.6439208984375,
|
|
1738.55615234375,
|
|
335.19879150390625,
|
|
312.692138671875
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
}
|
|
],
|
|
"config": {},
|
|
"extra": {
|
|
"ds": {
|
|
"scale": 0.6588450000000138,
|
|
"offset": [
|
|
2476.275948694854,
|
|
-1566.3028650503888
|
|
]
|
|
},
|
|
"frontendVersion": "1.25.11",
|
|
"ue_links": [],
|
|
"links_added_by_ue": [],
|
|
"VHS_latentpreview": false,
|
|
"VHS_latentpreviewrate": 0,
|
|
"VHS_MetadataImage": true,
|
|
"VHS_KeepIntermediate": true
|
|
},
|
|
"version": 0.4
|
|
} |