Ad Creative Generation logo

Ad Creative Generation

Organization
hyperfx-ai
ad-creative-generation

Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper MCP. Extracts brand identity from a website, writes ad copy variants, and produces brand-consistent images using reference-based image generation. Use when the user asks for ad creative, ad copy variants, RSA headlines, Meta ad creative, display ads, carousel ads, or A/B test variants.

Overview

Publisherhyperfx-ai
Repositorymarketing-skills
Skill namead-creative-generation
Stars
107
Forks
21
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by hyperfx-ai on GitHub. Read the source before you install it.

Installation

Install the Ad Creative Generation AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/hyperfx-ai/marketing-skills/tree/main/skills/ad-creative-generation
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/hyperfx-ai/marketing-skills.git /tmp/marketing-skills
mkdir -p .claude/skills
cp -r /tmp/marketing-skills/skills/ad-creative-generation .claude/skills/ad-creative-generation
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ad Creative Generation in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ad Creative Generation on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ad Creative Generation is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Ad Creative Generation

Generate ad creatives — both visuals and copy — that match a brand's identity. This skill orchestrates brand extraction, copywriting, and image generation into a single workflow.

Requirements

This skill assumes the Hyper MCP is connected to your agent so the tools below are available. Brand extraction also requires Firecrawl to be configured under your Hyper integrations.

How to run the tools in this skill

Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:

SurfaceFind a toolRun it
Hyper chatCall the tool by its name; search_tools(queries=["<provider> <action>"]) shows its parameters<name>(...)
MCP client (Claude, Cursor, Codex, ChatGPT)search("<what you want to do>"), then describe("<name>")call_read("<name>", {...}), call_write or call_destructive: the one that describe names in call_with
Hyper CLIhyperai search "<what you want to do>", then hyperai describe <name>hyperai call <name> --json '{...}'

If a tool is not found: in Hyper chat, find its toolkit id with discover_toolkits and pass it to enable_toolkit. On an MCP client or the CLI, tell the user which integration to connect in Hyper.

Tool surface

GroupTools
Brand extractionfirecrawl_branding_extract
Competitor adsmarketing_queries_start, marketing_queries_continue (stream ads.meta_library)
Image generation (default)images_generate (model="gpt-image-2")
Image generation (text-heavy)images_generate (model="nano-banana-pro")
Image generation (photoreal product shots)images_generate (model="seedream-4.5")

For deeper image-tool selection guidance see the image-generation skill. To turn finished creatives into running campaigns see google-ads and meta-ads.

Out of scope

  • Picking the right image model when the task isn't ad creative — use image-generation.
  • Creating, launching, or budgeting actual ad campaigns — use google-ads, meta-ads, tiktok-ads, pinterest-ads, or amazon-ads.
  • Searching live competitor ads — use meta-ads-library. To read the Meta ads of a known competitor by its domain or Meta page in one query, use marketing_queries_start with the ads.meta_library stream; a repeated query within a day reads the stored run at no cost.

Critical rules

  • Always extract branding first before generating visuals for a website/brand.
  • Always pass both logo and screenshot as reference images — SVG logos are auto-converted to PNG.
  • DO NOT display image URLs — they are automatically shown in chat.
  • Read brand.screenshot.description to understand the product — never guess from the company name.
  • Default to logo + headline + product screenshot for SaaS / product ads unless the user requests a different style.
  • Use model="gpt-image-2" for the initial ad creative by default — with reference images for branded work, or without for loose first-pass concepts.
  • Do not default to model="nano-banana-pro" for the first creative pass — use it when the user explicitly asks or when readable text inside the image is the main requirement.
  • Set aspect_ratio to the placement — 1:1 (feed), 9:16 (story), 16:9 (banner) — and quality ("draft" | "standard" | "high"); images_generate takes those, not raw pixel sizes.
  • Respect character limits — Google RSA headlines are 30 chars, descriptions 90 chars; Meta primary text is 125 chars visible.
  • Change one variable per variant so test results are attributable.
  • Match aspect ratio to placement — feed is 1:1, story is 9:16 (use 1024x1536), banner is 16:9 (use 1536x1024).

Routing Table

Based on what the user needs, read the appropriate reference file:

User NeedReference
"Extract branding from this site" / brand colors, logoreferences/brand-extraction.md
"Write ad copy" / headlines / variants / hooksreferences/ad-copy-frameworks.md
Google RSAs / display ads / Performance Max assetsreferences/google-ads-creatives.md
Meta / Facebook / Instagram ads / carousel / storiesreferences/meta-ads-creatives.md

When the task spans multiple areas (e.g., "create ad creatives for this website"), follow the full workflow below.

Core Workflow

Phase 1: Brand Extraction

Call firecrawl_branding_extract with the website URL. This single call returns branding data, a saved logo, and a website screenshot:

python
brand = firecrawl_branding_extract(url="https://example.com")

The result contains:

  • brand.logo.file_id — logo image to use as reference
  • brand.screenshot.file_id — website screenshot to use as reference
  • brand.branding — colors, typography, spacing, personality

Both logo and screenshot are saved images ready to pass as reference_images to image generation tools. SVG logos are automatically converted to PNG, so always include the logo — no need to filter by format.

Read references/brand-extraction.md only when the site gives no logo, colors or screenshot.

Phase 2: Ad Copy Generation

Using the brand personality, tone, and value proposition from the extraction, write ad copy variants. Structure copy by what's being tested:

  1. Hook variants — different opening angles (number-led, question, pain-point, benefit-first)
  2. Body variants — different messaging (social proof, feature highlight, urgency)
  3. CTA variants — different calls to action (Learn More, Shop Now, Get Started, Try Free)

Change only one element per variant so results can be attributed to specific changes.

The platform file of Phase 4 holds the copy rules of its placements. Read references/ad-copy-frameworks.md only for copy with no placement.

Phase 3: Visual Creative Generation

Generate ad images using brand assets as references. Always pass both logo and screenshot as reference images — SVG logos are automatically converted to PNG by the branding tool.

Read brand.screenshot.description to understand what the product actually does and what the UI looks like. Do not guess from the company name.

Preferred first pass: images_generate with model="gpt-image-2"

Default approach (best practice for SaaS / product ads)

By default, a strong ad creative has three layers: brand (logo), copy (headline), and product (realistic screenshot showing the core value prop). This is the recommended starting point when the user hasn't specified a creative direction. Use model="gpt-image-2" for this initial composition unless the user explicitly asks for another model or the image is primarily a text-rendering task.

python
images_generate(
    requests=[{
        "prompt": (
            "Social media ad creative for [company name]. "
            "Top: the [company] logo. "
            "Headline: '[headline from ad copy phase or site hero text]'. "
            "Below the headline: a clean, realistic product screenshot of [describe the actual UI "
            "based on brand.screenshot.description]. "
            "Match the brand style from the references."
        ),
        "reference_images": [brand.logo.file_id, brand.screenshot.file_id]
    }],
    model="gpt-image-2",
    aspect_ratio="1:1",
    quality="high"
)
Following user direction

If the user asks for a specific creative style (lifestyle imagery, abstract, illustration, people using the product, etc.), follow their direction. The defaults above are a starting point, not a constraint. The reference images still supply brand consistency regardless of creative direction.

Things to avoid (unless the user specifically asks)
  • Made-up visual elements (robot mascots, random platform logos, abstract graphics)
  • UI chrome (buttons, nav bars, form inputs) — ad platforms add their own CTAs
  • Guessing what the product does from the company name
  • Generic marketing clip art

Visual Tool Selection

ScenarioToolWhy
On-brand creative (default)images_generate (model="gpt-image-2") with logo + screenshot refsBest default for the first branded concept
Text-heavy creative (headlines in image)images_generate (model="nano-banana-pro")Use only when text rendering inside the image is the main requirement
Quick ideation / concept explorationimages_generate (model="gpt-image-2")Fast first-pass concepting with no references needed
Iterative refinement of existing imageimages_generate (model="nano-banana") with the image as a referenceEdit a specific generated image
Photoreal product shots / material detailimages_generate (model="seedream-4.5")Strong fabric/texture/spatial depth

Platform Quick Reference

PlatformFormatImage SizeKey Limits
Meta Feed1:11080x1080Primary text: 125 chars visible
Meta Story9:161080x1920Full screen, 15s max
Meta Carousel1:11080x1080Up to 10 cards
Google RSAN/A (text only)N/A15 headlines (30 chars), 4 descriptions (90 chars)
Google DisplayVarious1200x628Responsive display ads

For full platform specs, read references/google-ads-creatives.md or references/meta-ads-creatives.md.

Ad Copy Variant Quick Reference

When generating variants from existing top performers:

  1. Identify the winning elements: hook type, CTA, messaging angle, format
  2. Generate variants that preserve winning elements while changing one variable
  3. Group variants by what's being tested (hook, body, CTA)
  4. Pair variants for A/B testing — each pair should isolate one variable

For detailed frameworks, read references/ad-copy-frameworks.md.

  • Follow user direction — if the user wants lifestyle, illustration, abstract, or any other style, follow their lead. The reference images still supply brand consistency regardless of creative direction.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Ad Creative Generation AI skill do?

Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper MCP. Extracts brand identity from a website, writes ad copy variants, and produces brand-consistent images using reference-based image generation. Use when the user asks for ad creative, ad copy variants, RSA headlines, Meta ad creative, display ads, carousel ads, or A/B test variants.

Why use Ad Creative Generation on TypingMind?

Because you install it once and use it with any model. Ad Creative Generation is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ad Creative Generation in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/hyperfx-ai/marketing-skills/tree/main/skills/ad-creative-generation. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Ad Creative Generation?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ad Creative Generation?

As many as you like. As long as a model supports skills, you can use Ad Creative Generation with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ad Creative Generation AI skill free?

Yes. It is published on GitHub by hyperfx-ai under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇