brutalist-product-promo

Installation
SKILL.md

Brutalist product promo

This template produces a 22.64 s, 25 fps, 720×1280 promo made of 21 hard-cut scenes. It is driven entirely by a JSON brief: copy, colours, image prompts and scene timing. Every frame is a pure function of time, so you can review any single frame before rendering the full video.

Preview: examples/arc/contact_sheet.png. A second example, examples/prismor/, applies the style to software (Prismor, electric violet, a key, a padlock sprite and a server rack instead of a robot) and shows the brand's real logo beside the wordmark via meta.logo. The storyboard with per-scene timing and purpose is in references/storyboard.md.

Requirements

  • Python 3.9+ with numpy and Pillow, plus ffmpeg on PATH. Fonts are bundled.
  • Optional: OPENAI_API_KEY for generating the six product images with gpt-image-2. Without it, placeholders are used so the pipeline still runs.

Workflow

  1. Brief. Copy examples/arc/brief.json to a new working folder as brief.json, then rewrite the copy, theme and assets prompts for the user's product. Keep copy short: these are labels, not sentences. Field rules are in references/brief.md. Ask the user only for things you can't infer (brand name, product, accent colour). Invent plausible spec lines if none are given, and say that you did.
  2. Validate. Run python3 scripts/promo.py check --brief path/to/brief.json. It reports missing copy keys, missing assets and weak contrast.
  3. Images. Run python3 scripts/promo.py assets --brief path/to/brief.json. This generates any missing slots into <brief dir>/assets/ with gpt-image-2. Keep quality at low or medium: frames are 720 px and heavily processed, so high is wasted spend. Regenerate one slot with assets <name> --force.
  4. Review stills. Run python3 scripts/promo.py still --brief … 3.4 7.9 11.3 16.9 and look at the PNGs in <brief dir>/out/. For the whole cut, use sheet. Check the hero targeting box: adjust meta.hero_target (fractions of the hero image) so it sits on the product's key detail.
  5. Render. Run python3 scripts/promo.py render --brief … [--audio track.mp3] to produce <brief dir>/out/promo.mp4. A render takes about 1 min on 2 cores.
Installs
1
GitHub Stars
1
First Seen
5 days ago