{"slug":"render-glassy-matte-grwm","title":"render-glassy-matte-grwm","summary":"Assemble a multi-scene GRWM beauty-demo ad from a config — a locked-identity creator applies ~5 products step by step while a SEPARATE ElevenLabs voiceover narrates and every scene cut is snapped to the VO's product-name word-starts (Whisper word-level timestamps), then ~5 Playwr","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-11T17:23:08.655323Z","repo":{"url":"https://github.com/gooseworks-ai/goose-skills","stars":1222,"forks":208,"license":"MIT","updatedAt":"2026-09-22T18:53:29Z"},"bodyHtml":"<h1>render-glassy-matte-grwm scripts — the FREE assembly</h1>\n<p><code>render-glassy-matte-grwm</code> is the <strong>deterministic, $0 assembly stage</strong> of the multi-scene GRWM\nbeauty-demo format. The paid stages (the SEPARATE narration VO, the ~7 Seedance scene clips, the\n~5 gpt-image-2 product cutouts + the flat-lay end-card still, the music bed) are separate\ncapabilities — <code>create-music-elevenlabs</code>, <code>create-video-fal</code>, <code>create-image-gpt-image-fal</code>. This\ncapability spends nothing — it takes the VO + <code>&lt;vo&gt;.words.json</code> + one clip per product step + the\n~5 product cutouts + the music bed and stitches the finished master. Re-cuts (new cut windows,\nre-timed cards, a swapped end card, caption chunking) reuse the existing VO / clips / cutouts and\ncost <strong>$0</strong>.</p>\n<p><code>config.example.json</code> is the worked example (DIBS Beauty \"5-Step Glassy Matte Routine\", ~32s\n1080×1920). <code>PIPELINE.md</code> maps every config block to its source step. This README documents the\nFREE assembly pieces that <code>render-glassy-matte-grwm</code> owns.</p>\n<h2>1. Re-cut to the VO word-starts + hard-concat on the cut</h2>\n<p>The SEPARATE VO drives the timeline. Groq <code>whisper-large-v3</code> word-level gives the word-start of\neach \"step N\" and each product name; <strong>scene cuts land on the \"step N\" word-starts</strong> (cut to the\nnext product when its step is announced), and a scene may sub-cut for pacing. Re-cut each clip to\nits VO window and <strong>hard-concat on the cut</strong> — no dissolves. <strong>Re-encode <code>-c:v libx264 -crf 20</code></strong>\n— <code>-c copy</code> corrupts the duration when zoompan/PNG clips are in the chain. ~12 cuts over ~32s.</p>\n<h2>2. Product cards — Playwright render + composite on the product-name beats</h2>\n<p>Playwright renders the card template (<code>product-card.html.tmpl</code>) at <strong>2× scale</strong> → one PNG per\nproduct — a warm cream card, a pink accent bar, the real white-bg cutout thumb, the product name,\nand the PDP-verified tagline. The cutout must match the REAL product (not the Seedance scene's\nhallucinated barrel), and the tagline is verified against the brand PDP (AI flat-lays hallucinate\nsublines). Each card is composited onto the master <strong>snapped to its product-NAME word-start</strong> (~1s\nafter the scene cut), fading in over ~1s, held until the next product is named. <strong>PNG overlay\ninputs NEED <code>-loop 1 -t &lt;dur&gt;</code></strong> — without it the PNG emits one frame at t=0 and the fade/enable\nfilters silently no-op (the card is invisible).</p>\n<h2>3. Captions — clean-white, override the preset</h2>\n<p>Clean-white captions from the VO's Whisper words, <strong>overridden to 3 words/cue, ~3.0% font, ~20%\nmargin, NO pill, NO shadow</strong> (the default 5-words/4.5%/18% preset reads too dense for this format).\nBurned last. If the host ffmpeg lacks libass (no <code>subtitles</code>/<code>ass</code> filter), render the cues as\ntimed PIL PNG overlays composited with ffmpeg <code>overlay=…:enable='between(t,st,en)'</code> at the same\nplacement.</p>\n<h2>4. FFmpeg mix + end card</h2>\n<p>Mix the SEPARATE VO on top of the ducked ElevenLabs Music bed (the VO is the lead — the music sits\nwell under it), <code>loudnorm I=-14</code>. Append the gpt-image-2 flat-lay still (ken-burns hold ~4s) — do\nNOT trust its AI-rendered sublines for the card taglines. Output is a 1080×1920 30fps h264+aac\nmaster (~32s). Deterministic, no paid calls, no keys.</p>\n","files":[{"path":"scripts/config.example.json","sizeBytes":12313,"isText":true},{"path":"scripts/PIPELINE.md","sizeBytes":6466,"isText":true},{"path":"scripts/README.md","sizeBytes":3192,"isText":true},{"path":"SKILL.md","sizeBytes":5539,"isText":true},{"path":"skill.meta.json","sizeBytes":325,"isText":true},{"path":"tests/smoke-test.md","sizeBytes":1476,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-11T17:23:44.599977Z","sha256":"7D445717BCE3FBE346807970C5089C9C2C9352FC5C9F5764BCDB43E718364391","sizeBytes":13217},"review":null,"source":{"repositoryUrl":"https://github.com/gooseworks-ai/goose-skills","path":"skills/ads/capabilities/render-glassy-matte-grwm","license":"MIT","commit":"a9f4676e266f9f04786e3f4145baf931f61fc309","subtreeSha":"42490D847316B8EDFED49B439F2EE3316AEDE0869B20FA7D49603F5771F2763D","lastSyncedAt":"2026-09-24T06:48:52.524221Z"},"reviewedAt":"2026-09-11T17:24:52.832663Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-glassy-matte-grwm"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install gooseworks-ai-goose-skills@llmmart"},{"target":"git","command":"git clone https://github.com/gooseworks-ai/goose-skills.git"}]}