ComfyPilotComfyPilot
工作流 / 音频 / Chatter Box:使用克隆语音进行多人对话

Chatter Box:使用克隆语音进行多人对话

Chatter Box: Multi-Speaker Conversation with Cloned Voices

上传语音样本并输入多说话人对话脚本。为每个说话人生成带有克隆语音的对话音频文件。

音频 6 个节点 2 个输入 21 次使用 ComfyUI ≥ 0.25.0 PurzBeats 6 KB

下载工作流 JSON 查看官方来源

下载后把文件拖进 ComfyUI 窗口即可打开。

节点构成

LoadAudio × 2
FL_ChatterboxDialogTTS × 1
AudioCrop × 1
SaveAudioMP3 × 1
MarkdownNote × 1

官方标注的模型

Chatter Box

工作流 JSON

和上面「下载工作流 JSON」是同一份文件。

1{
2 "id": "e03290bc-11fa-491b-b476-917fa1e2a69e",
3 "revision": 0,
4 "last_node_id": 6,
5 "last_link_id": 4,
6 "nodes": [
7 {
8 "id": 1,
9 "type": "FL_ChatterboxDialogTTS",
10 "pos": [
11 -560.8604810363736,
12 96.7136760465722
13 ],
14 "size": [
15 374.60725574976755,
16 415.2498207734171
17 ],
18 "flags": [],
19 "order": 4,
20 "mode": 0,
21 "inputs": [
22 {
23 "name": "speaker_A_Audio",
24 "type": "AUDIO",
25 "link": 1
26 },
27 {
28 "name": "speaker_B_Audio",
29 "type": "AUDIO",
30 "link": 3
31 },
32 {
33 "name": "speaker_C_Audio",
34 "shape": 7,
35 "type": "AUDIO",
36 "link": null
37 },
38 {
39 "name": "speaker_D_Audio",
40 "shape": 7,
41 "type": "AUDIO",
42 "link": null
43 }
44 ],
45 "outputs": [
46 {
47 "name": "dialog_audio",
48 "type": "AUDIO",
49 "links": [
50 4
51 ]
52 },
53 {
54 "name": "speaker_a_audio",
55 "type": "AUDIO",
56 "links": null
57 },
58 {
59 "name": "speaker_b_audio",
60 "type": "AUDIO",
61 "links": null
62 },
63 {
64 "name": "speaker_c_audio",
65 "type": "AUDIO",
66 "links": null
67 },
68 {
69 "name": "speaker_d_audio",
70 "type": "AUDIO",
71 "links": null
72 },
73 {
74 "name": "message",
75 "type": "STRING",
76 "links": null
77 }
78 ],
79 "properties": {
80 "Node name for S&R": "FL_ChatterboxDialogTTS"
81 },
82 "widgets_values": [
83 "SPEAKER A: Hey what's up, I'm Purz, I'm here to teach you about ComfyUI!\nSPEAKER B: What is ComfyUI?\nSPEAKER A: It's a node-based visual language for creating anything you want with AI!\nSPEAKER B: I can't wait to try it out, can you teach me how to use it?\nSPEAKER A: Sure!",
84 0.5,
85 0.5,
86 0.8,
87 776764013,
88 "randomize",
89 false,
90 false
91 ]
92 },
93 {
94 "id": 4,
95 "type": "AudioCrop",
96 "pos": [
97 -878.2416384178609,
98 291.01786045451
99 ],
100 "size": [
101 270,
102 82
103 ],
104 "flags": [],
105 "order": 3,
106 "mode": 0,
107 "inputs": [
108 {
109 "name": "audio",
110 "type": "AUDIO",
111 "link": 2
112 }
113 ],
114 "outputs": [
115 {
116 "name": "AUDIO",
117 "type": "AUDIO",
118 "links": [
119 3
120 ]
121 }
122 ],
123 "properties": {
124 "Node name for S&R": "AudioCrop"
125 },
126 "widgets_values": [
127 "0:10",
128 "0:20"
129 ]
130 },
131 {
132 "id": 5,
133 "type": "SaveAudioMP3",
134 "pos": [
135 -143.39747038354452,
136 98.79595705754373
137 ],
138 "size": [
139 270,
140 136
141 ],
142 "flags": [],
143 "order": 5,
144 "mode": 0,
145 "inputs": [
146 {
147 "name": "audio",
148 "type": "AUDIO",
149 "link": 4
150 }
151 ],
152 "outputs": [],
153 "properties": {
154 "Node name for S&R": "SaveAudioMP3"
155 },
156 "widgets_values": [
157 "audio/ComfyUI",
158 "V0"
159 ]
160 },
161 {
162 "id": 6,
163 "type": "MarkdownNote",
164 "pos": [
165 -1641.9684155676373,
166 98.25335655229316
167 ],
168 "size": [
169 402.47769402877066,
170 342.99708651088537
171 ],
172 "flags": [],
173 "order": 0,
174 "mode": 0,
175 "inputs": [],
176 "outputs": [],
177 "title": "🎙️ Chatterbox Dialog TTS",
178 "properties": [],
179 "widgets_values": [
180 "Generate a multi-speaker conversation using cloned voices and a written dialog.\n\n---\n\n## How to Use\n\n1. **Load voice references** \n Add a short audio clip for each speaker using the **Load Audio** nodes. \n (5–10 seconds of clean speech per voice is enough.)\n\n2. **(Optional) Trim clips** \n Use **AudioCrop** to isolate a clean section of each voice.\n\n3. **Write the dialog** \n Enter your dialog text in the **FL Chatterbox Dialog TTS** node.\n\n4. **Run the workflow** \n Click **Run** to generate the conversation.\n\n5. **Listen or export** \n Preview or save the result from **Save Audio (MP3)**.\n\n---\n\n## Notes\n\n- Clean, distinct voice samples work best \n- Short lines sound more natural than long paragraphs \n- Fewer speakers = faster iteration\n\n---\n"
181 ],
182 "color": "#222",
183 "bgcolor": "#000"
184 },
185 {
186 "id": 2,
187 "type": "LoadAudio",
188 "pos": [
189 -1195.6709174277935,
190 98.18191485582688
191 ],
192 "size": [
193 282.798828125,
194 136
195 ],
196 "flags": [],
197 "order": 1,
198 "mode": 0,
199 "inputs": [],
200 "outputs": [
201 {
202 "name": "AUDIO",
203 "type": "AUDIO",
204 "links": [
205 1
206 ]
207 }
208 ],
209 "properties": {
210 "Node name for S&R": "LoadAudio"
211 },
212 "widgets_values": [
213 "chatterbox_input_target_voice.mp3",
214 null,
215 null
216 ]
217 },
218 {
219 "id": 3,
220 "type": "LoadAudio",
221 "pos": [
222 -1194.8936757303538,
223 284.72214656711657
224 ],
225 "size": [
226 282.798828125,
227 136
228 ],
229 "flags": [],
230 "order": 2,
231 "mode": 0,
232 "inputs": [],
233 "outputs": [
234 {
235 "name": "AUDIO",
236 "type": "AUDIO",
237 "links": [
238 2
239 ]
240 }
241 ],
242 "properties": {
243 "Node name for S&R": "LoadAudio"
244 },
245 "widgets_values": [
246 "chatterbox_input_gettysburg.wav",
247 null,
248 null
249 ]
250 }
251 ],
252 "links": [
253 [
254 1,
255 2,
256 0,
257 1,
258 0,
259 "AUDIO"
260 ],
261 [
262 2,
263 3,
264 0,
265 4,
266 0,
267 "AUDIO"
268 ],
269 [
270 3,
271 4,
272 0,
273 1,
274 1,
275 "AUDIO"
276 ],
277 [
278 4,
279 1,
280 0,
281 5,
282 0,
283 "AUDIO"
284 ]
285 ],
286 "groups": [],
287 "config": [],
288 "extra": {
289 "workflowRendererVersion": "LG",
290 "ds": {
291 "scale": 0.6889441750068482,
292 "offset": [
293 1814.5639510802569,
294 445.8770841923227
295 ]
296 },
297 "frontendVersion": "1.37.10",
298 "VHS_latentpreview": false,
299 "VHS_latentpreviewrate": 0,
300 "VHS_MetadataImage": true,
301 "VHS_KeepIntermediate": true
302 },
303 "version": 0.4
304}