muapi-ad-creative — Claude Code skill: ad creatives from a prompt
Builds an ad set: a hero image, three copy variations and crops sized for Meta, Google Display and LinkedIn. Useful when a campaign needs banners and there is no designer on hand.
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a claude-codeWhat muapi-ad-creative does
The skill runs in two phases. Phase A submits one plan that generates a 1:1 hero image with muapi image generate on nano-banana-pro, or muapi image edit on nano-banana-pro-edit when you pass a product_image URL. The same pass produces three ad copy directions: a problem-aware hook, a benefit-led one and a social-proof or urgency angle. Each carries a headline of up to 6 words, a 20–30 word body and CTA button text.
Then it stops and asks which variation to carry forward. Phase B fires only after you answer, and the four crops run in parallel: 1:1 for Facebook and Instagram feeds, 9:16 for Stories and Reels, 1.91:1 for the wide Facebook placement, plus a 1:1 LinkedIn feed version. Every crop prompt keeps the subject centred and uncropped and leaves headroom and footroom for text overlays.
You need MUAPI_API_KEY set before the first call; without it the skill tells you to run muapi auth configure. For model IDs that have no CLI alias, it falls back to the raw endpoint https://api.muapi.ai/api/v1/<endpoint> with curl and polls via muapi predict wait <request_id>. Phase B never auto-confirms — pick a copy variation first or nothing gets cropped.
What it helps with
- generate a hero image for an ad campaign
- get three ad copy variations with different angles
- cut one creative into four ad formats
- resize artwork to 9:16 for Stories and Reels
- assemble a set for Meta, Google Display and LinkedIn in one run
Example prompts for the agent
- Create an ad creative for a SaaS project management tool, audience is startup founders aged 25–40, goal is conversion
- Generate a hero image for our coffee line, tone bold and disruptive
- Crop the chosen creative to 9:16 and 1.91:1, leave room for text at the top
How to install muapi-ad-creative
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a claude-code2Manually: put the files in place
~/.claude/skills/muapi-ad-creative/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/muapi-ad-creative/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a codex2Manually: put the files in place
.agents/skills/muapi-ad-creative/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a cursor2Manually: put the files in place
.cursor/skills/muapi-ad-creative/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install SamurAIGPT/Generative-Media-Skills muapi-ad-creative2Manually: put the files in place
.github/skills/muapi-ad-creative/SKILL.md1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a gemini-cli2Platform CLI
gemini skills install https://github.com/SamurAIGPT/Generative-Media-Skills --path .opencode/skills/muapi-ad-creativeManually: put the files in place
.devin/skills/muapi-ad-creative/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about muapi-ad-creative
How do I install muapi-ad-creative in Claude Code?
Run npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ad-creative -a claude-code. The skill lands at ~/.claude/skills/muapi-ad-creative/SKILL.md.
What does muapi-ad-creative do?
It generates a hero image and three ad copy variations, then crops the creative to Meta, Google Display and LinkedIn formats once you pick a direction.
What do I need before running it?
A MUAPI_API_KEY in your environment. If the variable is unset, run muapi auth configure first.
Source text
SKILL.md · MIT
---
slug: muapi-ad-creative
name: muapi-ad-creative
version: "1.0.0"
description: Generate a high-converting ad creative set — hero image, ad copy variations, and platform-optimized crops for Meta, Google Display, and LinkedIn.
acceptLicenseTerms: true
---
# Ad Creative Set
**Generate a high-converting ad creative set — hero image, ad copy variations, and platform-optimized crops for Meta, Google Display, and LinkedIn.**
## Inputs
| Name | Type | Required | Default | Description |
|:---|:---|:---|:---|:---|
| `product_or_service` | text | yes | — | What is being advertised (e.g. "SaaS project management tool for remote teams"). |
| `target_audience` | text | yes | — | Who the ad is for (e.g. "startup founders aged 25–40, tech-savvy"). |
| `campaign_goal` | text | no | awareness | Campaign objective — "awareness", "consideration", or "conversion". |
| `tone` | text | no | professional, clean, modern | Creative tone and visual style (e.g. "bold and disruptive", "luxury minimal", "friendly and approachable"). |
| `product_image` | image_url | no | — | Optional product or brand image URL already in the session. |
## Steps
This skill has TWO phases. Phase A creates the hero concept for approval; Phase B fans out to platform formats.
### Phase A — Hero image + Ad copy
Submit ONE the plan with:
1. **Hero image** — `muapi image generate` (model=nano-banana-pro) or `muapi image edit` (model=nano-banana-pro-edit) if `{{product_image}}` is provided:
- Aspect ratio: 1:1 (universal starting point).
- Prompt must capture: product/service benefit, target audience lifestyle cue, campaign tone.
- Style: `{{tone}}, advertising photography, clean background, product focus, ultra detailed, commercial quality`.
- Tier: quality.
After the plan executes, present the hero asset and 3 ad copy variations:
- **Variation A** — Problem-aware hook: "Tired of X? [Product] fixes that."
- **Variation B** — Benefit-led: "[Feature] → [Outcome] for [Audience]."
- **Variation C** — Social proof / urgency: "X teams already use [Product]."
Each variation includes: Headline (6 words max), Body (20–30 words), CTA button text.
Ask which copy variation to use for Phase B. Wait for user confirmation.
### Phase B — Platform crops
Once the user picks a copy direction, submit a SECOND the plan with parallel crops:
1. `muapi image edit` → 1:1 (Facebook/Instagram feed, 1080×1080)
2. `muapi image edit` → 9:16 (Story/Reels, 1080×1920)
3. `muapi image edit` → 1.91:1 (Facebook feed wide, 1200×628)
4. `muapi image edit` → 1:1 (LinkedIn feed, same as FB)
For each crop:
- Prompt: "Reframe for [platform] ad format. Keep product/subject centered and uncropped. Maintain original palette and tone. Leave headroom/footroom for text overlays."
- All crops run in parallel.
Return one asset per format with the recommended copy overlay placement for each.
## Notes
- If `campaign_goal` is "conversion", emphasize urgency and direct CTA in copy.
- If `campaign_goal` is "awareness", prioritize visual impact over text density.
- Reference `product_image` via `$nX.url` syntax in Phase B nodes to ensure consistency.
- Do NOT auto-confirm Phase B without user picking a copy variation.
## Trigger Keywords
`ad creative`, `advertisement`, `facebook ad`, `meta ad`, `google ad`, `linkedin ad`, `paid ad`, `ad banner`, `display ad`
---
## Notes for the Executing Agent
- This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.
- For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.
- Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
© SamurAIGPT · MIT · SamurAIGPT/Generative-Media-Skills