Assemble the FREE steps of the product-hypermotion + kinetic-typography video format — dice ONE Seedance 2.0 hypermotion clip into 5-6 segments and intercut them with PIL kinetic-typography spec/CTA cards (italic skew, 1.08x outline echo, 3D extrusion, slam-with-shake, inversion flash) plus a real-logo PIL end card (base64-decoded from the brand SVG), center-crop 1:1 to 9:16, and explicit-map mux a music bed. Deterministic, FREE (PIL + FFmpeg), no paid calls, the real logo and spec typography stay pixel-crisp. The paid steps (the ONE Seedance i2v, the music) are separate capabilities; the recipe orchestrates them. Use for the product-hypermotion format.
58
73%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/ads/capabilities/render-hypermotion/SKILL.mdAssembles a product-hypermotion + kinetic-typography ad: a vertical 9:16 sizzle (~20–30s) where ONE spectacular AI-gen hypermotion clip of the hero product carries the energy and punchy PIL-rendered spec cards carry the facts. Music-led, no VO — it reads as a high-production sizzle, not UGC.
The reusable IP is one-call-many-cuts + intercut: dice ONE 12–15s Seedance 2.0 hypermotion i2v into 5–6 segments (never a paid call per segment) and interleave PIL kinetic-typography spec cards between the cuts, capped by a real-logo end card, over a beat-driven music bed.
This capability ships the FREE, deterministic assembly — everything between the two paid
model calls. It is documentation-grade + config: the format has no runnable driver.
scripts/ carries the worked config + the step-by-step pipeline doc; the Soundboks
reference PIL impls (gen_kinetic_v6.py, gen_endcard_v10.py, assemble_v10.py) are
copied + adapted per run, not vendored.
config.json; never its creative values. Card
labels equal their text_cards keys (intro, spec_1..spec_N, cta) so
beat_structure.concat_order resolves to kinetic-movs/<key>.mp4.The calling recipe asks the user these before any paid step; this capability only assembles what they produced. The Soundboks values are a worked example, never defaults.
config.brand_voice, Seedance block 1, music.bpm (demo: party, 124 BPM).config.music.prompt (demo: bass-driven party banger).The assembly itself is choice-agnostic: segment cut points, card order and the end card read only from config.
-map 0:v -map 1:a
(the default mapping silently ships ~1 kbps garbage audio; verify ffprobe ≈ 192 kbps).# Phase 2 — FREE PIL cards (per config.text_cards + config.end_card)
# render each spec/CTA card + the real-logo end card, 1080x1920, frame-by-frame → mov
# Phase 3 — FREE dice + intercut + mux
# center-crop 1:1→9:16, dice into 5-6 segments, concat in beat_structure order,
# then explicit-map mux the music bed → master-final.mp4Output: master-final.mp4, 1080×1920, ≈20–30s (25s default) h264 (+ 192 kbps aac music) —
14 segments: intro + 6 hypermotion cuts + 5 spec cards + CTA + real-logo end card. All
FREE, $0.
cc3e518
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.