Generate Poster/Ad Asset with your Product
Upload your product and a simple text prompt for the poster or ad design. Iterate on the look before swapping the product into the generate layout.
简介
This ComfyUI workflow is designed to streamline the creation of visually appealing posters or advertisements by integrating your product image into a generated layout. The process begins by uploading your product image and providing a simple text prompt that outlines the desired theme or style for the poster.
The workflow utilizes a combination of advanced AI models, including ByteDance and Google Gemini, to generate a base layout that aligns with your prompt. The Seedream model further refines the visual elements, ensuring high-quality output. Custom nodes like comfyui_essentials enhance the workflow by providing essential functionalities such as image saving and previewing, allowing for iterative design adjustments before finalizing the product integration.
Technically, the workflow leverages nodes such as LoadImage to import the product image, and ByteDanceSeedreamNode to apply the Seedream model's aesthetic transformations. The GeminiNode is used to incorporate Google's Gemini model, which excels at generating cohesive and visually striking layouts based on textual prompts. PreviewAny and Reroute nodes facilitate real-time previews and efficient data flow management, ensuring that users can make informed decisions during the design process.
This workflow is particularly useful for marketers and designers looking to quickly produce professional-grade promotional materials with minimal manual effort.
你需要提供
- 正在读取工作流
在 ComfyUI 中运行。 此工作流无法在本页面运行。你可以在 Comfy Cloud 中打开(已预先加载所需内容),或下载后在自己的 ComfyUI 中使用。
在 Cloud 中试用查看工作流内部
节点图的只读预览。在 Comfy Cloud 中打开或下载后即可编辑节点。
Loading the graph
Open full-size workflow preview- 作者
- Rob
需要自定义节点
- 正在读取工作流
通过代码使用此工作流
尽可能根据工作流图和输入自动生成代码,否则显示已保存的示例。运行代码可能产生费用,请先核对凭据和端点。
What you need
- Runs on
- Comfy Cloud
- 密钥
- COMFY_API_KEY
需要付费的 Cloud 方案和额度。
# Python 3.10+: pip install comfy-sdk==0.4.0
import os
from comfy_sdk import Comfy
api_key = os.environ.get("COMFY_API_KEY", "").strip()
if not api_key: raise RuntimeError("Set COMFY_API_KEY")
os.environ.setdefault("COMFY_BASE_URL", "https://cloud.comfy.org")
client = Comfy(api_key=api_key)
workflow = client.workflows.from_json({
"10": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI-poster",
"images": [
"14",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"13": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI-poster_product",
"images": [
"19",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"14": {
"class_type": "ByteDanceSeedreamNode",
"inputs": {
"fail_on_partial": True,
"height": 2048,
"max_images": 1,
"model": "seedream-4-5-251128",
"prompt": [
"23",
0
],
"seed": 123,
"sequential_image_generation": "auto",
"size_preset": "1664x2496 (2:3)",
"watermark": False,
"width": 2048
},
"_meta": {
"title": "ByteDance Seedream 4.5 & 5.0"
}
},
"15": {
"class_type": "LoadImage",
"inputs": {
"image": "comfy_cloud_water_can.jpg"
},
"_meta": {
"title": "Load Product Image"
}
},
"19": {
"class_type": "ByteDanceSeedreamNode",
"inputs": {
"fail_on_partial": True,
"height": 2048,
"image": [
"29:33",
0
],
"max_images": 1,
"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.",
"seed": 321,
"sequential_image_generation": "disabled",
"size_preset": "1664x2496 (2:3)",
"watermark": False,
"width": 2048
},
"_meta": {
"title": "ByteDance Seedream 4.5 & 5.0"
}
},
"23": {
"class_type": "GeminiNode",
"inputs": {
"images": [
"15",
0
],
"model": "gemini-3-pro-preview",
"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.",
"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—ranging from simple object/product names, mandatory H1 header titles, typography fonts styles to use, taglines phrases, to specific hex color codes, detailed brand briefs—into 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\"—describe 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\"."
},
"_meta": {
"title": "Prompt + Google Gemini Prompt Enhancer"
}
},
"24": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"23",
0
]
},
"_meta": {
"title": "Preview Prompt as Text"
}
},
"29:16": {
"class_type": "GetImageSize",
"inputs": {
"image": [
"14",
0
]
},
"_meta": {
"title": "Get Image Size"
}
},
"29:17": {
"class_type": "ResizeAndPadImage",
"inputs": {
"image": [
"29:30",
0
],
"interpolation": "area",
"padding_color": "black",
"target_height": [
"29:16",
1
],
"target_width": [
"29:16",
0
]
},
"_meta": {
"title": "Resize And Pad Image"
}
},
"29:29": {
"class_type": "RemBGSession+",
"inputs": {
"model": "u2net: general purpose",
"providers": "CPU"
},
"_meta": {
"title": "🔧 RemBG Session"
}
},
"29:30": {
"class_type": "ImageRemoveBackground+",
"inputs": {
"image": [
"15",
0
],
"rembg_session": [
"29:29",
0
]
},
"_meta": {
"title": "🔧 Image Remove Background"
}
},
"29:33": {
"class_type": "BatchImagesNode",
"inputs": {
"images.image0": [
"14",
0
],
"images.image1": [
"29:17",
0
]
},
"_meta": {
"title": "Batch Images"
}
}
})
# run() also passes api_key to the partner nodes in this workflow.
job = client.run(workflow, api_key=api_key)常见问答
High-resolution product images with clear backgrounds are ideal, as they integrate seamlessly into the AI-generated layouts.
Yes, you can tailor the text prompt to specify different themes, colors, and styles to match your brand's aesthetic.
Use the PreviewAny node to iteratively adjust and preview designs, ensuring alignment with your brand's visual identity before finalizing.
While optimized for product images, the workflow can be adapted for other types of images, though results may vary based on the input.