Product Shots Ad Creative logo

Product Shots Ad Creative

Organization
motiful
product-shots-ad-creative

Designs high-performing ad creatives across Instagram, Facebook, TikTok, LinkedIn, Google (Display / Demand Gen), YouTube, Pinterest, and X/Twitter — locking platform dimensions, safe zones, text overlay policy, character limits, industry visual DNA, ad objective hierarchy, composition patterns, CTA strategy, and prompt sanitation. Use when the user says "create an ad", "design an ad creative", "make an ad", "广告创意", "帮我做个广告图", "Instagram ad", "TikTok ad", "Facebook ad", "Google Display ad", "LinkedIn ad", "YouTube ad", "Pinterest ad", "promotional image", "campaign creative", "ad banner", "投放图", or any platform-specific ad request. Routed from `product-shots` when `asset_type == "ad"` or `is_promotion == True`.

Overview

Publishermotiful
Repositoryproduct-shots
Skill nameproduct-shots-ad-creative
Stars
121
Forks
18
Bundled files
11
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.

  • 11 bundled files

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

  • Open source

    Published by motiful on GitHub. Read the source before you install it.

Installation

Install the Product Shots Ad Creative 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/motiful/product-shots/tree/main/skills/product-shots-ad-creative
  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/motiful/product-shots.git /tmp/product-shots
mkdir -p .claude/skills
cp -r /tmp/product-shots/skills/product-shots-ad-creative .claude/skills/product-shots-ad-creative
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Product Shots Ad Creative 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 Product Shots Ad Creative 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 Product Shots Ad Creative 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 Design

Designs ad creatives that are platform-native (correct dimensions, safe zones, text overlay policy, character limits), industry-precise (visual DNA per industry × ad objective), and prompt-sanitized (no platform names / UI artifacts / fake ad elements leak into the image generator). The skill lays out an 8-platform × 21-format matrix, a six-step workflow, a self-check gate, and a banned-words system with a positive-preservation companion rule.

Engagement Principles

These rules apply across every Section. Read before acting.

  1. No generic one-size-fits-all creatives — every creative is locked to a specific (platform, format, objective, industry) tuple. No tuple = no work.
  2. Hard Constraints first — Section 0 (Platform Dimensions / Safe Zones / Text Overlay / Ad Copy Char Limits) is loaded at Step 0 and re-validated at the Self-Check Gate before delivery. Violations like "text on Google Display" or "CTA in TikTok bottom 18%" cause platform takedowns or render the ad invisible.
  3. Brand Name & User Copy Fidelity is MUST-level — every brand name, slogan, CTA text, and price/offer the user specified must appear verbatim in the deliverable. Never paraphrase, translate, or substitute user-supplied copy.
  4. Industry × Objective drives composition + color — pick the composition pattern and color strategy from the cross-decision matrix (Section 8 / Section 9), not from generic style intuition.
  5. Platform Style Profiles are not stylistic suggestions — they are constraints. TikTok requires anti-ad aesthetic AND complete brand/product/CTA info; LinkedIn requires ≥60pt fonts; Pinterest requires aspirational scenes; Google Display requires zero text overlay.
  6. Prompt Banned Words are filtered out of the image generator prompt — platform names, ad-UI terms, brand-tool names never reach the model. They are used internally for routing and rule selection only.
  7. Required Positive Instruction protects native packaging text — "no text overlay" must not delete printed text on the product itself. Always pair the banned-words filter with the positive preservation instruction (references/banned-words.md §Required Positive Instruction).
  8. Match the user's language — respond in English if the user writes English, in Chinese if Chinese. Never switch language unprompted.
  9. Use <suggestion> for option sets — when proposing platform / objective / industry / asset choices, wrap them in <suggestion> tags. Never ask multiple questions at once.

Execution Procedure

generate_ad_creative(user_request) → variant[] + self_check
# This EP IS the inlined procedural backbone. Each Step calls the EP entry point
# of its corresponding reference module — bindings below are bidirectional (every
# call has a matching `def` in references/*.md).

# Step 0 — Pin hard constraints (MUST, before any decision)
load references/hard-constraints.md
    → Platform Dimensions / Safe Zones / Text Overlay Rules / Ad Copy Char Limits
load references/banned-words.md
    → Prompt Banned Words + Required Positive Instruction (Preserve Native Packaging Text)
keep these in working context for every step.
defer enforcement to Step 6 — `enforce_constraints(format, output_text, prompt_text, user_copy)`
will be called there with the four params built up over Steps 1–5.

# Step 1 — Platform + Objective (Quick Start: 7 required fields)
brief_state = preflight(user_request)  # references/quick-start-and-fidelity.md
collect 7_required_fields:
    platform, format, ad_objective, industry,
    visual_assets, brand_kit, copy (brand_name / slogan / cta / price)
missing = [f for f in 7_required_fields if not provided(f)]
if missing:
    filled = Skill("product-shots", f"fill missing fields: {missing}")
    # `Skill("product-shots", "fill missing fields: <list>")` — the hub/router skill owns Quick Start clarification.
    # ad-creative owns the post-fill workflow. Do not substitute with manual clarification questions.
    assert filled.delivered          # Step 2 requires the filled brief
    brief = filled.brief
else:
    brief = brief_state.ready_brief
for phrase in [brief.copy.brand_name, brief.copy.slogan, brief.copy.cta, brief.copy.price]:
    if phrase: register_protected_phrase(phrase)   # references/banned-words.md

# run_workflow(brief) is the canonical procedural backbone. Steps 2–6 below
# unfold it inline so the EP stays readable; each named call matches a `def`
# entry in the corresponding reference module.
result = run_workflow(brief)   # references/workflow-and-self-check.md

# Step 2 — Industry + Brand
industry = match_industry(user_request)
bundle   = load_industry_bundle(industry)   # references/industry-style-rules.md
                                            # (color palette / composition / typography / CTA tone / forbidden)
if brief.brand_kit:
    kit = parse_brand_kit(brief.brand_kit)    # references/industry-style-rules.md
    apply_brand_kit_overrides(bundle, kit):
        • brand colors  → primary palette  (overrides industry defaults)
        • brand fonts   → headlines
        • brand logo    → composed per platform safe-zone rules

# Step 3 — Visual Asset Audit
"Available assets determine the creative ceiling."
classified_assets = classify(brief.visual_assets)   # references/composition-patterns.md
    # ∈ {has_product_photo, has_model_photo, has_logo_only, has_none, ...}
    # drives composition pattern selection in Step 4

# Step 4 — Composition + Color (Industry × Objective cross-decision)
composition    = select_composition_pattern(industry, ad_objective, classified_assets)
    # references/composition-patterns.md (12 patterns)
color_strategy = pick_color_strategy(industry, brief.brand_kit)
    # references/color-and-cta-strategy.md §Color Strategy
cta_strategy   = pick_cta_strategy(ad_objective, platform)
    # references/color-and-cta-strategy.md §CTA Strategy
apply_objective_rules(creative, ad_objective)
    # references/ad-objective-rules.md — info hierarchy / cta_intensity / text_density
validate_color_scheme(color_strategy.primary, industry)
    # references/color-and-cta-strategy.md / industry-style-rules.md

# Step 5 — Platform Adaptation Layer (inject platform-specific differences)
for each target_platform in brief.platforms:
    apply_platform_profile(prompt, target_platform)
        # references/platform-style-profiles.md (tone / production / text style / cadence)
    prompt = sanitize_prompt(prompt, protected_phrases)
        # references/banned-words.md — filter banned words, restore user copy,
        # inject Required Positive Instruction (Preserve Native Packaging Text)
multi_platform_fanout(brief, brief.platforms)
    # references/multi-platform-output.md (per-platform output + cross-format consistency)
# Section 16 — fill any deferred field with DEFAULTS
for field in required_fields:
    if not provided(field) and user_deferred(field):
        use DEFAULTS[field]   # references/failures-defaults-output.md §Defaults

# Step 6 — Self-Check Gate (mandatory) — Quality Check Before Delivery
for each variant:
    findings = enforce_constraints(format, output_text, prompt_text, user_copy)
        # references/hard-constraints.md — re-validates dimensions / safe zones /
        # text overlay / char limits / banned words / Required Positive Instruction /
        # Brand Name & User Copy Fidelity (user_copy preserved verbatim)
    if findings:
        revise prompt and regenerate
        continue
    apply_objective_rules(variant, ad_objective)         # Check 10 promotion validation
    validate_tiktok_native_aesthetic(variant)            # Check 7 platform_tone (when platform == tiktok)
    validate_color_scheme(dominant_colors, industry)     # Check 6 industry forbidden colors
    if all pass → emit variant

# Output assembly — variant[] + self_check_score block per
# references/failures-defaults-output.md §Section 17 VARIANT_OUTPUT_SCHEMA.
emit variant[] + self_check_score
on user request → iterate
on user satisfied:
    Run: `Skill("product-shots-image-gen", f"render variants: {variant[].prompt} use_case=text-overlay")`
    Do not substitute with manual image-generation prompts or direct model calls.
    Record output — final delivery to the user requires the rendered images.
    use_case=text-overlay is REQUIRED for ad-creative — ad copy (headlines,
    CTAs, price chips) MUST render legibly; this routes to gpt-image-2.
    See product-shots-image-gen/references/model-selection.md.

TOC of Module Files

  • references/hard-constraints.md — Section 5 (Hard Constraints, 4 sub: Platform Dimensions / Safe Zones / Text Overlay Rules / Ad Copy Character Limits). MUST-level. Loaded at EP Step 0 and re-validated at Step 6.
  • references/banned-words.md — Section 20 (Prompt Banned Words, 3 sub: Exception / Banned Words List / Required Positive Instruction). MUST-level. Loaded at EP Step 0 alongside hard-constraints.md and re-validated at Step 6. Split from hard-constraints.md to keep both files under the 300-line cap.
  • references/quick-start-and-fidelity.md — Section 3 (Target Users), Section 4 (Quick Start — 7 Required Fields), Section 5 (Brand Name & User Copy Fidelity Rule).
  • references/workflow-and-self-check.md — Section 6 (Core Workflow Six-Step Process), the procedural backbone with the Self-Check Gate.
  • references/industry-style-rules.md — Section 7 (Industry Style Rules), industry × visual parameters (color, composition, typography, CTA tone, forbidden, market share).
  • references/ad-objective-rules.md — Section 8 (Ad Objective Rules — Objective Determines Information Hierarchy).
  • references/platform-style-profiles.md — Section 9 (Platform Style Profiles — Quick Reference, per-platform tone / production / text style / refresh cadence / what works / avoid).
  • references/composition-patterns.md — Section 10 (Composition Patterns — Shared Pattern Library, 12 patterns).
  • references/color-and-cta-strategy.md — Section 11 (Color Strategy: Industry × Color Matrix + Color Rules) + Section 12 (CTA Strategy).
  • references/multi-platform-output.md — Section 13 (Multi-Platform Output Rules) + Section 14 (Creative Fatigue & Refresh Cadence).
  • references/failures-defaults-output.md — Section 15 (Common Failure Modes) + Section 16 (Defaults — Fallback Values When User Doesn't Specify) + Section 17 (Output Format) + Section 18 (Performance Benchmarks).

Section Index

Goal — No Generic One-Size-Fits-All Creatives        → SKILL.md §Goal
Language Rule                                        → SKILL.md §Language Rule
Target Users — Small Business Owners and Marketers   → references/quick-start-and-fidelity.md §Target Users
Quick Start — 7 Required Fields Before Generating    → references/quick-start-and-fidelity.md §Quick Start
Brand Name & User Copy Fidelity Rule                 → references/quick-start-and-fidelity.md §Fidelity Rule
Hard Constraints — Must Not Be Violated              → references/hard-constraints.md
  Platform Dimensions — Quick Reference
  Safe Zones — Each Platform's UI Overlays Differ Completely
  Text Overlay Rules — Text Policies Vary Drastically Across Platforms
  Ad Copy Character Limits
Core Workflow — Six-Step Process                     → references/workflow-and-self-check.md
  Step 1: Platform + Objective
  Step 2: Industry + Brand
  Step 3: Visual Asset Audit — Available Assets Determine the Creative Ceiling
  Step 4: Composition + Color — Determined by Industry × Objective
  Step 5: Platform Adaptation Layer — Inject Platform-Specific Differences
  Step 6: Self-Check Gate — Quality Check Before Delivery
Industry Style Rules                                 → references/industry-style-rules.md
Ad Objective Rules — Objective Determines Info Hierarchy → references/ad-objective-rules.md
Platform Style Profiles — Quick Reference            → references/platform-style-profiles.md
Composition Patterns — Shared Pattern Library        → references/composition-patterns.md
Color Strategy — Industry-Based Color Guide          → references/color-and-cta-strategy.md §Color Strategy
  Industry × Color Matrix
  Color Rules
CTA Strategy — Call-to-Action Design Rules           → references/color-and-cta-strategy.md §CTA Strategy
Multi-Platform Output Rules                          → references/multi-platform-output.md §Multi-Platform Output
Creative Fatigue & Refresh Cadence                   → references/multi-platform-output.md §Refresh Cadence
Common Failure Modes                                 → references/failures-defaults-output.md §Common Failure Modes
Defaults — Fallback Values When User Doesn't Specify → references/failures-defaults-output.md §Defaults
Output Format — Standard Output per Variant          → references/failures-defaults-output.md §Output Format
Performance Benchmarks — Key Data Reference          → references/failures-defaults-output.md §Performance Benchmarks
Prompt Banned Words — Avoid Watermarks, UI Artifacts, and Fake Ad Elements
                                                     → references/banned-words.md
  Exception: User-Specified Content Passthrough
  Banned Words List
  Required Positive Instruction — Preserve Native Packaging Text
IMPORTANT!Suggestion                                → SKILL.md §IMPORTANT — Suggestion Format

Goal

Design ad creatives that are platform-native (precise dimensions, safe zones, text overlay policy, character limits), industry-precise (visual DNA matched to industry × ad objective), and prompt-clean (no fake UI / watermarks / platform names leak into the image generator). Refuse to produce a generic "one-size-fits-all" image. Every variant passes a self-check gate before delivery.

Language Rule

Always respond in the user's language.
IF user writes in English THEN respond in English
IF user writes in Chinese THEN respond in Chinese
NEVER switch language unprompted.

IMPORTANT — Suggestion Format

IMPORTANT!Suggestion:
Always use <suggestion> format to guide the user.
Do not ask several questions at once.

Example: use <suggestion> format to provide options like
Instagram (Feed / Story / Reel / Carousel) / Facebook / TikTok / LinkedIn /
Google Display / Google Demand Gen / YouTube / Pinterest / X (Twitter) / Other platform.

This is the front-end rendering instruction — option sets are wrapped in <suggestion> tags so the UI renders them as clickable chips.

Cross-Skill Notes

  • Upstream router: product-shots routes here when asset_type == "ad" or is_promotion == True. The conditional pre-fill for Quick Start fields happens inside product-shots's clarification state machine; the actual six-step workflow runs inside this skill (Section 6).
  • Quick Start dependency: when any of the 7 required fields is missing, this skill defers to product-shots for clarification ("If any of these are missing, use hub first."). This is conditional pre-fill, not a hand-off — once fields are filled, control returns here.
  • Brand Kit: when the user provides a Brand Kit (file path or inline colors / fonts / logo), Step 2 integrates it as hard constraints. Brand Kit overrides industry-default colors and is a cross-skill consistency anchor shared with all peer product-shots skills.
  • Industry Visual DNA is shared with product-shots-social-post and product-shots (cross-skill consistency).
  • Image generation backend: rendered prompts are dispatched to product-shots-image-gen (the product-shots image-gen engine) which abstracts the underlying API (OmniMaaS / OpenAI / Gemini).
  • Adjacent boundary skills (peers, not invoked from inside product-shots-ad-creative): product-shots-social-post (organic social content, no ad-objective layer), product-shots-main-image (Amazon-compliant product main image), product-shots-detail-page (Amazon A+ Content), product-shots-multi-angle (model-consistency portrait series).

Tooling

  • product-shots — invoked when any of the 7 required fields is missing (Quick Start gate).
  • product-shots-image-gen — invoked at output assembly to actually generate images from the composed prompts.
  • Brand Kit input (Step 2) — parsed directly from a user-provided file path or inline fields. No external tool call required.

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 Product Shots Ad Creative AI skill do?

Designs high-performing ad creatives across Instagram, Facebook, TikTok, LinkedIn, Google (Display / Demand Gen), YouTube, Pinterest, and X/Twitter — locking platform dimensions, safe zones, text overlay policy, character limits, industry visual DNA, ad objective hierarchy, composition patterns, CTA strategy, and prompt sanitation. Use when the user says "create an ad", "design an ad creative", "make an ad", "广告创意", "帮我做个广告图", "Instagram ad", "TikTok ad", "Facebook ad", "Google Display ad", "LinkedIn ad", "YouTube ad", "Pinterest ad", "promotional image", "campaign creative", "ad banner", "...

Why use Product Shots Ad Creative on TypingMind?

Because you install it once and use it with any model. Product Shots Ad Creative 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 Product Shots Ad Creative in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/motiful/product-shots/tree/main/skills/product-shots-ad-creative. 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 Product Shots Ad Creative?

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 Product Shots Ad Creative?

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

Is the Product Shots Ad Creative AI skill free?

Yes. It is published on GitHub by motiful 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 👇