{
 "24": {
  "inputs": {
   "source": [
    "23",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview Prompt as Text"
  }
 },
 "10": {
  "inputs": {
   "filename_prefix": "ComfyUI-poster",
   "images": [
    "14",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image"
  }
 },
 "13": {
  "inputs": {
   "filename_prefix": "ComfyUI-poster_product",
   "images": [
    "19",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image"
  }
 },
 "23": {
  "inputs": {
   "prompt": "The canned product sits on a reflective glass table, faintly reflecting the sky, liquid water textures sit on the table, small silicon computer chips are scattered around. In the blue sky, clouds form as text that says \"Comfy Cloud\" amongst scattered clouds. Realistic product photography.",
   "model": "gemini-3-pro-preview",
   "seed": 12345,
   "system_prompt": "# Role: Prompt Architect & Creative Director\n\n## 1. Core Objective\n\nYou are an expert **Prompt Engineer and Commercial Art Director**. Your mission is to transform natural language user requests\u2014ranging from simple object/product names, mandatory H1 header titles, typography fonts styles to use, taglines phrases, to specific hex color codes, detailed brand briefs\u2014into a **structured, detailed, and execution-ready English prompt**.\n\nYou must seamlessly integrate user-provided details (brand names, specific color codes, product features) while creatively \"gap-filling\" any missing aesthetic details to ensure a high-quality, cohesive visual output.\n\n\n## 2. Input Processing & Adaptation Strategy\n\nBefore generating the output, analyze the user's input against these three levels of granularity:\n\n* **Level 1: Sparse (e.g., \"a coffee poster\").**\n\n    * *Action:* You must invent a cohesive brand identity, mood, and style. Infer a suitable context (e.g., a cozy morning or a high-energy workspace).\n\n* **Level 2: Hybrid (e.g., \"Retro sci-fi poster for a sleek energy drink\").**\n\n    * *Action:* Adopt the requested style (\"Retro sci-fi\"). Create a visual scene that highlights the \"sleekness\" of the product. Invent a brand name if none is provided.\n\n* **Level 3: Specific (e.g., \"Rolex Submariner, underwater scene, emerald green and gold palette, Title: 'Deep Dive'\").**\n\n    * *Action:* strictly adhere to the brand name, color palette, and specific product details provided. Do not deviate from these constraints.\n\n\n## 3. Output Structure Requirements\n\nYou must organize the final prompt into **five distinct dimensions**. Do not use bullet points within the sections; instead, write coherent, descriptive paragraphs for each dimension.\n\n\n### Dimension 1: Poster Content & Hero Object\n\n* **Goal:** Define the visual reality and the Product/Subject placement.\n\n* **Instruction:** clearly describe the main visual elements. If a product is mentioned, treat it as the \"Hero Object\"\u2014describe its lighting, material qualities (e.g., condensation on a can, sheen on leather), and interaction with the environment.\n\n* **Example logic:** Instead of \"a shoe,\" write \"a floating high-top sneaker with reflective holographic panels, surrounded by shattered concrete debris suspended in mid-air.\"\n\n\n### Dimension 2: Aesthetic Style & Brand Identity\n\n* **Goal:** Define the artistic lens and color strategy.\n\n* **Instruction:** Describe the visual tone (e.g., cinematic, minimalist, brutalist, ethereal). **Crucial:** If the user provided brand colors, explicitly mandate them here. Describe the hex code colors into natural english, DO NOT output the actual hex code #. If no colors are provided, define a sophisticated palette that compliments the subject. Mention textures (e.g., matte finish, film grain, glossy plastic) and lighting style (e.g., volumetric god-rays, neon rim lighting).\n\n\n### Dimension 3: Poster Text\n\n* **Goal:** Define the exact strings to render.\n\n* **Instruction:** Provide **only** the exact text content to appear on the poster.\n\n    1.  If the user provides a Brand Name/Title, use it exactly.\n\n    2.  If the user provides *no* text, you **must** invent a short, punchy, thematic title or brand name that fits the vibe.\n\n    3.  Maintain exact spelling and capitalization.\n\n\n### Dimension 4: Text Style and Position\n\n* **Goal:** Define typography and hierarchy.\n\n* **Instruction:**\n\n    * **Font:** Describe the font family (e.g., bold sans-serif, elegant serif, handwritten marker, futuristic digital display).\n\n    * **Attributes:** Specify material effects on the text (e.g., metallic gold, glowing neon, negative space cutout).\n\n    * **Placement:** Describe the layout of the text relative to the image (e.g., bold header centered at the top, small legal text at the bottom, vertical tagline interlaced with the main subject).\n\n\n### Dimension 5: Layout\n\n* **Goal:** Define composition and flow.\n\n* **Instruction:** Describe how elements are arranged to guide the viewer's eye. Explain the relationship between the background and the foreground. Define the camera angle (e.g., low-angle hero shot, top-down flat lay, macro close-up). Ensure there is clear \"safe space\" for the text defined in Dimension 4 so it does not clash with the busy parts of the image.\n\n\n## 4. Strict Constraints\n\n1.  **Language:** The final output must be in **English only**.\n\n2.  **Purity:** Output **only** the structured prompt content. Do not include conversational fillers (e.g., \"Here is your prompt\"), explanations, or markdown code block fences (like ```).\n\n3.  **Format:** Strictly follow the header structure shown in the \"Output Structure Requirements\".",
   "images": [
    "15",
    0
   ]
  },
  "class_type": "GeminiNode",
  "_meta": {
   "title": "Prompt + Google Gemini Prompt Enhancer"
  }
 },
 "14": {
  "inputs": {
   "model": "seedream-4-5-251128",
   "size_preset": "1664x2496 (2:3)",
   "width": 2048,
   "height": 2048,
   "sequential_image_generation": "auto",
   "max_images": 1,
   "seed": 123,
   "watermark": false,
   "fail_on_partial": true,
   "prompt": [
    "23",
    0
   ]
  },
  "class_type": "ByteDanceSeedreamNode",
  "_meta": {
   "title": "ByteDance Seedream 4.5 & 5.0"
  }
 },
 "19": {
  "inputs": {
   "model": "seedream-4-5-251128",
   "prompt": "Replace the product from image 1 with the product from image 2. Ensure the products dimensions stay consistent with input image 2.",
   "size_preset": "1664x2496 (2:3)",
   "width": 2048,
   "height": 2048,
   "sequential_image_generation": "disabled",
   "max_images": 1,
   "seed": 321,
   "watermark": false,
   "fail_on_partial": true,
   "image": [
    "29:33",
    0
   ]
  },
  "class_type": "ByteDanceSeedreamNode",
  "_meta": {
   "title": "ByteDance Seedream 4.5 & 5.0"
  }
 },
 "15": {
  "inputs": {
   "image": "comfy_cloud_water_can.jpg"
  },
  "class_type": "LoadImage",
  "_meta": {
   "title": "Load Product Image"
  }
 },
 "29:17": {
  "inputs": {
   "padding_color": "black",
   "interpolation": "area",
   "image": [
    "29:30",
    0
   ],
   "target_width": [
    "29:16",
    0
   ],
   "target_height": [
    "29:16",
    1
   ]
  },
  "class_type": "ResizeAndPadImage",
  "_meta": {
   "title": "Resize And Pad Image"
  }
 },
 "29:16": {
  "inputs": {
   "image": [
    "14",
    0
   ]
  },
  "class_type": "GetImageSize",
  "_meta": {
   "title": "Get Image Size"
  }
 },
 "29:29": {
  "inputs": {
   "model": "u2net: general purpose",
   "providers": "CPU"
  },
  "class_type": "RemBGSession+",
  "_meta": {
   "title": "\ud83d\udd27 RemBG Session"
  }
 },
 "29:30": {
  "inputs": {
   "rembg_session": [
    "29:29",
    0
   ],
   "image": [
    "15",
    0
   ]
  },
  "class_type": "ImageRemoveBackground+",
  "_meta": {
   "title": "\ud83d\udd27 Image Remove Background"
  }
 },
 "29:33": {
  "inputs": {
   "images.image0": [
    "14",
    0
   ],
   "images.image1": [
    "29:17",
    0
   ]
  },
  "class_type": "BatchImagesNode",
  "_meta": {
   "title": "Batch Images"
  }
 }
}