工作流 /
角色与时尚 /
步骤3:联系表工作流

步骤3:联系表工作流
Step 3: Contact Sheet Workflow
上传8张图片(按顺序)作为7个Kling 3.0 FLF2V视频的关键帧。
角色与时尚
26 个节点 7 个输入 9 次使用 ComfyUI ≥ 0.35.2 hellorob 161 KB
节点构成
LoadImage
× 7
SaveVideo
× 7
PrimitiveNode
× 2
Reroute
× 2
BatchImagesNode
× 1
f7abaa3a-5e87-4354-bab6-f43320cd490f
× 1
02da9128-7c15-4c46-96bc-1dd68e5bc490
× 1
3426003b-7b3a-4d37-8a2f-e0f8adb05712
× 1
c61d617f-c72d-4f4c-8659-bd6f884d1a1e
× 1
4b301c11-bc16-4096-9441-e0648a04aa4d
× 1
2ab1ef49-3518-4f71-b703-f8ef12f32214
× 1
b3fe4254-e196-429e-9f45-96c92113e406
× 1
官方标注的模型
Gemini-3.1-flash-liteKling 3.0
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "66fb78f0-14e8-4e0a-8ebc-a854163427dc",
3 "revision": 0,
4 "last_node_id": 395,
5 "last_link_id": 357,
6 "nodes": [
7 {
8 "id": 224,
9 "type": "LoadImage",
10 "pos": [
11 5669.99953866742,
12 1030.000116367994
13 ],
14 "size": [
15 250,
16 370
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [
22 {
23 "label": "Load Image 1",
24 "name": "image",
25 "type": "COMBO",
26 "widget": {
27 "name": "image"
28 },
29 "link": null
30 }
31 ],
32 "outputs": [
33 {
34 "name": "IMAGE",
35 "type": "IMAGE",
36 "links": [
37 248
38 ]
39 },
40 {
41 "name": "MASK",
42 "type": "MASK",
43 "links": null
44 }
45 ],
46 "title": "Load Image 1",
47 "properties": {
48 "Node name for S&R": "LoadImage"
49 },
50 "widgets_values": [
51 "contact_sheet_app_input_1.png",
52 "image"
53 ],
54 "color": "#232",
55 "bgcolor": "#353"
56 },
57 {
58 "id": 225,
59 "type": "BatchImagesNode",
60 "pos": [
61 6440,
62 1050
63 ],
64 "size": [
65 200,
66 190
67 ],
68 "flags": {
69 "collapsed": true
70 },
71 "order": 9,
72 "mode": 0,
73 "inputs": [
74 {
75 "label": "image0",
76 "name": "images.image0",
77 "type": "IMAGE",
78 "link": 248
79 },
80 {
81 "label": "image1",
82 "name": "images.image1",
83 "type": "IMAGE",
84 "link": 249
85 },
86 {
87 "label": "image2",
88 "name": "images.image2",
89 "shape": 7,
90 "type": "IMAGE",
91 "link": 251
92 },
93 {
94 "label": "image3",
95 "name": "images.image3",
96 "shape": 7,
97 "type": "IMAGE",
98 "link": 252
99 },
100 {
101 "label": "image4",
102 "name": "images.image4",
103 "shape": 7,
104 "type": "IMAGE",
105 "link": 256
106 },
107 {
108 "label": "image5",
109 "name": "images.image5",
110 "shape": 7,
111 "type": "IMAGE",
112 "link": 257
113 },
114 {
115 "label": "image6",
116 "name": "images.image6",
117 "shape": 7,
118 "type": "IMAGE",
119 "link": 258
120 },
121 {
122 "label": "image7",
123 "name": "images.image7",
124 "shape": 7,
125 "type": "IMAGE",
126 "link": null
127 }
128 ],
129 "outputs": [
130 {
131 "name": "IMAGE",
132 "type": "IMAGE",
133 "links": [
134 281,
135 298,
136 301,
137 304,
138 307,
139 310,
140 313
141 ]
142 }
143 ],
144 "properties": {
145 "Node name for S&R": "BatchImagesNode"
146 },
147 "widgets_values": []
148 },
149 {
150 "id": 226,
151 "type": "LoadImage",
152 "pos": [
153 5970.000147587651,
154 1030.000116367994
155 ],
156 "size": [
157 250,
158 370
159 ],
160 "flags": [],
161 "order": 1,
162 "mode": 0,
163 "inputs": [
164 {
165 "label": "Load Image 2",
166 "name": "image",
167 "type": "COMBO",
168 "widget": {
169 "name": "image"
170 },
171 "link": null
172 }
173 ],
174 "outputs": [
175 {
176 "name": "IMAGE",
177 "type": "IMAGE",
178 "links": [
179 249
180 ]
181 },
182 {
183 "name": "MASK",
184 "type": "MASK",
185 "links": null
186 }
187 ],
188 "title": "Load Image 2",
189 "properties": {
190 "Node name for S&R": "LoadImage"
191 },
192 "widgets_values": [
193 "contact_sheet_app_input_2.png",
194 "image"
195 ],
196 "color": "#232",
197 "bgcolor": "#353"
198 },
199 {
200 "id": 227,
201 "type": "LoadImage",
202 "pos": [
203 5669.99953866742,
204 1440.0002257233173
205 ],
206 "size": [
207 250,
208 370
209 ],
210 "flags": [],
211 "order": 2,
212 "mode": 0,
213 "inputs": [
214 {
215 "label": "Load Image 3",
216 "name": "image",
217 "type": "COMBO",
218 "widget": {
219 "name": "image"
220 },
221 "link": null
222 }
223 ],
224 "outputs": [
225 {
226 "name": "IMAGE",
227 "type": "IMAGE",
228 "links": [
229 251
230 ]
231 },
232 {
233 "name": "MASK",
234 "type": "MASK",
235 "links": null
236 }
237 ],
238 "title": "Load Image 3",
239 "properties": {
240 "Node name for S&R": "LoadImage"
241 },
242 "widgets_values": [
243 "contact_sheet_app_input_3.png",
244 "image"
245 ],
246 "color": "#232",
247 "bgcolor": "#353"
248 },
249 {
250 "id": 228,
251 "type": "LoadImage",
252 "pos": [
253 5970.000147587651,
254 1440.0002257233173
255 ],
256 "size": [
257 250,
258 370
259 ],
260 "flags": [],
261 "order": 3,
262 "mode": 0,
263 "inputs": [
264 {
265 "label": "Load Image 4",
266 "name": "image",
267 "type": "COMBO",
268 "widget": {
269 "name": "image"
270 },
271 "link": null
272 }
273 ],
274 "outputs": [
275 {
276 "name": "IMAGE",
277 "type": "IMAGE",
278 "links": [
279 252
280 ]
281 },
282 {
283 "name": "MASK",
284 "type": "MASK",
285 "links": null
286 }
287 ],
288 "title": "Load Image 4",
289 "properties": {
290 "Node name for S&R": "LoadImage"
291 },
292 "widgets_values": [
293 "contact_sheet_app_input_4.png",
294 "image"
295 ],
296 "color": "#232",
297 "bgcolor": "#353"
298 },
299 {
300 "id": 232,
301 "type": "LoadImage",
302 "pos": [
303 5669.99953866742,
304 1850.0001224799175
305 ],
306 "size": [
307 250,
308 370
309 ],
310 "flags": [],
311 "order": 4,
312 "mode": 0,
313 "inputs": [
314 {
315 "label": "Load Image 5",
316 "name": "image",
317 "type": "COMBO",
318 "widget": {
319 "name": "image"
320 },
321 "link": null
322 }
323 ],
324 "outputs": [
325 {
326 "name": "IMAGE",
327 "type": "IMAGE",
328 "links": [
329 256
330 ]
331 },
332 {
333 "name": "MASK",
334 "type": "MASK",
335 "links": null
336 }
337 ],
338 "title": "Load Image 5",
339 "properties": {
340 "Node name for S&R": "LoadImage"
341 },
342 "widgets_values": [
343 "contact_sheet_app_input_5.png",
344 "image"
345 ],
346 "color": "#232",
347 "bgcolor": "#353"
348 },
349 {
350 "id": 233,
351 "type": "LoadImage",
352 "pos": [
353 5970.000147587651,
354 1850.0001224799175
355 ],
356 "size": [
357 250,
358 370
359 ],
360 "flags": [],
361 "order": 5,
362 "mode": 0,
363 "inputs": [
364 {
365 "label": "Load Image 6",
366 "name": "image",
367 "type": "COMBO",
368 "widget": {
369 "name": "image"
370 },
371 "link": null
372 }
373 ],
374 "outputs": [
375 {
376 "name": "IMAGE",
377 "type": "IMAGE",
378 "links": [
379 257
380 ]
381 },
382 {
383 "name": "MASK",
384 "type": "MASK",
385 "links": null
386 }
387 ],
388 "title": "Load Image 6",
389 "properties": {
390 "Node name for S&R": "LoadImage"
391 },
392 "widgets_values": [
393 "contact_sheet_app_input_6.png",
394 "image"
395 ],
396 "color": "#232",
397 "bgcolor": "#353"
398 },
399 {
400 "id": 234,
401 "type": "LoadImage",
402 "pos": [
403 5970,
404 2270
405 ],
406 "size": [
407 250,
408 370
409 ],
410 "flags": [],
411 "order": 6,
412 "mode": 0,
413 "inputs": [
414 {
415 "label": "Load Image 7",
416 "name": "image",
417 "type": "COMBO",
418 "widget": {
419 "name": "image"
420 },
421 "link": null
422 }
423 ],
424 "outputs": [
425 {
426 "name": "IMAGE",
427 "type": "IMAGE",
428 "links": [
429 258
430 ]
431 },
432 {
433 "name": "MASK",
434 "type": "MASK",
435 "links": null
436 }
437 ],
438 "title": "Load Image 7",
439 "properties": {
440 "Node name for S&R": "LoadImage"
441 },
442 "widgets_values": [
443 "contact_sheet_app_input_7.png",
444 "image"
445 ],
446 "color": "#232",
447 "bgcolor": "#353"
448 },
449 {
450 "id": 308,
451 "type": "SaveVideo",
452 "pos": [
453 6869.99970662863,
454 1340.0001644823892
455 ],
456 "size": [
457 480,
458 990
459 ],
460 "flags": [],
461 "order": 19,
462 "mode": 0,
463 "inputs": [
464 {
465 "name": "video",
466 "type": "VIDEO",
467 "link": 280
468 }
469 ],
470 "outputs": [],
471 "properties": {
472 "Node name for S&R": "SaveVideo",
473 "cnr_id": "comfy-core",
474 "ver": "0.3.76"
475 },
476 "widgets_values": [
477 "video/ComfyUI-vid_1",
478 "auto",
479 "auto"
480 ]
481 },
482 {
483 "id": 309,
484 "type": "f7abaa3a-5e87-4354-bab6-f43320cd490f",
485 "pos": [
486 6869.99970662863,
487 1020.0001102439012
488 ],
489 "size": [
490 470,
491 250
492 ],
493 "flags": [],
494 "order": 12,
495 "mode": 0,
496 "inputs": [
497 {
498 "name": "image",
499 "type": "IMAGE",
500 "link": 281
501 },
502 {
503 "name": "duration",
504 "type": "INT",
505 "widget": {
506 "name": "duration"
507 },
508 "link": 342
509 },
510 {
511 "name": "model.resolution",
512 "type": "COMBO",
513 "widget": {
514 "name": "model.resolution"
515 },
516 "link": 350
517 }
518 ],
519 "outputs": [
520 {
521 "name": "VIDEO",
522 "type": "VIDEO",
523 "links": [
524 280
525 ]
526 }
527 ],
528 "properties": {
529 "proxyWidgets": [
530 [
531 "310",
532 "duration"
533 ],
534 [
535 "310",
536 "model.resolution"
537 ],
538 [
539 "310",
540 "seed"
541 ],
542 [
543 "302",
544 "preview_text"
545 ]
546 ],
547 "cnr_id": "comfy-core",
548 "ver": "0.3.76"
549 },
550 "widgets_values": []
551 },
552 {
553 "id": 312,
554 "type": "PrimitiveNode",
555 "pos": [
556 5669.99953866742,
557 690.0000498813205
558 ],
559 "size": [
560 540,
561 110
562 ],
563 "flags": [],
564 "order": 7,
565 "mode": 0,
566 "inputs": [],
567 "outputs": [
568 {
569 "name": "INT",
570 "type": "INT",
571 "widget": {
572 "name": "value"
573 },
574 "links": [
575 349
576 ]
577 }
578 ],
579 "title": "duration",
580 "properties": {
581 "Run widget replace on values": false
582 },
583 "widgets_values": [
584 5
585 ],
586 "color": "#232",
587 "bgcolor": "#353"
588 },
589 {
590 "id": 313,
591 "type": "PrimitiveNode",
592 "pos": [
593 5669.99953866742,
594 840.0000000102307
595 ],
596 "size": [
597 540,
598 150
599 ],
600 "flags": [],
601 "order": 8,
602 "mode": 0,
603 "inputs": [],
604 "outputs": [
605 {
606 "name": "COMBO",
607 "type": "COMBO",
608 "widget": {
609 "name": "value"
610 },
611 "links": [
612 357
613 ]
614 }
615 ],
616 "title": "model.resolution",
617 "properties": {
618 "Run widget replace on values": false
619 },
620 "widgets_values": [
621 "1080p",
622 "fixed",
623 ""
624 ],
625 "color": "#232",
626 "bgcolor": "#353"
627 },
628 {
629 "id": 344,
630 "type": "SaveVideo",
631 "pos": [
632 7420.00053951742,
633 1340.0001644823892
634 ],
635 "size": [
636 480,
637 990
638 ],
639 "flags": [],
640 "order": 20,
641 "mode": 0,
642 "inputs": [
643 {
644 "name": "video",
645 "type": "VIDEO",
646 "link": 297
647 }
648 ],
649 "outputs": [],
650 "properties": {
651 "Node name for S&R": "SaveVideo",
652 "cnr_id": "comfy-core",
653 "ver": "0.3.76"
654 },
655 "widgets_values": [
656 "video/ComfyUI-vid_2",
657 "auto",
658 "auto"
659 ]
660 },
661 {
662 "id": 345,
663 "type": "02da9128-7c15-4c46-96bc-1dd68e5bc490",
664 "pos": [
665 7420.00053951742,
666 1020.0001102439012
667 ],
668 "size": [
669 470,
670 250
671 ],
672 "flags": [],
673 "order": 13,
674 "mode": 0,
675 "inputs": [
676 {
677 "name": "image",
678 "type": "IMAGE",
679 "link": 298
680 },
681 {
682 "name": "duration",
683 "type": "INT",
684 "widget": {
685 "name": "duration"
686 },
687 "link": 343
688 },
689 {
690 "name": "model.resolution",
691 "type": "COMBO",
692 "widget": {
693 "name": "model.resolution"
694 },
695 "link": 351
696 }
697 ],
698 "outputs": [
699 {
700 "name": "VIDEO",
701 "type": "VIDEO",
702 "links": [
703 297
704 ]
705 }
706 ],
707 "properties": {
708 "proxyWidgets": [
709 [
710 "343",
711 "duration"
712 ],
713 [
714 "343",
715 "model.resolution"
716 ],
717 [
718 "343",
719 "seed"
720 ],
721 [
722 "338",
723 "preview_text"
724 ]
725 ],
726 "cnr_id": "comfy-core",
727 "ver": "0.3.76"
728 },
729 "widgets_values": []
730 },
731 {
732 "id": 352,
733 "type": "SaveVideo",
734 "pos": [
735 7970.000238546356,
736 1340.0001644823892
737 ],
738 "size": [
739 480,
740 990
741 ],
742 "flags": [],
743 "order": 21,
744 "mode": 0,
745 "inputs": [
746 {
747 "name": "video",
748 "type": "VIDEO",
749 "link": 300
750 }
751 ],
752 "outputs": [],
753 "properties": {
754 "Node name for S&R": "SaveVideo",
755 "cnr_id": "comfy-core",
756 "ver": "0.3.76"
757 },
758 "widgets_values": [
759 "video/ComfyUI-vid_3",
760 "auto",
761 "auto"
762 ]
763 },
764 {
765 "id": 353,
766 "type": "3426003b-7b3a-4d37-8a2f-e0f8adb05712",
767 "pos": [
768 7970.000238546356,
769 1020.0001102439012
770 ],
771 "size": [
772 470,
773 250
774 ],
775 "flags": [],
776 "order": 14,
777 "mode": 0,
778 "inputs": [
779 {
780 "name": "image",
781 "type": "IMAGE",
782 "link": 301
783 },
784 {
785 "name": "duration",
786 "type": "INT",
787 "widget": {
788 "name": "duration"
789 },
790 "link": 344
791 },
792 {
793 "name": "model.resolution",
794 "type": "COMBO",
795 "widget": {
796 "name": "model.resolution"
797 },
798 "link": 352
799 }
800 ],
801 "outputs": [
802 {
803 "name": "VIDEO",
804 "type": "VIDEO",
805 "links": [
806 300
807 ]
808 }
809 ],
810 "properties": {
811 "proxyWidgets": [
812 [
813 "351",
814 "duration"
815 ],
816 [
817 "351",
818 "model.resolution"
819 ],
820 [
821 "351",
822 "seed"
823 ],
824 [
825 "346",
826 "preview_text"
827 ]
828 ],
829 "cnr_id": "comfy-core",
830 "ver": "0.3.76"
831 },
832 "widgets_values": []
833 },
834 {
835 "id": 360,
836 "type": "SaveVideo",
837 "pos": [
838 8519.999937575292,
839 1340.0001644823892
840 ],
841 "size": [
842 480,
843 990
844 ],
845 "flags": [],
846 "order": 22,
847 "mode": 0,
848 "inputs": [
849 {
850 "name": "video",
851 "type": "VIDEO",
852 "link": 303
853 }
854 ],
855 "outputs": [],
856 "properties": {
857 "Node name for S&R": "SaveVideo",
858 "cnr_id": "comfy-core",
859 "ver": "0.3.76"
860 },
861 "widgets_values": [
862 "video/ComfyUI-vid_4",
863 "auto",
864 "auto"
865 ]
866 },
867 {
868 "id": 361,
869 "type": "c61d617f-c72d-4f4c-8659-bd6f884d1a1e",
870 "pos": [
871 8519.999937575292,
872 1020.0001102439012
873 ],
874 "size": [
875 470,
876 250
877 ],
878 "flags": [],
879 "order": 15,
880 "mode": 0,
881 "inputs": [
882 {
883 "name": "image",
884 "type": "IMAGE",
885 "link": 304
886 },
887 {
888 "name": "duration",
889 "type": "INT",
890 "widget": {
891 "name": "duration"
892 },
893 "link": 345
894 },
895 {
896 "name": "model.resolution",
897 "type": "COMBO",
898 "widget": {
899 "name": "model.resolution"
900 },
901 "link": 353
902 }
903 ],
904 "outputs": [
905 {
906 "name": "VIDEO",
907 "type": "VIDEO",
908 "links": [
909 303
910 ]
911 }
912 ],
913 "properties": {
914 "proxyWidgets": [
915 [
916 "359",
917 "duration"
918 ],
919 [
920 "359",
921 "model.resolution"
922 ],
923 [
924 "359",
925 "seed"
926 ],
927 [
928 "354",
929 "preview_text"
930 ]
931 ],
932 "cnr_id": "comfy-core",
933 "ver": "0.3.76"
934 },
935 "widgets_values": []
936 },
937 {
938 "id": 368,
939 "type": "SaveVideo",
940 "pos": [
941 9079.999713594561,
942 1340.0001644823892
943 ],
944 "size": [
945 480,
946 990
947 ],
948 "flags": [],
949 "order": 23,
950 "mode": 0,
951 "inputs": [
952 {
953 "name": "video",
954 "type": "VIDEO",
955 "link": 306
956 }
957 ],
958 "outputs": [],
959 "properties": {
960 "Node name for S&R": "SaveVideo",
961 "cnr_id": "comfy-core",
962 "ver": "0.3.76"
963 },
964 "widgets_values": [
965 "video/ComfyUI-vid_5",
966 "auto",
967 "auto"
968 ]
969 },
970 {
971 "id": 369,
972 "type": "4b301c11-bc16-4096-9441-e0648a04aa4d",
973 "pos": [
974 9079.999713594561,
975 1020.0001102439012
976 ],
977 "size": [
978 470,
979 250
980 ],
981 "flags": [],
982 "order": 16,
983 "mode": 0,
984 "inputs": [
985 {
986 "name": "image",
987 "type": "IMAGE",
988 "link": 307
989 },
990 {
991 "name": "duration",
992 "type": "INT",
993 "widget": {
994 "name": "duration"
995 },
996 "link": 346
997 },
998 {
999 "name": "model.resolution",
1000 "type": "COMBO",
1001 "widget": {
1002 "name": "model.resolution"
1003 },
1004 "link": 354
1005 }
1006 ],
1007 "outputs": [
1008 {
1009 "name": "VIDEO",
1010 "type": "VIDEO",
1011 "links": [
1012 306
1013 ]
1014 }
1015 ],
1016 "properties": {
1017 "proxyWidgets": [
1018 [
1019 "367",
1020 "duration"
1021 ],
1022 [
1023 "367",
1024 "model.resolution"
1025 ],
1026 [
1027 "367",
1028 "seed"
1029 ],
1030 [
1031 "362",
1032 "preview_text"
1033 ]
1034 ],
1035 "cnr_id": "comfy-core",
1036 "ver": "0.3.76"
1037 },
1038 "widgets_values": []
1039 },
1040 {
1041 "id": 376,
1042 "type": "SaveVideo",
1043 "pos": [
1044 9619.999902563091,
1045 1340.0001644823892
1046 ],
1047 "size": [
1048 480,
1049 990
1050 ],
1051 "flags": [],
1052 "order": 24,
1053 "mode": 0,
1054 "inputs": [
1055 {
1056 "name": "video",
1057 "type": "VIDEO",
1058 "link": 309
1059 }
1060 ],
1061 "outputs": [],
1062 "properties": {
1063 "Node name for S&R": "SaveVideo",
1064 "cnr_id": "comfy-core",
1065 "ver": "0.3.76"
1066 },
1067 "widgets_values": [
1068 "video/ComfyUI-vid_6",
1069 "auto",
1070 "auto"
1071 ]
1072 },
1073 {
1074 "id": 377,
1075 "type": "2ab1ef49-3518-4f71-b703-f8ef12f32214",
1076 "pos": [
1077 9619.999902563091,
1078 1020.0001102439012
1079 ],
1080 "size": [
1081 470,
1082 250
1083 ],
1084 "flags": [],
1085 "order": 17,
1086 "mode": 0,
1087 "inputs": [
1088 {
1089 "name": "image",
1090 "type": "IMAGE",
1091 "link": 310
1092 },
1093 {
1094 "name": "duration",
1095 "type": "INT",
1096 "widget": {
1097 "name": "duration"
1098 },
1099 "link": 347
1100 },
1101 {
1102 "name": "model.resolution",
1103 "type": "COMBO",
1104 "widget": {
1105 "name": "model.resolution"
1106 },
1107 "link": 355
1108 }
1109 ],
1110 "outputs": [
1111 {
1112 "name": "VIDEO",
1113 "type": "VIDEO",
1114 "links": [
1115 309
1116 ]
1117 }
1118 ],
1119 "properties": {
1120 "proxyWidgets": [
1121 [
1122 "375",
1123 "duration"
1124 ],
1125 [
1126 "375",
1127 "model.resolution"
1128 ],
1129 [
1130 "375",
1131 "seed"
1132 ],
1133 [
1134 "370",
1135 "preview_text"
1136 ]
1137 ],
1138 "cnr_id": "comfy-core",
1139 "ver": "0.3.76"
1140 },
1141 "widgets_values": []
1142 },
1143 {
1144 "id": 384,
1145 "type": "SaveVideo",
1146 "pos": [
1147 10170.000168521954,
1148 1340.0001644823892
1149 ],
1150 "size": [
1151 480,
1152 990
1153 ],
1154 "flags": [],
1155 "order": 25,
1156 "mode": 0,
1157 "inputs": [
1158 {
1159 "name": "video",
1160 "type": "VIDEO",
1161 "link": 312
1162 }
1163 ],
1164 "outputs": [],
1165 "properties": {
1166 "Node name for S&R": "SaveVideo",
1167 "cnr_id": "comfy-core",
1168 "ver": "0.3.76"
1169 },
1170 "widgets_values": [
1171 "video/ComfyUI-vid_7",
1172 "auto",
1173 "auto"
1174 ]
1175 },
1176 {
1177 "id": 385,
1178 "type": "b3fe4254-e196-429e-9f45-96c92113e406",
1179 "pos": [
1180 10170.000168521954,
1181 1020.0000393776602
1182 ],
1183 "size": [
1184 470,
1185 250
1186 ],
1187 "flags": [],
1188 "order": 18,
1189 "mode": 0,
1190 "inputs": [
1191 {
1192 "name": "image",
1193 "type": "IMAGE",
1194 "link": 313
1195 },
1196 {
1197 "name": "duration",
1198 "type": "INT",
1199 "widget": {
1200 "name": "duration"
1201 },
1202 "link": 348
1203 },
1204 {
1205 "name": "model.resolution",
1206 "type": "COMBO",
1207 "widget": {
1208 "name": "model.resolution"
1209 },
1210 "link": 356
1211 }
1212 ],
1213 "outputs": [
1214 {
1215 "name": "VIDEO",
1216 "type": "VIDEO",
1217 "links": [
1218 312
1219 ]
1220 }
1221 ],
1222 "properties": {
1223 "proxyWidgets": [
1224 [
1225 "383",
1226 "duration"
1227 ],
1228 [
1229 "383",
1230 "model.resolution"
1231 ],
1232 [
1233 "383",
1234 "seed"
1235 ],
1236 [
1237 "378",
1238 "preview_text"
1239 ]
1240 ],
1241 "cnr_id": "comfy-core",
1242 "ver": "0.3.76"
1243 },
1244 "widgets_values": []
1245 },
1246 {
1247 "id": 394,
1248 "type": "Reroute",
1249 "pos": [
1250 6439.999797623843,
1251 1090.0001531125508
1252 ],
1253 "size": [
1254 225,
1255 36
1256 ],
1257 "flags": [],
1258 "order": 10,
1259 "mode": 0,
1260 "inputs": [
1261 {
1262 "name": "",
1263 "type": "*",
1264 "widget": {
1265 "name": "value"
1266 },
1267 "link": 349
1268 }
1269 ],
1270 "outputs": [
1271 {
1272 "name": "",
1273 "type": "INT",
1274 "links": [
1275 342,
1276 343,
1277 344,
1278 345,
1279 346,
1280 347,
1281 348
1282 ]
1283 }
1284 ],
1285 "properties": {
1286 "showOutputText": false,
1287 "horizontal": false
1288 }
1289 },
1290 {
1291 "id": 395,
1292 "type": "Reroute",
1293 "pos": [
1294 6439.999797623843,
1295 1120.0001714848293
1296 ],
1297 "size": [
1298 225,
1299 36
1300 ],
1301 "flags": [],
1302 "order": 11,
1303 "mode": 0,
1304 "inputs": [
1305 {
1306 "name": "",
1307 "type": "*",
1308 "widget": {
1309 "name": "value"
1310 },
1311 "link": 357
1312 }
1313 ],
1314 "outputs": [
1315 {
1316 "name": "",
1317 "type": "COMBO",
1318 "links": [
1319 350,
1320 351,
1321 352,
1322 353,
1323 354,
1324 355,
1325 356
1326 ]
1327 }
1328 ],
1329 "properties": {
1330 "showOutputText": false,
1331 "horizontal": false
1332 }
1333 }
1334 ],
1335 "links": [
1336 [
1337 248,
1338 224,
1339 0,
1340 225,
1341 0,
1342 "IMAGE"
1343 ],
1344 [
1345 249,
1346 226,
1347 0,
1348 225,
1349 1,
1350 "IMAGE"
1351 ],
1352 [
1353 251,
1354 227,
1355 0,
1356 225,
1357 2,
1358 "IMAGE"
1359 ],
1360 [
1361 252,
1362 228,
1363 0,
1364 225,
1365 3,
1366 "IMAGE"
1367 ],
1368 [
1369 256,
1370 232,
1371 0,
1372 225,
1373 4,
1374 "IMAGE"
1375 ],
1376 [
1377 257,
1378 233,
1379 0,
1380 225,
1381 5,
1382 "IMAGE"
1383 ],
1384 [
1385 258,
1386 234,
1387 0,
1388 225,
1389 6,
1390 "IMAGE"
1391 ],
1392 [
1393 280,
1394 309,
1395 0,
1396 308,
1397 0,
1398 "VIDEO"
1399 ],
1400 [
1401 281,
1402 225,
1403 0,
1404 309,
1405 0,
1406 "IMAGE"
1407 ],
1408 [
1409 297,
1410 345,
1411 0,
1412 344,
1413 0,
1414 "VIDEO"
1415 ],
1416 [
1417 298,
1418 225,
1419 0,
1420 345,
1421 0,
1422 "IMAGE"
1423 ],
1424 [
1425 300,
1426 353,
1427 0,
1428 352,
1429 0,
1430 "VIDEO"
1431 ],
1432 [
1433 301,
1434 225,
1435 0,
1436 353,
1437 0,
1438 "IMAGE"
1439 ],
1440 [
1441 303,
1442 361,
1443 0,
1444 360,
1445 0,
1446 "VIDEO"
1447 ],
1448 [
1449 304,
1450 225,
1451 0,
1452 361,
1453 0,
1454 "IMAGE"
1455 ],
1456 [
1457 306,
1458 369,
1459 0,
1460 368,
1461 0,
1462 "VIDEO"
1463 ],
1464 [
1465 307,
1466 225,
1467 0,
1468 369,
1469 0,
1470 "IMAGE"
1471 ],
1472 [
1473 309,
1474 377,
1475 0,
1476 376,
1477 0,
1478 "VIDEO"
1479 ],
1480 [
1481 310,
1482 225,
1483 0,
1484 377,
1485 0,
1486 "IMAGE"
1487 ],
1488 [
1489 312,
1490 385,
1491 0,
1492 384,
1493 0,
1494 "VIDEO"
1495 ],
1496 [
1497 313,
1498 225,
1499 0,
1500 385,
1501 0,
1502 "IMAGE"
1503 ],
1504 [
1505 342,
1506 394,
1507 0,
1508 309,
1509 1,
1510 "INT"
1511 ],
1512 [
1513 343,
1514 394,
1515 0,
1516 345,
1517 1,
1518 "INT"
1519 ],
1520 [
1521 344,
1522 394,
1523 0,
1524 353,
1525 1,
1526 "INT"
1527 ],
1528 [
1529 345,
1530 394,
1531 0,
1532 361,
1533 1,
1534 "INT"
1535 ],
1536 [
1537 346,
1538 394,
1539 0,
1540 369,
1541 1,
1542 "INT"
1543 ],
1544 [
1545 347,
1546 394,
1547 0,
1548 377,
1549 1,
1550 "INT"
1551 ],
1552 [
1553 348,
1554 394,
1555 0,
1556 385,
1557 1,
1558 "INT"
1559 ],
1560 [
1561 349,
1562 312,
1563 0,
1564 394,
1565 0,
1566 "*"
1567 ],
1568 [
1569 350,
1570 395,
1571 0,
1572 309,
1573 2,
1574 "COMBO"
1575 ],
1576 [
1577 351,
1578 395,
1579 0,
1580 345,
1581 2,
1582 "COMBO"
1583 ],
1584 [
1585 352,
1586 395,
1587 0,
1588 353,
1589 2,
1590 "COMBO"
1591 ],
1592 [
1593 353,
1594 395,
1595 0,
1596 361,
1597 2,
1598 "COMBO"
1599 ],
1600 [
1601 354,
1602 395,
1603 0,
1604 369,
1605 2,
1606 "COMBO"
1607 ],
1608 [
1609 355,
1610 395,
1611 0,
1612 377,
1613 2,
1614 "COMBO"
1615 ],
1616 [
1617 356,
1618 395,
1619 0,
1620 385,
1621 2,
1622 "COMBO"
1623 ],
1624 [
1625 357,
1626 313,
1627 0,
1628 395,
1629 0,
1630 "*"
1631 ]
1632 ],
1633 "groups": [],
1634 "definitions": {
1635 "subgraphs": [
1636 {
1637 "id": "f7abaa3a-5e87-4354-bab6-f43320cd490f",
1638 "version": 1,
1639 "state": {
1640 "lastGroupId": 0,
1641 "lastNodeId": 395,
1642 "lastLinkId": 357,
1643 "lastRerouteId": 0
1644 },
1645 "revision": 0,
1646 "config": [],
1647 "name": "Generate Video 1",
1648 "inputNode": {
1649 "id": -10,
1650 "bounding": [
1651 7370,
1652 380,
1653 120,
1654 90
1655 ]
1656 },
1657 "outputNode": {
1658 "id": -20,
1659 "bounding": [
1660 8580,
1661 370,
1662 100,
1663 50
1664 ]
1665 },
1666 "inputs": [
1667 {
1668 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
1669 "name": "image",
1670 "type": "IMAGE",
1671 "linkIds": [
1672 127,
1673 125
1674 ],
1675 "localized_name": "image",
1676 "pos": [
1677 8960.376953125,
1678 478
1679 ]
1680 },
1681 {
1682 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
1683 "name": "duration",
1684 "type": "INT",
1685 "linkIds": [
1686 285
1687 ],
1688 "pos": [
1689 8960.376953125,
1690 498
1691 ]
1692 },
1693 {
1694 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
1695 "name": "model.resolution",
1696 "type": "COMBO",
1697 "linkIds": [
1698 286
1699 ],
1700 "pos": [
1701 8960.376953125,
1702 518
1703 ]
1704 }
1705 ],
1706 "outputs": [
1707 {
1708 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
1709 "name": "VIDEO",
1710 "type": "VIDEO",
1711 "linkIds": [
1712 293
1713 ],
1714 "localized_name": "VIDEO",
1715 "pos": [
1716 10320,
1717 470
1718 ]
1719 }
1720 ],
1721 "widgets": [],
1722 "nodes": [
1723 {
1724 "id": 302,
1725 "type": "PreviewAny",
1726 "pos": [
1727 8220,
1728 -80
1729 ],
1730 "size": [
1731 280,
1732 440
1733 ],
1734 "flags": [],
1735 "order": 0,
1736 "mode": 0,
1737 "inputs": [
1738 {
1739 "localized_name": "source",
1740 "name": "source",
1741 "type": "*",
1742 "link": 203
1743 }
1744 ],
1745 "outputs": [],
1746 "title": "Preview Prompt",
1747 "properties": {
1748 "Node name for S&R": "PreviewAny",
1749 "cnr_id": "comfy-core",
1750 "ver": "0.3.76"
1751 },
1752 "widgets_values": [
1753 null,
1754 null,
1755 null
1756 ]
1757 },
1758 {
1759 "id": 304,
1760 "type": "ImageFromBatch",
1761 "pos": [
1762 7550,
1763 660
1764 ],
1765 "size": [
1766 280,
1767 100
1768 ],
1769 "flags": [],
1770 "order": 1,
1771 "mode": 0,
1772 "inputs": [
1773 {
1774 "localized_name": "image",
1775 "name": "image",
1776 "type": "IMAGE",
1777 "link": 125
1778 }
1779 ],
1780 "outputs": [
1781 {
1782 "localized_name": "IMAGE",
1783 "name": "IMAGE",
1784 "type": "IMAGE",
1785 "links": [
1786 282,
1787 322
1788 ]
1789 }
1790 ],
1791 "properties": {
1792 "Node name for S&R": "ImageFromBatch",
1793 "cnr_id": "comfy-core",
1794 "ver": "0.3.76"
1795 },
1796 "widgets_values": [
1797 0,
1798 1
1799 ]
1800 },
1801 {
1802 "id": 305,
1803 "type": "ImageFromBatch",
1804 "pos": [
1805 7550,
1806 850
1807 ],
1808 "size": [
1809 280,
1810 100
1811 ],
1812 "flags": [],
1813 "order": 2,
1814 "mode": 0,
1815 "inputs": [
1816 {
1817 "localized_name": "image",
1818 "name": "image",
1819 "type": "IMAGE",
1820 "link": 127
1821 }
1822 ],
1823 "outputs": [
1824 {
1825 "localized_name": "IMAGE",
1826 "name": "IMAGE",
1827 "type": "IMAGE",
1828 "links": [
1829 283,
1830 321
1831 ]
1832 }
1833 ],
1834 "properties": {
1835 "Node name for S&R": "ImageFromBatch",
1836 "cnr_id": "comfy-core",
1837 "ver": "0.3.76"
1838 },
1839 "widgets_values": [
1840 1,
1841 1
1842 ]
1843 },
1844 {
1845 "id": 306,
1846 "type": "GeminiNode",
1847 "pos": [
1848 7850,
1849 -80
1850 ],
1851 "size": [
1852 340,
1853 670
1854 ],
1855 "flags": [],
1856 "order": 3,
1857 "mode": 0,
1858 "inputs": [
1859 {
1860 "localized_name": "images",
1861 "name": "images",
1862 "shape": 7,
1863 "type": "IMAGE",
1864 "link": 323
1865 },
1866 {
1867 "localized_name": "audio",
1868 "name": "audio",
1869 "shape": 7,
1870 "type": "AUDIO",
1871 "link": null
1872 },
1873 {
1874 "localized_name": "video",
1875 "name": "video",
1876 "shape": 7,
1877 "type": "VIDEO",
1878 "link": null
1879 },
1880 {
1881 "localized_name": "files",
1882 "name": "files",
1883 "shape": 7,
1884 "type": "GEMINI_INPUT_FILES",
1885 "link": null
1886 }
1887 ],
1888 "outputs": [
1889 {
1890 "localized_name": "STRING",
1891 "name": "STRING",
1892 "type": "STRING",
1893 "links": [
1894 203,
1895 284
1896 ]
1897 }
1898 ],
1899 "properties": {
1900 "Node name for S&R": "GeminiNode",
1901 "cnr_id": "comfy-core",
1902 "ver": "0.3.76"
1903 },
1904 "widgets_values": [
1905 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
1906 "gemini-3-1-flash-lite",
1907 1,
1908 "fixed",
1909 ""
1910 ],
1911 "color": "#432",
1912 "bgcolor": "#653"
1913 },
1914 {
1915 "id": 310,
1916 "type": "KlingFirstLastFrameNode",
1917 "pos": [
1918 7850,
1919 670
1920 ],
1921 "size": [
1922 340,
1923 260
1924 ],
1925 "flags": [],
1926 "order": 4,
1927 "mode": 0,
1928 "inputs": [
1929 {
1930 "localized_name": "first_frame",
1931 "name": "first_frame",
1932 "type": "IMAGE",
1933 "link": 282
1934 },
1935 {
1936 "localized_name": "end_frame",
1937 "name": "end_frame",
1938 "type": "IMAGE",
1939 "link": 283
1940 },
1941 {
1942 "localized_name": "prompt",
1943 "name": "prompt",
1944 "type": "STRING",
1945 "widget": {
1946 "name": "prompt"
1947 },
1948 "link": 284
1949 },
1950 {
1951 "localized_name": "duration",
1952 "name": "duration",
1953 "type": "INT",
1954 "widget": {
1955 "name": "duration"
1956 },
1957 "link": 285
1958 },
1959 {
1960 "localized_name": "resolution",
1961 "name": "model.resolution",
1962 "type": "COMBO",
1963 "widget": {
1964 "name": "model.resolution"
1965 },
1966 "link": 286
1967 },
1968 {
1969 "label": "video1_seed",
1970 "localized_name": "seed",
1971 "name": "seed",
1972 "type": "INT",
1973 "widget": {
1974 "name": "seed"
1975 },
1976 "link": null
1977 }
1978 ],
1979 "outputs": [
1980 {
1981 "localized_name": "VIDEO",
1982 "name": "VIDEO",
1983 "type": "VIDEO",
1984 "links": [
1985 293
1986 ]
1987 }
1988 ],
1989 "properties": {
1990 "Node name for S&R": "KlingFirstLastFrameNode"
1991 },
1992 "widgets_values": [
1993 "",
1994 3,
1995 false,
1996 "kling-v3",
1997 "1080p",
1998 1,
1999 "fixed"
2000 ],
2001 "color": "#432",
2002 "bgcolor": "#653"
2003 },
2004 {
2005 "id": 386,
2006 "type": "BatchImagesNode",
2007 "pos": [
2008 7630,
2009 500
2010 ],
2011 "size": [
2012 200,
2013 90
2014 ],
2015 "flags": [],
2016 "order": 5,
2017 "mode": 0,
2018 "inputs": [
2019 {
2020 "label": "image0",
2021 "localized_name": "images.image0",
2022 "name": "images.image0",
2023 "type": "IMAGE",
2024 "link": 322
2025 },
2026 {
2027 "label": "image1",
2028 "localized_name": "images.image1",
2029 "name": "images.image1",
2030 "type": "IMAGE",
2031 "link": 321
2032 },
2033 {
2034 "label": "image2",
2035 "localized_name": "images.image2",
2036 "name": "images.image2",
2037 "shape": 7,
2038 "type": "IMAGE",
2039 "link": null
2040 }
2041 ],
2042 "outputs": [
2043 {
2044 "localized_name": "IMAGE",
2045 "name": "IMAGE",
2046 "type": "IMAGE",
2047 "links": [
2048 323
2049 ]
2050 }
2051 ],
2052 "properties": {
2053 "Node name for S&R": "BatchImagesNode"
2054 },
2055 "widgets_values": []
2056 }
2057 ],
2058 "groups": [],
2059 "links": [
2060 {
2061 "id": 203,
2062 "origin_id": 306,
2063 "origin_slot": 0,
2064 "target_id": 302,
2065 "target_slot": 0,
2066 "type": "*"
2067 },
2068 {
2069 "id": 127,
2070 "origin_id": -10,
2071 "origin_slot": 0,
2072 "target_id": 305,
2073 "target_slot": 0,
2074 "type": "IMAGE"
2075 },
2076 {
2077 "id": 125,
2078 "origin_id": -10,
2079 "origin_slot": 0,
2080 "target_id": 304,
2081 "target_slot": 0,
2082 "type": "IMAGE"
2083 },
2084 {
2085 "id": 282,
2086 "origin_id": 304,
2087 "origin_slot": 0,
2088 "target_id": 310,
2089 "target_slot": 0,
2090 "type": "IMAGE"
2091 },
2092 {
2093 "id": 283,
2094 "origin_id": 305,
2095 "origin_slot": 0,
2096 "target_id": 310,
2097 "target_slot": 1,
2098 "type": "IMAGE"
2099 },
2100 {
2101 "id": 284,
2102 "origin_id": 306,
2103 "origin_slot": 0,
2104 "target_id": 310,
2105 "target_slot": 2,
2106 "type": "STRING"
2107 },
2108 {
2109 "id": 285,
2110 "origin_id": -10,
2111 "origin_slot": 1,
2112 "target_id": 310,
2113 "target_slot": 3,
2114 "type": "INT"
2115 },
2116 {
2117 "id": 286,
2118 "origin_id": -10,
2119 "origin_slot": 2,
2120 "target_id": 310,
2121 "target_slot": 4,
2122 "type": "COMBO"
2123 },
2124 {
2125 "id": 293,
2126 "origin_id": 310,
2127 "origin_slot": 0,
2128 "target_id": -20,
2129 "target_slot": 0,
2130 "type": "VIDEO"
2131 },
2132 {
2133 "id": 321,
2134 "origin_id": 305,
2135 "origin_slot": 0,
2136 "target_id": 386,
2137 "target_slot": 1,
2138 "type": "IMAGE"
2139 },
2140 {
2141 "id": 322,
2142 "origin_id": 304,
2143 "origin_slot": 0,
2144 "target_id": 386,
2145 "target_slot": 0,
2146 "type": "IMAGE"
2147 },
2148 {
2149 "id": 323,
2150 "origin_id": 386,
2151 "origin_slot": 0,
2152 "target_id": 306,
2153 "target_slot": 0,
2154 "type": "IMAGE"
2155 }
2156 ],
2157 "extra": {
2158 "workflowRendererVersion": "Vue-corrected"
2159 }
2160 },
2161 {
2162 "id": "02da9128-7c15-4c46-96bc-1dd68e5bc490",
2163 "version": 1,
2164 "state": {
2165 "lastGroupId": 0,
2166 "lastNodeId": 395,
2167 "lastLinkId": 357,
2168 "lastRerouteId": 0
2169 },
2170 "revision": 0,
2171 "config": [],
2172 "name": "Generate Video 2",
2173 "inputNode": {
2174 "id": -10,
2175 "bounding": [
2176 7370,
2177 380,
2178 120,
2179 90
2180 ]
2181 },
2182 "outputNode": {
2183 "id": -20,
2184 "bounding": [
2185 8580,
2186 370,
2187 100,
2188 50
2189 ]
2190 },
2191 "inputs": [
2192 {
2193 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
2194 "name": "image",
2195 "type": "IMAGE",
2196 "linkIds": [
2197 127,
2198 125
2199 ],
2200 "localized_name": "image",
2201 "pos": [
2202 8960.376953125,
2203 478
2204 ]
2205 },
2206 {
2207 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
2208 "name": "duration",
2209 "type": "INT",
2210 "linkIds": [
2211 285
2212 ],
2213 "pos": [
2214 8960.376953125,
2215 498
2216 ]
2217 },
2218 {
2219 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
2220 "name": "model.resolution",
2221 "type": "COMBO",
2222 "linkIds": [
2223 286
2224 ],
2225 "pos": [
2226 8960.376953125,
2227 518
2228 ]
2229 }
2230 ],
2231 "outputs": [
2232 {
2233 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
2234 "name": "VIDEO",
2235 "type": "VIDEO",
2236 "linkIds": [
2237 293
2238 ],
2239 "localized_name": "VIDEO",
2240 "pos": [
2241 10320,
2242 470
2243 ]
2244 }
2245 ],
2246 "widgets": [],
2247 "nodes": [
2248 {
2249 "id": 338,
2250 "type": "PreviewAny",
2251 "pos": [
2252 8220,
2253 -80
2254 ],
2255 "size": [
2256 280,
2257 440
2258 ],
2259 "flags": [],
2260 "order": 0,
2261 "mode": 0,
2262 "inputs": [
2263 {
2264 "localized_name": "source",
2265 "name": "source",
2266 "type": "*",
2267 "link": 203
2268 }
2269 ],
2270 "outputs": [],
2271 "title": "Preview Prompt",
2272 "properties": {
2273 "Node name for S&R": "PreviewAny",
2274 "cnr_id": "comfy-core",
2275 "ver": "0.3.76"
2276 },
2277 "widgets_values": [
2278 null,
2279 null,
2280 null
2281 ]
2282 },
2283 {
2284 "id": 340,
2285 "type": "ImageFromBatch",
2286 "pos": [
2287 7550,
2288 660
2289 ],
2290 "size": [
2291 280,
2292 100
2293 ],
2294 "flags": [],
2295 "order": 1,
2296 "mode": 0,
2297 "inputs": [
2298 {
2299 "localized_name": "image",
2300 "name": "image",
2301 "type": "IMAGE",
2302 "link": 125
2303 }
2304 ],
2305 "outputs": [
2306 {
2307 "localized_name": "IMAGE",
2308 "name": "IMAGE",
2309 "type": "IMAGE",
2310 "links": [
2311 282,
2312 324
2313 ]
2314 }
2315 ],
2316 "properties": {
2317 "Node name for S&R": "ImageFromBatch",
2318 "cnr_id": "comfy-core",
2319 "ver": "0.3.76"
2320 },
2321 "widgets_values": [
2322 1,
2323 1
2324 ]
2325 },
2326 {
2327 "id": 341,
2328 "type": "ImageFromBatch",
2329 "pos": [
2330 7550,
2331 850
2332 ],
2333 "size": [
2334 280,
2335 100
2336 ],
2337 "flags": [],
2338 "order": 2,
2339 "mode": 0,
2340 "inputs": [
2341 {
2342 "localized_name": "image",
2343 "name": "image",
2344 "type": "IMAGE",
2345 "link": 127
2346 }
2347 ],
2348 "outputs": [
2349 {
2350 "localized_name": "IMAGE",
2351 "name": "IMAGE",
2352 "type": "IMAGE",
2353 "links": [
2354 283,
2355 325
2356 ]
2357 }
2358 ],
2359 "properties": {
2360 "Node name for S&R": "ImageFromBatch",
2361 "cnr_id": "comfy-core",
2362 "ver": "0.3.76"
2363 },
2364 "widgets_values": [
2365 2,
2366 1
2367 ]
2368 },
2369 {
2370 "id": 342,
2371 "type": "GeminiNode",
2372 "pos": [
2373 7850,
2374 -80
2375 ],
2376 "size": [
2377 340,
2378 670
2379 ],
2380 "flags": [],
2381 "order": 3,
2382 "mode": 0,
2383 "inputs": [
2384 {
2385 "localized_name": "images",
2386 "name": "images",
2387 "shape": 7,
2388 "type": "IMAGE",
2389 "link": 326
2390 },
2391 {
2392 "localized_name": "audio",
2393 "name": "audio",
2394 "shape": 7,
2395 "type": "AUDIO",
2396 "link": null
2397 },
2398 {
2399 "localized_name": "video",
2400 "name": "video",
2401 "shape": 7,
2402 "type": "VIDEO",
2403 "link": null
2404 },
2405 {
2406 "localized_name": "files",
2407 "name": "files",
2408 "shape": 7,
2409 "type": "GEMINI_INPUT_FILES",
2410 "link": null
2411 }
2412 ],
2413 "outputs": [
2414 {
2415 "localized_name": "STRING",
2416 "name": "STRING",
2417 "type": "STRING",
2418 "links": [
2419 203,
2420 284
2421 ]
2422 }
2423 ],
2424 "properties": {
2425 "Node name for S&R": "GeminiNode",
2426 "cnr_id": "comfy-core",
2427 "ver": "0.3.76"
2428 },
2429 "widgets_values": [
2430 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
2431 "gemini-3-1-flash-lite",
2432 2,
2433 "fixed",
2434 ""
2435 ],
2436 "color": "#432",
2437 "bgcolor": "#653"
2438 },
2439 {
2440 "id": 343,
2441 "type": "KlingFirstLastFrameNode",
2442 "pos": [
2443 7850,
2444 670
2445 ],
2446 "size": [
2447 340,
2448 260
2449 ],
2450 "flags": [],
2451 "order": 4,
2452 "mode": 0,
2453 "inputs": [
2454 {
2455 "localized_name": "first_frame",
2456 "name": "first_frame",
2457 "type": "IMAGE",
2458 "link": 282
2459 },
2460 {
2461 "localized_name": "end_frame",
2462 "name": "end_frame",
2463 "type": "IMAGE",
2464 "link": 283
2465 },
2466 {
2467 "localized_name": "prompt",
2468 "name": "prompt",
2469 "type": "STRING",
2470 "widget": {
2471 "name": "prompt"
2472 },
2473 "link": 284
2474 },
2475 {
2476 "localized_name": "duration",
2477 "name": "duration",
2478 "type": "INT",
2479 "widget": {
2480 "name": "duration"
2481 },
2482 "link": 285
2483 },
2484 {
2485 "localized_name": "resolution",
2486 "name": "model.resolution",
2487 "type": "COMBO",
2488 "widget": {
2489 "name": "model.resolution"
2490 },
2491 "link": 286
2492 },
2493 {
2494 "label": "video2_seed",
2495 "localized_name": "seed",
2496 "name": "seed",
2497 "type": "INT",
2498 "widget": {
2499 "name": "seed"
2500 },
2501 "link": null
2502 }
2503 ],
2504 "outputs": [
2505 {
2506 "localized_name": "VIDEO",
2507 "name": "VIDEO",
2508 "type": "VIDEO",
2509 "links": [
2510 293
2511 ]
2512 }
2513 ],
2514 "properties": {
2515 "Node name for S&R": "KlingFirstLastFrameNode"
2516 },
2517 "widgets_values": [
2518 "",
2519 3,
2520 false,
2521 "kling-v3",
2522 "1080p",
2523 2,
2524 "fixed"
2525 ],
2526 "color": "#432",
2527 "bgcolor": "#653"
2528 },
2529 {
2530 "id": 387,
2531 "type": "BatchImagesNode",
2532 "pos": [
2533 7620,
2534 480
2535 ],
2536 "size": [
2537 200,
2538 90
2539 ],
2540 "flags": {
2541 "collapsed": true
2542 },
2543 "order": 5,
2544 "mode": 0,
2545 "inputs": [
2546 {
2547 "label": "image0",
2548 "localized_name": "images.image0",
2549 "name": "images.image0",
2550 "type": "IMAGE",
2551 "link": 324
2552 },
2553 {
2554 "label": "image1",
2555 "localized_name": "images.image1",
2556 "name": "images.image1",
2557 "type": "IMAGE",
2558 "link": 325
2559 },
2560 {
2561 "label": "image2",
2562 "localized_name": "images.image2",
2563 "name": "images.image2",
2564 "shape": 7,
2565 "type": "IMAGE",
2566 "link": null
2567 }
2568 ],
2569 "outputs": [
2570 {
2571 "localized_name": "IMAGE",
2572 "name": "IMAGE",
2573 "type": "IMAGE",
2574 "links": [
2575 326
2576 ]
2577 }
2578 ],
2579 "properties": {
2580 "Node name for S&R": "BatchImagesNode"
2581 },
2582 "widgets_values": []
2583 }
2584 ],
2585 "groups": [],
2586 "links": [
2587 {
2588 "id": 203,
2589 "origin_id": 342,
2590 "origin_slot": 0,
2591 "target_id": 338,
2592 "target_slot": 0,
2593 "type": "*"
2594 },
2595 {
2596 "id": 127,
2597 "origin_id": -10,
2598 "origin_slot": 0,
2599 "target_id": 341,
2600 "target_slot": 0,
2601 "type": "IMAGE"
2602 },
2603 {
2604 "id": 125,
2605 "origin_id": -10,
2606 "origin_slot": 0,
2607 "target_id": 340,
2608 "target_slot": 0,
2609 "type": "IMAGE"
2610 },
2611 {
2612 "id": 282,
2613 "origin_id": 340,
2614 "origin_slot": 0,
2615 "target_id": 343,
2616 "target_slot": 0,
2617 "type": "IMAGE"
2618 },
2619 {
2620 "id": 283,
2621 "origin_id": 341,
2622 "origin_slot": 0,
2623 "target_id": 343,
2624 "target_slot": 1,
2625 "type": "IMAGE"
2626 },
2627 {
2628 "id": 284,
2629 "origin_id": 342,
2630 "origin_slot": 0,
2631 "target_id": 343,
2632 "target_slot": 2,
2633 "type": "STRING"
2634 },
2635 {
2636 "id": 285,
2637 "origin_id": -10,
2638 "origin_slot": 1,
2639 "target_id": 343,
2640 "target_slot": 3,
2641 "type": "INT"
2642 },
2643 {
2644 "id": 286,
2645 "origin_id": -10,
2646 "origin_slot": 2,
2647 "target_id": 343,
2648 "target_slot": 4,
2649 "type": "COMBO"
2650 },
2651 {
2652 "id": 293,
2653 "origin_id": 343,
2654 "origin_slot": 0,
2655 "target_id": -20,
2656 "target_slot": 0,
2657 "type": "VIDEO"
2658 },
2659 {
2660 "id": 324,
2661 "origin_id": 340,
2662 "origin_slot": 0,
2663 "target_id": 387,
2664 "target_slot": 0,
2665 "type": "IMAGE"
2666 },
2667 {
2668 "id": 325,
2669 "origin_id": 341,
2670 "origin_slot": 0,
2671 "target_id": 387,
2672 "target_slot": 1,
2673 "type": "IMAGE"
2674 },
2675 {
2676 "id": 326,
2677 "origin_id": 387,
2678 "origin_slot": 0,
2679 "target_id": 342,
2680 "target_slot": 0,
2681 "type": "IMAGE"
2682 }
2683 ],
2684 "extra": {
2685 "workflowRendererVersion": "Vue-corrected"
2686 }
2687 },
2688 {
2689 "id": "3426003b-7b3a-4d37-8a2f-e0f8adb05712",
2690 "version": 1,
2691 "state": {
2692 "lastGroupId": 0,
2693 "lastNodeId": 395,
2694 "lastLinkId": 357,
2695 "lastRerouteId": 0
2696 },
2697 "revision": 0,
2698 "config": [],
2699 "name": "Generate Video 3",
2700 "inputNode": {
2701 "id": -10,
2702 "bounding": [
2703 7370,
2704 380,
2705 120,
2706 90
2707 ]
2708 },
2709 "outputNode": {
2710 "id": -20,
2711 "bounding": [
2712 8580,
2713 370,
2714 100,
2715 50
2716 ]
2717 },
2718 "inputs": [
2719 {
2720 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
2721 "name": "image",
2722 "type": "IMAGE",
2723 "linkIds": [
2724 127,
2725 125
2726 ],
2727 "localized_name": "image",
2728 "pos": [
2729 8960.376953125,
2730 478
2731 ]
2732 },
2733 {
2734 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
2735 "name": "duration",
2736 "type": "INT",
2737 "linkIds": [
2738 285
2739 ],
2740 "pos": [
2741 8960.376953125,
2742 498
2743 ]
2744 },
2745 {
2746 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
2747 "name": "model.resolution",
2748 "type": "COMBO",
2749 "linkIds": [
2750 286
2751 ],
2752 "pos": [
2753 8960.376953125,
2754 518
2755 ]
2756 }
2757 ],
2758 "outputs": [
2759 {
2760 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
2761 "name": "VIDEO",
2762 "type": "VIDEO",
2763 "linkIds": [
2764 293
2765 ],
2766 "localized_name": "VIDEO",
2767 "pos": [
2768 10320,
2769 470
2770 ]
2771 }
2772 ],
2773 "widgets": [],
2774 "nodes": [
2775 {
2776 "id": 346,
2777 "type": "PreviewAny",
2778 "pos": [
2779 8220,
2780 -80
2781 ],
2782 "size": [
2783 280,
2784 440
2785 ],
2786 "flags": [],
2787 "order": 0,
2788 "mode": 0,
2789 "inputs": [
2790 {
2791 "localized_name": "source",
2792 "name": "source",
2793 "type": "*",
2794 "link": 203
2795 }
2796 ],
2797 "outputs": [],
2798 "title": "Preview Prompt",
2799 "properties": {
2800 "Node name for S&R": "PreviewAny",
2801 "cnr_id": "comfy-core",
2802 "ver": "0.3.76"
2803 },
2804 "widgets_values": [
2805 null,
2806 null,
2807 null
2808 ]
2809 },
2810 {
2811 "id": 348,
2812 "type": "ImageFromBatch",
2813 "pos": [
2814 7550,
2815 660
2816 ],
2817 "size": [
2818 280,
2819 100
2820 ],
2821 "flags": [],
2822 "order": 1,
2823 "mode": 0,
2824 "inputs": [
2825 {
2826 "localized_name": "image",
2827 "name": "image",
2828 "type": "IMAGE",
2829 "link": 125
2830 }
2831 ],
2832 "outputs": [
2833 {
2834 "localized_name": "IMAGE",
2835 "name": "IMAGE",
2836 "type": "IMAGE",
2837 "links": [
2838 282,
2839 327
2840 ]
2841 }
2842 ],
2843 "properties": {
2844 "Node name for S&R": "ImageFromBatch",
2845 "cnr_id": "comfy-core",
2846 "ver": "0.3.76"
2847 },
2848 "widgets_values": [
2849 2,
2850 1
2851 ]
2852 },
2853 {
2854 "id": 349,
2855 "type": "ImageFromBatch",
2856 "pos": [
2857 7550,
2858 850
2859 ],
2860 "size": [
2861 280,
2862 100
2863 ],
2864 "flags": [],
2865 "order": 2,
2866 "mode": 0,
2867 "inputs": [
2868 {
2869 "localized_name": "image",
2870 "name": "image",
2871 "type": "IMAGE",
2872 "link": 127
2873 }
2874 ],
2875 "outputs": [
2876 {
2877 "localized_name": "IMAGE",
2878 "name": "IMAGE",
2879 "type": "IMAGE",
2880 "links": [
2881 283,
2882 328
2883 ]
2884 }
2885 ],
2886 "properties": {
2887 "Node name for S&R": "ImageFromBatch",
2888 "cnr_id": "comfy-core",
2889 "ver": "0.3.76"
2890 },
2891 "widgets_values": [
2892 3,
2893 1
2894 ]
2895 },
2896 {
2897 "id": 350,
2898 "type": "GeminiNode",
2899 "pos": [
2900 7850,
2901 -80
2902 ],
2903 "size": [
2904 340,
2905 670
2906 ],
2907 "flags": [],
2908 "order": 3,
2909 "mode": 0,
2910 "inputs": [
2911 {
2912 "localized_name": "images",
2913 "name": "images",
2914 "shape": 7,
2915 "type": "IMAGE",
2916 "link": 329
2917 },
2918 {
2919 "localized_name": "audio",
2920 "name": "audio",
2921 "shape": 7,
2922 "type": "AUDIO",
2923 "link": null
2924 },
2925 {
2926 "localized_name": "video",
2927 "name": "video",
2928 "shape": 7,
2929 "type": "VIDEO",
2930 "link": null
2931 },
2932 {
2933 "localized_name": "files",
2934 "name": "files",
2935 "shape": 7,
2936 "type": "GEMINI_INPUT_FILES",
2937 "link": null
2938 }
2939 ],
2940 "outputs": [
2941 {
2942 "localized_name": "STRING",
2943 "name": "STRING",
2944 "type": "STRING",
2945 "links": [
2946 203,
2947 284
2948 ]
2949 }
2950 ],
2951 "properties": {
2952 "Node name for S&R": "GeminiNode",
2953 "cnr_id": "comfy-core",
2954 "ver": "0.3.76"
2955 },
2956 "widgets_values": [
2957 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
2958 "gemini-3-1-flash-lite",
2959 3,
2960 "fixed",
2961 ""
2962 ],
2963 "color": "#432",
2964 "bgcolor": "#653"
2965 },
2966 {
2967 "id": 351,
2968 "type": "KlingFirstLastFrameNode",
2969 "pos": [
2970 7850,
2971 670
2972 ],
2973 "size": [
2974 340,
2975 260
2976 ],
2977 "flags": [],
2978 "order": 4,
2979 "mode": 0,
2980 "inputs": [
2981 {
2982 "localized_name": "first_frame",
2983 "name": "first_frame",
2984 "type": "IMAGE",
2985 "link": 282
2986 },
2987 {
2988 "localized_name": "end_frame",
2989 "name": "end_frame",
2990 "type": "IMAGE",
2991 "link": 283
2992 },
2993 {
2994 "localized_name": "prompt",
2995 "name": "prompt",
2996 "type": "STRING",
2997 "widget": {
2998 "name": "prompt"
2999 },
3000 "link": 284
3001 },
3002 {
3003 "localized_name": "duration",
3004 "name": "duration",
3005 "type": "INT",
3006 "widget": {
3007 "name": "duration"
3008 },
3009 "link": 285
3010 },
3011 {
3012 "localized_name": "resolution",
3013 "name": "model.resolution",
3014 "type": "COMBO",
3015 "widget": {
3016 "name": "model.resolution"
3017 },
3018 "link": 286
3019 },
3020 {
3021 "label": "video3_seed",
3022 "localized_name": "seed",
3023 "name": "seed",
3024 "type": "INT",
3025 "widget": {
3026 "name": "seed"
3027 },
3028 "link": null
3029 }
3030 ],
3031 "outputs": [
3032 {
3033 "localized_name": "VIDEO",
3034 "name": "VIDEO",
3035 "type": "VIDEO",
3036 "links": [
3037 293
3038 ]
3039 }
3040 ],
3041 "properties": {
3042 "Node name for S&R": "KlingFirstLastFrameNode"
3043 },
3044 "widgets_values": [
3045 "",
3046 3,
3047 false,
3048 "kling-v3",
3049 "1080p",
3050 3,
3051 "fixed"
3052 ],
3053 "color": "#432",
3054 "bgcolor": "#653"
3055 },
3056 {
3057 "id": 388,
3058 "type": "BatchImagesNode",
3059 "pos": [
3060 7630,
3061 500
3062 ],
3063 "size": [
3064 200,
3065 90
3066 ],
3067 "flags": {
3068 "collapsed": true
3069 },
3070 "order": 5,
3071 "mode": 0,
3072 "inputs": [
3073 {
3074 "label": "image0",
3075 "localized_name": "images.image0",
3076 "name": "images.image0",
3077 "type": "IMAGE",
3078 "link": 327
3079 },
3080 {
3081 "label": "image1",
3082 "localized_name": "images.image1",
3083 "name": "images.image1",
3084 "type": "IMAGE",
3085 "link": 328
3086 },
3087 {
3088 "label": "image2",
3089 "localized_name": "images.image2",
3090 "name": "images.image2",
3091 "shape": 7,
3092 "type": "IMAGE",
3093 "link": null
3094 }
3095 ],
3096 "outputs": [
3097 {
3098 "localized_name": "IMAGE",
3099 "name": "IMAGE",
3100 "type": "IMAGE",
3101 "links": [
3102 329
3103 ]
3104 }
3105 ],
3106 "properties": {
3107 "Node name for S&R": "BatchImagesNode"
3108 },
3109 "widgets_values": []
3110 }
3111 ],
3112 "groups": [],
3113 "links": [
3114 {
3115 "id": 203,
3116 "origin_id": 350,
3117 "origin_slot": 0,
3118 "target_id": 346,
3119 "target_slot": 0,
3120 "type": "*"
3121 },
3122 {
3123 "id": 127,
3124 "origin_id": -10,
3125 "origin_slot": 0,
3126 "target_id": 349,
3127 "target_slot": 0,
3128 "type": "IMAGE"
3129 },
3130 {
3131 "id": 125,
3132 "origin_id": -10,
3133 "origin_slot": 0,
3134 "target_id": 348,
3135 "target_slot": 0,
3136 "type": "IMAGE"
3137 },
3138 {
3139 "id": 282,
3140 "origin_id": 348,
3141 "origin_slot": 0,
3142 "target_id": 351,
3143 "target_slot": 0,
3144 "type": "IMAGE"
3145 },
3146 {
3147 "id": 283,
3148 "origin_id": 349,
3149 "origin_slot": 0,
3150 "target_id": 351,
3151 "target_slot": 1,
3152 "type": "IMAGE"
3153 },
3154 {
3155 "id": 284,
3156 "origin_id": 350,
3157 "origin_slot": 0,
3158 "target_id": 351,
3159 "target_slot": 2,
3160 "type": "STRING"
3161 },
3162 {
3163 "id": 285,
3164 "origin_id": -10,
3165 "origin_slot": 1,
3166 "target_id": 351,
3167 "target_slot": 3,
3168 "type": "INT"
3169 },
3170 {
3171 "id": 286,
3172 "origin_id": -10,
3173 "origin_slot": 2,
3174 "target_id": 351,
3175 "target_slot": 4,
3176 "type": "COMBO"
3177 },
3178 {
3179 "id": 293,
3180 "origin_id": 351,
3181 "origin_slot": 0,
3182 "target_id": -20,
3183 "target_slot": 0,
3184 "type": "VIDEO"
3185 },
3186 {
3187 "id": 327,
3188 "origin_id": 348,
3189 "origin_slot": 0,
3190 "target_id": 388,
3191 "target_slot": 0,
3192 "type": "IMAGE"
3193 },
3194 {
3195 "id": 328,
3196 "origin_id": 349,
3197 "origin_slot": 0,
3198 "target_id": 388,
3199 "target_slot": 1,
3200 "type": "IMAGE"
3201 },
3202 {
3203 "id": 329,
3204 "origin_id": 388,
3205 "origin_slot": 0,
3206 "target_id": 350,
3207 "target_slot": 0,
3208 "type": "IMAGE"
3209 }
3210 ],
3211 "extra": {
3212 "workflowRendererVersion": "Vue-corrected"
3213 }
3214 },
3215 {
3216 "id": "c61d617f-c72d-4f4c-8659-bd6f884d1a1e",
3217 "version": 1,
3218 "state": {
3219 "lastGroupId": 0,
3220 "lastNodeId": 395,
3221 "lastLinkId": 357,
3222 "lastRerouteId": 0
3223 },
3224 "revision": 0,
3225 "config": [],
3226 "name": "Generate Video 4",
3227 "inputNode": {
3228 "id": -10,
3229 "bounding": [
3230 7370,
3231 380,
3232 120,
3233 90
3234 ]
3235 },
3236 "outputNode": {
3237 "id": -20,
3238 "bounding": [
3239 8580,
3240 370,
3241 100,
3242 50
3243 ]
3244 },
3245 "inputs": [
3246 {
3247 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
3248 "name": "image",
3249 "type": "IMAGE",
3250 "linkIds": [
3251 127,
3252 125
3253 ],
3254 "localized_name": "image",
3255 "pos": [
3256 8960.376953125,
3257 478
3258 ]
3259 },
3260 {
3261 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
3262 "name": "duration",
3263 "type": "INT",
3264 "linkIds": [
3265 285
3266 ],
3267 "pos": [
3268 8960.376953125,
3269 498
3270 ]
3271 },
3272 {
3273 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
3274 "name": "model.resolution",
3275 "type": "COMBO",
3276 "linkIds": [
3277 286
3278 ],
3279 "pos": [
3280 8960.376953125,
3281 518
3282 ]
3283 }
3284 ],
3285 "outputs": [
3286 {
3287 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
3288 "name": "VIDEO",
3289 "type": "VIDEO",
3290 "linkIds": [
3291 293
3292 ],
3293 "localized_name": "VIDEO",
3294 "pos": [
3295 10320,
3296 470
3297 ]
3298 }
3299 ],
3300 "widgets": [],
3301 "nodes": [
3302 {
3303 "id": 354,
3304 "type": "PreviewAny",
3305 "pos": [
3306 8220,
3307 -80
3308 ],
3309 "size": [
3310 280,
3311 440
3312 ],
3313 "flags": [],
3314 "order": 0,
3315 "mode": 0,
3316 "inputs": [
3317 {
3318 "localized_name": "source",
3319 "name": "source",
3320 "type": "*",
3321 "link": 203
3322 }
3323 ],
3324 "outputs": [],
3325 "title": "Preview Prompt",
3326 "properties": {
3327 "Node name for S&R": "PreviewAny",
3328 "cnr_id": "comfy-core",
3329 "ver": "0.3.76"
3330 },
3331 "widgets_values": [
3332 null,
3333 null,
3334 null
3335 ]
3336 },
3337 {
3338 "id": 356,
3339 "type": "ImageFromBatch",
3340 "pos": [
3341 7550,
3342 660
3343 ],
3344 "size": [
3345 280,
3346 100
3347 ],
3348 "flags": [],
3349 "order": 1,
3350 "mode": 0,
3351 "inputs": [
3352 {
3353 "localized_name": "image",
3354 "name": "image",
3355 "type": "IMAGE",
3356 "link": 125
3357 }
3358 ],
3359 "outputs": [
3360 {
3361 "localized_name": "IMAGE",
3362 "name": "IMAGE",
3363 "type": "IMAGE",
3364 "links": [
3365 282,
3366 330
3367 ]
3368 }
3369 ],
3370 "properties": {
3371 "Node name for S&R": "ImageFromBatch",
3372 "cnr_id": "comfy-core",
3373 "ver": "0.3.76"
3374 },
3375 "widgets_values": [
3376 3,
3377 1
3378 ]
3379 },
3380 {
3381 "id": 357,
3382 "type": "ImageFromBatch",
3383 "pos": [
3384 7550,
3385 850
3386 ],
3387 "size": [
3388 280,
3389 100
3390 ],
3391 "flags": [],
3392 "order": 2,
3393 "mode": 0,
3394 "inputs": [
3395 {
3396 "localized_name": "image",
3397 "name": "image",
3398 "type": "IMAGE",
3399 "link": 127
3400 }
3401 ],
3402 "outputs": [
3403 {
3404 "localized_name": "IMAGE",
3405 "name": "IMAGE",
3406 "type": "IMAGE",
3407 "links": [
3408 283,
3409 331
3410 ]
3411 }
3412 ],
3413 "properties": {
3414 "Node name for S&R": "ImageFromBatch",
3415 "cnr_id": "comfy-core",
3416 "ver": "0.3.76"
3417 },
3418 "widgets_values": [
3419 4,
3420 1
3421 ]
3422 },
3423 {
3424 "id": 358,
3425 "type": "GeminiNode",
3426 "pos": [
3427 7850,
3428 -80
3429 ],
3430 "size": [
3431 340,
3432 670
3433 ],
3434 "flags": [],
3435 "order": 3,
3436 "mode": 0,
3437 "inputs": [
3438 {
3439 "localized_name": "images",
3440 "name": "images",
3441 "shape": 7,
3442 "type": "IMAGE",
3443 "link": 332
3444 },
3445 {
3446 "localized_name": "audio",
3447 "name": "audio",
3448 "shape": 7,
3449 "type": "AUDIO",
3450 "link": null
3451 },
3452 {
3453 "localized_name": "video",
3454 "name": "video",
3455 "shape": 7,
3456 "type": "VIDEO",
3457 "link": null
3458 },
3459 {
3460 "localized_name": "files",
3461 "name": "files",
3462 "shape": 7,
3463 "type": "GEMINI_INPUT_FILES",
3464 "link": null
3465 }
3466 ],
3467 "outputs": [
3468 {
3469 "localized_name": "STRING",
3470 "name": "STRING",
3471 "type": "STRING",
3472 "links": [
3473 203,
3474 284
3475 ]
3476 }
3477 ],
3478 "properties": {
3479 "Node name for S&R": "GeminiNode",
3480 "cnr_id": "comfy-core",
3481 "ver": "0.3.76"
3482 },
3483 "widgets_values": [
3484 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
3485 "gemini-3-1-flash-lite",
3486 4,
3487 "fixed",
3488 ""
3489 ],
3490 "color": "#432",
3491 "bgcolor": "#653"
3492 },
3493 {
3494 "id": 359,
3495 "type": "KlingFirstLastFrameNode",
3496 "pos": [
3497 7850,
3498 670
3499 ],
3500 "size": [
3501 340,
3502 260
3503 ],
3504 "flags": [],
3505 "order": 4,
3506 "mode": 0,
3507 "inputs": [
3508 {
3509 "localized_name": "first_frame",
3510 "name": "first_frame",
3511 "type": "IMAGE",
3512 "link": 282
3513 },
3514 {
3515 "localized_name": "end_frame",
3516 "name": "end_frame",
3517 "type": "IMAGE",
3518 "link": 283
3519 },
3520 {
3521 "localized_name": "prompt",
3522 "name": "prompt",
3523 "type": "STRING",
3524 "widget": {
3525 "name": "prompt"
3526 },
3527 "link": 284
3528 },
3529 {
3530 "localized_name": "duration",
3531 "name": "duration",
3532 "type": "INT",
3533 "widget": {
3534 "name": "duration"
3535 },
3536 "link": 285
3537 },
3538 {
3539 "localized_name": "resolution",
3540 "name": "model.resolution",
3541 "type": "COMBO",
3542 "widget": {
3543 "name": "model.resolution"
3544 },
3545 "link": 286
3546 },
3547 {
3548 "label": "video4_seed",
3549 "localized_name": "seed",
3550 "name": "seed",
3551 "type": "INT",
3552 "widget": {
3553 "name": "seed"
3554 },
3555 "link": null
3556 }
3557 ],
3558 "outputs": [
3559 {
3560 "localized_name": "VIDEO",
3561 "name": "VIDEO",
3562 "type": "VIDEO",
3563 "links": [
3564 293
3565 ]
3566 }
3567 ],
3568 "properties": {
3569 "Node name for S&R": "KlingFirstLastFrameNode"
3570 },
3571 "widgets_values": [
3572 "",
3573 3,
3574 false,
3575 "kling-v3",
3576 "1080p",
3577 4,
3578 "fixed"
3579 ],
3580 "color": "#432",
3581 "bgcolor": "#653"
3582 },
3583 {
3584 "id": 389,
3585 "type": "BatchImagesNode",
3586 "pos": [
3587 7630,
3588 430
3589 ],
3590 "size": [
3591 200,
3592 90
3593 ],
3594 "flags": {
3595 "collapsed": true
3596 },
3597 "order": 5,
3598 "mode": 0,
3599 "inputs": [
3600 {
3601 "label": "image0",
3602 "localized_name": "images.image0",
3603 "name": "images.image0",
3604 "type": "IMAGE",
3605 "link": 330
3606 },
3607 {
3608 "label": "image1",
3609 "localized_name": "images.image1",
3610 "name": "images.image1",
3611 "type": "IMAGE",
3612 "link": 331
3613 },
3614 {
3615 "label": "image2",
3616 "localized_name": "images.image2",
3617 "name": "images.image2",
3618 "shape": 7,
3619 "type": "IMAGE",
3620 "link": null
3621 }
3622 ],
3623 "outputs": [
3624 {
3625 "localized_name": "IMAGE",
3626 "name": "IMAGE",
3627 "type": "IMAGE",
3628 "links": [
3629 332
3630 ]
3631 }
3632 ],
3633 "properties": {
3634 "Node name for S&R": "BatchImagesNode"
3635 },
3636 "widgets_values": []
3637 }
3638 ],
3639 "groups": [],
3640 "links": [
3641 {
3642 "id": 203,
3643 "origin_id": 358,
3644 "origin_slot": 0,
3645 "target_id": 354,
3646 "target_slot": 0,
3647 "type": "*"
3648 },
3649 {
3650 "id": 127,
3651 "origin_id": -10,
3652 "origin_slot": 0,
3653 "target_id": 357,
3654 "target_slot": 0,
3655 "type": "IMAGE"
3656 },
3657 {
3658 "id": 125,
3659 "origin_id": -10,
3660 "origin_slot": 0,
3661 "target_id": 356,
3662 "target_slot": 0,
3663 "type": "IMAGE"
3664 },
3665 {
3666 "id": 282,
3667 "origin_id": 356,
3668 "origin_slot": 0,
3669 "target_id": 359,
3670 "target_slot": 0,
3671 "type": "IMAGE"
3672 },
3673 {
3674 "id": 283,
3675 "origin_id": 357,
3676 "origin_slot": 0,
3677 "target_id": 359,
3678 "target_slot": 1,
3679 "type": "IMAGE"
3680 },
3681 {
3682 "id": 284,
3683 "origin_id": 358,
3684 "origin_slot": 0,
3685 "target_id": 359,
3686 "target_slot": 2,
3687 "type": "STRING"
3688 },
3689 {
3690 "id": 285,
3691 "origin_id": -10,
3692 "origin_slot": 1,
3693 "target_id": 359,
3694 "target_slot": 3,
3695 "type": "INT"
3696 },
3697 {
3698 "id": 286,
3699 "origin_id": -10,
3700 "origin_slot": 2,
3701 "target_id": 359,
3702 "target_slot": 4,
3703 "type": "COMBO"
3704 },
3705 {
3706 "id": 293,
3707 "origin_id": 359,
3708 "origin_slot": 0,
3709 "target_id": -20,
3710 "target_slot": 0,
3711 "type": "VIDEO"
3712 },
3713 {
3714 "id": 330,
3715 "origin_id": 356,
3716 "origin_slot": 0,
3717 "target_id": 389,
3718 "target_slot": 0,
3719 "type": "IMAGE"
3720 },
3721 {
3722 "id": 331,
3723 "origin_id": 357,
3724 "origin_slot": 0,
3725 "target_id": 389,
3726 "target_slot": 1,
3727 "type": "IMAGE"
3728 },
3729 {
3730 "id": 332,
3731 "origin_id": 389,
3732 "origin_slot": 0,
3733 "target_id": 358,
3734 "target_slot": 0,
3735 "type": "IMAGE"
3736 }
3737 ],
3738 "extra": {
3739 "workflowRendererVersion": "Vue-corrected"
3740 }
3741 },
3742 {
3743 "id": "4b301c11-bc16-4096-9441-e0648a04aa4d",
3744 "version": 1,
3745 "state": {
3746 "lastGroupId": 0,
3747 "lastNodeId": 395,
3748 "lastLinkId": 357,
3749 "lastRerouteId": 0
3750 },
3751 "revision": 0,
3752 "config": [],
3753 "name": "Generate Video 5",
3754 "inputNode": {
3755 "id": -10,
3756 "bounding": [
3757 7370,
3758 380,
3759 120,
3760 90
3761 ]
3762 },
3763 "outputNode": {
3764 "id": -20,
3765 "bounding": [
3766 8580,
3767 370,
3768 100,
3769 50
3770 ]
3771 },
3772 "inputs": [
3773 {
3774 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
3775 "name": "image",
3776 "type": "IMAGE",
3777 "linkIds": [
3778 127,
3779 125
3780 ],
3781 "localized_name": "image",
3782 "pos": [
3783 8960.376953125,
3784 478
3785 ]
3786 },
3787 {
3788 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
3789 "name": "duration",
3790 "type": "INT",
3791 "linkIds": [
3792 285
3793 ],
3794 "pos": [
3795 8960.376953125,
3796 498
3797 ]
3798 },
3799 {
3800 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
3801 "name": "model.resolution",
3802 "type": "COMBO",
3803 "linkIds": [
3804 286
3805 ],
3806 "pos": [
3807 8960.376953125,
3808 518
3809 ]
3810 }
3811 ],
3812 "outputs": [
3813 {
3814 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
3815 "name": "VIDEO",
3816 "type": "VIDEO",
3817 "linkIds": [
3818 293
3819 ],
3820 "localized_name": "VIDEO",
3821 "pos": [
3822 10320,
3823 470
3824 ]
3825 }
3826 ],
3827 "widgets": [],
3828 "nodes": [
3829 {
3830 "id": 362,
3831 "type": "PreviewAny",
3832 "pos": [
3833 8220,
3834 -80
3835 ],
3836 "size": [
3837 280,
3838 440
3839 ],
3840 "flags": [],
3841 "order": 0,
3842 "mode": 0,
3843 "inputs": [
3844 {
3845 "localized_name": "source",
3846 "name": "source",
3847 "type": "*",
3848 "link": 203
3849 }
3850 ],
3851 "outputs": [],
3852 "title": "Preview Prompt",
3853 "properties": {
3854 "Node name for S&R": "PreviewAny",
3855 "cnr_id": "comfy-core",
3856 "ver": "0.3.76"
3857 },
3858 "widgets_values": [
3859 null,
3860 null,
3861 null
3862 ]
3863 },
3864 {
3865 "id": 364,
3866 "type": "ImageFromBatch",
3867 "pos": [
3868 7550,
3869 660
3870 ],
3871 "size": [
3872 280,
3873 100
3874 ],
3875 "flags": [],
3876 "order": 1,
3877 "mode": 0,
3878 "inputs": [
3879 {
3880 "localized_name": "image",
3881 "name": "image",
3882 "type": "IMAGE",
3883 "link": 125
3884 }
3885 ],
3886 "outputs": [
3887 {
3888 "localized_name": "IMAGE",
3889 "name": "IMAGE",
3890 "type": "IMAGE",
3891 "links": [
3892 282,
3893 334
3894 ]
3895 }
3896 ],
3897 "properties": {
3898 "Node name for S&R": "ImageFromBatch",
3899 "cnr_id": "comfy-core",
3900 "ver": "0.3.76"
3901 },
3902 "widgets_values": [
3903 4,
3904 1
3905 ]
3906 },
3907 {
3908 "id": 365,
3909 "type": "ImageFromBatch",
3910 "pos": [
3911 7550,
3912 850
3913 ],
3914 "size": [
3915 280,
3916 100
3917 ],
3918 "flags": [],
3919 "order": 2,
3920 "mode": 0,
3921 "inputs": [
3922 {
3923 "localized_name": "image",
3924 "name": "image",
3925 "type": "IMAGE",
3926 "link": 127
3927 }
3928 ],
3929 "outputs": [
3930 {
3931 "localized_name": "IMAGE",
3932 "name": "IMAGE",
3933 "type": "IMAGE",
3934 "links": [
3935 283,
3936 335
3937 ]
3938 }
3939 ],
3940 "properties": {
3941 "Node name for S&R": "ImageFromBatch",
3942 "cnr_id": "comfy-core",
3943 "ver": "0.3.76"
3944 },
3945 "widgets_values": [
3946 5,
3947 1
3948 ]
3949 },
3950 {
3951 "id": 366,
3952 "type": "GeminiNode",
3953 "pos": [
3954 7850,
3955 -80
3956 ],
3957 "size": [
3958 340,
3959 670
3960 ],
3961 "flags": [],
3962 "order": 3,
3963 "mode": 0,
3964 "inputs": [
3965 {
3966 "localized_name": "images",
3967 "name": "images",
3968 "shape": 7,
3969 "type": "IMAGE",
3970 "link": 333
3971 },
3972 {
3973 "localized_name": "audio",
3974 "name": "audio",
3975 "shape": 7,
3976 "type": "AUDIO",
3977 "link": null
3978 },
3979 {
3980 "localized_name": "video",
3981 "name": "video",
3982 "shape": 7,
3983 "type": "VIDEO",
3984 "link": null
3985 },
3986 {
3987 "localized_name": "files",
3988 "name": "files",
3989 "shape": 7,
3990 "type": "GEMINI_INPUT_FILES",
3991 "link": null
3992 }
3993 ],
3994 "outputs": [
3995 {
3996 "localized_name": "STRING",
3997 "name": "STRING",
3998 "type": "STRING",
3999 "links": [
4000 203,
4001 284
4002 ]
4003 }
4004 ],
4005 "properties": {
4006 "Node name for S&R": "GeminiNode",
4007 "cnr_id": "comfy-core",
4008 "ver": "0.3.76"
4009 },
4010 "widgets_values": [
4011 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
4012 "gemini-3-1-flash-lite",
4013 5,
4014 "fixed",
4015 ""
4016 ],
4017 "color": "#432",
4018 "bgcolor": "#653"
4019 },
4020 {
4021 "id": 367,
4022 "type": "KlingFirstLastFrameNode",
4023 "pos": [
4024 7850,
4025 670
4026 ],
4027 "size": [
4028 340,
4029 260
4030 ],
4031 "flags": [],
4032 "order": 4,
4033 "mode": 0,
4034 "inputs": [
4035 {
4036 "localized_name": "first_frame",
4037 "name": "first_frame",
4038 "type": "IMAGE",
4039 "link": 282
4040 },
4041 {
4042 "localized_name": "end_frame",
4043 "name": "end_frame",
4044 "type": "IMAGE",
4045 "link": 283
4046 },
4047 {
4048 "localized_name": "prompt",
4049 "name": "prompt",
4050 "type": "STRING",
4051 "widget": {
4052 "name": "prompt"
4053 },
4054 "link": 284
4055 },
4056 {
4057 "localized_name": "duration",
4058 "name": "duration",
4059 "type": "INT",
4060 "widget": {
4061 "name": "duration"
4062 },
4063 "link": 285
4064 },
4065 {
4066 "localized_name": "resolution",
4067 "name": "model.resolution",
4068 "type": "COMBO",
4069 "widget": {
4070 "name": "model.resolution"
4071 },
4072 "link": 286
4073 },
4074 {
4075 "label": "video5_seed",
4076 "localized_name": "seed",
4077 "name": "seed",
4078 "type": "INT",
4079 "widget": {
4080 "name": "seed"
4081 },
4082 "link": null
4083 }
4084 ],
4085 "outputs": [
4086 {
4087 "localized_name": "VIDEO",
4088 "name": "VIDEO",
4089 "type": "VIDEO",
4090 "links": [
4091 293
4092 ]
4093 }
4094 ],
4095 "properties": {
4096 "Node name for S&R": "KlingFirstLastFrameNode"
4097 },
4098 "widgets_values": [
4099 "",
4100 3,
4101 false,
4102 "kling-v3",
4103 "1080p",
4104 5,
4105 "fixed"
4106 ],
4107 "color": "#432",
4108 "bgcolor": "#653"
4109 },
4110 {
4111 "id": 390,
4112 "type": "BatchImagesNode",
4113 "pos": [
4114 7630,
4115 510
4116 ],
4117 "size": [
4118 200,
4119 90
4120 ],
4121 "flags": {
4122 "collapsed": true
4123 },
4124 "order": 5,
4125 "mode": 0,
4126 "inputs": [
4127 {
4128 "label": "image0",
4129 "localized_name": "images.image0",
4130 "name": "images.image0",
4131 "type": "IMAGE",
4132 "link": 334
4133 },
4134 {
4135 "label": "image1",
4136 "localized_name": "images.image1",
4137 "name": "images.image1",
4138 "type": "IMAGE",
4139 "link": 335
4140 },
4141 {
4142 "label": "image2",
4143 "localized_name": "images.image2",
4144 "name": "images.image2",
4145 "shape": 7,
4146 "type": "IMAGE",
4147 "link": null
4148 }
4149 ],
4150 "outputs": [
4151 {
4152 "localized_name": "IMAGE",
4153 "name": "IMAGE",
4154 "type": "IMAGE",
4155 "links": [
4156 333
4157 ]
4158 }
4159 ],
4160 "properties": {
4161 "Node name for S&R": "BatchImagesNode"
4162 },
4163 "widgets_values": []
4164 }
4165 ],
4166 "groups": [],
4167 "links": [
4168 {
4169 "id": 203,
4170 "origin_id": 366,
4171 "origin_slot": 0,
4172 "target_id": 362,
4173 "target_slot": 0,
4174 "type": "*"
4175 },
4176 {
4177 "id": 127,
4178 "origin_id": -10,
4179 "origin_slot": 0,
4180 "target_id": 365,
4181 "target_slot": 0,
4182 "type": "IMAGE"
4183 },
4184 {
4185 "id": 125,
4186 "origin_id": -10,
4187 "origin_slot": 0,
4188 "target_id": 364,
4189 "target_slot": 0,
4190 "type": "IMAGE"
4191 },
4192 {
4193 "id": 282,
4194 "origin_id": 364,
4195 "origin_slot": 0,
4196 "target_id": 367,
4197 "target_slot": 0,
4198 "type": "IMAGE"
4199 },
4200 {
4201 "id": 283,
4202 "origin_id": 365,
4203 "origin_slot": 0,
4204 "target_id": 367,
4205 "target_slot": 1,
4206 "type": "IMAGE"
4207 },
4208 {
4209 "id": 284,
4210 "origin_id": 366,
4211 "origin_slot": 0,
4212 "target_id": 367,
4213 "target_slot": 2,
4214 "type": "STRING"
4215 },
4216 {
4217 "id": 285,
4218 "origin_id": -10,
4219 "origin_slot": 1,
4220 "target_id": 367,
4221 "target_slot": 3,
4222 "type": "INT"
4223 },
4224 {
4225 "id": 286,
4226 "origin_id": -10,
4227 "origin_slot": 2,
4228 "target_id": 367,
4229 "target_slot": 4,
4230 "type": "COMBO"
4231 },
4232 {
4233 "id": 293,
4234 "origin_id": 367,
4235 "origin_slot": 0,
4236 "target_id": -20,
4237 "target_slot": 0,
4238 "type": "VIDEO"
4239 },
4240 {
4241 "id": 333,
4242 "origin_id": 390,
4243 "origin_slot": 0,
4244 "target_id": 366,
4245 "target_slot": 0,
4246 "type": "IMAGE"
4247 },
4248 {
4249 "id": 334,
4250 "origin_id": 364,
4251 "origin_slot": 0,
4252 "target_id": 390,
4253 "target_slot": 0,
4254 "type": "IMAGE"
4255 },
4256 {
4257 "id": 335,
4258 "origin_id": 365,
4259 "origin_slot": 0,
4260 "target_id": 390,
4261 "target_slot": 1,
4262 "type": "IMAGE"
4263 }
4264 ],
4265 "extra": {
4266 "workflowRendererVersion": "Vue-corrected"
4267 }
4268 },
4269 {
4270 "id": "2ab1ef49-3518-4f71-b703-f8ef12f32214",
4271 "version": 1,
4272 "state": {
4273 "lastGroupId": 0,
4274 "lastNodeId": 395,
4275 "lastLinkId": 357,
4276 "lastRerouteId": 0
4277 },
4278 "revision": 0,
4279 "config": [],
4280 "name": "Generate Video 6",
4281 "inputNode": {
4282 "id": -10,
4283 "bounding": [
4284 7370,
4285 380,
4286 120,
4287 90
4288 ]
4289 },
4290 "outputNode": {
4291 "id": -20,
4292 "bounding": [
4293 8580,
4294 370,
4295 100,
4296 50
4297 ]
4298 },
4299 "inputs": [
4300 {
4301 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
4302 "name": "image",
4303 "type": "IMAGE",
4304 "linkIds": [
4305 127,
4306 125
4307 ],
4308 "localized_name": "image",
4309 "pos": [
4310 8960.376953125,
4311 478
4312 ]
4313 },
4314 {
4315 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
4316 "name": "duration",
4317 "type": "INT",
4318 "linkIds": [
4319 285
4320 ],
4321 "pos": [
4322 8960.376953125,
4323 498
4324 ]
4325 },
4326 {
4327 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
4328 "name": "model.resolution",
4329 "type": "COMBO",
4330 "linkIds": [
4331 286
4332 ],
4333 "pos": [
4334 8960.376953125,
4335 518
4336 ]
4337 }
4338 ],
4339 "outputs": [
4340 {
4341 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
4342 "name": "VIDEO",
4343 "type": "VIDEO",
4344 "linkIds": [
4345 293
4346 ],
4347 "localized_name": "VIDEO",
4348 "pos": [
4349 10320,
4350 470
4351 ]
4352 }
4353 ],
4354 "widgets": [],
4355 "nodes": [
4356 {
4357 "id": 370,
4358 "type": "PreviewAny",
4359 "pos": [
4360 8220,
4361 -80
4362 ],
4363 "size": [
4364 280,
4365 440
4366 ],
4367 "flags": [],
4368 "order": 0,
4369 "mode": 0,
4370 "inputs": [
4371 {
4372 "localized_name": "source",
4373 "name": "source",
4374 "type": "*",
4375 "link": 203
4376 }
4377 ],
4378 "outputs": [],
4379 "title": "Preview Prompt",
4380 "properties": {
4381 "Node name for S&R": "PreviewAny",
4382 "cnr_id": "comfy-core",
4383 "ver": "0.3.76"
4384 },
4385 "widgets_values": [
4386 null,
4387 null,
4388 null
4389 ]
4390 },
4391 {
4392 "id": 372,
4393 "type": "ImageFromBatch",
4394 "pos": [
4395 7550,
4396 660
4397 ],
4398 "size": [
4399 280,
4400 100
4401 ],
4402 "flags": [],
4403 "order": 1,
4404 "mode": 0,
4405 "inputs": [
4406 {
4407 "localized_name": "image",
4408 "name": "image",
4409 "type": "IMAGE",
4410 "link": 125
4411 }
4412 ],
4413 "outputs": [
4414 {
4415 "localized_name": "IMAGE",
4416 "name": "IMAGE",
4417 "type": "IMAGE",
4418 "links": [
4419 282,
4420 336
4421 ]
4422 }
4423 ],
4424 "properties": {
4425 "Node name for S&R": "ImageFromBatch",
4426 "cnr_id": "comfy-core",
4427 "ver": "0.3.76"
4428 },
4429 "widgets_values": [
4430 5,
4431 1
4432 ]
4433 },
4434 {
4435 "id": 373,
4436 "type": "ImageFromBatch",
4437 "pos": [
4438 7550,
4439 850
4440 ],
4441 "size": [
4442 280,
4443 100
4444 ],
4445 "flags": [],
4446 "order": 2,
4447 "mode": 0,
4448 "inputs": [
4449 {
4450 "localized_name": "image",
4451 "name": "image",
4452 "type": "IMAGE",
4453 "link": 127
4454 }
4455 ],
4456 "outputs": [
4457 {
4458 "localized_name": "IMAGE",
4459 "name": "IMAGE",
4460 "type": "IMAGE",
4461 "links": [
4462 283,
4463 337
4464 ]
4465 }
4466 ],
4467 "properties": {
4468 "Node name for S&R": "ImageFromBatch",
4469 "cnr_id": "comfy-core",
4470 "ver": "0.3.76"
4471 },
4472 "widgets_values": [
4473 6,
4474 1
4475 ]
4476 },
4477 {
4478 "id": 374,
4479 "type": "GeminiNode",
4480 "pos": [
4481 7850,
4482 -80
4483 ],
4484 "size": [
4485 340,
4486 670
4487 ],
4488 "flags": [],
4489 "order": 3,
4490 "mode": 0,
4491 "inputs": [
4492 {
4493 "localized_name": "images",
4494 "name": "images",
4495 "shape": 7,
4496 "type": "IMAGE",
4497 "link": 338
4498 },
4499 {
4500 "localized_name": "audio",
4501 "name": "audio",
4502 "shape": 7,
4503 "type": "AUDIO",
4504 "link": null
4505 },
4506 {
4507 "localized_name": "video",
4508 "name": "video",
4509 "shape": 7,
4510 "type": "VIDEO",
4511 "link": null
4512 },
4513 {
4514 "localized_name": "files",
4515 "name": "files",
4516 "shape": 7,
4517 "type": "GEMINI_INPUT_FILES",
4518 "link": null
4519 }
4520 ],
4521 "outputs": [
4522 {
4523 "localized_name": "STRING",
4524 "name": "STRING",
4525 "type": "STRING",
4526 "links": [
4527 203,
4528 284
4529 ]
4530 }
4531 ],
4532 "properties": {
4533 "Node name for S&R": "GeminiNode",
4534 "cnr_id": "comfy-core",
4535 "ver": "0.3.76"
4536 },
4537 "widgets_values": [
4538 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
4539 "gemini-3-1-flash-lite",
4540 6,
4541 "fixed",
4542 ""
4543 ],
4544 "color": "#432",
4545 "bgcolor": "#653"
4546 },
4547 {
4548 "id": 375,
4549 "type": "KlingFirstLastFrameNode",
4550 "pos": [
4551 7850,
4552 670
4553 ],
4554 "size": [
4555 340,
4556 260
4557 ],
4558 "flags": [],
4559 "order": 4,
4560 "mode": 0,
4561 "inputs": [
4562 {
4563 "localized_name": "first_frame",
4564 "name": "first_frame",
4565 "type": "IMAGE",
4566 "link": 282
4567 },
4568 {
4569 "localized_name": "end_frame",
4570 "name": "end_frame",
4571 "type": "IMAGE",
4572 "link": 283
4573 },
4574 {
4575 "localized_name": "prompt",
4576 "name": "prompt",
4577 "type": "STRING",
4578 "widget": {
4579 "name": "prompt"
4580 },
4581 "link": 284
4582 },
4583 {
4584 "localized_name": "duration",
4585 "name": "duration",
4586 "type": "INT",
4587 "widget": {
4588 "name": "duration"
4589 },
4590 "link": 285
4591 },
4592 {
4593 "localized_name": "resolution",
4594 "name": "model.resolution",
4595 "type": "COMBO",
4596 "widget": {
4597 "name": "model.resolution"
4598 },
4599 "link": 286
4600 },
4601 {
4602 "label": "video6_seed",
4603 "localized_name": "seed",
4604 "name": "seed",
4605 "type": "INT",
4606 "widget": {
4607 "name": "seed"
4608 },
4609 "link": null
4610 }
4611 ],
4612 "outputs": [
4613 {
4614 "localized_name": "VIDEO",
4615 "name": "VIDEO",
4616 "type": "VIDEO",
4617 "links": [
4618 293
4619 ]
4620 }
4621 ],
4622 "properties": {
4623 "Node name for S&R": "KlingFirstLastFrameNode"
4624 },
4625 "widgets_values": [
4626 "",
4627 3,
4628 false,
4629 "kling-v3",
4630 "1080p",
4631 6,
4632 "fixed"
4633 ],
4634 "color": "#432",
4635 "bgcolor": "#653"
4636 },
4637 {
4638 "id": 391,
4639 "type": "BatchImagesNode",
4640 "pos": [
4641 7630,
4642 490
4643 ],
4644 "size": [
4645 200,
4646 90
4647 ],
4648 "flags": {
4649 "collapsed": true
4650 },
4651 "order": 5,
4652 "mode": 0,
4653 "inputs": [
4654 {
4655 "label": "image0",
4656 "localized_name": "images.image0",
4657 "name": "images.image0",
4658 "type": "IMAGE",
4659 "link": 336
4660 },
4661 {
4662 "label": "image1",
4663 "localized_name": "images.image1",
4664 "name": "images.image1",
4665 "type": "IMAGE",
4666 "link": 337
4667 },
4668 {
4669 "label": "image2",
4670 "localized_name": "images.image2",
4671 "name": "images.image2",
4672 "shape": 7,
4673 "type": "IMAGE",
4674 "link": null
4675 }
4676 ],
4677 "outputs": [
4678 {
4679 "localized_name": "IMAGE",
4680 "name": "IMAGE",
4681 "type": "IMAGE",
4682 "links": [
4683 338
4684 ]
4685 }
4686 ],
4687 "properties": {
4688 "Node name for S&R": "BatchImagesNode"
4689 },
4690 "widgets_values": []
4691 }
4692 ],
4693 "groups": [],
4694 "links": [
4695 {
4696 "id": 203,
4697 "origin_id": 374,
4698 "origin_slot": 0,
4699 "target_id": 370,
4700 "target_slot": 0,
4701 "type": "*"
4702 },
4703 {
4704 "id": 127,
4705 "origin_id": -10,
4706 "origin_slot": 0,
4707 "target_id": 373,
4708 "target_slot": 0,
4709 "type": "IMAGE"
4710 },
4711 {
4712 "id": 125,
4713 "origin_id": -10,
4714 "origin_slot": 0,
4715 "target_id": 372,
4716 "target_slot": 0,
4717 "type": "IMAGE"
4718 },
4719 {
4720 "id": 282,
4721 "origin_id": 372,
4722 "origin_slot": 0,
4723 "target_id": 375,
4724 "target_slot": 0,
4725 "type": "IMAGE"
4726 },
4727 {
4728 "id": 283,
4729 "origin_id": 373,
4730 "origin_slot": 0,
4731 "target_id": 375,
4732 "target_slot": 1,
4733 "type": "IMAGE"
4734 },
4735 {
4736 "id": 284,
4737 "origin_id": 374,
4738 "origin_slot": 0,
4739 "target_id": 375,
4740 "target_slot": 2,
4741 "type": "STRING"
4742 },
4743 {
4744 "id": 285,
4745 "origin_id": -10,
4746 "origin_slot": 1,
4747 "target_id": 375,
4748 "target_slot": 3,
4749 "type": "INT"
4750 },
4751 {
4752 "id": 286,
4753 "origin_id": -10,
4754 "origin_slot": 2,
4755 "target_id": 375,
4756 "target_slot": 4,
4757 "type": "COMBO"
4758 },
4759 {
4760 "id": 293,
4761 "origin_id": 375,
4762 "origin_slot": 0,
4763 "target_id": -20,
4764 "target_slot": 0,
4765 "type": "VIDEO"
4766 },
4767 {
4768 "id": 336,
4769 "origin_id": 372,
4770 "origin_slot": 0,
4771 "target_id": 391,
4772 "target_slot": 0,
4773 "type": "IMAGE"
4774 },
4775 {
4776 "id": 337,
4777 "origin_id": 373,
4778 "origin_slot": 0,
4779 "target_id": 391,
4780 "target_slot": 1,
4781 "type": "IMAGE"
4782 },
4783 {
4784 "id": 338,
4785 "origin_id": 391,
4786 "origin_slot": 0,
4787 "target_id": 374,
4788 "target_slot": 0,
4789 "type": "IMAGE"
4790 }
4791 ],
4792 "extra": {
4793 "workflowRendererVersion": "Vue-corrected"
4794 }
4795 },
4796 {
4797 "id": "b3fe4254-e196-429e-9f45-96c92113e406",
4798 "version": 1,
4799 "state": {
4800 "lastGroupId": 0,
4801 "lastNodeId": 395,
4802 "lastLinkId": 357,
4803 "lastRerouteId": 0
4804 },
4805 "revision": 0,
4806 "config": [],
4807 "name": "Generate Video 7",
4808 "inputNode": {
4809 "id": -10,
4810 "bounding": [
4811 7370,
4812 380,
4813 134.376953125,
4814 100
4815 ]
4816 },
4817 "outputNode": {
4818 "id": -20,
4819 "bounding": [
4820 8580,
4821 370,
4822 120,
4823 60
4824 ]
4825 },
4826 "inputs": [
4827 {
4828 "id": "4a1c561e-96cb-4862-ba72-d77d3725dbb2",
4829 "name": "image",
4830 "type": "IMAGE",
4831 "linkIds": [
4832 127,
4833 125
4834 ],
4835 "localized_name": "image",
4836 "pos": [
4837 7484.376953125,
4838 400
4839 ]
4840 },
4841 {
4842 "id": "a6622b84-27c2-4a79-b375-69c30fe2e457",
4843 "name": "duration",
4844 "type": "INT",
4845 "linkIds": [
4846 285
4847 ],
4848 "pos": [
4849 7484.376953125,
4850 420
4851 ]
4852 },
4853 {
4854 "id": "344409ea-aa17-46c2-8b7d-c7b10cf980ad",
4855 "name": "model.resolution",
4856 "type": "COMBO",
4857 "linkIds": [
4858 286
4859 ],
4860 "pos": [
4861 7484.376953125,
4862 440
4863 ]
4864 }
4865 ],
4866 "outputs": [
4867 {
4868 "id": "1c5be8c2-bbd0-4ba7-81d9-37d933627747",
4869 "name": "VIDEO",
4870 "type": "VIDEO",
4871 "linkIds": [
4872 293
4873 ],
4874 "localized_name": "VIDEO",
4875 "pos": [
4876 8600,
4877 390
4878 ]
4879 }
4880 ],
4881 "widgets": [],
4882 "nodes": [
4883 {
4884 "id": 378,
4885 "type": "PreviewAny",
4886 "pos": [
4887 8219.99989558499,
4888 -79.99999647637992
4889 ],
4890 "size": [
4891 280,
4892 440
4893 ],
4894 "flags": [],
4895 "order": 0,
4896 "mode": 0,
4897 "inputs": [
4898 {
4899 "localized_name": "source",
4900 "name": "source",
4901 "type": "*",
4902 "link": 203
4903 }
4904 ],
4905 "outputs": [],
4906 "title": "Preview Prompt",
4907 "properties": {
4908 "Node name for S&R": "PreviewAny",
4909 "cnr_id": "comfy-core",
4910 "ver": "0.3.76"
4911 },
4912 "widgets_values": [
4913 null,
4914 null,
4915 null
4916 ]
4917 },
4918 {
4919 "id": 380,
4920 "type": "ImageFromBatch",
4921 "pos": [
4922 7549.999839601976,
4923 660.0000315090421
4924 ],
4925 "size": [
4926 280,
4927 136
4928 ],
4929 "flags": [],
4930 "order": 1,
4931 "mode": 0,
4932 "inputs": [
4933 {
4934 "localized_name": "image",
4935 "name": "image",
4936 "type": "IMAGE",
4937 "link": 125
4938 }
4939 ],
4940 "outputs": [
4941 {
4942 "localized_name": "IMAGE",
4943 "name": "IMAGE",
4944 "type": "IMAGE",
4945 "links": [
4946 282,
4947 339
4948 ]
4949 }
4950 ],
4951 "properties": {
4952 "Node name for S&R": "ImageFromBatch",
4953 "cnr_id": "comfy-core",
4954 "ver": "0.3.76"
4955 },
4956 "widgets_values": [
4957 6,
4958 1
4959 ]
4960 },
4961 {
4962 "id": 381,
4963 "type": "ImageFromBatch",
4964 "pos": [
4965 7549.999839601976,
4966 850.0000061343235
4967 ],
4968 "size": [
4969 280,
4970 136
4971 ],
4972 "flags": [],
4973 "order": 2,
4974 "mode": 0,
4975 "inputs": [
4976 {
4977 "localized_name": "image",
4978 "name": "image",
4979 "type": "IMAGE",
4980 "link": 127
4981 }
4982 ],
4983 "outputs": [
4984 {
4985 "localized_name": "IMAGE",
4986 "name": "IMAGE",
4987 "type": "IMAGE",
4988 "links": [
4989 283,
4990 340
4991 ]
4992 }
4993 ],
4994 "properties": {
4995 "Node name for S&R": "ImageFromBatch",
4996 "cnr_id": "comfy-core",
4997 "ver": "0.3.76"
4998 },
4999 "widgets_values": [
5000 0,
5001 1
5002 ]
5003 },
5004 {
5005 "id": 382,
5006 "type": "GeminiNode",
5007 "pos": [
5008 7849.999881592279,
5009 -79.99999647637992
5010 ],
5011 "size": [
5012 340,
5013 670
5014 ],
5015 "flags": [],
5016 "order": 3,
5017 "mode": 0,
5018 "inputs": [
5019 {
5020 "localized_name": "images",
5021 "name": "images",
5022 "shape": 7,
5023 "type": "IMAGE",
5024 "link": 341
5025 },
5026 {
5027 "localized_name": "audio",
5028 "name": "audio",
5029 "shape": 7,
5030 "type": "AUDIO",
5031 "link": null
5032 },
5033 {
5034 "localized_name": "video",
5035 "name": "video",
5036 "shape": 7,
5037 "type": "VIDEO",
5038 "link": null
5039 },
5040 {
5041 "localized_name": "files",
5042 "name": "files",
5043 "shape": 7,
5044 "type": "GEMINI_INPUT_FILES",
5045 "link": null
5046 }
5047 ],
5048 "outputs": [
5049 {
5050 "localized_name": "STRING",
5051 "name": "STRING",
5052 "type": "STRING",
5053 "links": [
5054 203,
5055 284
5056 ]
5057 }
5058 ],
5059 "properties": {
5060 "Node name for S&R": "GeminiNode",
5061 "cnr_id": "comfy-core",
5062 "ver": "0.3.76"
5063 },
5064 "widgets_values": [
5065 "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS].\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement\n\nDOLLY-OUT (Close-up → Wide)\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field\n\nORBIT (Circular movement)\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking\n\nTILT (Vertical angle change)\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing\n\nPAN (Horizontal swivel)\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan\n\nCRANE UP/DOWN\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. LIMIT THE OUTPUT TO 500 CHARACTERS. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
5066 "gemini-3-1-flash-lite",
5067 7,
5068 "fixed",
5069 ""
5070 ],
5071 "color": "#432",
5072 "bgcolor": "#653"
5073 },
5074 {
5075 "id": 383,
5076 "type": "KlingFirstLastFrameNode",
5077 "pos": [
5078 7849.999881592279,
5079 670.0000376331349
5080 ],
5081 "size": [
5082 340,
5083 326.328125
5084 ],
5085 "flags": [],
5086 "order": 4,
5087 "mode": 0,
5088 "inputs": [
5089 {
5090 "localized_name": "first_frame",
5091 "name": "first_frame",
5092 "type": "IMAGE",
5093 "link": 282
5094 },
5095 {
5096 "localized_name": "end_frame",
5097 "name": "end_frame",
5098 "type": "IMAGE",
5099 "link": 283
5100 },
5101 {
5102 "localized_name": "prompt",
5103 "name": "prompt",
5104 "type": "STRING",
5105 "widget": {
5106 "name": "prompt"
5107 },
5108 "link": 284
5109 },
5110 {
5111 "localized_name": "duration",
5112 "name": "duration",
5113 "type": "INT",
5114 "widget": {
5115 "name": "duration"
5116 },
5117 "link": 285
5118 },
5119 {
5120 "localized_name": "resolution",
5121 "name": "model.resolution",
5122 "type": "COMBO",
5123 "widget": {
5124 "name": "model.resolution"
5125 },
5126 "link": 286
5127 },
5128 {
5129 "label": "video7_seed",
5130 "localized_name": "seed",
5131 "name": "seed",
5132 "type": "INT",
5133 "widget": {
5134 "name": "seed"
5135 },
5136 "link": null
5137 }
5138 ],
5139 "outputs": [
5140 {
5141 "localized_name": "VIDEO",
5142 "name": "VIDEO",
5143 "type": "VIDEO",
5144 "links": [
5145 293
5146 ]
5147 }
5148 ],
5149 "properties": {
5150 "Node name for S&R": "KlingFirstLastFrameNode"
5151 },
5152 "widgets_values": [
5153 "",
5154 3,
5155 false,
5156 "kling-v3",
5157 "1080p",
5158 7,
5159 "fixed"
5160 ],
5161 "color": "#432",
5162 "bgcolor": "#653"
5163 },
5164 {
5165 "id": 392,
5166 "type": "BatchImagesNode",
5167 "pos": [
5168 7620,
5169 420
5170 ],
5171 "size": [
5172 200,
5173 90
5174 ],
5175 "flags": {
5176 "collapsed": true
5177 },
5178 "order": 5,
5179 "mode": 0,
5180 "inputs": [
5181 {
5182 "label": "image0",
5183 "localized_name": "images.image0",
5184 "name": "images.image0",
5185 "type": "IMAGE",
5186 "link": 339
5187 },
5188 {
5189 "label": "image1",
5190 "localized_name": "images.image1",
5191 "name": "images.image1",
5192 "type": "IMAGE",
5193 "link": 340
5194 },
5195 {
5196 "label": "image2",
5197 "localized_name": "images.image2",
5198 "name": "images.image2",
5199 "shape": 7,
5200 "type": "IMAGE",
5201 "link": null
5202 }
5203 ],
5204 "outputs": [
5205 {
5206 "localized_name": "IMAGE",
5207 "name": "IMAGE",
5208 "type": "IMAGE",
5209 "links": [
5210 341
5211 ]
5212 }
5213 ],
5214 "properties": {
5215 "Node name for S&R": "BatchImagesNode"
5216 },
5217 "widgets_values": []
5218 }
5219 ],
5220 "groups": [],
5221 "links": [
5222 {
5223 "id": 203,
5224 "origin_id": 382,
5225 "origin_slot": 0,
5226 "target_id": 378,
5227 "target_slot": 0,
5228 "type": "*"
5229 },
5230 {
5231 "id": 127,
5232 "origin_id": -10,
5233 "origin_slot": 0,
5234 "target_id": 381,
5235 "target_slot": 0,
5236 "type": "IMAGE"
5237 },
5238 {
5239 "id": 125,
5240 "origin_id": -10,
5241 "origin_slot": 0,
5242 "target_id": 380,
5243 "target_slot": 0,
5244 "type": "IMAGE"
5245 },
5246 {
5247 "id": 282,
5248 "origin_id": 380,
5249 "origin_slot": 0,
5250 "target_id": 383,
5251 "target_slot": 0,
5252 "type": "IMAGE"
5253 },
5254 {
5255 "id": 283,
5256 "origin_id": 381,
5257 "origin_slot": 0,
5258 "target_id": 383,
5259 "target_slot": 1,
5260 "type": "IMAGE"
5261 },
5262 {
5263 "id": 284,
5264 "origin_id": 382,
5265 "origin_slot": 0,
5266 "target_id": 383,
5267 "target_slot": 2,
5268 "type": "STRING"
5269 },
5270 {
5271 "id": 285,
5272 "origin_id": -10,
5273 "origin_slot": 1,
5274 "target_id": 383,
5275 "target_slot": 3,
5276 "type": "INT"
5277 },
5278 {
5279 "id": 286,
5280 "origin_id": -10,
5281 "origin_slot": 2,
5282 "target_id": 383,
5283 "target_slot": 4,
5284 "type": "COMBO"
5285 },
5286 {
5287 "id": 293,
5288 "origin_id": 383,
5289 "origin_slot": 0,
5290 "target_id": -20,
5291 "target_slot": 0,
5292 "type": "VIDEO"
5293 },
5294 {
5295 "id": 339,
5296 "origin_id": 380,
5297 "origin_slot": 0,
5298 "target_id": 392,
5299 "target_slot": 0,
5300 "type": "IMAGE"
5301 },
5302 {
5303 "id": 340,
5304 "origin_id": 381,
5305 "origin_slot": 0,
5306 "target_id": 392,
5307 "target_slot": 1,
5308 "type": "IMAGE"
5309 },
5310 {
5311 "id": 341,
5312 "origin_id": 392,
5313 "origin_slot": 0,
5314 "target_id": 382,
5315 "target_slot": 0,
5316 "type": "IMAGE"
5317 }
5318 ],
5319 "extra": {
5320 "workflowRendererVersion": "Vue-corrected"
5321 }
5322 }
5323 ]
5324 },
5325 "config": [],
5326 "extra": {
5327 "ds": {
5328 "scale": 0.17715610000000015,
5329 "offset": [
5330 -4165.634250380585,
5331 875.9888656195051
5332 ]
5333 },
5334 "frontendVersion": "1.41.13",
5335 "workflowRendererVersion": "Vue-corrected",
5336 "linearData": {
5337 "inputs": [
5338 [
5339 "312",
5340 "value"
5341 ],
5342 [
5343 "313",
5344 "model.resolution"
5345 ],
5346 [
5347 "224",
5348 "image"
5349 ],
5350 [
5351 "226",
5352 "image"
5353 ],
5354 [
5355 "227",
5356 "image"
5357 ],
5358 [
5359 "228",
5360 "image"
5361 ],
5362 [
5363 "232",
5364 "image"
5365 ],
5366 [
5367 "233",
5368 "image"
5369 ],
5370 [
5371 "234",
5372 "image"
5373 ],
5374 [
5375 "235",
5376 "image"
5377 ],
5378 [
5379 "310",
5380 "seed"
5381 ],
5382 [
5383 "343",
5384 "seed"
5385 ],
5386 [
5387 "351",
5388 "seed"
5389 ],
5390 [
5391 "359",
5392 "seed"
5393 ],
5394 [
5395 "367",
5396 "seed"
5397 ],
5398 [
5399 "375",
5400 "seed"
5401 ],
5402 [
5403 "383",
5404 "seed"
5405 ]
5406 ],
5407 "outputs": [
5408 "308",
5409 "344",
5410 "352",
5411 "360",
5412 "368",
5413 "376",
5414 "384"
5415 ]
5416 },
5417 "VHS_KeepIntermediate": true,
5418 "VHS_MetadataImage": true,
5419 "VHS_latentpreview": false,
5420 "VHS_latentpreviewrate": 0,
5421 "linearMode": true
5422 },
5423 "version": 0.4
5424}