工作流 /
图像工具 /
扩展到任意宽高比 - Nano Banana Pro

扩展到任意宽高比 - Nano Banana Pro
Outpaint to Any Aspect Ratio - Nano Banana Pro
上传您的图片,输入所需的长宽比以及图片在新长宽比合成中的位置(以百分比表示)。使用 Nano Banana Pro 生成图片的扩展版本以适应新的尺寸。
图像工具
9 个节点 1 个输入 16 次使用 ComfyUI ≥ 0.16.4 hellorob 41 KB
节点构成
PreviewImage
× 1
LoadImage
× 1
b26cc822-68bf-4fd0-b66f-bb3f99cd1443
× 1
MarkdownNote
× 1
ImageCompare
× 1
GeminiImage2Node
× 1
ImageResizeKJv2
× 1
GetImageSize
× 1
SaveImage
× 1
官方标注的模型
Nano Banana Pro
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "1a454a5b-c035-49ac-a433-24c630fb3363",
3 "revision": 0,
4 "last_node_id": 272,
5 "last_link_id": 576,
6 "nodes": [
7 {
8 "id": 226,
9 "type": "PreviewImage",
10 "pos": [
11 -2610.0005288584725,
12 259.99984747930534
13 ],
14 "size": [
15 500,
16 540
17 ],
18 "flags": [],
19 "order": 3,
20 "mode": 0,
21 "inputs": [
22 {
23 "name": "images",
24 "type": "IMAGE",
25 "link": 441
26 }
27 ],
28 "outputs": [],
29 "properties": {
30 "Node name for S&R": "PreviewImage"
31 },
32 "widgets_values": []
33 },
34 {
35 "id": 130,
36 "type": "LoadImage",
37 "pos": [
38 -3369.999945548338,
39 29.999790337271747
40 ],
41 "size": [
42 670,
43 770
44 ],
45 "flags": [],
46 "order": 0,
47 "mode": 0,
48 "inputs": [],
49 "outputs": [
50 {
51 "label": "IMAGE",
52 "name": "IMAGE",
53 "type": "IMAGE",
54 "slot_index": 0,
55 "links": [
56 435
57 ]
58 },
59 {
60 "label": "MASK",
61 "name": "MASK",
62 "type": "MASK",
63 "slot_index": 1,
64 "links": []
65 }
66 ],
67 "properties": {
68 "Node name for S&R": "LoadImage",
69 "cnr_id": "comfy-core",
70 "ver": "0.3.39",
71 "enableTabs": false,
72 "hasSecondTab": false,
73 "secondTabOffset": 80,
74 "secondTabText": "Send Back",
75 "secondTabWidth": 65,
76 "tabWidth": 65,
77 "tabXOffset": 10,
78 "widget_ue_connectable": []
79 },
80 "widgets_values": [
81 "facing_the_dragon.png",
82 "image"
83 ]
84 },
85 {
86 "id": 224,
87 "type": "b26cc822-68bf-4fd0-b66f-bb3f99cd1443",
88 "pos": [
89 -2610.0005288584725,
90 29.99990345146057
91 ],
92 "size": [
93 500,
94 162.65625
95 ],
96 "flags": [],
97 "order": 2,
98 "mode": 0,
99 "inputs": [
100 {
101 "name": "image",
102 "type": "IMAGE",
103 "link": 435
104 }
105 ],
106 "outputs": [
107 {
108 "name": "IMAGE",
109 "type": "IMAGE",
110 "links": [
111 441,
112 546,
113 550
114 ]
115 },
116 {
117 "name": "MASK",
118 "type": "MASK",
119 "links": []
120 }
121 ],
122 "properties": {
123 "proxyWidgets": [
124 [
125 "191",
126 "aspect_ratio"
127 ],
128 [
129 "240",
130 "value"
131 ]
132 ]
133 },
134 "widgets_values": []
135 },
136 {
137 "id": 252,
138 "type": "MarkdownNote",
139 "pos": [
140 -4049.9998700496258,
141 29.999790337271747
142 ],
143 "size": [
144 590,
145 770
146 ],
147 "flags": [],
148 "order": 1,
149 "mode": 0,
150 "inputs": [],
151 "outputs": [],
152 "title": "Outpaint Image to Any Aspect Ratio",
153 "properties": [],
154 "widgets_values": [
155 "Outpaint a **single image** into any target aspect ratio without cropping. The original pixels stay intact — the new canvas around them is outpainted by **Nano Banana Pro**\n\n## How It Works\n\n1. **Upload an image** (`LoadImage` node)\n2. **Select `Image Extender` node inputs**\n - **Image Extender** — pads the original to the target aspect ratio, with you controlling **where** the image sits inside the new canvas (left↔right and top↔bottom percentages, both default to 50% = centered).\n - **aspect_ratio** — pick from the dropdown.\n - **top_or_left_outpaint_pct** — `0` = image hugs left/top, `50` = centered, `100` = hugs right/bottom. Use these to compose how the original sits in the new frame. \n\n3. **Nano Banana 2 outpaint** — replaces the green region with new image content that continues the input image naturally (sky, ground, walls, whatever fits). Tweak the prompt with specific details if necessary.\n\n## Tips\n\n- **Low contrast = bad inpaint.** If your subject contains a lot of green (plants, a green-screen setup), open the Image Extender subgraph and change the fill color to something that contrasts your subject.\n- **Match the subject scale.** If you go from `1:1` → `21:9`, you're asking the model to invent a *lot* of pixels; busy or simple backgrounds (skies, walls) outpaint more reliably than complex scenes."
156 ],
157 "color": "#222",
158 "bgcolor": "#000"
159 },
160 {
161 "id": 262,
162 "type": "ImageCompare",
163 "pos": [
164 -670.0010206434677,
165 29.999790337271747
166 ],
167 "size": [
168 710,
169 760
170 ],
171 "flags": [],
172 "order": 8,
173 "mode": 0,
174 "inputs": [
175 {
176 "name": "image_a",
177 "shape": 7,
178 "type": "IMAGE",
179 "link": 549
180 },
181 {
182 "name": "image_b",
183 "shape": 7,
184 "type": "IMAGE",
185 "link": 555
186 }
187 ],
188 "outputs": [],
189 "properties": {
190 "Node name for S&R": "ImageCompare"
191 },
192 "widgets_values": []
193 },
194 {
195 "id": 263,
196 "type": "GeminiImage2Node",
197 "pos": [
198 -2010.0005666766103,
199 29.999790337271747
200 ],
201 "size": [
202 460,
203 730
204 ],
205 "flags": [],
206 "order": 4,
207 "mode": 0,
208 "inputs": [
209 {
210 "name": "images",
211 "shape": 7,
212 "type": "IMAGE",
213 "link": 546
214 },
215 {
216 "name": "files",
217 "shape": 7,
218 "type": "GEMINI_INPUT_FILES",
219 "link": null
220 }
221 ],
222 "outputs": [
223 {
224 "name": "IMAGE",
225 "type": "IMAGE",
226 "links": [
227 549,
228 551,
229 563
230 ]
231 },
232 {
233 "name": "STRING",
234 "type": "STRING",
235 "links": null
236 }
237 ],
238 "properties": {
239 "Node name for S&R": "GeminiImage2Node"
240 },
241 "widgets_values": [
242 "Outpaint/fill the green pixels. Retain composition of the visible images pixels. Analyze the original image content to understand what the outpainted region should be. \nDO NOT MODIFY the original images pixels. It must remain exactly as is. ONLY ALTER THE GREEN PIXELS.\nThe green outpainted pixels must seamlessly blend into the scene. DO NOT COPY/PASTE existing pixels into the target outpainted area.",
243 "gemini-3-pro-image-preview",
244 41439150623705,
245 "randomize",
246 "auto",
247 "4K",
248 "IMAGE+TEXT",
249 "You are an expert image-generation engine. You must ALWAYS produce an image.\nInterpret all user input—regardless of format, intent, or abstraction—as literal visual directives for image composition.\nIf a prompt is conversational or lacks specific visual details, you must creatively invent a concrete visual scenario that depicts the concept.\nPrioritize generating the visual representation above any text, formatting, or conversational requests."
250 ],
251 "color": "#432",
252 "bgcolor": "#653"
253 },
254 {
255 "id": 264,
256 "type": "ImageResizeKJv2",
257 "pos": [
258 -1000,
259 -170
260 ],
261 "size": [
262 270,
263 480
264 ],
265 "flags": {
266 "collapsed": true
267 },
268 "order": 7,
269 "mode": 0,
270 "inputs": [
271 {
272 "name": "image",
273 "type": "IMAGE",
274 "link": 550
275 },
276 {
277 "name": "mask",
278 "shape": 7,
279 "type": "MASK",
280 "link": null
281 },
282 {
283 "name": "width",
284 "type": "INT",
285 "widget": {
286 "name": "width"
287 },
288 "link": 552
289 },
290 {
291 "name": "height",
292 "type": "INT",
293 "widget": {
294 "name": "height"
295 },
296 "link": 553
297 }
298 ],
299 "outputs": [
300 {
301 "name": "IMAGE",
302 "type": "IMAGE",
303 "links": [
304 555
305 ]
306 },
307 {
308 "name": "width",
309 "type": "INT",
310 "links": null
311 },
312 {
313 "name": "height",
314 "type": "INT",
315 "links": null
316 },
317 {
318 "name": "mask",
319 "type": "MASK",
320 "links": null
321 }
322 ],
323 "properties": {
324 "Node name for S&R": "ImageResizeKJv2"
325 },
326 "widgets_values": [
327 512,
328 512,
329 "lanczos",
330 "stretch",
331 "0, 0, 0",
332 "center",
333 2,
334 "cpu"
335 ]
336 },
337 {
338 "id": 265,
339 "type": "GetImageSize",
340 "pos": [
341 -1460,
342 -170
343 ],
344 "size": [
345 230,
346 160
347 ],
348 "flags": {
349 "collapsed": true
350 },
351 "order": 5,
352 "mode": 0,
353 "inputs": [
354 {
355 "name": "image",
356 "type": "IMAGE",
357 "link": 551
358 }
359 ],
360 "outputs": [
361 {
362 "name": "width",
363 "type": "INT",
364 "links": [
365 552
366 ]
367 },
368 {
369 "name": "height",
370 "type": "INT",
371 "links": [
372 553
373 ]
374 },
375 {
376 "name": "batch_size",
377 "type": "INT",
378 "links": null
379 }
380 ],
381 "properties": {
382 "Node name for S&R": "GetImageSize"
383 },
384 "widgets_values": []
385 },
386 {
387 "id": 266,
388 "type": "SaveImage",
389 "pos": [
390 -1460.0006956050602,
391 29.999790337271747
392 ],
393 "size": [
394 710,
395 760
396 ],
397 "flags": [],
398 "order": 6,
399 "mode": 0,
400 "inputs": [
401 {
402 "name": "images",
403 "type": "IMAGE",
404 "link": 563
405 }
406 ],
407 "outputs": [],
408 "properties": [],
409 "widgets_values": [
410 "ComfyUI-outpainted"
411 ]
412 }
413 ],
414 "links": [
415 [
416 435,
417 130,
418 0,
419 224,
420 0,
421 "IMAGE"
422 ],
423 [
424 441,
425 224,
426 0,
427 226,
428 0,
429 "IMAGE"
430 ],
431 [
432 546,
433 224,
434 0,
435 263,
436 0,
437 "IMAGE"
438 ],
439 [
440 549,
441 263,
442 0,
443 262,
444 0,
445 "IMAGE"
446 ],
447 [
448 550,
449 224,
450 0,
451 264,
452 0,
453 "IMAGE"
454 ],
455 [
456 551,
457 263,
458 0,
459 265,
460 0,
461 "IMAGE"
462 ],
463 [
464 552,
465 265,
466 0,
467 264,
468 2,
469 "INT"
470 ],
471 [
472 553,
473 265,
474 1,
475 264,
476 3,
477 "INT"
478 ],
479 [
480 555,
481 264,
482 0,
483 262,
484 1,
485 "IMAGE"
486 ],
487 [
488 563,
489 263,
490 0,
491 266,
492 0,
493 "IMAGE"
494 ]
495 ],
496 "groups": [],
497 "definitions": {
498 "subgraphs": [
499 {
500 "id": "b26cc822-68bf-4fd0-b66f-bb3f99cd1443",
501 "version": 1,
502 "state": {
503 "lastGroupId": 4,
504 "lastNodeId": 272,
505 "lastLinkId": 576,
506 "lastRerouteId": 0
507 },
508 "revision": 0,
509 "config": [],
510 "name": "Image Extender",
511 "inputNode": {
512 "id": -10,
513 "bounding": [
514 -2390,
515 610,
516 120,
517 60
518 ]
519 },
520 "outputNode": {
521 "id": -20,
522 "bounding": [
523 580,
524 370,
525 120,
526 80
527 ]
528 },
529 "inputs": [
530 {
531 "id": "190e929c-5f4a-4ae7-8294-b948fcc0806d",
532 "name": "image",
533 "type": "IMAGE",
534 "linkIds": [
535 501
536 ],
537 "localized_name": "image",
538 "pos": [
539 -2290,
540 630
541 ]
542 }
543 ],
544 "outputs": [
545 {
546 "id": "df58d266-37ca-4c0a-a9bb-db0887941c34",
547 "name": "IMAGE",
548 "type": "IMAGE",
549 "linkIds": [
550 521
551 ],
552 "localized_name": "IMAGE",
553 "pos": [
554 600,
555 390
556 ]
557 },
558 {
559 "id": "844db080-9f93-4ca2-ab10-bb75acec9f2c",
560 "name": "MASK",
561 "type": "MASK",
562 "linkIds": [
563 522
564 ],
565 "pos": [
566 600,
567 410
568 ]
569 }
570 ],
571 "widgets": [],
572 "nodes": [
573 {
574 "id": 228,
575 "type": "MarkdownNote",
576 "pos": [
577 -1960.000257577006,
578 649.9998790484699
579 ],
580 "size": [
581 260,
582 330.875
583 ],
584 "flags": [],
585 "order": 0,
586 "mode": 0,
587 "inputs": [],
588 "outputs": [],
589 "title": "Position Control",
590 "properties": [],
591 "widgets_values": [
592 "## Position\n\n`top_or_left_whitespace_pct` (0–100) biases the input on the slack axis.\n\n- 0 = flush top/left\n- 50 = centered (default)\n- 100 = flush bottom/right\n\nThe active axis is whichever has slack after fitting the input into the target aspect ratio."
593 ],
594 "color": "#222",
595 "bgcolor": "#000"
596 },
597 {
598 "id": 191,
599 "type": "FluxResolutionNode",
600 "pos": [
601 -2100.0002726502757,
602 99.99996903164777
603 ],
604 "size": [
605 400,
606 320
607 ],
608 "flags": [],
609 "order": 1,
610 "mode": 0,
611 "inputs": [],
612 "outputs": [
613 {
614 "localized_name": "width",
615 "name": "width",
616 "type": "INT",
617 "links": [
618 502,
619 504,
620 505
621 ]
622 },
623 {
624 "localized_name": "height",
625 "name": "height",
626 "type": "INT",
627 "links": [
628 503,
629 506,
630 507
631 ]
632 },
633 {
634 "localized_name": "resolution",
635 "name": "resolution",
636 "type": "STRING",
637 "links": []
638 },
639 {
640 "localized_name": "preview",
641 "name": "preview",
642 "type": "IMAGE",
643 "links": []
644 }
645 ],
646 "properties": {
647 "Node name for S&R": "FluxResolutionNode",
648 "cnr_id": "controlaltai-nodes",
649 "ver": "1.1.1",
650 "enableTabs": false,
651 "hasSecondTab": false,
652 "secondTabOffset": 80,
653 "secondTabText": "Send Back",
654 "secondTabWidth": 65,
655 "tabWidth": 65,
656 "tabXOffset": 10,
657 "widget_ue_connectable": []
658 },
659 "widgets_values": [
660 "2.1",
661 "32:9 (Extreme Ultrawide)",
662 "8",
663 false,
664 "1:1"
665 ]
666 },
667 {
668 "id": 240,
669 "type": "PrimitiveInt",
670 "pos": [
671 -2100.0002726502757,
672 489.999943203473
673 ],
674 "size": [
675 400,
676 104
677 ],
678 "flags": [],
679 "order": 2,
680 "mode": 0,
681 "inputs": [
682 {
683 "label": "top_or_left_outpaint_pct",
684 "localized_name": "value",
685 "name": "value",
686 "type": "INT",
687 "widget": {
688 "name": "value"
689 },
690 "link": null
691 }
692 ],
693 "outputs": [
694 {
695 "localized_name": "INT",
696 "name": "INT",
697 "type": "INT",
698 "links": [
699 512,
700 513,
701 514,
702 515
703 ]
704 }
705 ],
706 "title": "top_or_left_outpaint_pct",
707 "properties": {
708 "Node name for S&R": "PrimitiveInt"
709 },
710 "widgets_values": [
711 50,
712 "fixed"
713 ]
714 },
715 {
716 "id": 241,
717 "type": "ImageResize+",
718 "pos": [
719 -1620.000275224892,
720 199.99995267107
721 ],
722 "size": [
723 320,
724 320
725 ],
726 "flags": [],
727 "order": 4,
728 "mode": 0,
729 "inputs": [
730 {
731 "localized_name": "image",
732 "name": "image",
733 "type": "IMAGE",
734 "link": 501
735 },
736 {
737 "localized_name": "width",
738 "name": "width",
739 "type": "INT",
740 "widget": {
741 "name": "width"
742 },
743 "link": 502
744 },
745 {
746 "localized_name": "height",
747 "name": "height",
748 "type": "INT",
749 "widget": {
750 "name": "height"
751 },
752 "link": 503
753 }
754 ],
755 "outputs": [
756 {
757 "localized_name": "IMAGE",
758 "name": "IMAGE",
759 "type": "IMAGE",
760 "links": [
761 516
762 ]
763 },
764 {
765 "localized_name": "width",
766 "name": "width",
767 "type": "INT",
768 "links": [
769 508,
770 509
771 ]
772 },
773 {
774 "localized_name": "height",
775 "name": "height",
776 "type": "INT",
777 "links": [
778 510,
779 511
780 ]
781 }
782 ],
783 "properties": {
784 "Node name for S&R": "ImageResize+",
785 "cnr_id": "comfyui_essentials"
786 },
787 "widgets_values": [
788 512,
789 512,
790 "lanczos",
791 "keep proportion",
792 "always",
793 0
794 ]
795 },
796 {
797 "id": 242,
798 "type": "ComfyMathExpression",
799 "pos": [
800 -1200.0003249502797,
801 9.99994577808934
802 ],
803 "size": [
804 320,
805 212
806 ],
807 "flags": [],
808 "order": 5,
809 "mode": 0,
810 "inputs": [
811 {
812 "label": "a",
813 "localized_name": "values.a",
814 "name": "values.a",
815 "type": "FLOAT,INT",
816 "link": 504
817 },
818 {
819 "label": "b",
820 "localized_name": "values.b",
821 "name": "values.b",
822 "shape": 7,
823 "type": "FLOAT,INT",
824 "link": 508
825 },
826 {
827 "label": "c",
828 "localized_name": "values.c",
829 "name": "values.c",
830 "shape": 7,
831 "type": "FLOAT,INT",
832 "link": 512
833 },
834 {
835 "label": "d",
836 "localized_name": "values.d",
837 "name": "values.d",
838 "shape": 7,
839 "type": "FLOAT,INT",
840 "link": null
841 }
842 ],
843 "outputs": [
844 {
845 "localized_name": "FLOAT",
846 "name": "FLOAT",
847 "type": "FLOAT",
848 "links": []
849 },
850 {
851 "localized_name": "INT",
852 "name": "INT",
853 "type": "INT",
854 "links": [
855 517
856 ]
857 }
858 ],
859 "title": "pad_left",
860 "properties": {
861 "Node name for S&R": "ComfyMathExpression",
862 "cnr_id": "comfy-core"
863 },
864 "widgets_values": [
865 "floor((a - b) * (c / 100))"
866 ]
867 },
868 {
869 "id": 243,
870 "type": "ComfyMathExpression",
871 "pos": [
872 -1200.0003249502797,
873 259.999952349243
874 ],
875 "size": [
876 320,
877 212
878 ],
879 "flags": [],
880 "order": 6,
881 "mode": 0,
882 "inputs": [
883 {
884 "label": "a",
885 "localized_name": "values.a",
886 "name": "values.a",
887 "type": "FLOAT,INT",
888 "link": 505
889 },
890 {
891 "label": "b",
892 "localized_name": "values.b",
893 "name": "values.b",
894 "shape": 7,
895 "type": "FLOAT,INT",
896 "link": 509
897 },
898 {
899 "label": "c",
900 "localized_name": "values.c",
901 "name": "values.c",
902 "shape": 7,
903 "type": "FLOAT,INT",
904 "link": 513
905 },
906 {
907 "label": "d",
908 "localized_name": "values.d",
909 "name": "values.d",
910 "shape": 7,
911 "type": "FLOAT,INT",
912 "link": null
913 }
914 ],
915 "outputs": [
916 {
917 "localized_name": "FLOAT",
918 "name": "FLOAT",
919 "type": "FLOAT",
920 "links": []
921 },
922 {
923 "localized_name": "INT",
924 "name": "INT",
925 "type": "INT",
926 "links": [
927 519
928 ]
929 }
930 ],
931 "title": "pad_right",
932 "properties": {
933 "Node name for S&R": "ComfyMathExpression",
934 "cnr_id": "comfy-core"
935 },
936 "widgets_values": [
937 "(a - b) - floor((a - b) * (c / 100))"
938 ]
939 },
940 {
941 "id": 244,
942 "type": "ComfyMathExpression",
943 "pos": [
944 -1200.0003249502797,
945 519.9998718336622
946 ],
947 "size": [
948 320,
949 212
950 ],
951 "flags": [],
952 "order": 7,
953 "mode": 0,
954 "inputs": [
955 {
956 "label": "a",
957 "localized_name": "values.a",
958 "name": "values.a",
959 "type": "FLOAT,INT",
960 "link": 506
961 },
962 {
963 "label": "b",
964 "localized_name": "values.b",
965 "name": "values.b",
966 "shape": 7,
967 "type": "FLOAT,INT",
968 "link": 510
969 },
970 {
971 "label": "c",
972 "localized_name": "values.c",
973 "name": "values.c",
974 "shape": 7,
975 "type": "FLOAT,INT",
976 "link": 514
977 },
978 {
979 "label": "d",
980 "localized_name": "values.d",
981 "name": "values.d",
982 "shape": 7,
983 "type": "FLOAT,INT",
984 "link": null
985 }
986 ],
987 "outputs": [
988 {
989 "localized_name": "FLOAT",
990 "name": "FLOAT",
991 "type": "FLOAT",
992 "links": []
993 },
994 {
995 "localized_name": "INT",
996 "name": "INT",
997 "type": "INT",
998 "links": [
999 518
1000 ]
1001 }
1002 ],
1003 "title": "pad_top",
1004 "properties": {
1005 "Node name for S&R": "ComfyMathExpression",
1006 "cnr_id": "comfy-core"
1007 },
1008 "widgets_values": [
1009 "floor((a - b) * (c / 100))"
1010 ]
1011 },
1012 {
1013 "id": 245,
1014 "type": "ComfyMathExpression",
1015 "pos": [
1016 -1200.0003249502797,
1017 769.999878404816
1018 ],
1019 "size": [
1020 320,
1021 212
1022 ],
1023 "flags": [],
1024 "order": 8,
1025 "mode": 0,
1026 "inputs": [
1027 {
1028 "label": "a",
1029 "localized_name": "values.a",
1030 "name": "values.a",
1031 "type": "FLOAT,INT",
1032 "link": 507
1033 },
1034 {
1035 "label": "b",
1036 "localized_name": "values.b",
1037 "name": "values.b",
1038 "shape": 7,
1039 "type": "FLOAT,INT",
1040 "link": 511
1041 },
1042 {
1043 "label": "c",
1044 "localized_name": "values.c",
1045 "name": "values.c",
1046 "shape": 7,
1047 "type": "FLOAT,INT",
1048 "link": 515
1049 },
1050 {
1051 "label": "d",
1052 "localized_name": "values.d",
1053 "name": "values.d",
1054 "shape": 7,
1055 "type": "FLOAT,INT",
1056 "link": null
1057 }
1058 ],
1059 "outputs": [
1060 {
1061 "localized_name": "FLOAT",
1062 "name": "FLOAT",
1063 "type": "FLOAT",
1064 "links": []
1065 },
1066 {
1067 "localized_name": "INT",
1068 "name": "INT",
1069 "type": "INT",
1070 "links": [
1071 520
1072 ]
1073 }
1074 ],
1075 "title": "pad_bottom",
1076 "properties": {
1077 "Node name for S&R": "ComfyMathExpression",
1078 "cnr_id": "comfy-core"
1079 },
1080 "widgets_values": [
1081 "(a - b) - floor((a - b) * (c / 100))"
1082 ]
1083 },
1084 {
1085 "id": 246,
1086 "type": "ImagePadForOutpaint",
1087 "pos": [
1088 -840.000421826438,
1089 199.99995267107
1090 ],
1091 "size": [
1092 320,
1093 224
1094 ],
1095 "flags": [],
1096 "order": 9,
1097 "mode": 0,
1098 "inputs": [
1099 {
1100 "localized_name": "image",
1101 "name": "image",
1102 "type": "IMAGE",
1103 "link": 516
1104 },
1105 {
1106 "localized_name": "left",
1107 "name": "left",
1108 "type": "INT",
1109 "widget": {
1110 "name": "left"
1111 },
1112 "link": 517
1113 },
1114 {
1115 "localized_name": "top",
1116 "name": "top",
1117 "type": "INT",
1118 "widget": {
1119 "name": "top"
1120 },
1121 "link": 518
1122 },
1123 {
1124 "localized_name": "right",
1125 "name": "right",
1126 "type": "INT",
1127 "widget": {
1128 "name": "right"
1129 },
1130 "link": 519
1131 },
1132 {
1133 "localized_name": "bottom",
1134 "name": "bottom",
1135 "type": "INT",
1136 "widget": {
1137 "name": "bottom"
1138 },
1139 "link": 520
1140 }
1141 ],
1142 "outputs": [
1143 {
1144 "localized_name": "IMAGE",
1145 "name": "IMAGE",
1146 "type": "IMAGE",
1147 "links": [
1148 523,
1149 526
1150 ]
1151 },
1152 {
1153 "localized_name": "MASK",
1154 "name": "MASK",
1155 "type": "MASK",
1156 "links": [
1157 522,
1158 528
1159 ]
1160 }
1161 ],
1162 "properties": {
1163 "Node name for S&R": "ImagePadForOutpaint",
1164 "cnr_id": "comfy-core"
1165 },
1166 "widgets_values": [
1167 0,
1168 0,
1169 0,
1170 0,
1171 0
1172 ]
1173 },
1174 {
1175 "id": 247,
1176 "type": "GetImageSize",
1177 "pos": [
1178 -460.00050298567294,
1179 449.99991176962556
1180 ],
1181 "size": [
1182 230,
1183 120
1184 ],
1185 "flags": [],
1186 "order": 10,
1187 "mode": 0,
1188 "inputs": [
1189 {
1190 "localized_name": "image",
1191 "name": "image",
1192 "type": "IMAGE",
1193 "link": 523
1194 }
1195 ],
1196 "outputs": [
1197 {
1198 "localized_name": "width",
1199 "name": "width",
1200 "type": "INT",
1201 "links": [
1202 524
1203 ]
1204 },
1205 {
1206 "localized_name": "height",
1207 "name": "height",
1208 "type": "INT",
1209 "links": [
1210 525
1211 ]
1212 },
1213 {
1214 "localized_name": "batch_size",
1215 "name": "batch_size",
1216 "type": "INT",
1217 "links": null
1218 }
1219 ],
1220 "properties": {
1221 "Node name for S&R": "GetImageSize",
1222 "cnr_id": "comfy-core"
1223 },
1224 "widgets_values": []
1225 },
1226 {
1227 "id": 248,
1228 "type": "EmptyImage",
1229 "pos": [
1230 -150.00044926374812,
1231 419.99988819424004
1232 ],
1233 "size": [
1234 280,
1235 200
1236 ],
1237 "flags": [],
1238 "order": 11,
1239 "mode": 0,
1240 "inputs": [
1241 {
1242 "localized_name": "width",
1243 "name": "width",
1244 "type": "INT",
1245 "widget": {
1246 "name": "width"
1247 },
1248 "link": 524
1249 },
1250 {
1251 "localized_name": "height",
1252 "name": "height",
1253 "type": "INT",
1254 "widget": {
1255 "name": "height"
1256 },
1257 "link": 525
1258 }
1259 ],
1260 "outputs": [
1261 {
1262 "localized_name": "IMAGE",
1263 "name": "IMAGE",
1264 "type": "IMAGE",
1265 "links": [
1266 527
1267 ]
1268 }
1269 ],
1270 "properties": {
1271 "Node name for S&R": "EmptyImage",
1272 "cnr_id": "comfy-core"
1273 },
1274 "widgets_values": [
1275 512,
1276 512,
1277 1,
1278 65280
1279 ]
1280 },
1281 {
1282 "id": 249,
1283 "type": "ImageCompositeMasked",
1284 "pos": [
1285 189.99943814316975,
1286 239.9999366323193
1287 ],
1288 "size": [
1289 260,
1290 212
1291 ],
1292 "flags": [],
1293 "order": 12,
1294 "mode": 0,
1295 "inputs": [
1296 {
1297 "localized_name": "destination",
1298 "name": "destination",
1299 "type": "IMAGE",
1300 "link": 526
1301 },
1302 {
1303 "localized_name": "source",
1304 "name": "source",
1305 "type": "IMAGE",
1306 "link": 527
1307 },
1308 {
1309 "localized_name": "mask",
1310 "name": "mask",
1311 "shape": 7,
1312 "type": "MASK",
1313 "link": 528
1314 }
1315 ],
1316 "outputs": [
1317 {
1318 "localized_name": "IMAGE",
1319 "name": "IMAGE",
1320 "type": "IMAGE",
1321 "links": [
1322 521
1323 ]
1324 }
1325 ],
1326 "properties": {
1327 "Node name for S&R": "ImageCompositeMasked",
1328 "cnr_id": "comfy-core"
1329 },
1330 "widgets_values": [
1331 0,
1332 0,
1333 false
1334 ]
1335 },
1336 {
1337 "id": 254,
1338 "type": "MarkdownNote",
1339 "pos": [
1340 -150,
1341 680
1342 ],
1343 "size": [
1344 280,
1345 429.078125
1346 ],
1347 "flags": [],
1348 "order": 3,
1349 "mode": 0,
1350 "inputs": [],
1351 "outputs": [],
1352 "title": "EmptyImage Color",
1353 "properties": [],
1354 "widgets_values": [
1355 "# `0xRRGGBB` packed as one int \n \n `65280` = `0x00FF00` = pure green. Same as HTML hex, just decimal. \n \n | Color | Hex | Int | \n |---|---|---| \n | Black | `0x000000` | `0` | \n | White | `0xFFFFFF` | `16777215` | \n | Red | `0xFF0000` | `16711680` | \n | Green | `0x00FF00` | `65280` |\n | Blue | `0x0000FF` | `255` | \n "
1356 ],
1357 "color": "#222",
1358 "bgcolor": "#000"
1359 }
1360 ],
1361 "groups": [],
1362 "links": [
1363 {
1364 "id": 501,
1365 "origin_id": -10,
1366 "origin_slot": 0,
1367 "target_id": 241,
1368 "target_slot": 0,
1369 "type": "IMAGE"
1370 },
1371 {
1372 "id": 502,
1373 "origin_id": 191,
1374 "origin_slot": 0,
1375 "target_id": 241,
1376 "target_slot": 1,
1377 "type": "INT"
1378 },
1379 {
1380 "id": 503,
1381 "origin_id": 191,
1382 "origin_slot": 1,
1383 "target_id": 241,
1384 "target_slot": 2,
1385 "type": "INT"
1386 },
1387 {
1388 "id": 504,
1389 "origin_id": 191,
1390 "origin_slot": 0,
1391 "target_id": 242,
1392 "target_slot": 0,
1393 "type": "INT"
1394 },
1395 {
1396 "id": 505,
1397 "origin_id": 191,
1398 "origin_slot": 0,
1399 "target_id": 243,
1400 "target_slot": 0,
1401 "type": "INT"
1402 },
1403 {
1404 "id": 506,
1405 "origin_id": 191,
1406 "origin_slot": 1,
1407 "target_id": 244,
1408 "target_slot": 0,
1409 "type": "INT"
1410 },
1411 {
1412 "id": 507,
1413 "origin_id": 191,
1414 "origin_slot": 1,
1415 "target_id": 245,
1416 "target_slot": 0,
1417 "type": "INT"
1418 },
1419 {
1420 "id": 508,
1421 "origin_id": 241,
1422 "origin_slot": 1,
1423 "target_id": 242,
1424 "target_slot": 1,
1425 "type": "INT"
1426 },
1427 {
1428 "id": 509,
1429 "origin_id": 241,
1430 "origin_slot": 1,
1431 "target_id": 243,
1432 "target_slot": 1,
1433 "type": "INT"
1434 },
1435 {
1436 "id": 510,
1437 "origin_id": 241,
1438 "origin_slot": 2,
1439 "target_id": 244,
1440 "target_slot": 1,
1441 "type": "INT"
1442 },
1443 {
1444 "id": 511,
1445 "origin_id": 241,
1446 "origin_slot": 2,
1447 "target_id": 245,
1448 "target_slot": 1,
1449 "type": "INT"
1450 },
1451 {
1452 "id": 512,
1453 "origin_id": 240,
1454 "origin_slot": 0,
1455 "target_id": 242,
1456 "target_slot": 2,
1457 "type": "INT"
1458 },
1459 {
1460 "id": 513,
1461 "origin_id": 240,
1462 "origin_slot": 0,
1463 "target_id": 243,
1464 "target_slot": 2,
1465 "type": "INT"
1466 },
1467 {
1468 "id": 514,
1469 "origin_id": 240,
1470 "origin_slot": 0,
1471 "target_id": 244,
1472 "target_slot": 2,
1473 "type": "INT"
1474 },
1475 {
1476 "id": 515,
1477 "origin_id": 240,
1478 "origin_slot": 0,
1479 "target_id": 245,
1480 "target_slot": 2,
1481 "type": "INT"
1482 },
1483 {
1484 "id": 516,
1485 "origin_id": 241,
1486 "origin_slot": 0,
1487 "target_id": 246,
1488 "target_slot": 0,
1489 "type": "IMAGE"
1490 },
1491 {
1492 "id": 517,
1493 "origin_id": 242,
1494 "origin_slot": 1,
1495 "target_id": 246,
1496 "target_slot": 1,
1497 "type": "INT"
1498 },
1499 {
1500 "id": 518,
1501 "origin_id": 244,
1502 "origin_slot": 1,
1503 "target_id": 246,
1504 "target_slot": 2,
1505 "type": "INT"
1506 },
1507 {
1508 "id": 519,
1509 "origin_id": 243,
1510 "origin_slot": 1,
1511 "target_id": 246,
1512 "target_slot": 3,
1513 "type": "INT"
1514 },
1515 {
1516 "id": 520,
1517 "origin_id": 245,
1518 "origin_slot": 1,
1519 "target_id": 246,
1520 "target_slot": 4,
1521 "type": "INT"
1522 },
1523 {
1524 "id": 521,
1525 "origin_id": 249,
1526 "origin_slot": 0,
1527 "target_id": -20,
1528 "target_slot": 0,
1529 "type": "IMAGE"
1530 },
1531 {
1532 "id": 522,
1533 "origin_id": 246,
1534 "origin_slot": 1,
1535 "target_id": -20,
1536 "target_slot": 1,
1537 "type": "MASK"
1538 },
1539 {
1540 "id": 523,
1541 "origin_id": 246,
1542 "origin_slot": 0,
1543 "target_id": 247,
1544 "target_slot": 0,
1545 "type": "IMAGE"
1546 },
1547 {
1548 "id": 524,
1549 "origin_id": 247,
1550 "origin_slot": 0,
1551 "target_id": 248,
1552 "target_slot": 0,
1553 "type": "INT"
1554 },
1555 {
1556 "id": 525,
1557 "origin_id": 247,
1558 "origin_slot": 1,
1559 "target_id": 248,
1560 "target_slot": 1,
1561 "type": "INT"
1562 },
1563 {
1564 "id": 526,
1565 "origin_id": 246,
1566 "origin_slot": 0,
1567 "target_id": 249,
1568 "target_slot": 0,
1569 "type": "IMAGE"
1570 },
1571 {
1572 "id": 527,
1573 "origin_id": 248,
1574 "origin_slot": 0,
1575 "target_id": 249,
1576 "target_slot": 1,
1577 "type": "IMAGE"
1578 },
1579 {
1580 "id": 528,
1581 "origin_id": 246,
1582 "origin_slot": 1,
1583 "target_id": 249,
1584 "target_slot": 2,
1585 "type": "MASK"
1586 }
1587 ],
1588 "extra": {
1589 "workflowRendererVersion": "LG"
1590 }
1591 }
1592 ]
1593 },
1594 "config": [],
1595 "extra": {
1596 "ds": {
1597 "scale": 0.3240468526447993,
1598 "offset": [
1599 4645.011741576413,
1600 1062.869176262204
1601 ]
1602 },
1603 "frontendVersion": "1.42.6",
1604 "workflowRendererVersion": "LG",
1605 "linearMode": false,
1606 "linearData": {
1607 "inputs": [
1608 [
1609 "130",
1610 "image"
1611 ],
1612 [
1613 "191",
1614 "aspect_ratio"
1615 ],
1616 [
1617 "240",
1618 "value"
1619 ],
1620 [
1621 "263",
1622 "prompt"
1623 ],
1624 [
1625 "263",
1626 "resolution"
1627 ],
1628 [
1629 "263",
1630 "seed"
1631 ]
1632 ],
1633 "outputs": [
1634 "226",
1635 "266"
1636 ]
1637 },
1638 "0246.VERSION": [
1639 0,
1640 0,
1641 4
1642 ],
1643 "VHS_KeepIntermediate": true,
1644 "VHS_MetadataImage": true,
1645 "VHS_latentpreview": false,
1646 "VHS_latentpreviewrate": 0,
1647 "links_added_by_ue": [],
1648 "ue_links": [],
1649 "workspace_info": {
1650 "cloudID": null,
1651 "coverMediaPath": null,
1652 "id": "sSr80zkRsolLQHBh3oFSe",
1653 "saveLock": false
1654 }
1655 },
1656 "version": 0.4
1657}