Render a 'brand identity reveal' video from a config — a single poster frame in a real, softly-lit space (real wall, soft-focus plant in the corner, dappled leaf shadow, illuminated poster) whose artwork HARD-CUTS through ~10 on-brand poster mockups (hero product, IG post, hanging banners, sticker sheet, logo lockup, poster, two lifestyle stills, packaging, big icon) then holds on a brand end card. The environment plate is one create-image-fal generation; the mockups are real-DOM HTML frame-stepped via Playwright, perspective-composited into the detected frame quad with the plate's real leaf-shadow multiplied back onto each poster (reads as behind glass), sequenced by FFmpeg. Deterministic assembly, FREE (the plate comes from create-image-fal, the bed from create-music-elevenlabs), music bed only and approved brand copy only. Use for the brand-identity-reveal format.
74
92%
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
Render the 'brand identity reveal' format from a config. The signature is a single fixed poster frame in a REAL, softly-lit space (the illuminated poster-frame look of a boutique/cinema): a real wall, a real soft-focus plant in the lower-left corner, dappled leaf shadow. The artwork INSIDE the frame HARD-CUTS (no crossfade) through 11 beats — 10 on-brand poster mockups + a brand END CARD held ~3s. Music bed only, NO voiceover; copy is baked into each mockup, never overlaid as captions.
This capability is the FREE assembly only. The paid parts are separate generic
capabilities the recipe names — create-image-fal (the one-shot environment plate) and
create-music-elevenlabs (the bed). Never re-implement them here.
create-image-fal, flux-pro ultra, 9:16) — an empty lit
poster frame in a real space, high-res so the camera can be pushed closer by cropping.
Pick a wall color that makes the brand's poster colors POP (complement of the dominant hue).scene.html), one poster per beat, built from the
brand's real assets + approved copy, frame-stepped via Playwright (render_art.py, bare
mode, device_scale_factor 2).measure_frame.py detects the blank poster interior quad;
composite.py perspective-warps each poster into it AND multiplies the plate's real
leaf-shadow/light back onto the poster (so it reads as behind glass) + a glass sheen;
build_video.sh sequences the frames with the music bed.config.json — copy scripts/config.example.json and edit (canvas, plate prompt +
wall_style, camera crop, per-beat durations, end-card copy). Schema + per-file working-dir
layout are documented in scripts/PIPELINE.md.<mask> if the only source has an occluding element). Approved copy only.CAP=skills/ads/capabilities/render-brand-identity-reveal
RUN=<project>/working # holds scene.html + assets/ + the create-image-fal plate in bg/
python3 $CAP/scripts/recrop.py 0.72 0.13 # camera distance (bigger frac = bigger frame)
python3 $CAP/scripts/measure_frame.py # detect the blank poster interior quad
python3 $CAP/scripts/render_art.py # render each poster standalone (Playwright, dsf 2)
python3 $CAP/scripts/composite.py # warp into frame + shadow multiply + sheen
bash $CAP/scripts/build_video.sh $RUN/concat.txt $RUN/music.mp3 out.mp4 13.05 1.0Then watch the master (music-only, every poster legible, shadow falls across the art, end
card holds). See scripts/PIPELINE.md for adapting scene.html per brand.
display (a per-state display:flex silently overrides a
display:none toggle and paints one state over all others).recrop.py), don't regenerate.display: rule beat the visibility toggle; use
opacity.evaluate(fn, arg) didn't switch state in a loop → bake the beat index into the
JS string and return the applied state to assert it.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.