{
  "config": {},
  "definitions": {
    "subgraphs": [
      {
        "config": {},
        "extra": {
          "workflowRendererVersion": "Vue-corrected"
        },
        "groups": [],
        "id": "68c58c16-e698-45a4-97f9-54ae8eb9dee9",
        "inputNode": {
          "bounding": [
            1070,
            360,
            100,
            50
          ],
          "id": -10
        },
        "inputs": [
          {
            "id": "eb15a6da-be18-49ea-81f2-dba4711d5c28",
            "linkIds": [
              27,
              294,
              298,
              308,
              309
            ],
            "localized_name": "image",
            "name": "image",
            "pos": [
              1380,
              450
            ],
            "type": "IMAGE"
          }
        ],
        "links": [
          {
            "id": 25,
            "origin_id": 17,
            "origin_slot": 1,
            "target_id": 226,
            "target_slot": 0,
            "type": "INT,FLOAT"
          },
          {
            "id": 19,
            "origin_id": 226,
            "origin_slot": 0,
            "target_id": 87,
            "target_slot": 0,
            "type": "INT,FLOAT"
          },
          {
            "id": 23,
            "origin_id": 17,
            "origin_slot": 0,
            "target_id": 83,
            "target_slot": 0,
            "type": "INT,FLOAT"
          },
          {
            "id": 27,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 17,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 294,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 264,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 295,
            "origin_id": 83,
            "origin_slot": 0,
            "target_id": 264,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 296,
            "origin_id": 226,
            "origin_slot": 0,
            "target_id": 264,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 298,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 265,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 299,
            "origin_id": 83,
            "origin_slot": 0,
            "target_id": 265,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 300,
            "origin_id": 226,
            "origin_slot": 0,
            "target_id": 265,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 301,
            "origin_id": 83,
            "origin_slot": 0,
            "target_id": 265,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 302,
            "origin_id": 83,
            "origin_slot": 0,
            "target_id": 268,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 303,
            "origin_id": 226,
            "origin_slot": 0,
            "target_id": 268,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 304,
            "origin_id": 83,
            "origin_slot": 0,
            "target_id": 269,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 305,
            "origin_id": 226,
            "origin_slot": 0,
            "target_id": 269,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 306,
            "origin_id": 83,
            "origin_slot": 0,
            "target_id": 269,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 307,
            "origin_id": 87,
            "origin_slot": 0,
            "target_id": 268,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 308,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 268,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 309,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 269,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 310,
            "origin_id": 87,
            "origin_slot": 0,
            "target_id": 269,
            "target_slot": 4,
            "type": "INT"
          },
          {
            "id": 311,
            "origin_id": 269,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 3,
            "type": "IMAGE"
          },
          {
            "id": 312,
            "origin_id": 268,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 2,
            "type": "IMAGE"
          },
          {
            "id": 313,
            "origin_id": 265,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 314,
            "origin_id": 264,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "IMAGE"
          }
        ],
        "name": "Crop Images",
        "nodes": [
          {
            "flags": {},
            "id": 226,
            "inputs": [
              {
                "link": 25,
                "localized_name": "a",
                "name": "a",
                "shape": 7,
                "type": "INT,FLOAT"
              },
              {
                "link": null,
                "localized_name": "b",
                "name": "b",
                "shape": 7,
                "type": "INT,FLOAT"
              }
            ],
            "mode": 0,
            "order": 3,
            "outputs": [
              {
                "links": [
                  19,
                  296,
                  300,
                  303,
                  305
                ],
                "localized_name": "INT",
                "name": "INT",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "FLOAT",
                "name": "FLOAT",
                "type": "FLOAT"
              }
            ],
            "pos": [
              1520,
              50
            ],
            "properties": {
              "Node name for S&R": "SimpleMath+",
              "cnr_id": "comfyui_essentials",
              "ver": "1.1.0"
            },
            "size": [
              280,
              120
            ],
            "title": "HEIGHT",
            "type": "SimpleMath+",
            "widgets_values": [
              "a / 2"
            ]
          },
          {
            "flags": {},
            "id": 83,
            "inputs": [
              {
                "link": 23,
                "localized_name": "a",
                "name": "a",
                "shape": 7,
                "type": "INT,FLOAT"
              },
              {
                "link": null,
                "localized_name": "b",
                "name": "b",
                "shape": 7,
                "type": "INT,FLOAT"
              }
            ],
            "mode": 0,
            "order": 1,
            "outputs": [
              {
                "links": [
                  295,
                  299,
                  301,
                  302,
                  304,
                  306
                ],
                "localized_name": "INT",
                "name": "INT",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "FLOAT",
                "name": "FLOAT",
                "type": "FLOAT"
              }
            ],
            "pos": [
              1520,
              -130
            ],
            "properties": {
              "Node name for S&R": "SimpleMath+",
              "cnr_id": "comfyui_essentials",
              "ver": "1.1.0"
            },
            "size": [
              280,
              120
            ],
            "title": "WIDTH",
            "type": "SimpleMath+",
            "widgets_values": [
              "a / 2"
            ]
          },
          {
            "flags": {
              "collapsed": false
            },
            "id": 17,
            "inputs": [
              {
                "link": 27,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              }
            ],
            "mode": 0,
            "order": 0,
            "outputs": [
              {
                "links": [
                  23
                ],
                "localized_name": "width",
                "name": "width",
                "type": "INT"
              },
              {
                "links": [
                  25
                ],
                "localized_name": "height",
                "name": "height",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "batch_size",
                "name": "batch_size",
                "type": "INT"
              }
            ],
            "pos": [
              1270,
              -130
            ],
            "properties": {
              "Node name for S&R": "GetImageSize",
              "cnr_id": "comfy-core",
              "ver": "0.3.71"
            },
            "size": [
              200,
              90
            ],
            "type": "GetImageSize",
            "widgets_values": []
          },
          {
            "flags": {},
            "id": 87,
            "inputs": [
              {
                "link": 19,
                "localized_name": "a",
                "name": "a",
                "shape": 7,
                "type": "INT,FLOAT"
              },
              {
                "link": null,
                "localized_name": "b",
                "name": "b",
                "shape": 7,
                "type": "INT,FLOAT"
              }
            ],
            "mode": 0,
            "order": 2,
            "outputs": [
              {
                "links": [
                  307,
                  310
                ],
                "localized_name": "INT",
                "name": "INT",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "FLOAT",
                "name": "FLOAT",
                "type": "FLOAT"
              }
            ],
            "pos": [
              1650,
              520
            ],
            "properties": {
              "Node name for S&R": "SimpleMath+",
              "cnr_id": "comfyui_essentials",
              "ver": "1.1.0"
            },
            "size": [
              220,
              120
            ],
            "title": "Row 2 - Y val",
            "type": "SimpleMath+",
            "widgets_values": [
              "a + (b/2)"
            ]
          },
          {
            "flags": {},
            "id": 264,
            "inputs": [
              {
                "link": 294,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 295,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 296,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              }
            ],
            "mode": 0,
            "order": 4,
            "outputs": [
              {
                "links": [
                  314
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              1970,
              210
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 1",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          },
          {
            "flags": {},
            "id": 265,
            "inputs": [
              {
                "link": 298,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 299,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 300,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              },
              {
                "link": 301,
                "localized_name": "x_offset",
                "name": "x_offset",
                "type": "INT",
                "widget": {
                  "name": "x_offset"
                }
              }
            ],
            "mode": 0,
            "order": 5,
            "outputs": [
              {
                "links": [
                  313
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              2310,
              210
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 2",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          },
          {
            "flags": {},
            "id": 268,
            "inputs": [
              {
                "link": 308,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 302,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 303,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              },
              {
                "link": 307,
                "localized_name": "y_offset",
                "name": "y_offset",
                "type": "INT",
                "widget": {
                  "name": "y_offset"
                }
              }
            ],
            "mode": 0,
            "order": 6,
            "outputs": [
              {
                "links": [
                  312
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              1980,
              520
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 3",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          },
          {
            "flags": {},
            "id": 269,
            "inputs": [
              {
                "link": 309,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 304,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 305,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              },
              {
                "link": 306,
                "localized_name": "x_offset",
                "name": "x_offset",
                "type": "INT",
                "widget": {
                  "name": "x_offset"
                }
              },
              {
                "link": 310,
                "localized_name": "y_offset",
                "name": "y_offset",
                "type": "INT",
                "widget": {
                  "name": "y_offset"
                }
              }
            ],
            "mode": 0,
            "order": 7,
            "outputs": [
              {
                "links": [
                  311
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              2320,
              530
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 4",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          }
        ],
        "outputNode": {
          "bounding": [
            2870,
            310,
            100,
            100
          ],
          "id": -20
        },
        "outputs": [
          {
            "id": "8ec6c1d4-c30e-4d27-9afc-d53cb8950a80",
            "label": "IMAGE_1",
            "linkIds": [
              314
            ],
            "name": "IMAGE",
            "pos": [
              3470,
              390
            ],
            "type": "IMAGE"
          },
          {
            "id": "b5bfbdce-26ef-489c-8851-c100001380a0",
            "label": "IMAGE_2",
            "linkIds": [
              313
            ],
            "name": "IMAGE_1",
            "pos": [
              3470,
              410
            ],
            "type": "IMAGE"
          },
          {
            "id": "ae6073b1-db37-4141-88fa-6cf4ba5dce26",
            "label": "IMAGE_3",
            "linkIds": [
              312
            ],
            "name": "IMAGE_2",
            "pos": [
              3470,
              430
            ],
            "type": "IMAGE"
          },
          {
            "id": "404edd1c-fa1b-4e9f-bb64-a05a8b3ddcee",
            "label": "IMAGE_4",
            "linkIds": [
              311
            ],
            "name": "IMAGE_3",
            "pos": [
              3470,
              450
            ],
            "type": "IMAGE"
          }
        ],
        "revision": 0,
        "state": {
          "lastGroupId": 0,
          "lastLinkId": 321,
          "lastNodeId": 279,
          "lastRerouteId": 0
        },
        "version": 1,
        "widgets": []
      },
      {
        "config": {},
        "extra": {
          "workflowRendererVersion": "Vue-corrected"
        },
        "groups": [],
        "id": "487baed2-dc27-49c3-a6b2-0bf45a53e64d",
        "inputNode": {
          "bounding": [
            1070,
            360,
            100,
            50
          ],
          "id": -10
        },
        "inputs": [
          {
            "id": "eb15a6da-be18-49ea-81f2-dba4711d5c28",
            "linkIds": [
              27,
              294,
              298,
              308,
              309
            ],
            "localized_name": "image",
            "name": "image",
            "pos": [
              1380,
              450
            ],
            "type": "IMAGE"
          }
        ],
        "links": [
          {
            "id": 25,
            "origin_id": 272,
            "origin_slot": 1,
            "target_id": 270,
            "target_slot": 0,
            "type": "INT,FLOAT"
          },
          {
            "id": 19,
            "origin_id": 270,
            "origin_slot": 0,
            "target_id": 273,
            "target_slot": 0,
            "type": "INT,FLOAT"
          },
          {
            "id": 23,
            "origin_id": 272,
            "origin_slot": 0,
            "target_id": 271,
            "target_slot": 0,
            "type": "INT,FLOAT"
          },
          {
            "id": 27,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 272,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 294,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 274,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 295,
            "origin_id": 271,
            "origin_slot": 0,
            "target_id": 274,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 296,
            "origin_id": 270,
            "origin_slot": 0,
            "target_id": 274,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 298,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 275,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 299,
            "origin_id": 271,
            "origin_slot": 0,
            "target_id": 275,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 300,
            "origin_id": 270,
            "origin_slot": 0,
            "target_id": 275,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 301,
            "origin_id": 271,
            "origin_slot": 0,
            "target_id": 275,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 302,
            "origin_id": 271,
            "origin_slot": 0,
            "target_id": 276,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 303,
            "origin_id": 270,
            "origin_slot": 0,
            "target_id": 276,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 304,
            "origin_id": 271,
            "origin_slot": 0,
            "target_id": 277,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 305,
            "origin_id": 270,
            "origin_slot": 0,
            "target_id": 277,
            "target_slot": 2,
            "type": "INT"
          },
          {
            "id": 306,
            "origin_id": 271,
            "origin_slot": 0,
            "target_id": 277,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 307,
            "origin_id": 273,
            "origin_slot": 0,
            "target_id": 276,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 308,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 276,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 309,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 277,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 310,
            "origin_id": 273,
            "origin_slot": 0,
            "target_id": 277,
            "target_slot": 4,
            "type": "INT"
          },
          {
            "id": 311,
            "origin_id": 277,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 3,
            "type": "IMAGE"
          },
          {
            "id": 312,
            "origin_id": 276,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 2,
            "type": "IMAGE"
          },
          {
            "id": 313,
            "origin_id": 275,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 314,
            "origin_id": 274,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "IMAGE"
          }
        ],
        "name": "Crop Images",
        "nodes": [
          {
            "flags": {},
            "id": 270,
            "inputs": [
              {
                "link": 25,
                "localized_name": "a",
                "name": "a",
                "shape": 7,
                "type": "INT,FLOAT"
              },
              {
                "link": null,
                "localized_name": "b",
                "name": "b",
                "shape": 7,
                "type": "INT,FLOAT"
              }
            ],
            "mode": 0,
            "order": 0,
            "outputs": [
              {
                "links": [
                  19,
                  296,
                  300,
                  303,
                  305
                ],
                "localized_name": "INT",
                "name": "INT",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "FLOAT",
                "name": "FLOAT",
                "type": "FLOAT"
              }
            ],
            "pos": [
              1520,
              50
            ],
            "properties": {
              "Node name for S&R": "SimpleMath+",
              "cnr_id": "comfyui_essentials",
              "ver": "1.1.0"
            },
            "size": [
              280,
              120
            ],
            "title": "HEIGHT",
            "type": "SimpleMath+",
            "widgets_values": [
              "a / 2"
            ]
          },
          {
            "flags": {},
            "id": 271,
            "inputs": [
              {
                "link": 23,
                "localized_name": "a",
                "name": "a",
                "shape": 7,
                "type": "INT,FLOAT"
              },
              {
                "link": null,
                "localized_name": "b",
                "name": "b",
                "shape": 7,
                "type": "INT,FLOAT"
              }
            ],
            "mode": 0,
            "order": 1,
            "outputs": [
              {
                "links": [
                  295,
                  299,
                  301,
                  302,
                  304,
                  306
                ],
                "localized_name": "INT",
                "name": "INT",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "FLOAT",
                "name": "FLOAT",
                "type": "FLOAT"
              }
            ],
            "pos": [
              1520,
              -130
            ],
            "properties": {
              "Node name for S&R": "SimpleMath+",
              "cnr_id": "comfyui_essentials",
              "ver": "1.1.0"
            },
            "size": [
              280,
              120
            ],
            "title": "WIDTH",
            "type": "SimpleMath+",
            "widgets_values": [
              "a / 2"
            ]
          },
          {
            "flags": {
              "collapsed": false
            },
            "id": 272,
            "inputs": [
              {
                "link": 27,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              }
            ],
            "mode": 0,
            "order": 2,
            "outputs": [
              {
                "links": [
                  23
                ],
                "localized_name": "width",
                "name": "width",
                "type": "INT"
              },
              {
                "links": [
                  25
                ],
                "localized_name": "height",
                "name": "height",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "batch_size",
                "name": "batch_size",
                "type": "INT"
              }
            ],
            "pos": [
              1270,
              -130
            ],
            "properties": {
              "Node name for S&R": "GetImageSize",
              "cnr_id": "comfy-core",
              "ver": "0.3.71"
            },
            "size": [
              200,
              90
            ],
            "type": "GetImageSize",
            "widgets_values": []
          },
          {
            "flags": {},
            "id": 273,
            "inputs": [
              {
                "link": 19,
                "localized_name": "a",
                "name": "a",
                "shape": 7,
                "type": "INT,FLOAT"
              },
              {
                "link": null,
                "localized_name": "b",
                "name": "b",
                "shape": 7,
                "type": "INT,FLOAT"
              }
            ],
            "mode": 0,
            "order": 3,
            "outputs": [
              {
                "links": [
                  307,
                  310
                ],
                "localized_name": "INT",
                "name": "INT",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "FLOAT",
                "name": "FLOAT",
                "type": "FLOAT"
              }
            ],
            "pos": [
              1650,
              520
            ],
            "properties": {
              "Node name for S&R": "SimpleMath+",
              "cnr_id": "comfyui_essentials",
              "ver": "1.1.0"
            },
            "size": [
              220,
              120
            ],
            "title": "Row 2 - Y val",
            "type": "SimpleMath+",
            "widgets_values": [
              "a + (b/2)"
            ]
          },
          {
            "flags": {},
            "id": 274,
            "inputs": [
              {
                "link": 294,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 295,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 296,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              }
            ],
            "mode": 0,
            "order": 4,
            "outputs": [
              {
                "links": [
                  314
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              1970,
              210
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 1",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          },
          {
            "flags": {},
            "id": 275,
            "inputs": [
              {
                "link": 298,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 299,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 300,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              },
              {
                "link": 301,
                "localized_name": "x_offset",
                "name": "x_offset",
                "type": "INT",
                "widget": {
                  "name": "x_offset"
                }
              }
            ],
            "mode": 0,
            "order": 5,
            "outputs": [
              {
                "links": [
                  313
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              2310,
              210
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 2",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          },
          {
            "flags": {},
            "id": 276,
            "inputs": [
              {
                "link": 308,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 302,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 303,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              },
              {
                "link": 307,
                "localized_name": "y_offset",
                "name": "y_offset",
                "type": "INT",
                "widget": {
                  "name": "y_offset"
                }
              }
            ],
            "mode": 0,
            "order": 6,
            "outputs": [
              {
                "links": [
                  312
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              1980,
              520
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 3",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          },
          {
            "flags": {},
            "id": 277,
            "inputs": [
              {
                "link": 309,
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE"
              },
              {
                "link": 304,
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                }
              },
              {
                "link": 305,
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                }
              },
              {
                "link": 306,
                "localized_name": "x_offset",
                "name": "x_offset",
                "type": "INT",
                "widget": {
                  "name": "x_offset"
                }
              },
              {
                "link": 310,
                "localized_name": "y_offset",
                "name": "y_offset",
                "type": "INT",
                "widget": {
                  "name": "y_offset"
                }
              }
            ],
            "mode": 0,
            "order": 7,
            "outputs": [
              {
                "links": [
                  311
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              },
              {
                "links": null,
                "localized_name": "x",
                "name": "x",
                "type": "INT"
              },
              {
                "links": null,
                "localized_name": "y",
                "name": "y",
                "type": "INT"
              }
            ],
            "pos": [
              2320,
              530
            ],
            "properties": {
              "Node name for S&R": "ImageCrop+"
            },
            "size": [
              230,
              250
            ],
            "title": "Crop Grid 4",
            "type": "ImageCrop+",
            "widgets_values": [
              256,
              256,
              "top-left",
              0,
              0
            ]
          }
        ],
        "outputNode": {
          "bounding": [
            2870,
            310,
            100,
            100
          ],
          "id": -20
        },
        "outputs": [
          {
            "id": "8ec6c1d4-c30e-4d27-9afc-d53cb8950a80",
            "label": "IMAGE_1",
            "linkIds": [
              314
            ],
            "name": "IMAGE",
            "pos": [
              3470,
              390
            ],
            "type": "IMAGE"
          },
          {
            "id": "b5bfbdce-26ef-489c-8851-c100001380a0",
            "label": "IMAGE_2",
            "linkIds": [
              313
            ],
            "name": "IMAGE_1",
            "pos": [
              3470,
              410
            ],
            "type": "IMAGE"
          },
          {
            "id": "ae6073b1-db37-4141-88fa-6cf4ba5dce26",
            "label": "IMAGE_3",
            "linkIds": [
              312
            ],
            "name": "IMAGE_2",
            "pos": [
              3470,
              430
            ],
            "type": "IMAGE"
          },
          {
            "id": "404edd1c-fa1b-4e9f-bb64-a05a8b3ddcee",
            "label": "IMAGE_4",
            "linkIds": [
              311
            ],
            "name": "IMAGE_3",
            "pos": [
              3470,
              450
            ],
            "type": "IMAGE"
          }
        ],
        "revision": 0,
        "state": {
          "lastGroupId": 0,
          "lastLinkId": 321,
          "lastNodeId": 279,
          "lastRerouteId": 0
        },
        "version": 1,
        "widgets": []
      }
    ]
  },
  "extra": {
    "VHS_KeepIntermediate": true,
    "VHS_MetadataImage": true,
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "ds": {
      "offset": [
        -1386.7056797100024,
        107.43419186634657
      ],
      "scale": 0.3138428376721043
    },
    "frontendVersion": "1.41.13",
    "linearData": {
      "inputs": [
        [
          "16",
          "image"
        ],
        [
          "26",
          "image"
        ],
        [
          "245",
          "value"
        ],
        [
          "249",
          "value"
        ],
        [
          "254",
          "value"
        ],
        [
          "252",
          "value"
        ]
      ],
      "outputs": [
        "239",
        "240",
        "241",
        "242",
        "88",
        "89",
        "90",
        "91"
      ]
    },
    "linearMode": true,
    "workflowRendererVersion": "Vue-corrected"
  },
  "groups": [],
  "id": "64759302-c98f-4f1c-8f18-5798aa64833e",
  "last_link_id": 321,
  "last_node_id": 279,
  "links": [
    [
      253,
      61,
      0,
      228,
      0,
      "IMAGE"
    ],
    [
      258,
      228,
      0,
      88,
      0,
      "IMAGE"
    ],
    [
      259,
      228,
      1,
      89,
      0,
      "IMAGE"
    ],
    [
      260,
      228,
      2,
      90,
      0,
      "IMAGE"
    ],
    [
      261,
      228,
      3,
      91,
      0,
      "IMAGE"
    ],
    [
      262,
      16,
      0,
      229,
      0,
      "IMAGE"
    ],
    [
      263,
      26,
      0,
      229,
      1,
      "IMAGE"
    ],
    [
      264,
      229,
      0,
      30,
      0,
      "IMAGE"
    ],
    [
      265,
      16,
      0,
      230,
      0,
      "IMAGE"
    ],
    [
      266,
      26,
      0,
      230,
      1,
      "IMAGE"
    ],
    [
      267,
      230,
      0,
      61,
      0,
      "IMAGE"
    ],
    [
      274,
      245,
      0,
      248,
      1,
      "STRING"
    ],
    [
      275,
      34,
      0,
      248,
      0,
      "STRING"
    ],
    [
      276,
      248,
      0,
      30,
      2,
      "STRING"
    ],
    [
      278,
      252,
      0,
      30,
      4,
      "COMBO"
    ],
    [
      279,
      252,
      0,
      61,
      4,
      "COMBO"
    ],
    [
      281,
      254,
      0,
      61,
      3,
      "COMBO"
    ],
    [
      282,
      254,
      0,
      30,
      3,
      "COMBO"
    ],
    [
      283,
      62,
      0,
      255,
      0,
      "STRING"
    ],
    [
      284,
      249,
      0,
      255,
      1,
      "STRING"
    ],
    [
      285,
      255,
      0,
      61,
      2,
      "STRING"
    ],
    [
      315,
      30,
      0,
      278,
      0,
      "IMAGE"
    ],
    [
      316,
      278,
      0,
      239,
      0,
      "IMAGE"
    ],
    [
      317,
      278,
      1,
      240,
      0,
      "IMAGE"
    ],
    [
      318,
      278,
      2,
      241,
      0,
      "IMAGE"
    ],
    [
      319,
      278,
      3,
      242,
      0,
      "IMAGE"
    ],
    [
      320,
      279,
      0,
      30,
      5,
      "COMBO"
    ],
    [
      321,
      279,
      0,
      61,
      5,
      "COMBO"
    ]
  ],
  "nodes": [
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {},
      "id": 16,
      "inputs": [
        {
          "label": "Character Image",
          "link": null,
          "name": "image",
          "type": "COMBO",
          "widget": {
            "name": "image"
          }
        }
      ],
      "mode": 0,
      "order": 0,
      "outputs": [
        {
          "links": [
            262,
            265
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        2319.999985345572,
        849.9999992457198
      ],
      "properties": {
        "Node name for S&R": "LoadImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        440,
        630
      ],
      "title": "Load Character Image",
      "type": "LoadImage",
      "widgets_values": [
        "contact_sheet_app_input_1.png",
        "image"
      ]
    },
    {
      "flags": {},
      "id": 88,
      "inputs": [
        {
          "link": 258,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 21,
      "outputs": [],
      "pos": [
        4320.000106394407,
        1890.0000515832876
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        540,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_5"
      ]
    },
    {
      "flags": {},
      "id": 89,
      "inputs": [
        {
          "link": 259,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 22,
      "outputs": [],
      "pos": [
        4879.999991778512,
        1890.0000515832876
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        530,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_6"
      ]
    },
    {
      "flags": {},
      "id": 90,
      "inputs": [
        {
          "link": 260,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 23,
      "outputs": [],
      "pos": [
        4320.000106394407,
        2410.000121951348
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        540,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_7"
      ]
    },
    {
      "flags": {},
      "id": 91,
      "inputs": [
        {
          "link": 261,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 24,
      "outputs": [],
      "pos": [
        4879.999991778512,
        2410.000121951348
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        530,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_8"
      ]
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {},
      "id": 26,
      "inputs": [
        {
          "label": "Product Image",
          "link": null,
          "name": "image",
          "type": "COMBO",
          "widget": {
            "name": "image"
          }
        }
      ],
      "mode": 0,
      "order": 1,
      "outputs": [
        {
          "links": [
            263,
            266
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        2319.999985345572,
        1520.0001273116475
      ],
      "properties": {
        "Node name for S&R": "LoadImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        440,
        600
      ],
      "title": "Load Product Image",
      "type": "LoadImage",
      "widgets_values": [
        "brown_moisturizer_bottle.jpg",
        "image"
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 30,
      "inputs": [
        {
          "link": 264,
          "name": "images",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "link": null,
          "name": "files",
          "shape": 7,
          "type": "GEMINI_INPUT_FILES"
        },
        {
          "link": 276,
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          }
        },
        {
          "link": 282,
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": 278,
          "name": "aspect_ratio",
          "type": "COMBO",
          "widget": {
            "name": "aspect_ratio"
          }
        },
        {
          "link": 320,
          "name": "resolution",
          "type": "COMBO",
          "widget": {
            "name": "resolution"
          }
        }
      ],
      "mode": 0,
      "order": 13,
      "outputs": [
        {
          "links": [
            315
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3600,
        410
      ],
      "properties": {
        "Node name for S&R": "GeminiImage2Node",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        430,
        750
      ],
      "type": "GeminiImage2Node",
      "widgets_values": [
        "",
        "gemini-3-pro-image-preview",
        586933274482026,
        "randomize",
        "9:16",
        "4K",
        "IMAGE+TEXT",
        "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."
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 62,
      "inputs": [],
      "mode": 0,
      "order": 2,
      "outputs": [
        {
          "links": [
            283
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3170,
        1960
      ],
      "properties": {
        "Node name for S&R": "PrimitiveStringMultiline",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        400,
        140
      ],
      "title": "Prompt Template V2",
      "type": "PrimitiveStringMultiline",
      "widgets_values": [
        "Analyze the input images and inventory all fashion-critical details: the subject(s) from image 1, exact wardrobe pieces, facial features, materials, colors, textures, accessories, hair, makeup, body proportions, environment, set geometry, light direction, and shadow quality.\nAll wardrobe, styling, hair, makeup, lighting, environment, and color grade must remain 100% unchanged across all frames. The character from image 1 is holding the product from image 2, maintain exact representation of the product, text legibility and relative size as seen in image 1.\nDo not add or remove anything (unless specified in the prompt).\nDo not generate with visible gutters/padding between grid images.\n \nYour visible output must be:\n \nOne 2×2 grid (4 frames).\n \nThen a keyframe breakdown for each frame.\n \nEach frame must represent a resting point after a dramatic camera move — only describe the final camera position and what the subject is doing, never the motion itself.\n \nThe four frames must be spatially dynamic, non-linear, and visually distinct.\n \nRequired 4-Frame Shot List \n{grid_descriptions}\n \nContinuity & Technical Requirements\n \nMaintain perfect wardrobe fidelity in every frame: exact garment type, silhouette, material, color, texture, stitching, accessories, closures, jewelry, shoes, hair, and makeup.\n \nEnvironment, textures, and lighting must remain consistent.\n \nDepth of field shifts naturally with focal length (deep for distant shots, shallow for close/detail shots).\n \nPhoto real textures and physically plausible light behavior required.\n \nFrames must feel like different camera placements within the same scene, not different scenes.\n \nAll keyframes must be the exact same aspect ratio, and exactly 4 keyframes should be output. Maintain the exact visual style in all keyframes, where the image is shot on fuji velvia film with a hard flash, the light is concentrated on the subject and fades slightly toward the edges of the frame. The image is over exposed showing significant film grain and is oversaturated. The skin appears shiny (almost oily), and there are harsh white reflections on the glasses frames.\n \nOutput Format\nA) 2×2 Contact Sheet Image (Mandatory)"
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 34,
      "inputs": [],
      "mode": 0,
      "order": 3,
      "outputs": [
        {
          "links": [
            275
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3150,
        500
      ],
      "properties": {
        "Node name for S&R": "PrimitiveStringMultiline",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        400,
        140
      ],
      "title": "Prompt Template V1",
      "type": "PrimitiveStringMultiline",
      "widgets_values": [
        "Analyze the input images and silently inventory all fashion-critical details: the subject(s) from image 1, exact wardrobe pieces, facial features, materials, colors, textures, accessories, hair, makeup, body proportions, environment, set geometry, light direction, and shadow quality.\nAll wardrobe, styling, hair, makeup, lighting, environment, and color grade must remain 100% unchanged across all frames. The character from image 1 is holding the product from image 2, maintain exact representation of the product, text legibility and relative size as seen in image 1.\nDo not add or remove anything (unless specified in the prompt).\nDo not generate with visible gutters/padding between grid images.\n \nYour visible output must be:\n \nOne 2×2 grid image (4 frames).\n \nThen a keyframe breakdown for each frame.\n \nEach frame must represent a resting point after a dramatic camera move — only describe the final camera position and what the subject is doing, never the motion itself.\n \nThe four frames must be spatially dynamic, non-linear, and visually distinct.\n \nRequired 4-Frame Shot List \n{grid_descriptions}\n\n \nContinuity & Technical Requirements\n \nMaintain perfect wardrobe fidelity in every frame: exact garment type, silhouette, material, color, texture, stitching, accessories, closures, jewelry, shoes, hair, and makeup.\n \nEnvironment, textures, and lighting must remain consistent.\n \nDepth of field shifts naturally with focal length (deep for distant shots, shallow for close/detail shots).\n \nPhoto real textures and physically plausible light behavior required.\n \nFrames must feel like different camera placements within the same scene, not different scenes.\n \nAll keyframes must be the exact same aspect ratio, and exactly 4 keyframes should be output. Maintain the exact visual style in all keyframes, where the image is shot on fuji velvia film with a hard flash, the light is concentrated on the subject and fades slightly toward the edges of the frame. The image is over exposed showing significant film grain and is oversaturated. The skin appears shiny (almost oily), and there are harsh white reflections on the glasses frames.\n \nOutput Format\nA) 2×2 Contact Sheet Image (Mandatory)"
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 61,
      "inputs": [
        {
          "link": 267,
          "name": "images",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "link": null,
          "name": "files",
          "shape": 7,
          "type": "GEMINI_INPUT_FILES"
        },
        {
          "link": 285,
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          }
        },
        {
          "link": 281,
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": 279,
          "name": "aspect_ratio",
          "type": "COMBO",
          "widget": {
            "name": "aspect_ratio"
          }
        },
        {
          "link": 321,
          "name": "resolution",
          "type": "COMBO",
          "widget": {
            "name": "resolution"
          }
        }
      ],
      "mode": 0,
      "order": 14,
      "outputs": [
        {
          "links": [
            253
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": [],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3609.999898116776,
        1890.0000515832876
      ],
      "properties": {
        "Node name for S&R": "GeminiImage2Node",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        430,
        750
      ],
      "type": "GeminiImage2Node",
      "widgets_values": [
        "",
        "gemini-3-pro-image-preview",
        363592989122759,
        "randomize",
        "9:16",
        "4K",
        "IMAGE+TEXT",
        "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."
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 228,
      "inputs": [
        {
          "link": 253,
          "name": "image",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 16,
      "outputs": [
        {
          "label": "IMAGE_1",
          "links": [
            258
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "label": "IMAGE_2",
          "links": [
            259
          ],
          "name": "IMAGE_1",
          "type": "IMAGE"
        },
        {
          "label": "IMAGE_3",
          "links": [
            260
          ],
          "name": "IMAGE_2",
          "type": "IMAGE"
        },
        {
          "label": "IMAGE_4",
          "links": [
            261
          ],
          "name": "IMAGE_3",
          "type": "IMAGE"
        }
      ],
      "pos": [
        4070,
        1890
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "proxyWidgets": [],
        "ver": "0.3.76"
      },
      "size": [
        230,
        144
      ],
      "type": "68c58c16-e698-45a4-97f9-54ae8eb9dee9",
      "widgets_values": []
    },
    {
      "flags": {
        "collapsed": true
      },
      "id": 229,
      "inputs": [
        {
          "label": "image0",
          "link": 262,
          "name": "images.image0",
          "type": "IMAGE"
        },
        {
          "label": "image1",
          "link": 263,
          "name": "images.image1",
          "type": "IMAGE"
        },
        {
          "label": "image2",
          "link": null,
          "name": "images.image2",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 9,
      "outputs": [
        {
          "links": [
            264
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        3150,
        440
      ],
      "properties": {
        "Node name for S&R": "BatchImagesNode"
      },
      "size": [
        230,
        120
      ],
      "type": "BatchImagesNode",
      "widgets_values": []
    },
    {
      "flags": {
        "collapsed": true
      },
      "id": 230,
      "inputs": [
        {
          "label": "image0",
          "link": 265,
          "name": "images.image0",
          "type": "IMAGE"
        },
        {
          "label": "image1",
          "link": 266,
          "name": "images.image1",
          "type": "IMAGE"
        },
        {
          "label": "image2",
          "link": null,
          "name": "images.image2",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 10,
      "outputs": [
        {
          "links": [
            267
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        3160,
        1900
      ],
      "properties": {
        "Node name for S&R": "BatchImagesNode"
      },
      "size": [
        230,
        120
      ],
      "type": "BatchImagesNode",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 239,
      "inputs": [
        {
          "link": 316,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 17,
      "outputs": [],
      "pos": [
        4310,
        410
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        540,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_1"
      ]
    },
    {
      "flags": {},
      "id": 240,
      "inputs": [
        {
          "link": 317,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 18,
      "outputs": [],
      "pos": [
        4880,
        410
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        530,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_2"
      ]
    },
    {
      "flags": {},
      "id": 241,
      "inputs": [
        {
          "link": 318,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 19,
      "outputs": [],
      "pos": [
        4310,
        910
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        540,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_3"
      ]
    },
    {
      "flags": {},
      "id": 242,
      "inputs": [
        {
          "link": 319,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 20,
      "outputs": [],
      "pos": [
        4880,
        910
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        530,
        410
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_4"
      ]
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {
        "collapsed": false
      },
      "id": 245,
      "inputs": [
        {
          "label": "Prompt grid images 1",
          "link": null,
          "name": "value",
          "type": "STRING",
          "widget": {
            "name": "value"
          }
        }
      ],
      "mode": 0,
      "order": 4,
      "outputs": [
        {
          "links": [
            274
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3159.999990218835,
        770.0000156194193
      ],
      "properties": {
        "Node name for S&R": "PrimitiveStringMultiline",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        400,
        490
      ],
      "title": "Prompt Grid Images V1",
      "type": "PrimitiveStringMultiline",
      "widgets_values": [
        "1. High-Fashion Beauty Portrait (Close, Editorial, Intimate)\n \nCamera positioned very close to the subject's face, slightly above or slightly below eye level, using an elegant offset angle that enhances bone structure and highlights key wardrobe elements near the neckline. Shallow depth of field, flawless texture rendering, and a sculptural fashion-forward composition.\n \n2. High-Angle Three-Quarter Frame\n \nCamera positioned overhead but off-center, capturing the subject from a diagonal downward angle.\nThis frame should create strong shape abstraction and reveal wardrobe details from above.\n \n3. Low-Angle Oblique Full-Body Frame\n \nCamera positioned low to the ground and angled obliquely toward the subject.\nThis elongates the silhouette, emphasizes footwear, and creates a dramatic perspective distinct from Frames 1 and 2.\n \n4. Side-On Compression Frame (Long Lens)\n \nCamera placed far to one side of the subject, using a tighter focal length to compress space.\nThe subject appears in clean profile or near-profile, showcasing garment structure in a flattened, editorial manner."
      ]
    },
    {
      "flags": {
        "collapsed": true
      },
      "id": 248,
      "inputs": [
        {
          "link": 275,
          "name": "string",
          "type": "STRING",
          "widget": {
            "name": "string"
          }
        },
        {
          "link": 274,
          "name": "replace",
          "type": "STRING",
          "widget": {
            "name": "replace"
          }
        }
      ],
      "mode": 0,
      "order": 11,
      "outputs": [
        {
          "links": [
            276
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3320,
        690
      ],
      "properties": {
        "Node name for S&R": "RegexReplace"
      },
      "showAdvanced": true,
      "size": [
        210,
        40
      ],
      "type": "RegexReplace",
      "widgets_values": [
        "",
        "{grid_descriptions}\n",
        "",
        true,
        false,
        false,
        0
      ]
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {
        "collapsed": false
      },
      "id": 249,
      "inputs": [
        {
          "label": "Prompt grid images 2",
          "link": null,
          "name": "value",
          "type": "STRING",
          "widget": {
            "name": "value"
          }
        }
      ],
      "mode": 0,
      "order": 5,
      "outputs": [
        {
          "links": [
            284
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3170,
        2240
      ],
      "properties": {
        "Node name for S&R": "PrimitiveStringMultiline",
        "cnr_id": "comfy-core",
        "ver": "0.3.76"
      },
      "size": [
        400,
        470
      ],
      "title": "Prompt Grid Images V2",
      "type": "PrimitiveStringMultiline",
      "widgets_values": [
        " 1. Intimate Close Portrait From an Unexpected Height\n \nCamera positioned very close to the subject's face (or upper torso) but slightly above or below eye level.\nThe angle should feel fashion-editorial, not conventional — offset, elegant, and expressive.\n \n2. Extreme Detail Frame From a Non-Intuitive Angle\n \nCamera positioned extremely close to a wardrobe detail, accessory, or texture, but from an unusual spatial direction (e.g., from below, from behind, from the side of a neckline).\nThis must be a striking, abstract, editorial detail frame.\n\n3. Extreme depth perception of the subject holding item (INTRODUCE A NEW ITEM IF PROMPTED)\n\nA dynamic, high-energy photograph shot from an extreme low-angle worm’s-eye view using forced perspective. The man is thrusting the product from image 2 toward the camera lens, making the device appear larger than life in the foreground. His free hand is raised in a casual peace sign. \n\n4. Extreme Low Angle Shot from Perspective of the Subject's Shoe.\n\nCamera positioned extremely low with main focus on the characters shoe in the immediate foreground. Extreme foreshortening makes the sneaker in the immediate foreground appear massive and highly detailed, dominating the bottom half of the frame, while the subject's body tapers upward towards a smaller head. Infer from the rest of the outfit what shoe the subject is wearing."
      ]
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {},
      "id": 252,
      "inputs": [],
      "mode": 0,
      "order": 6,
      "outputs": [
        {
          "links": [
            278,
            279
          ],
          "name": "COMBO",
          "type": "COMBO",
          "widget": {
            "name": "aspect_ratio"
          }
        }
      ],
      "pos": [
        3159.999990218835,
        1509.9999525612532
      ],
      "properties": {
        "Run widget replace on values": false
      },
      "size": [
        400,
        142.65625
      ],
      "title": "aspect_ratio",
      "type": "PrimitiveNode",
      "widgets_values": [
        "9:16",
        "fixed",
        ""
      ]
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {},
      "id": 254,
      "inputs": [],
      "mode": 0,
      "order": 7,
      "outputs": [
        {
          "links": [
            281,
            282
          ],
          "name": "COMBO",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        }
      ],
      "pos": [
        3160,
        1320
      ],
      "properties": {
        "Run widget replace on values": false
      },
      "size": [
        400,
        142.65625
      ],
      "title": "model",
      "type": "PrimitiveNode",
      "widgets_values": [
        "gemini-3-pro-image-preview",
        "fixed",
        ""
      ]
    },
    {
      "flags": {
        "collapsed": true
      },
      "id": 255,
      "inputs": [
        {
          "link": 283,
          "name": "string",
          "type": "STRING",
          "widget": {
            "name": "string"
          }
        },
        {
          "link": 284,
          "name": "replace",
          "type": "STRING",
          "widget": {
            "name": "replace"
          }
        }
      ],
      "mode": 0,
      "order": 12,
      "outputs": [
        {
          "links": [
            285
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3340,
        2150
      ],
      "properties": {
        "Node name for S&R": "RegexReplace"
      },
      "showAdvanced": false,
      "size": [
        210,
        40
      ],
      "type": "RegexReplace",
      "widgets_values": [
        "",
        "{grid_descriptions}\n",
        "",
        true,
        false,
        false,
        0
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 278,
      "inputs": [
        {
          "link": 315,
          "name": "image",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 15,
      "outputs": [
        {
          "label": "IMAGE_1",
          "links": [
            316
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "label": "IMAGE_2",
          "links": [
            317
          ],
          "name": "IMAGE_1",
          "type": "IMAGE"
        },
        {
          "label": "IMAGE_3",
          "links": [
            318
          ],
          "name": "IMAGE_2",
          "type": "IMAGE"
        },
        {
          "label": "IMAGE_4",
          "links": [
            319
          ],
          "name": "IMAGE_3",
          "type": "IMAGE"
        }
      ],
      "pos": [
        4070,
        410
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "proxyWidgets": [],
        "ver": "0.3.76"
      },
      "size": [
        230,
        144
      ],
      "type": "487baed2-dc27-49c3-a6b2-0bf45a53e64d",
      "widgets_values": []
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {},
      "id": 279,
      "inputs": [],
      "mode": 0,
      "order": 8,
      "outputs": [
        {
          "links": [
            320,
            321
          ],
          "name": "COMBO",
          "type": "COMBO",
          "widget": {
            "name": "resolution"
          }
        }
      ],
      "pos": [
        3160,
        1710
      ],
      "properties": {
        "Run widget replace on values": false
      },
      "size": [
        400,
        142.65625
      ],
      "title": "resolution",
      "type": "PrimitiveNode",
      "widgets_values": [
        "4K",
        "fixed",
        ""
      ]
    }
  ],
  "revision": 0,
  "version": 0.4
}