工作流 /
音频 /
ACE-Step 1.5XL SFT:文生音乐

ACE-Step 1.5XL SFT:文生音乐
ACE-Step 1.5XL SFT: Text to Music
使用4B参数SFT模型从文本提示词生成高质量音乐。通过CFG控制输出以实现精确的提示词遵循。
音频
12 个节点 19 次使用 ComfyUI ≥ 0.25.0 ComfyUI 19 KB
需要的权重
这个工作流引用了 4 个权重文件,其中 4 个能在本站模型库里找到。
ace_1.5_vae.safetensors
在模型库查看
acestep_v1.5_xl_sft_bf16.safetensors
在模型库查看
qwen_0.6b_ace15.safetensors
在模型库查看
qwen_4b_ace15.safetensors
在模型库查看
节点构成
UNETLoader
× 1
VAELoader
× 1
PrimitiveNode
× 1
EmptyAceStep1.5LatentAudio
× 1
ConditioningZeroOut
× 1
DualCLIPLoader
× 1
PrimitiveInt
× 1
TextEncodeAceStepAudio1.5
× 1
KSampler
× 1
VAEDecodeAudio
× 1
ModelSamplingAuraFlow
× 1
SaveAudioAdvanced
× 1
官方标注的模型
ACE-Step
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "88ac5dad-efd7-40bb-84fe-fbaefdee1fa9",
3 "revision": 0,
4 "last_node_id": 110,
5 "last_link_id": 266,
6 "nodes": [
7 {
8 "id": 104,
9 "type": "UNETLoader",
10 "pos": [
11 -190,
12 -880
13 ],
14 "size": [
15 380,
16 110
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [
23 {
24 "name": "MODEL",
25 "type": "MODEL",
26 "links": [
27 260
28 ]
29 }
30 ],
31 "properties": {
32 "Node name for S&R": "UNETLoader",
33 "cnr_id": "comfy-core",
34 "ver": "0.11.1",
35 "models": [
36 {
37 "name": "acestep_v1.5_xl_sft_bf16.safetensors",
38 "url": "https://huggingface.co/Comfy-Org/ace_step_1.5_ComfyUI_files/resolve/main/split_files/diffusion_models/acestep_v1.5_xl_sft_bf16.safetensors",
39 "directory": "diffusion_models"
40 }
41 ],
42 "enableTabs": false,
43 "tabWidth": 65,
44 "tabXOffset": 10,
45 "hasSecondTab": false,
46 "secondTabText": "Send Back",
47 "secondTabOffset": 80,
48 "secondTabWidth": 65
49 },
50 "widgets_values": [
51 "acestep_v1.5_xl_sft_bf16.safetensors",
52 "default"
53 ],
54 "widgets_values_named": {
55 "unet_name": "acestep_v1.5_xl_sft_bf16.safetensors",
56 "weight_dtype": "default"
57 }
58 },
59 {
60 "id": 106,
61 "type": "VAELoader",
62 "pos": [
63 -190,
64 -490
65 ],
66 "size": [
67 380,
68 110
69 ],
70 "flags": [],
71 "order": 1,
72 "mode": 0,
73 "inputs": [],
74 "outputs": [
75 {
76 "name": "VAE",
77 "type": "VAE",
78 "links": [
79 262
80 ]
81 }
82 ],
83 "properties": {
84 "Node name for S&R": "VAELoader",
85 "cnr_id": "comfy-core",
86 "ver": "0.11.1",
87 "models": [
88 {
89 "name": "ace_1.5_vae.safetensors",
90 "url": "https://huggingface.co/Comfy-Org/ace_step_1.5_ComfyUI_files/resolve/main/split_files/vae/ace_1.5_vae.safetensors",
91 "directory": "vae"
92 }
93 ],
94 "enableTabs": false,
95 "tabWidth": 65,
96 "tabXOffset": 10,
97 "hasSecondTab": false,
98 "secondTabText": "Send Back",
99 "secondTabOffset": 80,
100 "secondTabWidth": 65
101 },
102 "widgets_values": [
103 "ace_1.5_vae.safetensors"
104 ],
105 "widgets_values_named": {
106 "vae_name": "ace_1.5_vae.safetensors"
107 }
108 },
109 {
110 "id": 99,
111 "type": "PrimitiveNode",
112 "pos": [
113 -140,
114 -290
115 ],
116 "size": [
117 280,
118 90
119 ],
120 "flags": [],
121 "order": 2,
122 "mode": 0,
123 "inputs": [],
124 "outputs": [
125 {
126 "name": "FLOAT",
127 "type": "FLOAT",
128 "widget": {
129 "name": "seconds"
130 },
131 "links": [
132 250,
133 251
134 ]
135 }
136 ],
137 "title": "Song Duration",
138 "properties": {
139 "Run widget replace on values": false
140 },
141 "widgets_values": [
142 120,
143 "fixed"
144 ],
145 "widgets_values_named": {
146 "value": 120,
147 "control_after_generate": "fixed"
148 }
149 },
150 {
151 "id": 98,
152 "type": "EmptyAceStep1.5LatentAudio",
153 "pos": [
154 280,
155 -40
156 ],
157 "size": [
158 225,
159 0
160 ],
161 "flags": {
162 "collapsed": true
163 },
164 "order": 6,
165 "mode": 0,
166 "inputs": [
167 {
168 "name": "seconds",
169 "type": "FLOAT",
170 "widget": {
171 "name": "seconds"
172 },
173 "link": 250
174 }
175 ],
176 "outputs": [
177 {
178 "name": "LATENT",
179 "type": "LATENT",
180 "links": [
181 249
182 ]
183 }
184 ],
185 "properties": {
186 "Node name for S&R": "EmptyAceStep1.5LatentAudio",
187 "cnr_id": "comfy-core",
188 "ver": "0.11.1",
189 "enableTabs": false,
190 "tabWidth": 65,
191 "tabXOffset": 10,
192 "hasSecondTab": false,
193 "secondTabText": "Send Back",
194 "secondTabOffset": 80,
195 "secondTabWidth": 65
196 },
197 "widgets_values": [
198 120,
199 1
200 ],
201 "widgets_values_named": {
202 "seconds": 120,
203 "batch_size": 1
204 }
205 },
206 {
207 "id": 47,
208 "type": "ConditioningZeroOut",
209 "pos": [
210 650,
211 -50
212 ],
213 "size": [
214 230,
215 58
216 ],
217 "flags": [],
218 "order": 8,
219 "mode": 0,
220 "inputs": [
221 {
222 "name": "conditioning",
223 "type": "CONDITIONING",
224 "link": 255
225 }
226 ],
227 "outputs": [
228 {
229 "name": "CONDITIONING",
230 "type": "CONDITIONING",
231 "links": [
232 119
233 ]
234 }
235 ],
236 "properties": {
237 "Node name for S&R": "ConditioningZeroOut",
238 "cnr_id": "comfy-core",
239 "ver": "0.11.1",
240 "enableTabs": false,
241 "tabWidth": 65,
242 "tabXOffset": 10,
243 "hasSecondTab": false,
244 "secondTabText": "Send Back",
245 "secondTabOffset": 80,
246 "secondTabWidth": 65
247 }
248 },
249 {
250 "id": 105,
251 "type": "DualCLIPLoader",
252 "pos": [
253 -190,
254 -720
255 ],
256 "size": [
257 380,
258 166
259 ],
260 "flags": [],
261 "order": 3,
262 "mode": 0,
263 "inputs": [],
264 "outputs": [
265 {
266 "name": "CLIP",
267 "type": "CLIP",
268 "links": [
269 261
270 ]
271 }
272 ],
273 "properties": {
274 "Node name for S&R": "DualCLIPLoader",
275 "cnr_id": "comfy-core",
276 "ver": "0.11.1",
277 "models": [
278 {
279 "name": "qwen_0.6b_ace15.safetensors",
280 "url": "https://huggingface.co/Comfy-Org/ace_step_1.5_ComfyUI_files/resolve/main/split_files/text_encoders/qwen_0.6b_ace15.safetensors",
281 "directory": "text_encoders"
282 },
283 {
284 "name": "qwen_4b_ace15.safetensors",
285 "url": "https://huggingface.co/Comfy-Org/ace_step_1.5_ComfyUI_files/resolve/main/split_files/text_encoders/qwen_4b_ace15.safetensors",
286 "directory": "text_encoders"
287 }
288 ],
289 "enableTabs": false,
290 "tabWidth": 65,
291 "tabXOffset": 10,
292 "hasSecondTab": false,
293 "secondTabText": "Send Back",
294 "secondTabOffset": 80,
295 "secondTabWidth": 65
296 },
297 "widgets_values": [
298 "qwen_0.6b_ace15.safetensors",
299 "qwen_4b_ace15.safetensors",
300 "ace",
301 "default"
302 ],
303 "widgets_values_named": {
304 "clip_name1": "qwen_0.6b_ace15.safetensors",
305 "clip_name2": "qwen_4b_ace15.safetensors",
306 "type": "ace",
307 "device": "default"
308 }
309 },
310 {
311 "id": 109,
312 "type": "PrimitiveInt",
313 "pos": [
314 -140,
315 -110
316 ],
317 "size": [
318 270,
319 90
320 ],
321 "flags": [],
322 "order": 4,
323 "mode": 0,
324 "inputs": [],
325 "outputs": [
326 {
327 "name": "INT",
328 "type": "INT",
329 "links": [
330 264,
331 265
332 ]
333 }
334 ],
335 "properties": {
336 "Node name for S&R": "PrimitiveInt",
337 "cnr_id": "comfy-core",
338 "ver": "0.18.2",
339 "enableTabs": false,
340 "tabWidth": 65,
341 "tabXOffset": 10,
342 "hasSecondTab": false,
343 "secondTabText": "Send Back",
344 "secondTabOffset": 80,
345 "secondTabWidth": 65
346 },
347 "widgets_values": [
348 0,
349 "fixed"
350 ],
351 "widgets_values_named": {
352 "value": 0,
353 "fixed": "fixed"
354 }
355 },
356 {
357 "id": 94,
358 "type": "TextEncodeAceStepAudio1.5",
359 "pos": [
360 270,
361 -880
362 ],
363 "size": [
364 620,
365 680
366 ],
367 "flags": [],
368 "order": 7,
369 "mode": 0,
370 "showAdvanced": true,
371 "inputs": [
372 {
373 "name": "clip",
374 "type": "CLIP",
375 "link": 261
376 },
377 {
378 "name": "seed",
379 "type": "INT",
380 "widget": {
381 "name": "seed"
382 },
383 "link": 264
384 },
385 {
386 "name": "duration",
387 "type": "FLOAT",
388 "widget": {
389 "name": "duration"
390 },
391 "link": 251
392 }
393 ],
394 "outputs": [
395 {
396 "name": "CONDITIONING",
397 "type": "CONDITIONING",
398 "links": [
399 254,
400 255
401 ]
402 }
403 ],
404 "properties": {
405 "Node name for S&R": "TextEncodeAceStepAudio1.5",
406 "cnr_id": "comfy-core",
407 "ver": "0.11.1",
408 "enableTabs": false,
409 "tabWidth": 65,
410 "tabXOffset": 10,
411 "hasSecondTab": false,
412 "secondTabText": "Send Back",
413 "secondTabOffset": 80,
414 "secondTabWidth": 65
415 },
416 "widgets_values": [
417 "A lush neo-soul track anchored by a warm Rhodes electric piano playing rich ninth and thirteenth chords over a loose, soulful live drum groove with heavy use of ghost notes and rim shots. A fretless bass provides a melodic, singing counterline beneath the harmony. The lead vocalist is a powerful, expressive woman who moves fluidly between a smoky chest voice and an airy falsetto, employing tasteful melismatic runs and bluesy bends. A tight three-part vocal harmony stack fills out the chorus. A muted trumpet and alto saxophone trade fills during the instrumental bridge, channeling the spirit of classic 1970s soul. The production is warm and analog-sounding, with subtle tape saturation and a slight room ambience.",
418 "[Intro — Rhodes piano and brushed drums]\n[Verse 1]\nYou never call when the neon goes dark\nJust send a signal like an afterthought\nI learned to read the silence between the lines\nAnd honey that's a language I know too well by now\n[Pre-Chorus]\nMaybe I'm the fool who kept the door wide open\nMaybe you're the draft that keeps on blowing through\n[Chorus]\nI'm done rewriting your story in my head\nDone saving room for someone who's already gone\nI'll keep the record on\nBut I'll stop singing your part\n[Instrumental Bridge — Muted trumpet and alto saxophone trade phrases]\n[Verse 2]\nThe coffee shop still plays our favourite song\nI ordered something different, stayed too long\nBut every note just proved that I was right\nTo let the whole thing go before it burned my life\n[Final Chorus — Layered harmonies, fuller arrangement]\n[Outro — Rhodes vamp fades, final bass note sustains]\n",
419 0,
420 "fixed",
421 120,
422 120,
423 "4",
424 "en",
425 "E minor",
426 true,
427 2,
428 0.85,
429 1,
430 0,
431 0
432 ],
433 "widgets_values_named": {
434 "tags": "A lush neo-soul track anchored by a warm Rhodes electric piano playing rich ninth and thirteenth chords over a loose, soulful live drum groove with heavy use of ghost notes and rim shots. A fretless bass provides a melodic, singing counterline beneath the harmony. The lead vocalist is a powerful, expressive woman who moves fluidly between a smoky chest voice and an airy falsetto, employing tasteful melismatic runs and bluesy bends. A tight three-part vocal harmony stack fills out the chorus. A muted trumpet and alto saxophone trade fills during the instrumental bridge, channeling the spirit of classic 1970s soul. The production is warm and analog-sounding, with subtle tape saturation and a slight room ambience.",
435 "lyrics": "[Intro — Rhodes piano and brushed drums]\n[Verse 1]\nYou never call when the neon goes dark\nJust send a signal like an afterthought\nI learned to read the silence between the lines\nAnd honey that's a language I know too well by now\n[Pre-Chorus]\nMaybe I'm the fool who kept the door wide open\nMaybe you're the draft that keeps on blowing through\n[Chorus]\nI'm done rewriting your story in my head\nDone saving room for someone who's already gone\nI'll keep the record on\nBut I'll stop singing your part\n[Instrumental Bridge — Muted trumpet and alto saxophone trade phrases]\n[Verse 2]\nThe coffee shop still plays our favourite song\nI ordered something different, stayed too long\nBut every note just proved that I was right\nTo let the whole thing go before it burned my life\n[Final Chorus — Layered harmonies, fuller arrangement]\n[Outro — Rhodes vamp fades, final bass note sustains]\n",
436 "seed": 0,
437 "control_after_generate": "fixed",
438 "bpm": 120,
439 "duration": 120,
440 "timesignature": "4",
441 "language": "en",
442 "keyscale": "E minor",
443 "generate_audio_codes": true,
444 "cfg_scale": 2,
445 "temperature": 0.85,
446 "top_p": 1,
447 "top_k": 0,
448 "min_p": 0
449 }
450 },
451 {
452 "id": 3,
453 "type": "KSampler",
454 "pos": [
455 940,
456 -750
457 ],
458 "size": [
459 330,
460 320
461 ],
462 "flags": [],
463 "order": 9,
464 "mode": 0,
465 "inputs": [
466 {
467 "name": "model",
468 "type": "MODEL",
469 "link": 175
470 },
471 {
472 "name": "positive",
473 "type": "CONDITIONING",
474 "link": 254
475 },
476 {
477 "name": "negative",
478 "type": "CONDITIONING",
479 "link": 119
480 },
481 {
482 "name": "latent_image",
483 "type": "LATENT",
484 "link": 249
485 },
486 {
487 "name": "seed",
488 "type": "INT",
489 "widget": {
490 "name": "seed"
491 },
492 "link": 265
493 }
494 ],
495 "outputs": [
496 {
497 "name": "LATENT",
498 "type": "LATENT",
499 "slot_index": 0,
500 "links": [
501 256
502 ]
503 }
504 ],
505 "properties": {
506 "Node name for S&R": "KSampler",
507 "cnr_id": "comfy-core",
508 "ver": "0.11.1",
509 "enableTabs": false,
510 "tabWidth": 65,
511 "tabXOffset": 10,
512 "hasSecondTab": false,
513 "secondTabText": "Send Back",
514 "secondTabOffset": 80,
515 "secondTabWidth": 65
516 },
517 "widgets_values": [
518 0,
519 "fixed",
520 50,
521 7,
522 "euler",
523 "simple",
524 1
525 ],
526 "widgets_values_named": {
527 "seed": 0,
528 "control_after_generate": "fixed",
529 "steps": 50,
530 "cfg": 7,
531 "sampler_name": "euler",
532 "scheduler": "simple",
533 "denoise": 1
534 }
535 },
536 {
537 "id": 18,
538 "type": "VAEDecodeAudio",
539 "pos": [
540 1290,
541 -870
542 ],
543 "size": [
544 230,
545 78
546 ],
547 "flags": [],
548 "order": 10,
549 "mode": 0,
550 "inputs": [
551 {
552 "name": "samples",
553 "type": "LATENT",
554 "link": 256
555 },
556 {
557 "name": "vae",
558 "type": "VAE",
559 "link": 262
560 }
561 ],
562 "outputs": [
563 {
564 "name": "AUDIO",
565 "type": "AUDIO",
566 "links": [
567 266
568 ]
569 }
570 ],
571 "properties": {
572 "Node name for S&R": "VAEDecodeAudio",
573 "cnr_id": "comfy-core",
574 "ver": "0.11.1",
575 "enableTabs": false,
576 "tabWidth": 65,
577 "tabXOffset": 10,
578 "hasSecondTab": false,
579 "secondTabText": "Send Back",
580 "secondTabOffset": 80,
581 "secondTabWidth": 65
582 }
583 },
584 {
585 "id": 78,
586 "type": "ModelSamplingAuraFlow",
587 "pos": [
588 940,
589 -880
590 ],
591 "size": [
592 330,
593 86
594 ],
595 "flags": [],
596 "order": 5,
597 "mode": 0,
598 "inputs": [
599 {
600 "name": "model",
601 "type": "MODEL",
602 "link": 260
603 }
604 ],
605 "outputs": [
606 {
607 "name": "MODEL",
608 "type": "MODEL",
609 "links": [
610 175
611 ]
612 }
613 ],
614 "properties": {
615 "Node name for S&R": "ModelSamplingAuraFlow",
616 "cnr_id": "comfy-core",
617 "ver": "0.11.1",
618 "enableTabs": false,
619 "tabWidth": 65,
620 "tabXOffset": 10,
621 "hasSecondTab": false,
622 "secondTabText": "Send Back",
623 "secondTabOffset": 80,
624 "secondTabWidth": 65
625 },
626 "widgets_values": [
627 3
628 ],
629 "widgets_values_named": {
630 "shift": 3
631 }
632 },
633 {
634 "id": 110,
635 "type": "SaveAudioAdvanced",
636 "pos": [
637 1290,
638 -740
639 ],
640 "size": [
641 310,
642 150
643 ],
644 "flags": [],
645 "order": 11,
646 "mode": 0,
647 "inputs": [
648 {
649 "name": "audio",
650 "type": "AUDIO",
651 "link": 266
652 }
653 ],
654 "outputs": [
655 {
656 "name": "audio",
657 "type": "AUDIO",
658 "links": null
659 }
660 ],
661 "properties": [],
662 "widgets_values": [
663 "audio/ComfyUI",
664 "flac"
665 ],
666 "widgets_values_named": {
667 "filename_prefix": "audio/ComfyUI",
668 "format": "flac"
669 }
670 }
671 ],
672 "links": [
673 [
674 119,
675 47,
676 0,
677 3,
678 2,
679 "CONDITIONING"
680 ],
681 [
682 175,
683 78,
684 0,
685 3,
686 0,
687 "MODEL"
688 ],
689 [
690 249,
691 98,
692 0,
693 3,
694 3,
695 "LATENT"
696 ],
697 [
698 250,
699 99,
700 0,
701 98,
702 0,
703 "FLOAT"
704 ],
705 [
706 251,
707 99,
708 0,
709 94,
710 2,
711 "FLOAT"
712 ],
713 [
714 254,
715 94,
716 0,
717 3,
718 1,
719 "CONDITIONING"
720 ],
721 [
722 255,
723 94,
724 0,
725 47,
726 0,
727 "CONDITIONING"
728 ],
729 [
730 256,
731 3,
732 0,
733 18,
734 0,
735 "LATENT"
736 ],
737 [
738 260,
739 104,
740 0,
741 78,
742 0,
743 "MODEL"
744 ],
745 [
746 261,
747 105,
748 0,
749 94,
750 0,
751 "CLIP"
752 ],
753 [
754 262,
755 106,
756 0,
757 18,
758 1,
759 "VAE"
760 ],
761 [
762 264,
763 109,
764 0,
765 94,
766 1,
767 "INT"
768 ],
769 [
770 265,
771 109,
772 0,
773 3,
774 4,
775 "INT"
776 ],
777 [
778 266,
779 18,
780 0,
781 110,
782 0,
783 "AUDIO"
784 ]
785 ],
786 "groups": [
787 {
788 "id": 1,
789 "title": "Model",
790 "bounding": [
791 -210,
792 -950,
793 447.22598026477124,
794 574.6629131689834
795 ],
796 "color": "#3f789e",
797 "flags": []
798 },
799 {
800 "id": 2,
801 "title": "Duration",
802 "bounding": [
803 -210,
804 -350,
805 450,
806 170
807 ],
808 "color": "#3f789e",
809 "flags": []
810 },
811 {
812 "id": 3,
813 "title": "Prompt",
814 "bounding": [
815 260,
816 -950,
817 640,
818 960
819 ],
820 "color": "#3f789e",
821 "flags": []
822 }
823 ],
824 "config": [],
825 "extra": {
826 "ds": {
827 "scale": 1.1330206051363712,
828 "offset": [
829 -570.2656019792673,
830 923.9468955792141
831 ]
832 },
833 "frontendVersion": "1.51.9",
834 "workflowRendererVersion": "LG",
835 "VHS_latentpreview": false,
836 "VHS_latentpreviewrate": 0,
837 "VHS_MetadataImage": true,
838 "VHS_KeepIntermediate": true
839 },
840 "version": 0.4
841}