muapi-ugc-ads-workflow — Claude Code skill: UGC video ads
Turns a selfie and a product photo into a UGC video ad: combined shot, written script, animated 9:16 clip.
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ugc-ads-workflow -a claude-code
npx skills add SamurAIGPT/Generative-Media-Skills --skill ugc-ads-workflow -a claude-codeWhat muapi-ugc-ads-workflow does
The skill walks the agent through two phases. First it takes a human selfie and a product photo, sends both to muapi image edit on gpt-image-2-text-to-image, and gets back a candid shot of the influencer holding the product. The frame is vertical, 9:16, sized for TikTok, Reels and Shorts. Then the agent searches the web for details about the product, writes a timestamped UGC script, and runs image-to-video on sd-2-omni-reference or veo3.1-image-to-video. You end up with the clip plus the script text, so you can record your own voiceover or run it through a lipsync tool later.
Only product_name is required. Images are optional: the skill asks you to upload them or offers to generate them. You need a MUAPI_API_KEY before anything runs; if it is unset, start with muapi auth configure. For model IDs that have no CLI alias yet, the skill falls back to the raw endpoint with curl and polls via muapi predict wait <request_id>.
Both phases go through the muapi CLI, so nothing works without it. The combined image is shown to you for approval before video generation — worth a look if the product has to appear exactly right.
What it helps with
- build a vertical ad frame from a selfie and a product photo
- write a timestamped UGC video script
- generate a video from a single reference image
- get script text for your own voiceover
- prepare a 9:16 clip for TikTok, Reels and Shorts
Example prompts for the agent
- Make a UGC ad for Blume SuperBalm in plum, I'll attach the selfie and product photo
- Combine these two images into a 9:16 clip and write the script
- Generate a UGC video for this product and show me the script separately
How to install muapi-ugc-ads-workflow
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ugc-ads-workflow -a claude-codenpx skills add SamurAIGPT/Generative-Media-Skills --skill ugc-ads-workflow -a claude-code2Manually: put the files in place
~/.claude/skills/ugc-ads-workflow/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ugc-ads-workflow/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill ugc-ads-workflow -a codex2Manually: put the files in place
.agents/skills/ugc-ads-workflow/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill ugc-ads-workflow -a cursor2Manually: put the files in place
.cursor/skills/ugc-ads-workflow/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install SamurAIGPT/Generative-Media-Skills ugc-ads-workflow2Manually: put the files in place
.github/skills/ugc-ads-workflow/SKILL.md1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill ugc-ads-workflow -a gemini-cli2Platform CLI
gemini skills install https://github.com/SamurAIGPT/Generative-Media-Skills --path library/social/ugc-ads-workflowManually: put the files in place
.devin/skills/ugc-ads-workflow/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill ugc-ads-workflow -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-ugc-ads-workflow
How do I install muapi-ugc-ads-workflow in Claude?
Run npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-ugc-ads-workflow -a claude-code. The skill lands in ~/.claude/skills/ugc-ads-workflow/SKILL.md.
What does muapi-ugc-ads-workflow do?
It combines a selfie and a product photo into one shot, writes a UGC script, and generates a vertical 9:16 video.
What do I need before running it?
A MUAPI_API_KEY and the muapi CLI. If the key is unset, run muapi auth configure first.
Source text
SKILL.md · MIT
---
slug: muapi-ugc-ads-workflow
name: muapi-ugc-ads-workflow
version: "1.0.0"
description: Create a User-Generated Content (UGC) video ad by combining a human selfie and a product image, then generating a video script and an animated ad.
acceptLicenseTerms: true
---
# UGC Ads Workflow
**Create a User-Generated Content (UGC) video ad by combining a human selfie and a product image, then generating a video script and an animated ad.**
## Inputs
| Name | Type | Required | Default | Description |
|:---|:---|:---|:---|:---|
| `product_name` | text | yes | — | The name of the product being advertised (e.g. "Blume SuperBalm in plum"). |
| `human_image` | image_url | no | — | A selfie or photo of the human influencer. |
| `product_image` | image_url | no | — | A clear photo of the product. |
## Steps
### Phase A — Image Combination
If `{{human_image}}` or `{{product_image}}` is not provided, ask the user to upload them or offer to generate them.
Once both images are available, submit the plan with ONE step to combine them:
1. **Image Generation** — `muapi image edit` (model=`gpt-image-2-text-to-image`):
- Reference Images: Use both `{{human_image}}` and `{{product_image}}`.
- Prompt: `A natural, candid UGC-style photo of the influencer from the first reference image holding and showcasing the product from the second reference image. The influencer is smiling genuinely at the camera, holding the product up. Natural indoor lighting, lifestyle aesthetic, high quality.`
- Aspect ratio: 9:16 (vertical for TikTok/Reels/Shorts).
Present the combined image to the user for approval.
### Phase B — Script & Video Generation
1. **Research & Scripting**: Use your web search tools to find details about `{{product_name}}` to understand its key benefits.
2. Based on the research, craft a UGC-style video script with timestamps, similar to this format:
*(0-2s) Influencer is holding the {{product_name}}, smiling genuinely to the camera.*
"Okay, so you know how I'm always looking for that perfect everyday product?"
*(2-7s) Influencer shows the product closer to the camera...*
"Well, I found it! This {{product_name}} is seriously so good."
*(7-12s) Influencer uses/applies the product.*
"It feels amazing and actually works."
*(12-15s) Influencer smiles, slightly pouts, and casually shrugs or nods in approval.*
"It’s totally become my go-to. You have to try it!"
3. **Video Generation**: Submit the plan using an image-to-video model (e.g. `sd-2-omni-reference` or `veo3.1-image-to-video`).
- Reference Image: The combined image from Phase A.
- Prompt: Use the visual actions from the script you generated. For example: `A UGC-style video. The influencer holds the {{product_name}}, smiling genuinely. She brings it closer to the camera to show the label, then applies it smoothly. She nods in approval and smiles. Natural movements, talking to the camera, lifestyle vlog style.`
- Aspect ratio: 9:16
After generating the video, present it along with the written script so the user can record their own voiceover or use a lipsync tool later.
## Trigger Keywords
`ugc ad`, `ugc video`, `influencer ad`, `product ad video`, `combine product and human`
---
## 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