Files
diodiogod-TTS-Audio-Suite/example_workflows/Chatterbox integration.json
T

846 lines
20 KiB
JSON

{
"id": "4a7cdb14-f535-4923-861b-59ba2c7ee043",
"revision": 0,
"last_node_id": 61,
"last_link_id": 106,
"nodes": [
{
"id": 50,
"type": "PreviewAny",
"pos": [
-420,
2440
],
"size": [
250,
88
],
"flags": {},
"order": 18,
"mode": 0,
"inputs": [
{
"name": "source",
"type": "*",
"link": 100
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewAny"
},
"widgets_values": []
},
{
"id": 35,
"type": "LoadAudio",
"pos": [
-1240,
2790
],
"size": [
270,
136
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "AUDIO",
"type": "AUDIO",
"links": [
97
]
}
],
"properties": {
"Node name for S&R": "LoadAudio",
"cnr_id": "comfy-core",
"ver": "0.3.39",
"widget_ue_connectable": {}
},
"widgets_values": [
"Clint_Eastwood CC3 (enhanced2).wav",
null,
null
]
},
{
"id": 34,
"type": "LoadAudio",
"pos": [
-1240,
3000
],
"size": [
270,
136
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "AUDIO",
"type": "AUDIO",
"links": [
98
]
}
],
"properties": {
"Node name for S&R": "LoadAudio",
"cnr_id": "comfy-core",
"ver": "0.3.39",
"widget_ue_connectable": {}
},
"widgets_values": [
"Aerith_original.wav",
null,
null
]
},
{
"id": 52,
"type": "Reroute",
"pos": [
-1050,
2620
],
"size": [
75,
26
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 101
}
],
"outputs": [
{
"name": "",
"type": "TTS_ENGINE",
"links": [
102,
103
]
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 53,
"type": "Reroute",
"pos": [
-1382.0047607421875,
2388.0458984375
],
"size": [
75,
26
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"widget": {
"name": "value"
},
"link": 104
}
],
"outputs": [
{
"name": "",
"type": "STRING",
"links": [
105
]
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 54,
"type": "Reroute",
"pos": [
-1052.3798828125,
2388.8125
],
"size": [
75,
26
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"widget": {
"name": "value"
},
"link": 105
}
],
"outputs": [
{
"name": "",
"type": "STRING",
"links": [
106
]
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 56,
"type": "MarkdownNote",
"pos": [
-1000,
1830
],
"size": [
340,
240
],
"flags": {},
"order": 2,
"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": 48,
"type": "UnifiedVoiceChangerNode",
"pos": [
-680,
2870
],
"size": [
273.111328125,
98
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "TTS_engine",
"type": "TTS_ENGINE",
"link": 103
},
{
"name": "source_audio",
"type": "*",
"link": 97
},
{
"name": "narrator_target",
"type": "*",
"link": 98
}
],
"outputs": [
{
"name": "converted_audio",
"type": "AUDIO",
"links": [
96
]
},
{
"name": "conversion_info",
"type": "STRING",
"links": [
99
]
}
],
"properties": {
"Node name for S&R": "UnifiedVoiceChangerNode"
},
"widgets_values": [
2
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 51,
"type": "CharacterVoicesNode",
"pos": [
-650,
1840
],
"size": [
280,
150
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "opt_audio_input",
"shape": 7,
"type": "AUDIO",
"link": null
}
],
"outputs": [
{
"name": "opt_narrator",
"type": "NARRATOR_VOICE",
"links": null
},
{
"name": "character_name",
"type": "STRING",
"links": null
}
],
"properties": {
"Node name for S&R": "CharacterVoicesNode"
},
"widgets_values": [
"voices_examples/Clint_Eastwood CC3 (enhanced2).wav",
""
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 46,
"type": "ChatterBoxEngineNode",
"pos": [
-1610,
2620
],
"size": [
270,
178
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "TTS_engine",
"type": "TTS_ENGINE",
"links": [
101
]
}
],
"properties": {
"Node name for S&R": "ChatterBoxEngineNode"
},
"widgets_values": [
"English",
"auto",
0.5,
0.8,
0.5,
"hmm ,, {seg} hmm ,,"
],
"color": "#222",
"bgcolor": "#000"
},
{
"id": 61,
"type": "MarkdownNote",
"pos": [
-1630,
2880
],
"size": [
350,
360
],
"flags": {},
"order": 5,
"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": 57,
"type": "MarkdownNote",
"pos": [
-1360,
1830
],
"size": [
340,
240
],
"flags": {},
"order": 6,
"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": 60,
"type": "MarkdownNote",
"pos": [
-350,
1830
],
"size": [
450,
250
],
"flags": {},
"order": 7,
"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": 26,
"type": "LoadAudio",
"pos": [
-1250,
2220
],
"size": [
240,
136
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "AUDIO",
"type": "AUDIO",
"links": []
}
],
"properties": {
"Node name for S&R": "LoadAudio",
"cnr_id": "comfy-core",
"ver": "0.3.39",
"widget_ue_connectable": {}
},
"widgets_values": [
"Tony.mp3",
null,
null
]
},
{
"id": 43,
"type": "PrimitiveStringMultiline",
"pos": [
-2260,
2140
],
"size": [
620,
1100
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
104
]
}
],
"properties": {
"Node name for S&R": "PrimitiveStringMultiline",
"cnr_id": "comfy-core",
"ver": "0.3.40",
"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": 47,
"type": "UnifiedTTSTextNode",
"pos": [
-920,
2220
],
"size": [
400,
300
],
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{
"name": "TTS_engine",
"type": "TTS_ENGINE",
"link": 102
},
{
"name": "opt_narrator",
"shape": 7,
"type": "*",
"link": null
},
{
"name": "text",
"type": "STRING",
"widget": {
"name": "text"
},
"link": 106
}
],
"outputs": [
{
"name": "audio",
"type": "AUDIO",
"links": [
93
]
},
{
"name": "generation_info",
"type": "STRING",
"links": [
100
]
}
],
"properties": {
"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
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 15,
"type": "PreviewAudio",
"pos": [
-480,
2210
],
"size": [
560,
88
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"name": "audio",
"type": "AUDIO",
"link": 93
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewAudio",
"cnr_id": "comfy-core",
"ver": "0.3.39",
"widget_ue_connectable": {}
},
"widgets_values": [],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 36,
"type": "PreviewAudio",
"pos": [
-370,
2850
],
"size": [
380,
88
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "audio",
"type": "AUDIO",
"link": 96
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewAudio",
"cnr_id": "comfy-core",
"ver": "0.3.39",
"widget_ue_connectable": {}
},
"widgets_values": [],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 49,
"type": "PreviewAny",
"pos": [
-370,
3030
],
"size": [
250,
88
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"name": "source",
"type": "*",
"link": 99
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewAny"
},
"widgets_values": []
}
],
"links": [
[
93,
47,
0,
15,
0,
"AUDIO"
],
[
96,
48,
0,
36,
0,
"AUDIO"
],
[
97,
35,
0,
48,
1,
"*"
],
[
98,
34,
0,
48,
2,
"*"
],
[
99,
48,
1,
49,
0,
"*"
],
[
100,
47,
1,
50,
0,
"*"
],
[
101,
46,
0,
52,
0,
"*"
],
[
102,
52,
0,
47,
0,
"TTS_ENGINE"
],
[
103,
52,
0,
48,
0,
"TTS_ENGINE"
],
[
104,
43,
0,
53,
0,
"*"
],
[
105,
53,
0,
54,
0,
"*"
],
[
106,
54,
0,
47,
2,
"STRING"
]
],
"groups": [
{
"id": 2,
"title": "ChatterBox Text-to-Speech",
"bounding": [
-1280,
2110,
1376.1483154296875,
501.39434814453125
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 3,
"title": "ChatterBox Voice Conversion",
"bounding": [
-1270,
2660,
1371.289794921875,
575.38330078125
],
"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": "Group",
"bounding": [
-2270,
2070,
640,
1183.5999755859375
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.49500000000000693,
"offset": [
2973.4984627746817,
-1337.5676755278566
]
},
"frontendVersion": "1.23.4",
"ue_links": [],
"links_added_by_ue": [],
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}