skill
ugc-reaction-studio
Claude Code skill: phone-realistic UGC reaction ads (Higgsfield generation + Remotion), native-audio-first.
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/docusphere/ugc-reaction-studio itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 17, 2026UGC Reaction Ad Studio
· a Claude Code skill
Make a talking-head reaction ad that reads as a real person filming on their phone — an AI creator (full-screen or a floating corner cut-out) carries the voiceover while the main screen cuts between B-roll footage and real evidence screenshots. Generated on Seedance 2.0 via Higgsfield with native audio — the creator speaks his own lines, so lip-sync is baked in at generation time (no TTS, no separate sync pass) — then graded "shot-on-a-phone" and composited karaoke-captioned in Remotion, all inside Claude Code.
Type /ugc-reaction-studio and it drives the whole thing.
Demo
Install
Drop the ugc-reaction-studio/ folder into a Claude Code skills directory:
# per-project (recommended — the skill lives with the project it builds ads in)
mkdir -p your-project/.claude/skills
cp -R ugc-reaction-studio your-project/.claude/skills/
# …or globally, for every project
mkdir -p ~/.claude/skills
cp -R ugc-reaction-studio ~/.claude/skills/
Open that project in Claude Code and run /ugc-reaction-studio. On first run it preflight-checks the tools below, then scaffolds inputs/ + outputs/ for you. (Requires Claude Code.)
Prerequisites (install these first)
The skill runs a preflight "doctor" check on first run and tells you exactly what's missing. What it needs:
| Need | Required? | Notes |
|---|---|---|
| Higgsfield MCP (paid account) | ✅ | all generation (creator, clips, lip-sync, bg-removal). higgsfield.ai → connect in Claude Code |
| Node.js + Remotion | ✅ | compositing/render. Skill runs npx create-video@latest if absent |
| ffmpeg | ✅ | grade, audio, matte compositing |
| whisper.cpp | ✅ | caption word-timing (@remotion/install-whisper-cpp) |
| A browser tool (built-in Claude Code browser, or a Playwright/Chrome MCP) | ⬜ optional | lets Claude capture the evidence screenshots for you. Without it, you capture them manually — the skill works either way |
| Python 3 + pyroomacoustics | ⬜ optional | physically-modelled room acoustics for the voice; graceful fallback to a synthetic room if absent (pip install pyroomacoustics numpy scipy soundfile) |
| Higgsfield credits | ✅ | generation isn't free |
Claude can use a browser tool if one is configured, but can't install an MCP for you — that's a one-time
claude mcp add/ connector setup. Many Claude Code installs already ship a built-in browser.
Workspace: inputs/ vs outputs/ (and the templates)
On first run the skill auto-creates these — you never make folders by hand:
inputs/= what you feed in:config.csv(locked style),beats.csv(script + screen plan),product.png, optionalcreator-ref.png,screenshots/(your real evidence).outputs/= what the skill produces:creator/,footage/,vo/,stage/,remotion/,final/(the rendered ad).example-config.csv/example-beats.csvin the skill folder are templates only — your working files live ininputs/. The skill copies from the templates on first run; never edit the templates per-ad.
The pipeline (gated order)
| Step | You do | Claude does |
|---|---|---|
| 0 · Preflight | — | checks deps + browser, prints what's missing |
| 1 · Product | name, audience, the one claim, vibe (+ optional image) | sets brand DNA, seeds product.png |
| 2 · Script/Beats | angle (or "you write it") | writes the reaction script + lists the evidence to capture |
| 3 · Creator | approve | casts an ordinary/relatable creator, locks ONE base reference |
| 4 · Voice | approve the hook | default: the creator speaks the lines himself (Seedance native audio — real voice, perfect sync). Or pick a specific/cloned voice (TTS) |
| 5 · Footage | approve prompts | talking beats (native voice) + B-roll + product-use demo, from the locked base |
| 6 · Lip-sync (TTS path only) | — | Sync Lipsync 3 on every talking shot — skipped when using native audio |
| 7 · Evidence | capture (or Claude captures if a browser is present) | real screenshots → inputs/screenshots/ |
| 8–10 · Post + Render | preview | matte cut-out + grade + karaoke captions → Remotion renders a 9:16 MP4 to outputs/final/ |
Why this format
The AI only makes the talking head — the easiest thing to make realistic. The persuasion lives in real screenshots, which can't look fake because they aren't. Corner-head-over-evidence is a proven high-converting DTC format.
Rules
- Keep the product original (fictional or owned) — no third-party brands/logos in the footage.
- Evidence screenshots are real; never fabricate reviews or studies.
Depth docs
references/realism-playbook.md— the exact locked recipes (casting, native-audio voice, corner cut-out + solid backing, grade, captions, tooling).references/lessons.md— the mistakes-and-fixes log from building real ads (four rounds), so you skip them — including why native Seedance audio beat TTS+lip-sync.scripts/room_ir.py— optional pyroomacoustics room-IR generator (for the TTS voice path).
License
MIT — free to use, modify, and redistribute with attribution. Keep the product original and the evidence real (see Rules); those are creative guardrails, not license terms.
Built by Frank Nillard. I also make ConvertChat — turn store traffic into WhatsApp sales: convertchat.co