{
  "33": {
    "inputs": {
      "value": "a - 1",
      "b": 0.0,
      "a": [
        "36",
        0
      ]
    },
    "class_type": "SimpleMath+",
    "_meta": {
      "title": "Image # as index"
    }
  },
  "32": {
    "inputs": {
      "length": 1,
      "image": [
        "19:19",
        0
      ],
      "batch_index": [
        "33",
        0
      ]
    },
    "class_type": "ImageFromBatch",
    "_meta": {
      "title": "Get Image from Batch"
    }
  },
  "36": {
    "inputs": {
      "value": 1
    },
    "class_type": "PrimitiveInt",
    "_meta": {
      "title": "Select Image #"
    }
  },
  "34": {
    "inputs": {
      "image": [
        "32",
        0
      ]
    },
    "class_type": "GetImageSize",
    "_meta": {
      "title": "Get Image Size"
    }
  },
  "30": {
    "inputs": {
      "padding_color": "white",
      "interpolation": "area",
      "image": [
        "2",
        0
      ],
      "target_width": [
        "34",
        0
      ],
      "target_height": [
        "34",
        1
      ]
    },
    "class_type": "ResizeAndPadImage",
    "_meta": {
      "title": "Resize And Pad Image"
    }
  },
  "31": {
    "inputs": {
      "image1": [
        "32",
        0
      ],
      "image2": [
        "30",
        0
      ]
    },
    "class_type": "ImageBatch",
    "_meta": {
      "title": "Batch Images (DEPRECATED)"
    }
  },
  "20": {
    "inputs": {
      "filename_prefix": "ComfyUI-image_1",
      "images": [
        "19:8",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Image"
    }
  },
  "21": {
    "inputs": {
      "filename_prefix": "ComfyUI-image_2",
      "images": [
        "19:9",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Image"
    }
  },
  "23": {
    "inputs": {
      "filename_prefix": "ComfyUI-image_4",
      "images": [
        "19:11",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Image"
    }
  },
  "22": {
    "inputs": {
      "filename_prefix": "ComfyUI-image_3",
      "images": [
        "19:10",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Image"
    }
  },
  "35": {
    "inputs": {
      "prompt": "Upscale image 1. Use the poster from image 2 as a reference to fix the text.",
      "model": "gemini-3-pro-image-preview",
      "seed": 54321,
      "aspect_ratio": "auto",
      "resolution": "4K",
      "response_modalities": "IMAGE+TEXT",
      "system_prompt": "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.",
      "images": [
        "31",
        0
      ]
    },
    "class_type": "GeminiImage2Node",
    "_meta": {
      "title": "Nano Banana Pro (Google Gemini Image)"
    }
  },
  "40": {
    "inputs": {
      "value": "high-contrast studio lighting"
    },
    "class_type": "PrimitiveStringMultiline",
    "_meta": {
      "title": "Describe the Lighting"
    }
  },
  "26": {
    "inputs": {
      "value": "billboards"
    },
    "class_type": "PrimitiveStringMultiline",
    "_meta": {
      "title": "Describe the Mockup Medium"
    }
  },
  "27": {
    "inputs": {
      "value": "minimalist in a clean neutral toned environment"
    },
    "class_type": "PrimitiveStringMultiline",
    "_meta": {
      "title": "Describe the Aesthetic"
    }
  },
  "3": {
    "inputs": {
      "filename_prefix": "ComfyUI-image_stitched",
      "images": [
        "1",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Image"
    }
  },
  "37": {
    "inputs": {
      "filename_prefix": "ComfyUI-image_upscaled",
      "images": [
        "35",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Upscaled Image"
    }
  },
  "2": {
    "inputs": {
      "image": "template_Poster_Scene_Mockups.jpg"
    },
    "class_type": "LoadImage",
    "_meta": {
      "title": "Load Poster Image"
    }
  },
  "24": {
    "inputs": {
      "value": "Create a 2x2 grid composition featuring four distinct, high-quality mockups. Populate each of the four panels by integrating the poster shown in image 1 (maintain the input posters aspect ratio) into various {type}.\n\nThe entire grid must strictly adhere to a {aesthetic} aesthetic.\n\nApply coordinated {lighting} across all four scenarios to ensure visual consistency. Ensure the scenes in each panel are varied use-cases and look authentic to the chosen medium."
    },
    "class_type": "PrimitiveStringMultiline",
    "_meta": {
      "title": "Prompt Template"
    }
  },
  "41": {
    "inputs": {
      "regex_pattern": "{lighting}",
      "case_insensitive": true,
      "multiline": false,
      "dotall": false,
      "count": 0,
      "string": [
        "28",
        0
      ],
      "replace": [
        "40",
        0
      ]
    },
    "class_type": "RegexReplace",
    "_meta": {
      "title": "Replace Text (Regex)"
    }
  },
  "28": {
    "inputs": {
      "regex_pattern": "{aesthetic}",
      "case_insensitive": true,
      "multiline": false,
      "dotall": false,
      "count": 0,
      "string": [
        "25",
        0
      ],
      "replace": [
        "27",
        0
      ]
    },
    "class_type": "RegexReplace",
    "_meta": {
      "title": "Replace Text (Regex)"
    }
  },
  "25": {
    "inputs": {
      "regex_pattern": "{type}",
      "case_insensitive": true,
      "multiline": false,
      "dotall": false,
      "count": 0,
      "string": [
        "24",
        0
      ],
      "replace": [
        "26",
        0
      ]
    },
    "class_type": "RegexReplace",
    "_meta": {
      "title": "Replace Text (Regex)"
    }
  },
  "18": {
    "inputs": {
      "value": 0
    },
    "class_type": "PrimitiveInt",
    "_meta": {
      "title": "Crop Inset Grid Images"
    }
  },
  "1": {
    "inputs": {
      "model": "gemini-3-pro-image-preview",
      "seed": 333,
      "aspect_ratio": "2:3",
      "resolution": "4K",
      "response_modalities": "IMAGE",
      "system_prompt": "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.",
      "prompt": [
        "41",
        0
      ],
      "images": [
        "2",
        0
      ]
    },
    "class_type": "GeminiImage2Node",
    "_meta": {
      "title": "Nano Banana Pro (Google Gemini Image)"
    }
  },
  "19:4": {
    "inputs": {
      "images": [
        "19:8",
        0
      ]
    },
    "class_type": "PreviewImage",
    "_meta": {
      "title": "Preview Image"
    }
  },
  "19:5": {
    "inputs": {
      "images": [
        "19:9",
        0
      ]
    },
    "class_type": "PreviewImage",
    "_meta": {
      "title": "Preview Image"
    }
  },
  "19:7": {
    "inputs": {
      "images": [
        "19:11",
        0
      ]
    },
    "class_type": "PreviewImage",
    "_meta": {
      "title": "Preview Image"
    }
  },
  "19:16": {
    "inputs": {
      "value": "(a-2*b) / 2",
      "a": [
        "19:17",
        1
      ],
      "b": [
        "19:14",
        0
      ]
    },
    "class_type": "SimpleMath+",
    "_meta": {
      "title": "HEIGHT"
    }
  },
  "19:14": {
    "inputs": {
      "value": "a*2",
      "b": 0.0,
      "a": [
        "18",
        0
      ]
    },
    "class_type": "SimpleMath+",
    "_meta": {
      "title": "🔧 Simple Math"
    }
  },
  "19:13": {
    "inputs": {
      "value": "a + b",
      "a": [
        "19:15",
        0
      ],
      "b": [
        "19:14",
        0
      ]
    },
    "class_type": "SimpleMath+",
    "_meta": {
      "title": "Col 2 - X val"
    }
  },
  "19:12": {
    "inputs": {
      "value": "a + b",
      "a": [
        "19:16",
        0
      ],
      "b": [
        "19:14",
        0
      ]
    },
    "class_type": "SimpleMath+",
    "_meta": {
      "title": "Row 2 - Y val"
    }
  },
  "19:15": {
    "inputs": {
      "value": "(a-2*b) / 2",
      "a": [
        "19:17",
        0
      ],
      "b": [
        "19:14",
        0
      ]
    },
    "class_type": "SimpleMath+",
    "_meta": {
      "title": "WIDTH"
    }
  },
  "19:17": {
    "inputs": {
      "image": [
        "1",
        0
      ]
    },
    "class_type": "GetImageSize",
    "_meta": {
      "title": "Get Image Size"
    }
  },
  "19:6": {
    "inputs": {
      "images": [
        "19:10",
        0
      ]
    },
    "class_type": "PreviewImage",
    "_meta": {
      "title": "Preview Image"
    }
  },
  "19:8": {
    "inputs": {
      "x": 0,
      "y": 0,
      "image": [
        "1",
        0
      ],
      "width": [
        "19:15",
        0
      ],
      "height": [
        "19:16",
        0
      ]
    },
    "class_type": "ImageCrop",
    "_meta": {
      "title": "1"
    }
  },
  "19:9": {
    "inputs": {
      "y": 0,
      "image": [
        "1",
        0
      ],
      "width": [
        "19:15",
        0
      ],
      "height": [
        "19:16",
        0
      ],
      "x": [
        "19:13",
        0
      ]
    },
    "class_type": "ImageCrop",
    "_meta": {
      "title": "2"
    }
  },
  "19:10": {
    "inputs": {
      "x": 0,
      "image": [
        "1",
        0
      ],
      "width": [
        "19:15",
        0
      ],
      "height": [
        "19:16",
        0
      ],
      "y": [
        "19:12",
        0
      ]
    },
    "class_type": "ImageCrop",
    "_meta": {
      "title": "3"
    }
  },
  "19:11": {
    "inputs": {
      "image": [
        "1",
        0
      ],
      "width": [
        "19:15",
        0
      ],
      "height": [
        "19:16",
        0
      ],
      "x": [
        "19:13",
        0
      ],
      "y": [
        "19:12",
        0
      ]
    },
    "class_type": "ImageCrop",
    "_meta": {
      "title": "4"
    }
  },
  "19:19": {
    "inputs": {
      "inputcount": 4,
      "image_1": [
        "19:8",
        0
      ],
      "image_2": [
        "19:9",
        0
      ],
      "image_3": [
        "19:10",
        0
      ],
      "image_4": [
        "19:11",
        0
      ]
    },
    "class_type": "ImageBatchMulti",
    "_meta": {
      "title": "Image Batch Multi"
    }
  }
}
