Built with video-to-template from a reference film. Example: examples/prismor-enterprise/ (Prismor Enterprise).
Workflow
- Write the copy through the
no-ai-slopskill. On-screen text has no trailing periods, and claims come from the product's own docs. - Generate backdrops and objects with gpt-image-2: put prompts in
brief.jsonunderassetsand runpython3 scripts/main.py assets --brief brief.json(medium quality, explicit backgrounds). The logo is always the real file. - UI panels come from the real product: screenshots, or panels rendered by
keynote-product-filmand cropped (seeexamples/prismor-enterprise/assets/ui/). - Run
check(it fails on overflow and warns on trailing periods), thenstill … t1 t2to review, thenrender --audio music.m4a. These films are music-driven, so cut shot lengths to the beat.
Shot types and their keys are documented at the top of each function in scripts/main.py.
Platform and icon shots
pillars: a row of icon tiles with a label and one-line detail each (governance pillars).flow: a pipeline of icon tiles on a line, with a glowing pulse lighting each step.orbit: the logo at the centre, with brand icons from thesvg on two counter-rotating rings.
Fetch every icon a brief uses with python3 scripts/main.py icons --brief brief.json (Lucide line icons plus thesvg brand marks, with licences).
Real product UI
Prefer the product's real frontend over recreations. skills/video-to-template/scripts/grab.mjs drives headless Chromium over CDP: it scrolls the live site so scroll-triggered sections render, then clips components by selector or rectangle. It can also isolate a single layer of a pinned or crossfading section. The web/*.png panels in the example came from prismor.dev this way.