| name | creative-matrix |
| version | 1.2.0 |
| tier | growth |
| description | Generate Meta/Facebook ad creative concepts using a 3x3x3 Creative Multiplication framework (3 messaging angles x 3 formats x 3 funnel stages = 27 unique concepts). Produces structured briefs with copy, format specs, and targeting. Optionally generates draft image and video assets. |
| requires | {"bins":[],"skills":["nano-banana"],"secrets":["GEMINI_API_KEY"]} |
Creative Matrix
Overview
Generate a full set of ad creative concepts for any brand using the Creative Multiplication framework by Curtis Howland. The framework produces 27 unique creative concepts by combining 3 messaging angles (Pain Point, Desire, Social Proof) x 3 creative formats (Static, Video, Carousel) x 3 funnel stages (TOF, MOF, BOF). Each concept is distinct enough to avoid auction overlap in Meta's algorithm.
Attribution: The Creative Multiplication framework was created by Curtis Howland, based on $30M+ in Meta ad spend. This skill implements his methodology as published on LinkedIn.
Prerequisites โ Asset Generation (Optional)
Brief/copy generation requires no additional tools. Asset generation is optional:
- Static image generation: Requires nano-banana skill (Gemini). Verify:
python3 -c "from google import genai; print('ok')" and GEMINI_API_KEY in environment. Alternatively: fal.ai MCP server (Flux, SDXL)
- Transparent product cutouts (for compositing on ad backgrounds): Requires nano-banana's full 4-pass web-asset pipeline (
generate_image.py โ edit_image.py โ make_transparent.py โ pngquant). See nano-banana skill's references/web-asset-workflow.md
- Video generation: Requires fal.ai MCP server (Kling, MiniMax, Wan)
- No tools available: Output briefs only โ the user or their production team handles asset creation
To detect availability, check if nano-banana scripts are accessible before offering asset generation:
python3 -c "from google import genai; print('nano-banana: ok')"
Workflow
Phase 1: Gather Brand Context
Before generating concepts, collect the following from the user. Ask concisely โ do not overwhelm with questions. Prioritize the first three; the rest are helpful but optional.
- Brand/Product โ What is the product or service?
- Target Audience โ Who is the ideal customer? Demographics, psychographics, pain points.
- Offer โ What is the current offer? (discount, bundle, free trial, etc.)
- Product Category Signal โ Is the value immediately visible (fashion, jewelry, food) or does the customer need to believe a transformation (skincare, supplements, coaching)? This determines the static vs video weighting.
- Existing Creative Winners โ Any ads that have worked well? What angle/format were they?
- Budget Tier โ Starter (5-10 concepts), Growth (15-18 concepts), or Full Matrix (all 27).
- Platform Notes โ Stories-heavy? Feed-heavy? Reels? This affects format specs.
Phase 2: Generate the Creative Matrix
Load references/framework.md for the full framework reference including angles, formats, funnel stages, sub-triggers, benchmarks, and combination examples.
For each concept in the matrix, produce a structured brief:
## [Cell ID] โ [Funnel] x [Format] x [Angle]
**Hook/Headline**: [The opening line or visual hook]
**Body Copy**: [Supporting copy, 2-3 sentences max]
**CTA**: [Call to action]
**Sub-Angle**: [Which sub-angle: frustration/fear/regret, aspiration/freedom/status, testimony/authority/relatability]
**Triggers**: [Psychological triggers activated]
**Format Spec**: [Dimensions, duration, card count, production notes]
**Targeting**: [Funnel stage targeting notes]
**Priority**: [High/Medium/Low based on rules below]
Prioritization Rules
Apply these rules when assigning priority and recommending test order:
- Allocate 80% of creative volume to TOF
- Weight statics higher for visually-obvious products (fashion, jewelry, food)
- Weight video higher for belief-driven products (skincare, supplements, transformations)
- Decision rule: SEE IT โ static. BELIEVE IT โ video.
- Carousels for education-heavy or comparison-selling products
- Mark Partnership/creator-handle ads as high priority when applicable (53% lower CAC)
- For starter budgets, recommend a balanced sample: 3 TOF (one per format), 2 MOF, 1 BOF
Recommended Starter Set (6 Concepts)
When the user selects Starter tier or does not specify, generate these 6 as a minimum viable test:
- TOF x Static x Pain Point
- TOF x Video x Desire
- TOF x Carousel x Social Proof
- MOF x Video x Social Proof
- MOF x Static x Desire
- BOF x Static x Pain Point (with offer)
Phase 3: Asset Generation (Optional)
If asset generation tools are available and the user requests assets:
Static Images
- For each static concept, compose an image generation prompt based on the brief's hook, visual direction, and brand context
- Generate using nano-banana
generate_image.py:
python3 scripts/generate_image.py "{hook visual description}, {brand aesthetic}, {product in context}" \
--aspect-ratio 1:1 --output ./assets/ --filename tof-static-pain-v1.png
python3 scripts/generate_image.py "{same concept adapted for vertical}" \
--aspect-ratio 9:16 --output ./assets/ --filename tof-static-pain-stories-v1.png
- Aim for smartphone-aesthetic quality โ studio polish is not needed (smartphone beats studio 84% of the time in Stories)
- Generate 1-2 variants per concept for A/B testing
- Product cutouts on colored/gradient backgrounds: Use the 4-pass transparent PNG pipeline:
python3 scripts/generate_image.py "{product}, on a simple white background" \
--output ./assets/ --filename product-raw.png
python3 scripts/edit_image.py \
"Remove the background completely. Make the background fully transparent. Keep only the main subject with clean edges. Output as PNG with alpha transparency." \
--images ./assets/product-raw.png --output ./assets/ --filename product-keyed.png
python3 scripts/make_transparent.py ./assets/product-keyed.png \
--output ./assets/ --filename product-transparent.png
pngquant --quality=65-85 --force --output ./assets/product-transparent.png \
./assets/product-transparent.png
Then composite the transparent product onto ad backgrounds using edit_image.py with the product + background as multi-image input.
Carousel Cards
- For each carousel concept, generate individual card images using nano-banana
generate_image.py with --aspect-ratio 1:1
- Card 1 must hook with the problem or question โ never lead with the product
- Final card includes the CTA and offer
- Maintain visual consistency across cards โ pass all prior cards as reference images to
edit_image.py:
python3 scripts/edit_image.py \
"Create card 2 of a carousel in the exact same visual style. {card 2 content description}" \
--images ./assets/carousel-card-1.png --output ./assets/ --filename carousel-card-2.png
Video
- For each video concept, generate a video using fal.ai if available
- Focus the prompt on the first 3 seconds โ this decides everything
- Include text overlay direction in the prompt for hook text
- If fal.ai video is not available, output a detailed script/storyboard instead:
- Shot-by-shot breakdown
- Timing (focus on 3-second hook)
- Text overlay copy
- Audio/music direction
- Recommended length (15s, 30s, or 60s)
Phase 4: Output Summary
After generating all concepts, provide a summary table:
| # | Funnel | Format | Angle | Sub-Angle | Hook (short) | Priority |
|---|
Follow with:
- Recommended test order โ which concepts to launch first
- Performance benchmarks to watch โ hook rate thresholds for video (kill below 25%, good 30-40%, scale above 40%), static conversion share targets
- Iteration guidance โ when to kill, iterate, or scale each concept
Example Output
See examples/starter-set-example.md for a complete example of the 6-concept starter set generated for a premium butcher shop. Use this as a reference for the expected output format, level of detail, and quality bar.
Format Specs Quick Reference
| Format | Dimensions | Notes |
|---|
| Static (Feed) | 1080x1080 or 1080x1350 | 1350 for more real estate |
| Static (Stories/Reels) | 1080x1920 | Full screen vertical |
| Video (Feed) | 1080x1080 or 1080x1350 | First 3 sec = everything |
| Video (Stories/Reels) | 1080x1920 | 15s or 30s preferred |
| Carousel (Feed) | 1080x1080 per card | 3-5 cards typical |