Assemble a stop-motion hand-swatch-cycle product-demo ad from a config — a sequence of still PLATES (one hand swiping a single-barrel cosmetic across a cream skin-patch, the barrel + swatch changing per plate while the hand, background, crop, and lighting stay locked) is PNG→mp4 loop-encoded at each plate's own stop-motion hold (fast motion frames 150–250ms, per-shade ~380ms, hero beats 1100–1800ms), concat-demuxed with HARD cuts into a silent master, closed on a Playwright HTML-rendered branded end card (serif tagline + sans subtitle + real logo SVG over a hero BG, never AI-rendered text), and muxed with a pre-sourced music track playing under the end card with a fade tail (no VO). This is the FREE deterministic assembly stage (loop-encode + concat-demux + end-card render + music mux); the master-anchor plate, shade plates, and end-card BG come from create-image-gpt-image-fal and the track from create-music-elevenlabs. Use for the stopmotion-hand-swatch-cycle format.
60
70%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/ads/capabilities/render-stopmotion-hand-swatch-cycle/SKILL.mdAssemble a stop-motion hand-swatch-cycle ad from a config: a fast, tactile product demo where a single hand swipes ONE cosmetic barrel across a cream "skin-patch" test surface, and the shade of the barrel AND the painted swatch stripe changes on every frame while the hand, background, crop, and lighting hold still — cycling the variant family so the viewer self-identifies their match, then a hero-pick payoff and a branded end card. This capability is the FREE, deterministic assembly — the per-plate PNG→mp4 loop encode, the concat-demux, the end-card render, and the music mux.
scripts/config.example.json is the worked example (DIBS Beauty "Pick Your Match", ~16.6s 1080×1920
9:16, ~24 cycle plates + finale beats + a 3s end card); scripts/PIPELINE.md maps every config
block to its source step and scripts/README.md documents the free assembly.
This is the FREE, deterministic assembly stage — it spends nothing. The paid inputs are separate
capabilities — the master-anchor plate + the per-shade / motion / finale plates + the end-card hero
BG (create-image-gpt-image-fal, gpt-image-2 EDIT mode, each plate anchored to the SAME
master-anchor — never chained), and the music track (create-music-elevenlabs, or a brand-supplied
mp3). Given the ordered plate PNGs + per-plate holds + the end-card hero BG + the brand logo SVG +
the music track, render-stopmotion-hand-swatch-cycle loop-encodes each plate at its hold,
concat-demuxes with hard cuts into a silent master, appends the HTML-rendered end card, and muxes the
music under it → the master. Re-cuts (re-timed holds, a re-ordered cycle, a swapped end card) reuse
the existing plates / track and cost $0.
ffmpeg -loop 1 -t <pose_hold_ms>) to 1080×1920 @ 30fps crf18. This is stop-motion — discrete
held frames, no camera moves, no character animation. Do not animate the plates.ffmpeg -f concat) — NO dissolves. The
frame-swap tactility is the whole point; a crossfade erases it.concat demuxer over
the ordered plate list is correct and cheapest. (filter_complex is only needed when clips carry
mismatched audio — these don't.)8866b2a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.