{
 "52": {
  "inputs": {
   "value": 0
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Crop Inset Grid Images"
  }
 },
 "79": {
  "inputs": {
   "value": "frame 1: a hardware engineer building modern rocket engines\nframe 2: riding on an all red ducatti\nframe 3: standing behind a DJ deck\nframe 4: wearing a virtual reality headset controlling a drone"
  },
  "class_type": "PrimitiveStringMultiline",
  "_meta": {
   "title": "Describe Scenes/Actions/Vibes"
  }
 },
 "85": {
  "inputs": {
   "source": [
    "86:81",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview Prompt"
  }
 },
 "3": {
  "inputs": {
   "model": "gemini-3-pro-image-preview",
   "seed": 111111,
   "aspect_ratio": "1:1",
   "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\u2014regardless of format, intent, or abstraction\u2014as 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": [
    "86:81",
    0
   ],
   "images": [
    "1",
    0
   ]
  },
  "class_type": "GeminiImage2Node",
  "_meta": {
   "title": "Nano Banana Pro (Google Gemini Image)"
  }
 },
 "1": {
  "inputs": {
   "image": "character_in_red_jacket.png"
  },
  "class_type": "LoadImage",
  "_meta": {
   "title": "Load Character/Selfie Image"
  }
 },
 "83": {
  "inputs": {
   "value": "the same outfit as the input image"
  },
  "class_type": "PrimitiveStringMultiline",
  "_meta": {
   "title": "Describe Outfit"
  }
 },
 "54": {
  "inputs": {
   "filename_prefix": "ComfyUI-image_1",
   "images": [
    "53:8",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image 1"
  }
 },
 "55": {
  "inputs": {
   "filename_prefix": "ComfyUI-image_2",
   "images": [
    "53:9",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image 2"
  }
 },
 "56": {
  "inputs": {
   "filename_prefix": "ComfyUI-image_3",
   "images": [
    "53:10",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image 3"
  }
 },
 "57": {
  "inputs": {
   "filename_prefix": "ComfyUI-image_4",
   "images": [
    "53:11",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image 4"
  }
 },
 "86:82": {
  "inputs": {
   "regex_pattern": "{outfit}",
   "case_insensitive": true,
   "multiline": false,
   "dotall": false,
   "count": 0,
   "string": [
    "86:80",
    0
   ],
   "replace": [
    "83",
    0
   ]
  },
  "class_type": "RegexReplace",
  "_meta": {
   "title": "Replace Text (Regex)"
  }
 },
 "86:84": {
  "inputs": {
   "regex_pattern": "{description}",
   "case_insensitive": true,
   "multiline": false,
   "dotall": false,
   "count": 0,
   "string": [
    "86:82",
    0
   ],
   "replace": [
    "79",
    0
   ]
  },
  "class_type": "RegexReplace",
  "_meta": {
   "title": "Replace Text (Regex)"
  }
 },
 "86:81": {
  "inputs": {
   "string_a": "Generate a 2x2 (2 rows, 2 cols) grid.\n\nDivide the frame in 4 different frames. Each frame must be unique.",
   "delimiter": " ",
   "string_b": [
    "86:84",
    0
   ]
  },
  "class_type": "StringConcatenate",
  "_meta": {
   "title": "Concatenate Text"
  }
 },
 "86:80": {
  "inputs": {
   "value": "Make a miniature, full-body, isometric, realistic figurine of this person, wearing {outfit}, the character is: {description}, on a white background, minimal, 4K resolution.\nAll frames should be oriented in the same direction.\nNO VISIBLE GUTTERS OR BLACK BORDERS."
  },
  "class_type": "PrimitiveStringMultiline",
  "_meta": {
   "title": "Prompt Template"
  }
 },
 "4": {
  "inputs": {
   "filename_prefix": "ComfyUI-2x2_grid",
   "images": [
    "3",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image"
  }
 },
 "53:4": {
  "inputs": {
   "images": [
    "53:8",
    0
   ]
  },
  "class_type": "PreviewImage",
  "_meta": {
   "title": "Preview Image"
  }
 },
 "53:5": {
  "inputs": {
   "images": [
    "53:9",
    0
   ]
  },
  "class_type": "PreviewImage",
  "_meta": {
   "title": "Preview Image"
  }
 },
 "53:7": {
  "inputs": {
   "images": [
    "53:11",
    0
   ]
  },
  "class_type": "PreviewImage",
  "_meta": {
   "title": "Preview Image"
  }
 },
 "53:16": {
  "inputs": {
   "value": "(a-2*b) / 2",
   "a": [
    "53:17",
    1
   ],
   "b": [
    "53:14",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "HEIGHT"
  }
 },
 "53:6": {
  "inputs": {
   "images": [
    "53:10",
    0
   ]
  },
  "class_type": "PreviewImage",
  "_meta": {
   "title": "Preview Image"
  }
 },
 "53:15": {
  "inputs": {
   "value": "(a-2*b) / 2",
   "a": [
    "53:17",
    0
   ],
   "b": [
    "53:14",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "WIDTH"
  }
 },
 "53:17": {
  "inputs": {
   "image": [
    "3",
    0
   ]
  },
  "class_type": "GetImageSize",
  "_meta": {
   "title": "Get Image Size"
  }
 },
 "53:23": {
  "inputs": {
   "value": "(a) / 2",
   "b": 0.0,
   "a": [
    "53:17",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "WIDTH / 2"
  }
 },
 "53:22": {
  "inputs": {
   "value": "(a) / 2",
   "b": 0.0,
   "a": [
    "53:17",
    1
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "HEIGHT / 2"
  }
 },
 "53:20": {
  "inputs": {
   "upscale_method": "nearest-exact",
   "keep_proportion": "stretch",
   "pad_color": "0, 0, 0",
   "crop_position": "center",
   "divisible_by": 2,
   "device": "cpu",
   "image": [
    "53:19",
    0
   ],
   "width": [
    "53:23",
    0
   ],
   "height": [
    "53:22",
    0
   ]
  },
  "class_type": "ImageResizeKJv2",
  "_meta": {
   "title": "Resize Images"
  }
 },
 "53:8": {
  "inputs": {
   "image": [
    "3",
    0
   ],
   "width": [
    "53:15",
    0
   ],
   "height": [
    "53:16",
    0
   ],
   "x": [
    "53:24",
    0
   ],
   "y": [
    "53:24",
    0
   ]
  },
  "class_type": "ImageCrop",
  "_meta": {
   "title": "1"
  }
 },
 "53:19": {
  "inputs": {
   "inputcount": 4,
   "image_1": [
    "53:8",
    0
   ],
   "image_2": [
    "53:9",
    0
   ],
   "image_3": [
    "53:10",
    0
   ],
   "image_4": [
    "53:11",
    0
   ]
  },
  "class_type": "ImageBatchMulti",
  "_meta": {
   "title": "Image Batch Multi"
  }
 },
 "53:9": {
  "inputs": {
   "y": 0,
   "image": [
    "3",
    0
   ],
   "width": [
    "53:15",
    0
   ],
   "height": [
    "53:16",
    0
   ],
   "x": [
    "53:13",
    0
   ]
  },
  "class_type": "ImageCrop",
  "_meta": {
   "title": "2"
  }
 },
 "53:10": {
  "inputs": {
   "image": [
    "3",
    0
   ],
   "width": [
    "53:15",
    0
   ],
   "height": [
    "53:16",
    0
   ],
   "x": [
    "53:24",
    0
   ],
   "y": [
    "53:12",
    0
   ]
  },
  "class_type": "ImageCrop",
  "_meta": {
   "title": "3"
  }
 },
 "53:11": {
  "inputs": {
   "image": [
    "3",
    0
   ],
   "width": [
    "53:15",
    0
   ],
   "height": [
    "53:16",
    0
   ],
   "x": [
    "53:13",
    0
   ],
   "y": [
    "53:12",
    0
   ]
  },
  "class_type": "ImageCrop",
  "_meta": {
   "title": "4"
  }
 },
 "53:13": {
  "inputs": {
   "value": "a + (b/2)",
   "a": [
    "53:15",
    0
   ],
   "b": [
    "53:14",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "Col 2 - X val"
  }
 },
 "53:12": {
  "inputs": {
   "value": "a + (b/2)",
   "a": [
    "53:16",
    0
   ],
   "b": [
    "53:14",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "Row 2 - Y val"
  }
 },
 "53:24": {
  "inputs": {
   "value": "b/2",
   "a": 0.0,
   "b": [
    "53:14",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "Col 1 - X val"
  }
 },
 "53:14": {
  "inputs": {
   "value": "a",
   "b": 0.0,
   "a": [
    "52",
    0
   ]
  },
  "class_type": "SimpleMath+",
  "_meta": {
   "title": "Crop Inset Grid Images Value"
  }
 },
 "53:21": {
  "inputs": {
   "images": [
    "53:20",
    0
   ]
  },
  "class_type": "PreviewImage",
  "_meta": {
   "title": "Preview Image"
  }
 }
}