ComfyPilotComfyPilot
工作流 / 视频 / Wan2.1 VACE 扩图
Wan2.1 VACE 扩图

Wan2.1 VACE 扩图

Wan2.1 VACE Outpainting

通过使用Wan万相扩图扩展视频尺寸,生成延展视频。

视频 34 个节点 1 个输入 23 次使用 ComfyUI ≥ 0.3.31 ComfyUI 36 KB

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

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

需要的权重

这个工作流引用了 7 个权重文件,其中 7 个能在本站模型库里找到。

Wan21_CausVid_14B_T2V_lora_rank32.safetensors 在模型库查看
Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors 在模型库查看
umt5_xxl_fp16.safetensors 在模型库查看
umt5_xxl_fp8_e4m3fn_scaled.safetensors 在模型库查看
wan2.1_vace_1.3B_fp16.safetensors 在模型库查看
wan2.1_vace_14B_fp16.safetensors 在模型库查看
wan_2.1_vae.safetensors 在模型库查看

节点构成

MarkdownNote × 5
PrimitiveInt × 3
UNETLoader × 2
LoraLoader × 2
CLIPLoader × 2
CLIPTextEncode × 2
PreviewImage × 2
Note × 2
CreateVideo × 1
ModelSamplingSD3 × 1
WanVaceToVideo × 1
TrimVideoLatent × 1
VAEDecode × 1
MaskToImage × 1
RepeatImageBatch × 1
ImageToMask × 1

官方标注的模型

Wan2.1Wan

工作流 JSON

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

1{
2 "id": "96995b8f-85c5-47af-b3cf-7b6a24675694",
3 "revision": 0,
4 "last_node_id": 184,
5 "last_link_id": 264,
6 "nodes": [
7 {
8 "id": 68,
9 "type": "CreateVideo",
10 "pos": [
11 1370,
12 50
13 ],
14 "size": [
15 270,
16 78
17 ],
18 "flags": {
19 "collapsed": false
20 },
21 "order": 32,
22 "mode": 0,
23 "inputs": [
24 {
25 "name": "images",
26 "type": "IMAGE",
27 "link": 139
28 },
29 {
30 "name": "audio",
31 "shape": 7,
32 "type": "AUDIO",
33 "link": null
34 }
35 ],
36 "outputs": [
37 {
38 "name": "VIDEO",
39 "type": "VIDEO",
40 "links": [
41 129
42 ]
43 }
44 ],
45 "properties": {
46 "Node name for S&R": "CreateVideo",
47 "cnr_id": "comfy-core",
48 "ver": "0.3.34"
49 },
50 "widgets_values": [
51 16
52 ]
53 },
54 {
55 "id": 48,
56 "type": "ModelSamplingSD3",
57 "pos": [
58 630,
59 50
60 ],
61 "size": [
62 315,
63 58
64 ],
65 "flags": [],
66 "order": 21,
67 "mode": 0,
68 "inputs": [
69 {
70 "name": "model",
71 "type": "MODEL",
72 "link": 257
73 }
74 ],
75 "outputs": [
76 {
77 "name": "MODEL",
78 "type": "MODEL",
79 "slot_index": 0,
80 "links": [
81 95
82 ]
83 }
84 ],
85 "properties": {
86 "Node name for S&R": "ModelSamplingSD3",
87 "cnr_id": "comfy-core",
88 "ver": "0.3.34"
89 },
90 "widgets_values": [
91 8.000000000000002
92 ]
93 },
94 {
95 "id": 158,
96 "type": "UNETLoader",
97 "pos": [
98 -670,
99 50
100 ],
101 "size": [
102 350,
103 82
104 ],
105 "flags": [],
106 "order": 0,
107 "mode": 4,
108 "inputs": [],
109 "outputs": [
110 {
111 "name": "MODEL",
112 "type": "MODEL",
113 "slot_index": 0,
114 "links": [
115 235
116 ]
117 }
118 ],
119 "properties": {
120 "Node name for S&R": "UNETLoader",
121 "cnr_id": "comfy-core",
122 "ver": "0.3.34",
123 "models": [
124 {
125 "name": "wan2.1_vace_1.3B_fp16.safetensors",
126 "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_vace_1.3B_fp16.safetensors",
127 "directory": "diffusion_models"
128 }
129 ]
130 },
131 "widgets_values": [
132 "wan2.1_vace_1.3B_fp16.safetensors",
133 "default"
134 ]
135 },
136 {
137 "id": 159,
138 "type": "LoraLoader",
139 "pos": [
140 -670,
141 170
142 ],
143 "size": [
144 350,
145 126
146 ],
147 "flags": [],
148 "order": 17,
149 "mode": 4,
150 "inputs": [
151 {
152 "name": "model",
153 "type": "MODEL",
154 "link": 235
155 },
156 {
157 "name": "clip",
158 "type": "CLIP",
159 "link": 236
160 }
161 ],
162 "outputs": [
163 {
164 "name": "MODEL",
165 "type": "MODEL",
166 "links": []
167 },
168 {
169 "name": "CLIP",
170 "type": "CLIP",
171 "links": []
172 }
173 ],
174 "properties": {
175 "Node name for S&R": "LoraLoader",
176 "cnr_id": "comfy-core",
177 "ver": "0.3.38",
178 "models": [
179 {
180 "name": "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
181 "url": "https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
182 "directory": "loras"
183 }
184 ]
185 },
186 "widgets_values": [
187 "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
188 0.7000000000000002,
189 1
190 ]
191 },
192 {
193 "id": 49,
194 "type": "WanVaceToVideo",
195 "pos": [
196 634.6180419921875,
197 153.07472229003906
198 ],
199 "size": [
200 315,
201 254
202 ],
203 "flags": [],
204 "order": 28,
205 "mode": 0,
206 "inputs": [
207 {
208 "name": "positive",
209 "type": "CONDITIONING",
210 "link": 96
211 },
212 {
213 "name": "negative",
214 "type": "CONDITIONING",
215 "link": 97
216 },
217 {
218 "name": "vae",
219 "type": "VAE",
220 "link": 260
221 },
222 {
223 "name": "control_video",
224 "shape": 7,
225 "type": "IMAGE",
226 "link": 207
227 },
228 {
229 "name": "control_masks",
230 "shape": 7,
231 "type": "MASK",
232 "link": 204
233 },
234 {
235 "name": "reference_image",
236 "shape": 7,
237 "type": "IMAGE",
238 "link": null
239 },
240 {
241 "name": "width",
242 "type": "INT",
243 "widget": {
244 "name": "width"
245 },
246 "link": 215
247 },
248 {
249 "name": "height",
250 "type": "INT",
251 "widget": {
252 "name": "height"
253 },
254 "link": 217
255 },
256 {
257 "name": "length",
258 "type": "INT",
259 "widget": {
260 "name": "length"
261 },
262 "link": 209
263 }
264 ],
265 "outputs": [
266 {
267 "name": "positive",
268 "type": "CONDITIONING",
269 "links": [
270 98
271 ]
272 },
273 {
274 "name": "negative",
275 "type": "CONDITIONING",
276 "links": [
277 99
278 ]
279 },
280 {
281 "name": "latent",
282 "type": "LATENT",
283 "links": [
284 160
285 ]
286 },
287 {
288 "name": "trim_latent",
289 "type": "INT",
290 "links": [
291 115
292 ]
293 }
294 ],
295 "properties": {
296 "Node name for S&R": "WanVaceToVideo",
297 "cnr_id": "comfy-core",
298 "ver": "0.3.34"
299 },
300 "widgets_values": [
301 720,
302 720,
303 45,
304 1,
305 1
306 ]
307 },
308 {
309 "id": 153,
310 "type": "MarkdownNote",
311 "pos": [
312 646.3126220703125,
313 455.0546569824219
314 ],
315 "size": [
316 310,
317 110
318 ],
319 "flags": [],
320 "order": 1,
321 "mode": 0,
322 "inputs": [],
323 "outputs": [],
324 "title": "About Video Size",
325 "properties": [],
326 "widgets_values": [
327 "| Model | 480P | 720P |\n| ------------------------------------------------------------ | ---- | ---- |\n| [VACE-1.3B](https://huggingface.co/Wan-AI/Wan2.1-VACE-1.3B) | ✅ | ❌ |\n| [VACE-14B](https://huggingface.co/Wan-AI/Wan2.1-VACE-14B) | ✅ | ✅ |"
328 ],
329 "color": "#222",
330 "bgcolor": "#000"
331 },
332 {
333 "id": 58,
334 "type": "TrimVideoLatent",
335 "pos": [
336 1000.3111572265625,
337 359.673095703125
338 ],
339 "size": [
340 315,
341 60
342 ],
343 "flags": {
344 "collapsed": true
345 },
346 "order": 30,
347 "mode": 0,
348 "inputs": [
349 {
350 "name": "samples",
351 "type": "LATENT",
352 "link": 116
353 },
354 {
355 "name": "trim_amount",
356 "type": "INT",
357 "widget": {
358 "name": "trim_amount"
359 },
360 "link": 115
361 }
362 ],
363 "outputs": [
364 {
365 "name": "LATENT",
366 "type": "LATENT",
367 "links": [
368 117
369 ]
370 }
371 ],
372 "properties": {
373 "Node name for S&R": "TrimVideoLatent",
374 "cnr_id": "comfy-core",
375 "ver": "0.3.34"
376 },
377 "widgets_values": [
378 0
379 ]
380 },
381 {
382 "id": 8,
383 "type": "VAEDecode",
384 "pos": [
385 1172.2872314453125,
386 361.1716003417969
387 ],
388 "size": [
389 315,
390 46
391 ],
392 "flags": {
393 "collapsed": true
394 },
395 "order": 31,
396 "mode": 0,
397 "inputs": [
398 {
399 "name": "samples",
400 "type": "LATENT",
401 "link": 117
402 },
403 {
404 "name": "vae",
405 "type": "VAE",
406 "link": 261
407 }
408 ],
409 "outputs": [
410 {
411 "name": "IMAGE",
412 "type": "IMAGE",
413 "slot_index": 0,
414 "links": [
415 139
416 ]
417 }
418 ],
419 "properties": {
420 "Node name for S&R": "VAEDecode",
421 "cnr_id": "comfy-core",
422 "ver": "0.3.34"
423 },
424 "widgets_values": []
425 },
426 {
427 "id": 111,
428 "type": "MaskToImage",
429 "pos": [
430 330,
431 914
432 ],
433 "size": [
434 240,
435 26
436 ],
437 "flags": [],
438 "order": 25,
439 "mode": 0,
440 "inputs": [
441 {
442 "name": "mask",
443 "type": "MASK",
444 "link": 180
445 }
446 ],
447 "outputs": [
448 {
449 "name": "IMAGE",
450 "type": "IMAGE",
451 "links": [
452 201
453 ]
454 }
455 ],
456 "properties": {
457 "Node name for S&R": "MaskToImage",
458 "cnr_id": "comfy-core",
459 "ver": "0.3.38"
460 },
461 "widgets_values": []
462 },
463 {
464 "id": 129,
465 "type": "RepeatImageBatch",
466 "pos": [
467 330,
468 802
469 ],
470 "size": [
471 240,
472 60
473 ],
474 "flags": [],
475 "order": 26,
476 "mode": 0,
477 "inputs": [
478 {
479 "name": "image",
480 "type": "IMAGE",
481 "link": 201
482 },
483 {
484 "name": "amount",
485 "type": "INT",
486 "widget": {
487 "name": "amount"
488 },
489 "link": 212
490 }
491 ],
492 "outputs": [
493 {
494 "name": "IMAGE",
495 "type": "IMAGE",
496 "links": [
497 202
498 ]
499 }
500 ],
501 "properties": {
502 "Node name for S&R": "RepeatImageBatch",
503 "cnr_id": "comfy-core",
504 "ver": "0.3.38"
505 },
506 "widgets_values": [
507 17
508 ]
509 },
510 {
511 "id": 130,
512 "type": "ImageToMask",
513 "pos": [
514 330,
515 690
516 ],
517 "size": [
518 240,
519 60
520 ],
521 "flags": [],
522 "order": 27,
523 "mode": 0,
524 "inputs": [
525 {
526 "name": "image",
527 "type": "IMAGE",
528 "link": 202
529 }
530 ],
531 "outputs": [
532 {
533 "name": "MASK",
534 "type": "MASK",
535 "links": [
536 204
537 ]
538 }
539 ],
540 "properties": {
541 "Node name for S&R": "ImageToMask",
542 "cnr_id": "comfy-core",
543 "ver": "0.3.38"
544 },
545 "widgets_values": [
546 "red"
547 ]
548 },
549 {
550 "id": 71,
551 "type": "LoadVideo",
552 "pos": [
553 -280,
554 690
555 ],
556 "size": [
557 274.080078125,
558 317.6267395019531
559 ],
560 "flags": [],
561 "order": 2,
562 "mode": 0,
563 "inputs": [],
564 "outputs": [
565 {
566 "name": "VIDEO",
567 "type": "VIDEO",
568 "links": [
569 131
570 ]
571 }
572 ],
573 "properties": {
574 "Node name for S&R": "LoadVideo",
575 "cnr_id": "comfy-core",
576 "ver": "0.3.34"
577 },
578 "widgets_values": [
579 "video_wan_vace_outpainting_input_video.mp4",
580 "image"
581 ]
582 },
583 {
584 "id": 139,
585 "type": "PrimitiveInt",
586 "pos": [
587 100,
588 1260
589 ],
590 "size": [
591 210,
592 82
593 ],
594 "flags": [],
595 "order": 3,
596 "mode": 0,
597 "inputs": [],
598 "outputs": [
599 {
600 "name": "INT",
601 "type": "INT",
602 "links": [
603 217
604 ]
605 }
606 ],
607 "title": "Height",
608 "properties": {
609 "Node name for S&R": "PrimitiveInt",
610 "cnr_id": "comfy-core",
611 "ver": "0.3.38"
612 },
613 "widgets_values": [
614 960,
615 "fixed"
616 ]
617 },
618 {
619 "id": 161,
620 "type": "CLIPLoader",
621 "pos": [
622 -260,
623 380
624 ],
625 "size": [
626 350,
627 106
628 ],
629 "flags": [],
630 "order": 4,
631 "mode": 0,
632 "inputs": [],
633 "outputs": [
634 {
635 "name": "CLIP",
636 "type": "CLIP",
637 "slot_index": 0,
638 "links": [
639 236,
640 242
641 ]
642 }
643 ],
644 "properties": {
645 "Node name for S&R": "CLIPLoader",
646 "cnr_id": "comfy-core",
647 "ver": "0.3.34",
648 "models": [
649 {
650 "name": "umt5_xxl_fp16.safetensors",
651 "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp16.safetensors",
652 "directory": "text_encoders"
653 }
654 ]
655 },
656 "widgets_values": [
657 "umt5_xxl_fp16.safetensors",
658 "wan",
659 "default"
660 ]
661 },
662 {
663 "id": 152,
664 "type": "VAELoader",
665 "pos": [
666 -260,
667 520
668 ],
669 "size": [
670 350,
671 58
672 ],
673 "flags": [],
674 "order": 5,
675 "mode": 0,
676 "inputs": [],
677 "outputs": [
678 {
679 "name": "VAE",
680 "type": "VAE",
681 "slot_index": 0,
682 "links": [
683 260,
684 261
685 ]
686 }
687 ],
688 "properties": {
689 "Node name for S&R": "VAELoader",
690 "cnr_id": "comfy-core",
691 "ver": "0.3.34",
692 "models": [
693 {
694 "name": "wan_2.1_vae.safetensors",
695 "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors",
696 "directory": "vae"
697 }
698 ]
699 },
700 "widgets_values": [
701 "wan_2.1_vae.safetensors"
702 ]
703 },
704 {
705 "id": 110,
706 "type": "ImagePadForOutpaint",
707 "pos": [
708 20,
709 830
710 ],
711 "size": [
712 250,
713 174
714 ],
715 "flags": [],
716 "order": 19,
717 "mode": 0,
718 "inputs": [
719 {
720 "name": "image",
721 "type": "IMAGE",
722 "link": 205
723 }
724 ],
725 "outputs": [
726 {
727 "name": "IMAGE",
728 "type": "IMAGE",
729 "links": [
730 207,
731 214
732 ]
733 },
734 {
735 "name": "MASK",
736 "type": "MASK",
737 "links": [
738 180
739 ]
740 }
741 ],
742 "properties": {
743 "Node name for S&R": "ImagePadForOutpaint",
744 "cnr_id": "comfy-core",
745 "ver": "0.3.38"
746 },
747 "widgets_values": [
748 120,
749 120,
750 120,
751 200,
752 0
753 ]
754 },
755 {
756 "id": 72,
757 "type": "GetVideoComponents",
758 "pos": [
759 20,
760 690
761 ],
762 "size": [
763 250,
764 66
765 ],
766 "flags": [],
767 "order": 16,
768 "mode": 0,
769 "inputs": [
770 {
771 "name": "video",
772 "type": "VIDEO",
773 "link": 131
774 }
775 ],
776 "outputs": [
777 {
778 "name": "images",
779 "type": "IMAGE",
780 "links": [
781 205,
782 218
783 ]
784 },
785 {
786 "name": "audio",
787 "type": "AUDIO",
788 "links": null
789 },
790 {
791 "name": "fps",
792 "type": "FLOAT",
793 "links": []
794 }
795 ],
796 "properties": {
797 "Node name for S&R": "GetVideoComponents",
798 "cnr_id": "comfy-core",
799 "ver": "0.3.34"
800 },
801 "widgets_values": []
802 },
803 {
804 "id": 151,
805 "type": "UNETLoader",
806 "pos": [
807 -260,
808 80
809 ],
810 "size": [
811 350,
812 82
813 ],
814 "flags": [],
815 "order": 6,
816 "mode": 0,
817 "inputs": [],
818 "outputs": [
819 {
820 "name": "MODEL",
821 "type": "MODEL",
822 "slot_index": 0,
823 "links": [
824 241
825 ]
826 }
827 ],
828 "properties": {
829 "Node name for S&R": "UNETLoader",
830 "cnr_id": "comfy-core",
831 "ver": "0.3.34",
832 "models": [
833 {
834 "name": "wan2.1_vace_14B_fp16.safetensors",
835 "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_vace_14B_fp16.safetensors",
836 "directory": "diffusion_models"
837 }
838 ]
839 },
840 "widgets_values": [
841 "wan2.1_vace_14B_fp16.safetensors",
842 "default"
843 ]
844 },
845 {
846 "id": 160,
847 "type": "CLIPLoader",
848 "pos": [
849 -680,
850 380
851 ],
852 "size": [
853 370,
854 106
855 ],
856 "flags": [],
857 "order": 7,
858 "mode": 4,
859 "inputs": [],
860 "outputs": [
861 {
862 "name": "CLIP",
863 "type": "CLIP",
864 "slot_index": 0,
865 "links": []
866 }
867 ],
868 "properties": {
869 "Node name for S&R": "CLIPLoader",
870 "cnr_id": "comfy-core",
871 "ver": "0.3.34",
872 "models": [
873 {
874 "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
875 "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors?download=true",
876 "directory": "text_encoders"
877 }
878 ]
879 },
880 "widgets_values": [
881 "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
882 "wan",
883 "default"
884 ]
885 },
886 {
887 "id": 137,
888 "type": "PrimitiveInt",
889 "pos": [
890 100,
891 1120
892 ],
893 "size": [
894 210,
895 82
896 ],
897 "flags": [],
898 "order": 8,
899 "mode": 0,
900 "inputs": [],
901 "outputs": [
902 {
903 "name": "INT",
904 "type": "INT",
905 "links": [
906 215
907 ]
908 }
909 ],
910 "title": "Width",
911 "properties": {
912 "Node name for S&R": "PrimitiveInt",
913 "cnr_id": "comfy-core",
914 "ver": "0.3.38"
915 },
916 "widgets_values": [
917 960,
918 "fixed"
919 ]
920 },
921 {
922 "id": 154,
923 "type": "MarkdownNote",
924 "pos": [
925 997.2053833007812,
926 402.0997619628906
927 ],
928 "size": [
929 303.90106201171875,
930 158.5415802001953
931 ],
932 "flags": [],
933 "order": 9,
934 "mode": 0,
935 "inputs": [],
936 "outputs": [],
937 "title": "KSampler Setting",
938 "properties": [],
939 "widgets_values": [
940 "## Default\n\n- steps:20\n- cfg:6.0\n\n## For CausVid LoRA\n\n- steps: 2-4\n- cfg: 1.0\n\n"
941 ],
942 "color": "#222",
943 "bgcolor": "#000"
944 },
945 {
946 "id": 131,
947 "type": "PrimitiveInt",
948 "pos": [
949 -260,
950 1180
951 ],
952 "size": [
953 310,
954 90
955 ],
956 "flags": [],
957 "order": 10,
958 "mode": 0,
959 "inputs": [],
960 "outputs": [
961 {
962 "name": "INT",
963 "type": "INT",
964 "links": [
965 209,
966 212
967 ]
968 }
969 ],
970 "title": "Length",
971 "properties": {
972 "Node name for S&R": "PrimitiveInt",
973 "cnr_id": "comfy-core",
974 "ver": "0.3.38"
975 },
976 "widgets_values": [
977 81,
978 "fixed"
979 ]
980 },
981 {
982 "id": 6,
983 "type": "CLIPTextEncode",
984 "pos": [
985 160,
986 50
987 ],
988 "size": [
989 420,
990 280
991 ],
992 "flags": [],
993 "order": 22,
994 "mode": 0,
995 "inputs": [
996 {
997 "name": "clip",
998 "type": "CLIP",
999 "link": 258
1000 }
1001 ],
1002 "outputs": [
1003 {
1004 "name": "CONDITIONING",
1005 "type": "CONDITIONING",
1006 "slot_index": 0,
1007 "links": [
1008 96
1009 ]
1010 }
1011 ],
1012 "title": "CLIP Text Encode (Positive Prompt)",
1013 "properties": {
1014 "Node name for S&R": "CLIPTextEncode",
1015 "cnr_id": "comfy-core",
1016 "ver": "0.3.34"
1017 },
1018 "widgets_values": [
1019 "A portrait of a woman with her eyes closed, her head surrounded by white transparent glass flowers, with only her face exposed. The camera slowly moves in, and the girl smiles. There are other transparent glass flowers in the style of Nicoletta Ceccoli around her. The detailed painting features natural light and soft lighting, creating a beautiful, surreal, and emotionally expressive movie scene.\n"
1020 ],
1021 "color": "#232",
1022 "bgcolor": "#353"
1023 },
1024 {
1025 "id": 7,
1026 "type": "CLIPTextEncode",
1027 "pos": [
1028 160,
1029 380
1030 ],
1031 "size": [
1032 420,
1033 190
1034 ],
1035 "flags": [],
1036 "order": 23,
1037 "mode": 0,
1038 "inputs": [
1039 {
1040 "name": "clip",
1041 "type": "CLIP",
1042 "link": 259
1043 }
1044 ],
1045 "outputs": [
1046 {
1047 "name": "CONDITIONING",
1048 "type": "CONDITIONING",
1049 "slot_index": 0,
1050 "links": [
1051 97
1052 ]
1053 }
1054 ],
1055 "title": "CLIP Text Encode (Negative Prompt)",
1056 "properties": {
1057 "Node name for S&R": "CLIPTextEncode",
1058 "cnr_id": "comfy-core",
1059 "ver": "0.3.34"
1060 },
1061 "widgets_values": [
1062 "bad quality, blurry, messy, chaotic"
1063 ],
1064 "color": "#223",
1065 "bgcolor": "#335"
1066 },
1067 {
1068 "id": 143,
1069 "type": "PreviewImage",
1070 "pos": [
1071 630,
1072 1070
1073 ],
1074 "size": [
1075 390,
1076 270
1077 ],
1078 "flags": [],
1079 "order": 20,
1080 "mode": 0,
1081 "inputs": [
1082 {
1083 "name": "images",
1084 "type": "IMAGE",
1085 "link": 218
1086 }
1087 ],
1088 "outputs": [],
1089 "title": "Preview Image - original",
1090 "properties": {
1091 "Node name for S&R": "PreviewImage",
1092 "cnr_id": "comfy-core",
1093 "ver": "0.3.38"
1094 },
1095 "widgets_values": []
1096 },
1097 {
1098 "id": 69,
1099 "type": "SaveVideo",
1100 "pos": [
1101 1370,
1102 180
1103 ],
1104 "size": [
1105 676.23095703125,
1106 774.23095703125
1107 ],
1108 "flags": [],
1109 "order": 33,
1110 "mode": 0,
1111 "inputs": [
1112 {
1113 "name": "video",
1114 "type": "VIDEO",
1115 "link": 129
1116 }
1117 ],
1118 "outputs": [],
1119 "properties": {
1120 "Node name for S&R": "SaveVideo",
1121 "cnr_id": "comfy-core",
1122 "ver": "0.3.34"
1123 },
1124 "widgets_values": [
1125 "video/ComfyUI",
1126 "auto",
1127 "auto"
1128 ]
1129 },
1130 {
1131 "id": 165,
1132 "type": "LoraLoader",
1133 "pos": [
1134 -260,
1135 200
1136 ],
1137 "size": [
1138 350,
1139 126
1140 ],
1141 "flags": [],
1142 "order": 18,
1143 "mode": 0,
1144 "inputs": [
1145 {
1146 "name": "model",
1147 "type": "MODEL",
1148 "link": 241
1149 },
1150 {
1151 "name": "clip",
1152 "type": "CLIP",
1153 "link": 242
1154 }
1155 ],
1156 "outputs": [
1157 {
1158 "name": "MODEL",
1159 "type": "MODEL",
1160 "links": [
1161 257
1162 ]
1163 },
1164 {
1165 "name": "CLIP",
1166 "type": "CLIP",
1167 "links": [
1168 258,
1169 259
1170 ]
1171 }
1172 ],
1173 "properties": {
1174 "Node name for S&R": "LoraLoader",
1175 "cnr_id": "comfy-core",
1176 "ver": "0.3.38",
1177 "models": [
1178 {
1179 "name": "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
1180 "url": "https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
1181 "directory": "loras"
1182 }
1183 ]
1184 },
1185 "widgets_values": [
1186 "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
1187 0.4000000000000001,
1188 1
1189 ]
1190 },
1191 {
1192 "id": 3,
1193 "type": "KSampler",
1194 "pos": [
1195 992.5,
1196 50
1197 ],
1198 "size": [
1199 315,
1200 262
1201 ],
1202 "flags": [],
1203 "order": 29,
1204 "mode": 0,
1205 "inputs": [
1206 {
1207 "name": "model",
1208 "type": "MODEL",
1209 "link": 95
1210 },
1211 {
1212 "name": "positive",
1213 "type": "CONDITIONING",
1214 "link": 98
1215 },
1216 {
1217 "name": "negative",
1218 "type": "CONDITIONING",
1219 "link": 99
1220 },
1221 {
1222 "name": "latent_image",
1223 "type": "LATENT",
1224 "link": 160
1225 }
1226 ],
1227 "outputs": [
1228 {
1229 "name": "LATENT",
1230 "type": "LATENT",
1231 "slot_index": 0,
1232 "links": [
1233 116
1234 ]
1235 }
1236 ],
1237 "properties": {
1238 "Node name for S&R": "KSampler",
1239 "cnr_id": "comfy-core",
1240 "ver": "0.3.34"
1241 },
1242 "widgets_values": [
1243 776767434080331,
1244 "randomize",
1245 3,
1246 1,
1247 "uni_pc",
1248 "simple",
1249 1
1250 ]
1251 },
1252 {
1253 "id": 135,
1254 "type": "PreviewImage",
1255 "pos": [
1256 630,
1257 690
1258 ],
1259 "size": [
1260 390,
1261 310
1262 ],
1263 "flags": [],
1264 "order": 24,
1265 "mode": 0,
1266 "inputs": [
1267 {
1268 "name": "images",
1269 "type": "IMAGE",
1270 "link": 214
1271 }
1272 ],
1273 "outputs": [],
1274 "title": "Preview Image - Outpaint",
1275 "properties": {
1276 "Node name for S&R": "PreviewImage",
1277 "cnr_id": "comfy-core",
1278 "ver": "0.3.38"
1279 },
1280 "widgets_values": []
1281 },
1282 {
1283 "id": 136,
1284 "type": "Note",
1285 "pos": [
1286 1060,
1287 690
1288 ],
1289 "size": [
1290 240,
1291 180
1292 ],
1293 "flags": [],
1294 "order": 11,
1295 "mode": 0,
1296 "inputs": [],
1297 "outputs": [],
1298 "properties": [],
1299 "widgets_values": [
1300 "Currently (May 18, 2025), the Comfy Core nodes lack relevant nodes for obtaining image size or video frames. Here, we can use the Preview image to indirectly obtain the image size and the total number of video frames.\n\nYou can use custom nodes such as image size acquisition to optimize the step of size modification.\n"
1301 ],
1302 "color": "#222",
1303 "bgcolor": "#000"
1304 },
1305 {
1306 "id": 142,
1307 "type": "Note",
1308 "pos": [
1309 330,
1310 1120
1311 ],
1312 "size": [
1313 250,
1314 210
1315 ],
1316 "flags": [],
1317 "order": 12,
1318 "mode": 0,
1319 "inputs": [],
1320 "outputs": [],
1321 "properties": [],
1322 "widgets_values": [
1323 "Here, you need to manually set the size of the video after outpainting. Since the native nodes currently do not support the relevant functions, you can use some custom nodes to improve this step. Additionally, because the step size of the size setting for the WanVaceToVideo node is 16, the number you enter must be divisible by 16. "
1324 ],
1325 "color": "#222",
1326 "bgcolor": "#000"
1327 },
1328 {
1329 "id": 156,
1330 "type": "MarkdownNote",
1331 "pos": [
1332 -680,
1333 560
1334 ],
1335 "size": [
1336 370,
1337 220
1338 ],
1339 "flags": [],
1340 "order": 13,
1341 "mode": 0,
1342 "inputs": [],
1343 "outputs": [],
1344 "title": "Note",
1345 "properties": [],
1346 "widgets_values": [
1347 "The generation quality of the 14B model is better, but it takes longer to generate. If you have already downloaded the model, you can choose to directly use the nodes above, or just modify the model loaded by the loader node.\n\nThe corresponding LoRA should match the Diffusion Model. For example, the LoRA corresponding to the 14B diffusion model is the 14B LoRA. "
1348 ],
1349 "color": "#222",
1350 "bgcolor": "#000"
1351 },
1352 {
1353 "id": 184,
1354 "type": "MarkdownNote",
1355 "pos": [
1356 -290,
1357 -190
1358 ],
1359 "size": [
1360 410,
1361 140
1362 ],
1363 "flags": [],
1364 "order": 14,
1365 "mode": 0,
1366 "inputs": [],
1367 "outputs": [],
1368 "title": "About CausVid LoRA",
1369 "properties": [],
1370 "widgets_values": [
1371 "We have added CausVid LoRA by default to achieve acceleration. However, in some cases, the video may shake and become blurry. You might need to test different LoRA intensities to get the best results, which should be between 0.3 and 0.7. If you don't need it, you can use the bypass mode to disable it, and then restore the settings of `KSampler` to the default ones.\n"
1372 ],
1373 "color": "#222",
1374 "bgcolor": "#000"
1375 },
1376 {
1377 "id": 183,
1378 "type": "MarkdownNote",
1379 "pos": [
1380 -1170,
1381 0
1382 ],
1383 "size": [
1384 470,
1385 780
1386 ],
1387 "flags": [],
1388 "order": 15,
1389 "mode": 0,
1390 "inputs": [],
1391 "outputs": [],
1392 "properties": [],
1393 "widgets_values": [
1394 "[Tutorial](https://docs.comfy.org/tutorials/video/wan/vace)\n\n## 14B Support 480P 720P\n\n- [Hugging Face:Comfy-Org/Wan_2.1_ComfyUI_repackaged](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/Wan_2.1_ComfyUI_repackaged](https://modelscope.cn/models/Comfy-Org/Wan_2.1_ComfyUI_repackaged)\n\n**Diffusion Model**\n- [wan2.1_vace_14B_fp16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_vace_14B_fp16.safetensors) (32.29 GB)\n\n**LoRA**\n- [Wan21_CausVid_14B_T2V_lora_rank32.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/blob/main/Wan21_CausVid_14B_T2V_lora_rank32.safetensors)\n\nFYI: It takes about 40 minutes to run to completion at 81 frames per second in 720P resolution with the RTX 4090 when testing the workflow. \nAfter using Wan21_CausVid_14B_T2V_lora_rank32.safetensors, it probably only takes about 4 minutes. \n\n## 1.3B Support 480P only\n\n**Diffusion Model**\n- [wan2.1_vace_1.3B_fp16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_vace_1.3B_fp16.safetensors) (4.01 GB)\n\n**LoRA**\n- [Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/blob/main/Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors)\n\nFYI: After using Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors, it probably only takes about 2 minutes. \n## Other Models\n\n* You may already have these models if you use Wan workflow before.\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors?download=true) (242.1 MB)\n\n**Text encoders** Chose one of following model\n- [umt5_xxl_fp16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp16.safetensors?download=true) (10.59 GB)\n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors?download=true) (6.27 GB)\n\n> You can choose between fp16 of fp8; I used fp16 to match what kijai's wrapper is compatible with.\n\nFile save location\n\n```\nComfyUI/\n├── models/\n│ ├── diffusion_models/\n│ │ ├-── wan2.1_vace_14B_fp16.safetensors\n│ │ └─── wan2.1_vace_1.3B_fp16.safetensors \n│ ├── text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors # or fp16\n│ ├── loras/\n│ │ ├── Wan21_CausVid_14B_T2V_lora_rank32.safetensors\n│ │ └── Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors\n│ └── vae/\n│ └── wan_2.1_vae.safetensors\n```\n"
1395 ],
1396 "color": "#222",
1397 "bgcolor": "#000"
1398 }
1399 ],
1400 "links": [
1401 [
1402 95,
1403 48,
1404 0,
1405 3,
1406 0,
1407 "MODEL"
1408 ],
1409 [
1410 96,
1411 6,
1412 0,
1413 49,
1414 0,
1415 "CONDITIONING"
1416 ],
1417 [
1418 97,
1419 7,
1420 0,
1421 49,
1422 1,
1423 "CONDITIONING"
1424 ],
1425 [
1426 98,
1427 49,
1428 0,
1429 3,
1430 1,
1431 "CONDITIONING"
1432 ],
1433 [
1434 99,
1435 49,
1436 1,
1437 3,
1438 2,
1439 "CONDITIONING"
1440 ],
1441 [
1442 115,
1443 49,
1444 3,
1445 58,
1446 1,
1447 "INT"
1448 ],
1449 [
1450 116,
1451 3,
1452 0,
1453 58,
1454 0,
1455 "LATENT"
1456 ],
1457 [
1458 117,
1459 58,
1460 0,
1461 8,
1462 0,
1463 "LATENT"
1464 ],
1465 [
1466 129,
1467 68,
1468 0,
1469 69,
1470 0,
1471 "VIDEO"
1472 ],
1473 [
1474 131,
1475 71,
1476 0,
1477 72,
1478 0,
1479 "VIDEO"
1480 ],
1481 [
1482 139,
1483 8,
1484 0,
1485 68,
1486 0,
1487 "IMAGE"
1488 ],
1489 [
1490 160,
1491 49,
1492 2,
1493 3,
1494 3,
1495 "LATENT"
1496 ],
1497 [
1498 180,
1499 110,
1500 1,
1501 111,
1502 0,
1503 "MASK"
1504 ],
1505 [
1506 201,
1507 111,
1508 0,
1509 129,
1510 0,
1511 "IMAGE"
1512 ],
1513 [
1514 202,
1515 129,
1516 0,
1517 130,
1518 0,
1519 "IMAGE"
1520 ],
1521 [
1522 204,
1523 130,
1524 0,
1525 49,
1526 4,
1527 "MASK"
1528 ],
1529 [
1530 205,
1531 72,
1532 0,
1533 110,
1534 0,
1535 "IMAGE"
1536 ],
1537 [
1538 207,
1539 110,
1540 0,
1541 49,
1542 3,
1543 "IMAGE"
1544 ],
1545 [
1546 209,
1547 131,
1548 0,
1549 49,
1550 8,
1551 "INT"
1552 ],
1553 [
1554 212,
1555 131,
1556 0,
1557 129,
1558 1,
1559 "INT"
1560 ],
1561 [
1562 214,
1563 110,
1564 0,
1565 135,
1566 0,
1567 "IMAGE"
1568 ],
1569 [
1570 215,
1571 137,
1572 0,
1573 49,
1574 6,
1575 "INT"
1576 ],
1577 [
1578 217,
1579 139,
1580 0,
1581 49,
1582 7,
1583 "INT"
1584 ],
1585 [
1586 218,
1587 72,
1588 0,
1589 143,
1590 0,
1591 "IMAGE"
1592 ],
1593 [
1594 235,
1595 158,
1596 0,
1597 159,
1598 0,
1599 "MODEL"
1600 ],
1601 [
1602 236,
1603 161,
1604 0,
1605 159,
1606 1,
1607 "CLIP"
1608 ],
1609 [
1610 241,
1611 151,
1612 0,
1613 165,
1614 0,
1615 "MODEL"
1616 ],
1617 [
1618 242,
1619 161,
1620 0,
1621 165,
1622 1,
1623 "CLIP"
1624 ],
1625 [
1626 257,
1627 165,
1628 0,
1629 48,
1630 0,
1631 "MODEL"
1632 ],
1633 [
1634 258,
1635 165,
1636 1,
1637 6,
1638 0,
1639 "CLIP"
1640 ],
1641 [
1642 259,
1643 165,
1644 1,
1645 7,
1646 0,
1647 "CLIP"
1648 ],
1649 [
1650 260,
1651 152,
1652 0,
1653 49,
1654 2,
1655 "VAE"
1656 ],
1657 [
1658 261,
1659 152,
1660 0,
1661 8,
1662 1,
1663 "VAE"
1664 ]
1665 ],
1666 "groups": [
1667 {
1668 "id": 2,
1669 "title": "Prompt",
1670 "bounding": [
1671 140,
1672 -30,
1673 450,
1674 620
1675 ],
1676 "color": "#3f789e",
1677 "font_size": 24,
1678 "flags": []
1679 },
1680 {
1681 "id": 3,
1682 "title": "Sampling & Decoding",
1683 "bounding": [
1684 610,
1685 -30,
1686 720,
1687 620
1688 ],
1689 "color": "#3f789e",
1690 "font_size": 24,
1691 "flags": []
1692 },
1693 {
1694 "id": 4,
1695 "title": "Save Video(Mp4)",
1696 "bounding": [
1697 1350,
1698 -30,
1699 720,
1700 1010
1701 ],
1702 "color": "#3f789e",
1703 "font_size": 24,
1704 "flags": []
1705 },
1706 {
1707 "id": 6,
1708 "title": "Load Video for Outpainting",
1709 "bounding": [
1710 -290,
1711 610,
1712 580,
1713 410
1714 ],
1715 "color": "#3f789e",
1716 "font_size": 24,
1717 "flags": []
1718 },
1719 {
1720 "id": 9,
1721 "title": "Length - 1 should be divisible by 4",
1722 "bounding": [
1723 -290,
1724 1040,
1725 370,
1726 330
1727 ],
1728 "color": "#3f789e",
1729 "font_size": 24,
1730 "flags": []
1731 },
1732 {
1733 "id": 10,
1734 "title": "Repeat Mask Batch",
1735 "bounding": [
1736 310,
1737 610,
1738 280,
1739 410
1740 ],
1741 "color": "#3f789e",
1742 "font_size": 24,
1743 "flags": []
1744 },
1745 {
1746 "id": 12,
1747 "title": "Get video size & frame counts",
1748 "bounding": [
1749 610,
1750 610,
1751 720,
1752 760
1753 ],
1754 "color": "#3f789e",
1755 "font_size": 24,
1756 "flags": []
1757 },
1758 {
1759 "id": 14,
1760 "title": "Video size - Must be divisble by 16",
1761 "bounding": [
1762 90,
1763 1040,
1764 500,
1765 330
1766 ],
1767 "color": "#3f789e",
1768 "font_size": 24,
1769 "flags": []
1770 },
1771 {
1772 "id": 21,
1773 "title": "Load models here",
1774 "bounding": [
1775 -290,
1776 -30,
1777 410,
1778 620
1779 ],
1780 "color": "#3f789e",
1781 "font_size": 24,
1782 "flags": []
1783 },
1784 {
1785 "id": 22,
1786 "title": "14B",
1787 "bounding": [
1788 -270,
1789 10,
1790 370,
1791 330
1792 ],
1793 "color": "#3f789e",
1794 "font_size": 24,
1795 "flags": []
1796 },
1797 {
1798 "id": 23,
1799 "title": "1.3B",
1800 "bounding": [
1801 -680,
1802 -30,
1803 370,
1804 330
1805 ],
1806 "color": "#3f789e",
1807 "font_size": 24,
1808 "flags": []
1809 }
1810 ],
1811 "config": [],
1812 "extra": {
1813 "ds": {
1814 "scale": 0.4462002493494437,
1815 "offset": [
1816 1338.7934840651517,
1817 354.7511023649753
1818 ]
1819 },
1820 "frontendVersion": "1.29.2",
1821 "node_versions": {
1822 "comfy-core": "0.3.34"
1823 },
1824 "VHS_latentpreview": false,
1825 "VHS_latentpreviewrate": 0,
1826 "VHS_MetadataImage": true,
1827 "VHS_KeepIntermediate": true
1828 },
1829 "version": 0.4
1830}