Install any skill in seconds. Free to start, no credit card required.
Get Started Free →gooseworks-ai/render-vignette
Assemble a short-form 'vignette' ad from clean product cutouts composited over a kinetic background video — birefnet cutout, then a cold-open text card + product carousel + annotated specimen-sheet end card, plus loudnorm + separate-pass music mux. FREE assembly (PIL + rsvg + FFmpeg); the recipe supplies the config and gates the paid BG/cutout/music calls to their own capabilities.
Passed 15 of 20 test cases with the skill, and 3 of 20 without it.
and 19 more in the full report
14 fixed3 passed either way5 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 12 test cases the skill fixed. Same model, same prompt, with and without the skill.
Where should the cold-open text card overlay be aligned on the transparent 1080x1920 canvas?
| Checked | Without skill | With skill |
|---|---|---|
| The cold-open text overlay is positioned dead-center. | Missed | Passed |
The instructions your model reads when the skill loads.
Assemble a short-form 'vignette' ad from clean product cutouts composited over a kinetic background video. Motion lives in the BG video; the product rides on top as a static cutout layer. Music-led, zero VO, sub-12s, loopable — it reads muted because the product label + on-screen copy carry the message. Defaults to the V-CARD structure: a cold-open text card → a product carousel under one shared BG → an annotated specimen-sheet end card.
strip_product_backgrounds.py — birefnet cutout of each PDP shot to clean hard-edge alpha (no halo/shadow).render_overlays.py — PIL + rsvg-convert render the cold-open card (cold_open_text in cold_open_font, dead-center) + the annotated specimen-sheet end card (brand SVG logo + end_card.lines annotations) as transparent 1080x1920 PNGs. Text colour follows end_card.logo_variant. FREE.composite_variants.py — one FFmpeg filter_complex per BG variant: BG (palette-aware dim) → cold-open overlay → cutouts (width-anchored, vertically centered y=(H-h)/2) → end card. h264 crf20 yuv420p +faststart 30fps. FREE.music_and_mux.py — instrumental music bed from config.music.prompt → acompressor + loudnorm I=-18:TP=-2:LRA=9 → muxed into every variant in a SEPARATE pass with explicit -map 0:v:0 -map 1:a:0. The mux is FREE; the music generation is a paid call that in prod routes through create-music-elevenlabs.Every script reads config.json (--config <path>, $VIGNETTE_CONFIG, <project>/config.json or scripts/config.json) and exits naming any missing required field — there are no built-in demo values.
The recipe asks the user these before any paid step; this atom only reads the result from config. The demo build's value is an example, never a default.
bg_motif — the kinetic background's subject. Arrives as bg_concepts[].brief (BG sourced upstream). Demo: chrome molecular swarm / black ink blooming in cream.bg_palette — the background's colour feel. Arrives as bg_concepts[].dim (heavy/light dim) + end_card.logo_variant (logo + text colour). Demo: cream with chrome + ink accents.music — the instrumental bed's feel. Arrives as music.prompt (no brand names — ElevenLabs rejects them). Demo: slow ambient minimal electronic ~90 BPM.y=(H-h)/2) so mixed-shape SKUs share one visual mid-line — never bottom-anchor (squat jars jump). For 9:16 scale by WIDTH (~75% tall bottles, ~65% squat jars).saturation=0.50); naturally-contrasty BG → lighter dim (saturation=0.85).-map 0:v:0 -map 1:a:0 (single-pass composite+mux silently ships 1 kbps garbage audio).strip_product_backgrounds.py calls fal-ai/birefnet/v2 directly via a fal_helpers shim (sys.path.insert into a shared atoms dir + from fal_helpers import ...). It is bundled here because the cutout is an intrinsic assembly step, but in prod the birefnet cutout should route through create-image-fal (the fal-proxy capability that bills the Ads agent) rather than hitting fal.run directly. Treat the direct-fal path as a gap to close; the recipe gates the cutout to gooseworks fetch create-image-fal.source/t2v-outputs/<slug>.mp4 so the composite is source-agnostic. There is no Pexels fetcher bundled here; that lives in the recipe's playbook.music_and_mux.py also uses the fal_helpers shim for the ElevenLabs music generation; in prod that generation routes through create-music-elevenlabs, and only the loudnorm + separate-pass mux run locally as FREE assembly.test cases passed, vs 3 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.