How to Generate Brand Assets for Every Campaign in One Flow
Build a flow that turns a campaign brief into brand visuals exported at three sizes: web hero, social card, and print-ready. One click, three assets.
Write a campaign brief. Get back a brand visual in three sizes: web hero (1440x810), social card (1200x630), and print-ready (3000x2000). I built this flow on PlugNode's canvas in about ten minutes. Each run finishes in under 30 seconds.
This tutorial covers every node, every wire, and every config field. By the end you'll have a working flow that generates on-brand visuals and exports them at the exact dimensions your channels need.
What you'll build
A 7-node flow that chains a text model, an image model, and three resize operations:
- Gemini refines your campaign brief into a focused visual direction
- Nano Banana generates the brand visual from that direction
- Three Image Resize nodes export the visual at web, social, and print dimensions
The output: three image files, correctly sized, ready to drop into your CMS, ad platform, or print vendor.
| Node | Type | Model / Provider | Purpose |
|---|---|---|---|
| manual-trigger | Trigger | None | Starts the flow |
| text-input | Input | None | Campaign brief |
| text | Generation | Gemini 2.5 Flash | Refines visual direction |
| image | Generation | Nano Banana Pro | Generates brand visual |
| resize-web | Utility | Image Resize | 1440x810 web hero |
| resize-social | Utility | Image Resize | 1200x630 social card |
| resize-print | Utility | Image Resize | 3000x2000 print asset |
| output | Output | None | Collects all variants |
The export busywork problem
The creative part of campaign asset production is fast. A good designer can concept a visual in minutes. What kills the timeline is everything after: exporting for web at 16:9, cropping for social at 1.91:1, upscaling for print at 300 DPI, naming each file, uploading to three platforms.
Most teams spend more time on export busywork than on the actual creative work. AI image generators make this worse, not better, because they output a single resolution. You still have to open Photoshop or Figma to resize.
PlugNode solves this by wiring generation and resizing into one flow. Generate once, resize three ways, download all variants. Change the brief, click Run, and every variant updates.
Prerequisites
- A PlugNode account (free tier works)
- API key added in Settings: Gemini
- A campaign brief (one paragraph is enough)
Open a blank canvas from your dashboard. Everything below happens on that canvas.
Step 1: Add the trigger and brief input
Drag a Manual Trigger node onto the canvas. This fires the flow when you click Run.
Add a Text Input node. Label it "Campaign Brief." This holds your creative direction in plain language. Example value: "Summer 2026 hydration campaign for a sparkling water brand. Mood: bright, active, outdoor. Colors: teal, white, citrus yellow. No people in the image. Product-focused."
Wire the Manual Trigger to the Text Input. The trigger starts the flow, and the brief feeds into the first generation step.
Step 2: Refine visual direction with Gemini
Add a Text node. Open its config panel and select Gemini 2.5 Flash as the model.
Set the system prompt:
You are a brand art director. Given a campaign brief, write a concise
image generation prompt. Include:
SUBJECT: (what is in the image)
STYLE: (photographic, illustration, 3D render, etc.)
COMPOSITION: (layout, focal point, negative space)
COLOR PALETTE: (specific colors from the brief)
MOOD: (lighting, energy, temperature)
Be specific. No vague adjectives. Write for an AI image generator.Wire the Text Input's output to the Text node's prompt port. Gemini takes your rough brief and produces a focused, structured prompt that gets better results from the Image node.
Why not skip this step and feed the brief directly into image generation? Because raw briefs are written for humans, not image models. They include context ("summer 2026 campaign") that confuses generators. The Text node strips the strategy and keeps only the visual instruction.
I tested this with the sparkling water brief. Gemini returned:
SUBJECT: A frosted glass bottle of sparkling water surrounded by
sliced citrus on a sun-lit outdoor table.
STYLE: Product photography, editorial, high-key lighting.
COMPOSITION: Centered bottle, shallow depth of field, citrus
arranged in a loose arc. Generous negative space at top for text overlay.
COLOR PALETTE: Teal background gradient, white table surface,
citrus yellow and orange accents.
MOOD: Bright, fresh, warm afternoon light with cool teal shadows.That is a much better image prompt than the original brief.
Step 3: Generate the brand visual
Add an Image node. Select Nano Banana Pro as the model.
Wire the Text node's output to the Image node's prompt port. The refined visual direction from Gemini feeds directly into image generation.
In the config, set the initial resolution to the largest size you need. I used 1024x1024 as the base because it gives the resize nodes enough pixel data to work with at every target dimension.
Generation takes 8-15 seconds. The result is your master brand visual, the single source file that all three exports derive from.
Step 4: Resize for web hero (1440x810)
Add an Image Resize node. Label it "Web Hero."
Wire the Image node's output to this resize node's image port. In the config:
- Width: 1440
- Height: 810
This produces a 16:9 crop sized for website hero banners, landing pages, and email headers.
Step 5: Resize for social card (1200x630)
Add a second Image Resize node. Label it "Social Card."
Wire the Image node's output to this resize node's image port. In the config:
- Width: 1200
- Height: 630
This is the standard Open Graph and Twitter Card dimension. It works for Facebook link previews, LinkedIn posts, and most social sharing contexts.
Note that you wire this from the original Image node output, not from the web hero resize. All three resize nodes branch from the same source image. This is a fan-out pattern: one input, three parallel outputs.
Step 6: Resize for print (3000x2000)
Add a third Image Resize node. Label it "Print Asset."
Wire the Image node's output to this resize node's image port. In the config:
- Width: 3000
- Height: 2000
This produces a high-resolution file suitable for printed collateral: posters, booth graphics, packaging inserts, or large-format displays.
Step 7: Collect and download
Add an Output node. Wire four connections into it:
- Resize "Web Hero" output → Output node
- Resize "Social Card" output → Output node
- Resize "Print Asset" output → Output node
- Text node output → Output node (text port, for the visual direction record)
The Output node collects all variants plus the art direction text. After a run completes, download each file from the execution panel. Every file is labeled by the node that produced it, so there is no confusion about which size is which.
Running the flow
Click Run in the toolbar. The canvas executes nodes in dependency order:
- Trigger fires
- Text Input resolves (your campaign brief)
- Gemini refines the visual direction (~1.2s)
- Nano Banana generates the master image (~12s)
- Three resize nodes run in parallel (~1-2s total)
- Output collects everything
Total wall-clock time on my test run: 16 seconds. The image generation step is the only slow part. Resizing is near-instant.
Open the Execution Log in the bottom panel to see per-node timing and any errors. Each node shows its input/output pair.
Updating and rerunning
The flow structure makes iteration fast. Here are common scenarios.
New campaign, same sizes. Change the text in the Text Input node. Click Run. Every node downstream regenerates: new visual direction, new image, new resizes. Total time: 16 seconds.
Same campaign, different style. Open the Text node config. Adjust the system prompt. Maybe change "photographic" to "flat illustration" or add "dark background, moody lighting." Re-run. The brief stays the same, but the visual direction shifts.
Add a fourth size. Drag another Image Resize node onto the canvas. Wire it from the Image node output. Set your dimensions (1080x1080 for Instagram square, 1080x1920 for Stories, whatever you need). Wire the output to the Output node. Re-run.
Swap the image model. Open the Image node config and switch from Nano Banana Pro to GPT Image or another supported model. Re-run. The rest of the flow stays wired.
Each change only affects the nodes downstream of what you modified. This is why flows beat manual workflows: you fix one step without redoing the rest.
Scaling for multiple campaigns
Once you have the flow working for one campaign, you can reuse it for every campaign going forward. Save it as a template. For each new launch, open the template, update the brief, and run.
For full automation, replace the Manual Trigger with an HTTP Trigger and add a Respond to Webhook node. Now your project management tool or CMS can fire the flow via API:
POST https://plugnode.ai/api/trigger/{secret}/{nodeId}Send a JSON body with the campaign brief. The endpoint returns the generated assets. Your marketing ops team never opens the canvas. They fill in a brief, the webhook fires, and sized assets land in their inbox or asset library.
Troubleshooting
Image looks off-brand. The Gemini visual direction might be missing key brand details. Add more specifics to your brief: exact hex colors, product names, composition rules. The more concrete the brief, the better the output.
Resize crops important content. The Image Resize node crops from center by default. If your subject is off-center, adjust the composition instruction in the Text node's system prompt to request centered subjects with negative space.
Gemini ignores part of the brief. Long briefs sometimes cause the model to skip details. Break the brief into bullet points instead of prose. Models parse structured input more reliably.
Image node produces a blank output. Check that the Text node's output wire connects to the Image node's prompt port. If the prompt is empty, the image generator has nothing to work with.
FAQ
AI Brand Asset Generator: Common Questions
How much does one run cost?+
You pay each provider at their standard rates. A typical run: Gemini Flash (~$0.001 for the text call), Nano Banana ($0.01-0.03 for the image). Image Resize is a local operation with no provider cost. Total: roughly $0.01-0.03 per campaign set. No PlugNode markup.
Can I generate multiple visual concepts per campaign?+
Yes. Duplicate the Image node on the canvas. Wire both copies from the same Text node output. Each generates a different visual from the same prompt (image models produce varied results per run). Wire both into separate resize chains for A/B testing your creative.
What image formats does the output produce?+
PNG by default. The Image Resize node preserves the format of its input. If you need JPG for smaller file sizes, convert after download or check the resize node config for format options.
Can I add text overlays to the generated images?+
Not in the current flow. PlugNode's Image node generates visuals, and the Image Resize node handles dimensions. Text overlays are a compositing step you handle in Figma, Canva, or your design tool. Request "space for text overlay" in your brief so the generated image leaves room.
What if I need sizes not listed here?+
Add more Image Resize nodes. Common additions: 1080x1080 (Instagram feed), 1080x1920 (Instagram Stories, TikTok), 820x312 (Facebook cover), 1500x500 (Twitter header). Each node takes about 1 second to process.
Can I use my own brand guidelines document as the brief?+
Yes. Paste your brand guidelines excerpt into the Text Input node. The Gemini Text node is built to parse long-form input and extract what matters for image generation. Include hex codes, typography preferences, and composition rules for the best results.
The full use case page is at /use-cases/brand-asset-generator. For more on publishing flows as APIs, see How to Publish an AI Flow as a Production API.