muapi-product-ad-cinematic — Claude Code skill for product ads
Turns a product photo and brand brief into a short cinematic ad. It presents four hero-frame options first, then animates the selected frame and creates background music.
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-product-ad-cinematic -a claude-code
npx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -a claude-codeWhat muapi-product-ad-cinematic does
The skill takes a product photo URL and a text brief describing the brand mood. It generates four hero-frame variants, changing lighting, palette, framing, and lens while preserving the product's geometry. After the user picks one, the skill upscales the frame and animates it; music generation runs alongside those steps.
The photo must already be uploaded. Set MUAPI_API_KEY with muapi auth configure if the environment variable is unset. duration_sec controls the final video length; its default is 6 seconds, with a supported range of 5–10. The final generation step costs about 80 cr, so the skill waits for the user's confirmation before proceeding.
If video generation fails after failover, the fallback is the upscaled still with music. For model IDs without a CLI alias, the recipe uses curl against the raw endpoint and waits with muapi predict wait.
What it helps with
- generate hero-frame options from a product photo
- match the ad's visual direction to a brand brief
- animate a selected still into a short product video
- create background music based on the brand mood
- return a still image and music when video generation fails
Example prompts for the agent
- Create a cinematic product ad from this photo. Brand brief: luxury minimal.
- Make a 5-second product video with a playful visual direction.
- Build a product commercial from this photo; show me the hero-frame options before continuing.
How to install muapi-product-ad-cinematic
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-product-ad-cinematic -a claude-codenpx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -a claude-code2Manually: put the files in place
~/.claude/skills/product-ad-cinematic/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/product-ad-cinematic/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -a codex2Manually: put the files in place
.agents/skills/product-ad-cinematic/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -a cursor2Manually: put the files in place
.cursor/skills/product-ad-cinematic/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install SamurAIGPT/Generative-Media-Skills product-ad-cinematic2Manually: put the files in place
.github/skills/product-ad-cinematic/SKILL.md1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -a gemini-cli2Platform CLI
gemini skills install https://github.com/SamurAIGPT/Generative-Media-Skills --path library/motion/product-ad-cinematicManually: put the files in place
.devin/skills/product-ad-cinematic/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -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-product-ad-cinematic
How do I install muapi-product-ad-cinematic in Claude Code?
Run npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-product-ad-cinematic -a claude-code. The install commands also provide npx skills add SamurAIGPT/Generative-Media-Skills --skill product-ad-cinematic -a claude-code.
What does muapi-product-ad-cinematic do?
It generates four hero-frame options from a product photo and brand brief. After the user picks one, it upscales and animates the frame and creates background music.
What inputs and setup does the skill need?
Provide a URL for an already uploaded product photo and a text brand brief. MuAPI commands need MUAPI_API_KEY configured; set the video length with duration_sec.
Source text
SKILL.md · MIT
---
slug: muapi-product-ad-cinematic
name: muapi-product-ad-cinematic
version: "1.0.0"
description: Cinematic 5–10s product ad from a product photo + brand brief.
acceptLicenseTerms: true
---
# Cinematic Product Ad
**Cinematic 5–10s product ad from a product photo + brand brief.**
## Inputs
| Name | Type | Required | Default | Description |
|:---|:---|:---|:---|:---|
| `product_image` | image_url | yes | — | URL of the product photo (must already be uploaded). |
| `brand_brief` | text | yes | — | Mood / style direction (e.g. "luxury minimal", "playful"). |
| `duration_sec` | int | no | 6 | Final video length in seconds (5–10). |
## Steps
This skill has TWO phases separated by a user pick. Submit them as two
separate the plan calls — never bundle downstream steps into the
first plan.
### Phase A — variant exploration (cheap)
Submit ONE the plan containing only:
1. **Hero frame variants** — 4 separate `muapi image generate` nodes
(model=nano-banana-2, aspect_ratio=16:9 by default).
- Each prompt restyles the product against the brand brief mood. Vary
lighting, palette, framing, and lens between variants. Keep product
geometry intact.
- Reference the user's `product_image` if the model supports image
conditioning; otherwise describe the product in detail.
After the plan executes, end your turn with a brief message listing the 4
asset_ids and asking the user which one to take forward (e.g.
"Pick a hero (asset_1, asset_2, asset_3, or asset_4)?"). Wait.
### Phase B — commit on the picked hero (expensive)
Once the user replies with their pick, submit a SECOND the plan:
1. **Upscale** the picked frame — `enhance_image` (operation=upscale).
2. **Animate** the upscaled frame — `muapi video from-image` (model=kling-v3.0-standard-image-to-video,
duration={{duration_sec}}, prompt="slow cinematic push-in, soft
volumetric light, subtle product micro-rotation"). Reference the
upscale's URL with `$nX.url`.
3. **Background music** — `muapi audio create` (kind=music) — runs in parallel
with the upscale/animate. Style derived from `brand_brief` (luxury →
"ambient cinematic, warm strings, slow tempo, instrumental"). Duration
≈ video length.
4. Return the upscaled hero image and the final video.
## Notes
- If the brief mentions "luxury", bias the palette to gold/black; for "playful",
bias to bright/saturated.
- If video gen fails after failover, fall back to a still-frame slideshow
(just return the upscaled hero + music).
- Don't auto-confirm step 4 — its cost (~80 cr) deserves a user nod.
## Trigger Keywords
`product ad`, `commercial`, `cinematic ad`, `product video`
---
## 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