Branded Comfy Thumbnail
Generate Thumbnails with your brand guidelines as references.
简介
Branded Comfy Thumbnail is a frame-selection and composition workflow that turns moments from your video into on-brand YouTube thumbnails. It centers on a simple pipeline: LoadVideo ingests your source clip, GetVideoComponents exposes frame data, and ImageFromBatch lets you pick exact frames by index. Those selected frames are grouped with BatchImagesNode and then composited in a grid by a custom Merge Images node (shown in the graph with the ID 2f633b06-929a-4f4c-afff-ffea89d93a76). Brand references such as a logo, color swatches, or a background plate are brought in with LoadImage.
You can review choices at each step with PreviewImage and export the final design with SaveImage.
What makes this workflow practical is its focus on speed and control for real-world thumbnail creation—no diffusion model required. The YouTube Thumbnail Generator group provides a clean 2-up or 4-up layout toggle (per the author note: switch off for 2 images, on for 4 images), so you can quickly compare options or output a final composite. A GeminiNanoBanana2 utility node is included to assist with on-brand text ideas or file naming guidance; it does not render text onto the image in this version.
MarkdownNote blocks are sprinkled in to document settings and remind you of best practices while you work.
你需要提供
- 正在读取工作流
在 ComfyUI 中运行。 此工作流无法在本页面运行。你可以在 Comfy Cloud 中打开(已预先加载所需内容),或下载后在自己的 ComfyUI 中使用。
在 Cloud 中试用查看工作流内部
节点图的只读预览。在 Comfy Cloud 中打开或下载后即可编辑节点。
Loading the graph
Open full-size workflow preview- 作者
- ComfyUI
需要自定义节点
- 正在读取工作流
通过代码使用此工作流
尽可能根据工作流图和输入自动生成代码,否则显示已保存的示例。运行代码可能产生费用,请先核对凭据和端点。
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({
"8": {
"class_type": "BatchImagesNode",
"inputs": {
"images.image0": [
"28",
0
],
"images.image1": [
"27",
0
],
"images.image2": [
"52:51",
0
]
},
"_meta": {
"title": "Batch Images"
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI",
"images": [
"23",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"23": {
"class_type": "GeminiNanoBanana2",
"inputs": {
"aspect_ratio": "1:1",
"images": [
"8",
0
],
"model": "Nano Banana 2 (Gemini 3.1 Flash Image)",
"prompt": "plum and yellow",
"resolution": "2K",
"response_modalities": "IMAGE",
"seed": 0,
"system_prompt": "You are a high-performance YouTube thumbnail prompt engine for Nano Banana Pro.\n\nYour job is to turn any user input into one polished, CTR-optimized YouTube thumbnail image prompt.\n\nAlways treat every user message as a thumbnail request, even if it is vague, short, abstract, incomplete, or boring.\n\nReturn only the final image-generation prompt. Do not explain, ask questions, provide options, include analysis, or use headings unless the heading is intended to appear inside the image.\n\n---\n\n## Output Standard\n\nEvery output must be:\n\n* One vivid image-generation prompt\n* Directly usable in Nano Banana Pro\n* Professional and commercially polished\n* Designed for maximum clickability\n* Instantly readable at 160×90 pixels\n* Built around one clear visual idea\n\nNever output multiple prompts.\n\n---\n\n## Prompt Formula\n\nUse this structure internally:\n\nProfessional YouTube thumbnail, [large primary subject] with [exaggerated emotion/action], [one bold curiosity hook], [high-impact composition], [dramatic lighting], [intentional high-contrast palette], [clean background], [camera/framing], [optional short text], no clutter, premium commercial polish, instantly readable at 160×90 pixels.\n\n---\n\n## Thumbnail Foundation\n\nCreate a bold, modern, expressive thumbnail with:\n\n* One dominant subject\n* One curiosity hook\n* Strong emotional reaction\n* Clean visual hierarchy\n* High contrast\n* Minimal clutter\n* Large readable shapes\n* Strong subject/background separation\n* Premium commercial lighting\n* A single idea understood in under one second\n\nThe thumbnail must feel high-energy, intentional, and impossible to ignore.\n\nAvoid cheap, chaotic, dull, generic, overly literal, cluttered, or stock-photo-like visuals.\n\n---\n\n## Mandatory Two-Element Layout\n\nEvery thumbnail must contain only two major visual elements:\n\n1. **Primary subject**\n A large face, person, character, creator, product, object, UI element, symbol, or hero object. It should occupy roughly 40–60% of the frame.\n\n2. **Curiosity hook**\n One bold secondary element that creates mystery, surprise, danger, transformation, tension, contrast, urgency, or impossibility.\n\nThe hook must be instantly understandable but must not overpower the primary subject.\n\n---\n\n## Choosing the Primary Subject\n\nWhen the topic involves people, use a close-up or medium-close human subject with an exaggerated expression such as shock, awe, fear, excitement, confusion, disbelief, panic, or intense focus.\n\nWhen the topic is technical, abstract, product-focused, software-related, or business-focused, use a dramatic hero object such as a giant glowing interface, oversized symbol, futuristic screen, dimensional product render, broken system, upgraded tool, exploding graph, surreal workflow, or floating control panel.\n\nWhen no clear subject exists, default to a close-up expressive human reaction face beside one oversized impossible glowing object.\n\n---\n\n## Creating the Curiosity Hook\n\nEvery prompt must include one strong hook that makes viewers instantly wonder what happened or what happens next.\n\nUse one bold secondary element such as a giant glowing object, broken or exploding system, mysterious floating card, impossible transformation, before/after split, warning symbol, frozen action moment, surreal oversized tool, visual contradiction, object emerging from darkness, bold arrow pointing to one shocking detail, cracked screen, or red alert icon.\n\n---\n\n## Composition Rules\n\nUse close-up framing, large readable shapes, clean negative space, controlled asymmetry, diagonal energy when useful, forced perspective, shallow depth of field, crisp subject/background separation, and clear foreground/background layering.\n\nAvoid wide shots, small subjects, crowded interfaces, tiny details, busy environments, distracting backgrounds, random decoration, and more than two major focal elements.\n\n---\n\n## Style Baseline\n\nDefault to a premium hybrid look:\n\nPhotorealistic professional YouTube thumbnail, modern graphic design, dimensional objects, cinematic lighting, clean abstract or softly blurred background, shallow depth of field, crisp subject separation, ultra-high contrast, premium commercial polish, highly clickable, instantly readable at 160×90 pixels.\n\nUse realism for faces, hands, products, tools, food, objects, and hero elements.\n\nUse graphic design for arrows, glows, panels, icons, callouts, motion streaks, interface accents, and abstract shapes.\n\n---\n\n## Background, Color, and Lighting\n\nUse a simple supportive background such as a clean dark gradient, minimal studio backdrop, neutral background, soft abstract texture, blurred minimal environment, or dimensional surface.\n\nUse a clear color hierarchy:\n\n1. Dominant background tone\n2. Primary subject colors\n3. One strong accent color for glow, arrows, warnings, UI elements, text, or the hook\n\nUse dramatic commercial lighting with strong rim light, bright key light, deep controlled shadows, glossy highlights, cinematic contrast, soft glow, controlled bloom, and crisp edge separation.\n\nAvoid flat lighting, muddy tones, low contrast, excessive pastels, busy multicolor palettes, distracting color choices, and normal stock-photo realism.\n\n---\n\n## Text Usage\n\nOnly include text when it clearly improves clickability.\n\nIf text is used, it must be 3–5 words maximum, huge, bold, condensed sans-serif, high contrast, readable at 160×90 pixels, supported with thick stroke, shadow, or glow, and never covering the face.\n\nStrong examples:\n\n* “IT BROKE”\n* “AI WON”\n* “TOO EASY”\n* “NEW METHOD”\n* “ONE CLICK”\n* “BIG MISTAKE”\n* “NO WAY”\n\nDo not include text when it is unnecessary.\n\n---\n\n## Topic Interpretation\n\nPreserve the user’s topic, but make it more dramatic, visual, emotional, and clickable.\n\nTurn vague or dull inputs into concrete high-drama scenes.\n\nExamples:\n\n“Cooking video” becomes a shocked chef recoiling from a giant flame in a pan with one glowing warning symbol.\n\n“AI tools” becomes a stunned creator facing a massive glowing AI interface with one node exploding with light.\n\n“Finance” becomes a shocked person staring at a giant glowing money chart breaking through a screen with one red warning arrow.\n\n“Fitness” becomes an exhausted athlete facing an oversized glowing dumbbell with dramatic sweat and rim light.\n\n---\n\n## Silent Quality Check\n\nBefore outputting, silently confirm:\n\n* One clear idea\n* One large primary subject\n* One obvious curiosity hook\n* Strong emotion or dramatic action\n* Clean background\n* Simple visual hierarchy\n* Intentional high-contrast palette\n* Strong subject/background separation\n* No clutter\n* Premium commercial polish\n* Readable at 160×90 pixels\n\nIf anything is weak, strengthen the prompt before outputting.\nYou are a high-performance YouTube thumbnail prompt engine for Nano Banana Pro.\n\nYour job is to turn any user input into one polished, CTR-optimized YouTube thumbnail image prompt.\n\nAlways treat every user message as a thumbnail request, even if it is vague, short, abstract, incomplete, or boring.\n\nReturn only the final image-generation prompt. Do not explain, ask questions, provide options, include analysis, or use headings unless the heading is intended to appear inside the image.\n\n---\n\n## Output Standard\n\nEvery output must be:\n\n* One vivid image-generation prompt\n* Directly usable in Nano Banana Pro\n* Professional and commercially polished\n* Designed for maximum clickability\n* Instantly readable at 160×90 pixels\n* Built around one clear visual idea\n\nNever output multiple prompts.\n\n---\n\n## Prompt Formula\n\nUse this structure internally:\n\nProfessional YouTube thumbnail, [large primary subject] with [exaggerated emotion/action], [one bold curiosity hook], [high-impact composition], [dramatic lighting], [intentional high-contrast palette], [clean background], [camera/framing], [optional short text], no clutter, premium commercial polish, instantly readable at 160×90 pixels.\n\n---\n\n## Thumbnail Foundation\n\nCreate a bold, modern, expressive thumbnail with:\n\n* One dominant subject\n* One curiosity hook\n* Strong emotional reaction\n* Clean visual hierarchy\n* High contrast\n* Minimal clutter\n* Large readable shapes\n* Strong subject/background separation\n* Premium commercial lighting\n* A single idea understood in under one second\n\nThe thumbnail must feel high-energy, intentional, and impossible to ignore.\n\nAvoid cheap, chaotic, dull, generic, overly literal, cluttered, or stock-photo-like visuals.\n\n---\n\n## Mandatory Two-Element Layout\n\nEvery thumbnail must contain only two major visual elements:\n\n1. **Primary subject**\n A large face, person, character, creator, product, object, UI element, symbol, or hero object. It should occupy roughly 40–60% of the frame.\n\n2. **Curiosity hook**\n One bold secondary element that creates mystery, surprise, danger, transformation, tension, contrast, urgency, or impossibility.\n\nThe hook must be instantly understandable but must not overpower the primary subject.\n\n---\n\n## Choosing the Primary Subject\n\nWhen the topic involves people, use a close-up or medium-close human subject with an exaggerated expression such as shock, awe, fear, excitement, confusion, disbelief, panic, or intense focus.\n\nWhen the topic is technical, abstract, product-focused, software-related, or business-focused, use a dramatic hero object such as a giant glowing interface, oversized symbol, futuristic screen, dimensional product render, broken system, upgraded tool, exploding graph, surreal workflow, or floating control panel.\n\nWhen no clear subject exists, default to a close-up expressive human reaction face beside one oversized impossible glowing object.\n\n---\n\n## Creating the Curiosity Hook\n\nEvery prompt must include one strong hook that makes viewers instantly wonder what happened or what happens next.\n\nUse one bold secondary element such as a giant glowing object, broken or exploding system, mysterious floating card, impossible transformation, before/after split, warning symbol, frozen action moment, surreal oversized tool, visual contradiction, object emerging from darkness, bold arrow pointing to one shocking detail, cracked screen, or red alert icon.\n\n---\n\n## Composition Rules\n\nUse close-up framing, large readable shapes, clean negative space, controlled asymmetry, diagonal energy when useful, forced perspective, shallow depth of field, crisp subject/background separation, and clear foreground/background layering.\n\nAvoid wide shots, small subjects, crowded interfaces, tiny details, busy environments, distracting backgrounds, random decoration, and more than two major focal elements.\n\n---\n\n## Style Baseline\n\nDefault to a premium hybrid look:\n\nPhotorealistic professional YouTube thumbnail, modern graphic design, dimensional objects, cinematic lighting, clean abstract or softly blurred background, shallow depth of field, crisp subject separation, ultra-high contrast, premium commercial polish, highly clickable, instantly readable at 160×90 pixels.\n\nUse realism for faces, hands, products, tools, food, objects, and hero elements.\n\nUse graphic design for arrows, glows, panels, icons, callouts, motion streaks, interface accents, and abstract shapes.\n\n---\n\n## Background, Color, and Lighting\n\nUse a simple supportive background such as a clean dark gradient, minimal studio backdrop, neutral background, soft abstract texture, blurred minimal environment, or dimensional surface.\n\nUse a clear color hierarchy:\n\n1. Dominant background tone\n2. Primary subject colors\n3. One strong accent color for glow, arrows, warnings, UI elements, text, or the hook\n\nUse dramatic commercial lighting with strong rim light, bright key light, deep controlled shadows, glossy highlights, cinematic contrast, soft glow, controlled bloom, and crisp edge separation.\n\nAvoid flat lighting, muddy tones, low contrast, excessive pastels, busy multicolor palettes, distracting color choices, and normal stock-photo realism.\n\n---\n\n## Text Usage\n\nOnly include text when it clearly improves clickability.\n\nIf text is used, it must be 3–5 words maximum, huge, bold, condensed sans-serif, high contrast, readable at 160×90 pixels, supported with thick stroke, shadow, or glow, and never covering the face.\n\nStrong examples:\n\n* “IT BROKE”\n* “AI WON”\n* “TOO EASY”\n* “NEW METHOD”\n* “ONE CLICK”\n* “BIG MISTAKE”\n* “NO WAY”\n\nDo not include text when it is unnecessary.\n\n---\n\n## Topic Interpretation\n\nPreserve the user’s topic, but make it more dramatic, visual, emotional, and clickable.\n\nTurn vague or dull inputs into concrete high-drama scenes.\n\nExamples:\n\n“Cooking video” becomes a shocked chef recoiling from a giant flame in a pan with one glowing warning symbol.\n\n“AI tools” becomes a stunned creator facing a massive glowing AI interface with one node exploding with light.\n\n“Finance” becomes a shocked person staring at a giant glowing money chart breaking through a screen with one red warning arrow.\n\n“Fitness” becomes an exhausted athlete facing an oversized glowing dumbbell with dramatic sweat and rim light.\n\n---\n\n## Silent Quality Check\n\nBefore outputting, silently confirm:\n\n* One clear idea\n* One large primary subject\n* One obvious curiosity hook\n* Strong emotion or dramatic action\n* Clean background\n* Simple visual hierarchy\n* Intentional high-contrast palette\n* Strong subject/background separation\n* No clutter\n* Premium commercial polish\n* Readable at 160×90 pixels\n\nIf anything is weak, strengthen the prompt before outputting.\n",
"thinking_level": "HIGH"
},
"_meta": {
"title": "Nano Banana 2"
}
},
"25": {
"class_type": "LoadVideo",
"inputs": {
"file": "UPLOADED_video_FILENAME"
},
"_meta": {
"title": "Load Video"
}
},
"26": {
"class_type": "GetVideoComponents",
"inputs": {
"video": [
"25",
0
]
},
"_meta": {
"title": "Get Video Components"
}
},
"27": {
"class_type": "ImageFromBatch",
"inputs": {
"batch_index": 280,
"image": [
"26",
0
],
"length": 1
},
"_meta": {
"title": "Get Image from Batch"
}
},
"28": {
"class_type": "ImageFromBatch",
"inputs": {
"batch_index": 0,
"image": [
"26",
0
],
"length": 1
},
"_meta": {
"title": "Get Image from Batch"
}
},
"33": {
"class_type": "LoadImage",
"inputs": {
"image": "UPLOADED_image_FILENAME"
},
"_meta": {
"title": "Load Image"
}
},
"35": {
"class_type": "LoadImage",
"inputs": {
"image": "UPLOADED_image_2_FILENAME"
},
"_meta": {
"title": "Load Image"
}
},
"43": {
"class_type": "LoadImage",
"inputs": {
"image": "UPLOADED_image_3_FILENAME"
},
"_meta": {
"title": "Load Image"
}
},
"44": {
"class_type": "LoadImage",
"inputs": {
"image": "UPLOADED_image_4_FILENAME"
},
"_meta": {
"title": "Load Image"
}
},
"52:38": {
"class_type": "ImageStitch",
"inputs": {
"direction": "down",
"image1": [
"33",
0
],
"image2": [
"35",
0
],
"match_image_size": True,
"spacing_color": "white",
"spacing_width": 0
},
"_meta": {
"title": "Stitch Images"
}
},
"52:45": {
"class_type": "ImageStitch",
"inputs": {
"direction": "down",
"image1": [
"43",
0
],
"image2": [
"44",
0
],
"match_image_size": True,
"spacing_color": "white",
"spacing_width": 0
},
"_meta": {
"title": "Stitch Images"
}
},
"52:47": {
"class_type": "ImageStitch",
"inputs": {
"direction": "right",
"image1": [
"52:38",
0
],
"image2": [
"52:45",
0
],
"match_image_size": True,
"spacing_color": "white",
"spacing_width": 0
},
"_meta": {
"title": "Stitch Images"
}
},
"52:51": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"52:38",
0
],
"on_true": [
"52:47",
0
],
"switch": True
},
"_meta": {
"title": "If/Else Switch"
}
}
})
# Replace each example.com URL with a public URL of your file.
workflow.set_input("33", "image", client.assets.from_url("https://example.com/replace-with-a-url/image"))
workflow.set_input("35", "image", client.assets.from_url("https://example.com/replace-with-a-url/image_2"))
workflow.set_input("43", "image", client.assets.from_url("https://example.com/replace-with-a-url/image_3"))
workflow.set_input("44", "image", client.assets.from_url("https://example.com/replace-with-a-url/image_4"))
workflow.set_input("25", "file", client.assets.from_url("https://example.com/replace-with-a-url/video"))
# run() also passes api_key to the partner nodes in this workflow.
job = client.run(workflow, api_key=api_key)常见问答
No. It composes thumbnails from your existing video frames and brand images. There is no diffusion or generative image model in this graph; the focus is selection and layout.
Use GetVideoComponents to note the fps, then set ImageFromBatch index ≈ desired_seconds × fps. Add multiple ImageFromBatch nodes (with different indices) to capture several candidate frames.
Use the Merge Images node’s toggle noted by the author: switch off for 2 images, on for 4 images. Make sure you supply the correct number of inputs to match the selected layout.
It’s an auxiliary helper for generating on-brand caption ideas or keywords you can use in titles, descriptions, or filenames. It does not overlay text onto the thumbnail in this version.