ComfyPilotComfyPilot
工作流 / 音频 / HeyGen Voice 1.0:语音克隆转语音
HeyGen Voice 1.0:语音克隆转语音

HeyGen Voice 1.0:语音克隆转语音

HeyGen Voice 1.0: Voice Clone to Speech

使用 HeyGen Voice 1.0 从一段简短录音中克隆声音,然后用该声音朗读任意脚本。将一段音频片段连接到 Instant Clone,生成的 voice_id 会直接输入到文本转语音中,无需等待训练。使用表现力控制来贴近原始录音,或为表达注入更多情感。非常适合用自己的声音进行旁白、角色对话和多语言配音。

音频 6 个节点 1 个输入 109 次使用 ComfyUI ≥ 0.42.3 ComfyUI 10 KB

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

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

节点构成

MarkdownNote × 1
LoadAudio × 1
HeyGenVoiceCloneNode × 1
SaveAudioAdvanced × 1
HeyGenVoiceTextToSpeechNode × 1
SaveText × 1

官方标注的模型

HeyGen

工作流 JSON

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

1{
2 "id": "0e04149e-04b2-40cd-b331-71b8e3f404ff",
3 "revision": 0,
4 "last_node_id": 7,
5 "last_link_id": 12,
6 "nodes": [
7 {
8 "id": 1,
9 "type": "MarkdownNote",
10 "pos": [
11 -1250,
12 210
13 ],
14 "size": [
15 520,
16 940
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [],
23 "properties": [],
24 "widgets_values": [
25 "## HeyGen Voice 1.0\n\nClone a voice from one recording, then speak any script in that voice.\n\n### How to use\n\n1. Sign in with your ComfyUI account before queueing: this node runs on Comfy's servers.\n2. Record or load **one speaker**, at least 10 seconds of clear speech. Only the first 3 minutes are used.\n3. In **Instant Clone**, set `language` to the language spoken in the recording. `similarity` controls how closely the voice follows the recording; change `seed` to clone again and get a slightly different voice.\n4. Connect `voice_id` to **Voice 1.0 Text to Speech**.\n5. Write the script in `text` (up to 5000 characters; about 12 minutes of speech, so split very long Chinese or Japanese text).\n6. Set `language` when auto-detection can confuse closely related languages such as Serbian or Malay.\n7. `expressiveness_boost` 0.0 stays close to the original recording, 1.0 adds more emotion.\n8. Queue the prompt, then save the audio.\n\n### Writing the script\n\n- **Plain prose**, 1 to 5000 characters. Anything else is rejected.\n- Instant voices ignore `seed`, `speed` and `pitch`. `expressiveness_boost` (0.0-1.0) is the only delivery control.\n\n### Notes\n\n- `heygen-voice-1-turbo` in the model list is faster than `heygen-voice-1`.\n- Official docs: [HeyGen Voice](https://developers.heygen.com/docs/models/heygen-voice) and [Text to Speech](https://developers.heygen.com/docs/voices/speech).\n\n### Saving the voice ID\n\nThe **SaveText** node writes the cloned `voice_id` to `output/HeyGen_Voice_id/` as a small text file, so you can reuse the same voice in a later session without cloning again.\n\nIts `filename_prefix` accepts date tokens: `%year%`, `%month%`, `%day%`, `%hour%`, `%minute%`, `%second%`. The default here is `HeyGen_Voice_id/HeyGen_voice1_%year%-%month%-%day%`, which gives one file per day and never overwrites yesterday's clone. Paste the saved ID into a Text to Speech node's `custom_voice_id` (or link it straight to `voice_id`) when you come back to it."
26 ],
27 "widgets_values_named": {
28 "text": "## HeyGen Voice 1.0\n\nClone a voice from one recording, then speak any script in that voice.\n\n### How to use\n\n1. Sign in with your ComfyUI account before queueing: this node runs on Comfy's servers.\n2. Record or load **one speaker**, at least 10 seconds of clear speech. Only the first 3 minutes are used.\n3. In **Instant Clone**, set `language` to the language spoken in the recording. `similarity` controls how closely the voice follows the recording; change `seed` to clone again and get a slightly different voice.\n4. Connect `voice_id` to **Voice 1.0 Text to Speech**.\n5. Write the script in `text` (up to 5000 characters; about 12 minutes of speech, so split very long Chinese or Japanese text).\n6. Set `language` when auto-detection can confuse closely related languages such as Serbian or Malay.\n7. `expressiveness_boost` 0.0 stays close to the original recording, 1.0 adds more emotion.\n8. Queue the prompt, then save the audio.\n\n### Writing the script\n\n- **Plain prose**, 1 to 5000 characters. Anything else is rejected.\n- Instant voices ignore `seed`, `speed` and `pitch`. `expressiveness_boost` (0.0-1.0) is the only delivery control.\n\n### Notes\n\n- `heygen-voice-1-turbo` in the model list is faster than `heygen-voice-1`.\n- Official docs: [HeyGen Voice](https://developers.heygen.com/docs/models/heygen-voice) and [Text to Speech](https://developers.heygen.com/docs/voices/speech).\n\n### Saving the voice ID\n\nThe **SaveText** node writes the cloned `voice_id` to `output/HeyGen_Voice_id/` as a small text file, so you can reuse the same voice in a later session without cloning again.\n\nIts `filename_prefix` accepts date tokens: `%year%`, `%month%`, `%day%`, `%hour%`, `%minute%`, `%second%`. The default here is `HeyGen_Voice_id/HeyGen_voice1_%year%-%month%-%day%`, which gives one file per day and never overwrites yesterday's clone. Paste the saved ID into a Text to Speech node's `custom_voice_id` (or link it straight to `voice_id`) when you come back to it."
29 },
30 "color": "#222",
31 "bgcolor": "#000"
32 },
33 {
34 "id": 2,
35 "type": "LoadAudio",
36 "pos": [
37 -620,
38 260
39 ],
40 "size": [
41 290,
42 140
43 ],
44 "flags": [],
45 "order": 1,
46 "mode": 0,
47 "inputs": [],
48 "outputs": [
49 {
50 "name": "AUDIO",
51 "type": "AUDIO",
52 "links": [
53 1
54 ]
55 }
56 ],
57 "properties": {
58 "Node name for S&R": "LoadAudio"
59 },
60 "widgets_values": [
61 "long_demo.mp3",
62 ""
63 ],
64 "widgets_values_named": {
65 "audio": "long_demo.mp3",
66 "upload": ""
67 },
68 "color": "#322",
69 "bgcolor": "#533"
70 },
71 {
72 "id": 3,
73 "type": "HeyGenVoiceCloneNode",
74 "pos": [
75 -300,
76 260
77 ],
78 "size": [
79 320,
80 160
81 ],
82 "flags": [],
83 "order": 2,
84 "mode": 0,
85 "inputs": [
86 {
87 "name": "audio",
88 "type": "AUDIO",
89 "link": 1
90 }
91 ],
92 "outputs": [
93 {
94 "name": "voice_id",
95 "type": "STRING",
96 "links": [
97 11
98 ]
99 }
100 ],
101 "properties": {
102 "Node name for S&R": "HeyGenVoiceCloneNode"
103 },
104 "widgets_values": [
105 "auto",
106 "max",
107 true,
108 42,
109 "fixed"
110 ],
111 "widgets_values_named": {
112 "language": "auto",
113 "similarity": "max",
114 "remove_background_noise": true,
115 "seed": 42,
116 "fixed": "fixed"
117 },
118 "color": "#432",
119 "bgcolor": "#653"
120 },
121 {
122 "id": 5,
123 "type": "SaveAudioAdvanced",
124 "pos": [
125 860,
126 260
127 ],
128 "size": [
129 540,
130 220
131 ],
132 "flags": [],
133 "order": 5,
134 "mode": 0,
135 "inputs": [
136 {
137 "name": "audio",
138 "type": "AUDIO",
139 "link": 3
140 }
141 ],
142 "outputs": [
143 {
144 "name": "audio",
145 "type": "AUDIO",
146 "links": null
147 }
148 ],
149 "properties": [],
150 "widgets_values": [
151 "audio/heygen_voice_1",
152 "mp3",
153 "V0"
154 ],
155 "widgets_values_named": {
156 "filename_prefix": "audio/heygen_voice_1",
157 "format": "mp3",
158 "format.quality": "V0"
159 }
160 },
161 {
162 "id": 6,
163 "type": "HeyGenVoiceTextToSpeechNode",
164 "pos": [
165 380,
166 260
167 ],
168 "size": [
169 400,
170 200
171 ],
172 "flags": [],
173 "order": 4,
174 "mode": 0,
175 "inputs": [
176 {
177 "name": "model.voice_id",
178 "type": "STRING",
179 "widget": {
180 "name": "model.voice_id"
181 },
182 "link": 12
183 }
184 ],
185 "outputs": [
186 {
187 "name": "AUDIO",
188 "type": "AUDIO",
189 "links": [
190 3
191 ]
192 }
193 ],
194 "properties": {
195 "Node name for S&R": "HeyGenVoiceTextToSpeechNode"
196 },
197 "widgets_values": [
198 "heygen-voice-1",
199 "",
200 "HeyGen Voice 1.0 turns a ten second recording into a voice you can reuse. Write your script here. Pauses come from punctuation, not tags: full stops, commas and paragraph breaks. Run the prompt once to hear how it lands, then replace this text with your own.",
201 "auto",
202 0.5
203 ],
204 "widgets_values_named": {
205 "model": "heygen-voice-1",
206 "model.voice_id": "",
207 "model.text": "HeyGen Voice 1.0 turns a ten second recording into a voice you can reuse. Write your script here. Pauses come from punctuation, not tags: full stops, commas and paragraph breaks. Run the prompt once to hear how it lands, then replace this text with your own.",
208 "model.language": "auto",
209 "model.expressiveness_boost": 0.5
210 },
211 "color": "#432",
212 "bgcolor": "#653"
213 },
214 {
215 "id": 7,
216 "type": "SaveText",
217 "pos": [
218 -300,
219 480
220 ],
221 "size": [
222 550,
223 225.88546416437705
224 ],
225 "flags": [],
226 "order": 3,
227 "mode": 0,
228 "inputs": [
229 {
230 "name": "text",
231 "type": "STRING",
232 "link": 11
233 }
234 ],
235 "outputs": [
236 {
237 "name": "text",
238 "type": "STRING",
239 "links": [
240 12
241 ]
242 }
243 ],
244 "properties": {
245 "Node name for S&R": "SaveText"
246 },
247 "widgets_values": [
248 "HeyGen_Voice_id/HeyGen_voice_id_%year%-%month%-%day%",
249 "txt"
250 ],
251 "widgets_values_named": {
252 "filename_prefix": "HeyGen_Voice_id/HeyGen_voice_id_%year%-%month%-%day%",
253 "format": "txt"
254 }
255 }
256 ],
257 "links": [
258 [
259 1,
260 2,
261 0,
262 3,
263 0,
264 "AUDIO"
265 ],
266 [
267 11,
268 3,
269 0,
270 7,
271 0,
272 "STRING"
273 ],
274 [
275 3,
276 6,
277 0,
278 5,
279 0,
280 "AUDIO"
281 ],
282 [
283 12,
284 7,
285 0,
286 6,
287 0,
288 "STRING"
289 ]
290 ],
291 "groups": [
292 {
293 "id": 1,
294 "title": "1. Upload your audio and create a clone",
295 "bounding": [
296 -690,
297 180,
298 1000,
299 580
300 ],
301 "color": "#3f789e",
302 "flags": []
303 },
304 {
305 "id": 2,
306 "title": "2. Speak the script",
307 "bounding": [
308 340,
309 180,
310 1100,
311 440
312 ],
313 "color": "#3f789e",
314 "flags": []
315 }
316 ],
317 "config": [],
318 "extra": {
319 "ds": {
320 "scale": 0.590703525938469,
321 "offset": [
322 1190.268872664595,
323 322.46262405194574
324 ]
325 },
326 "frontendVersion": "1.55.17"
327 },
328 "version": 0.4
329}