Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RenderReel

Stills in. Launch video out.

Turn a creator's AI-generated stills + a one-page brief into a cinematic, narrated launch video — fully offline, no cloud, no credits, no mercy.

pip install pyyaml pillow
renderreel render demo/brief.yml --out ./launch --voice en_US-lessac-medium.onnx

What you get: 1080p MP4 with Ken Burns motion, crossfades, AI narration (Piper), a generated music bed ducked under the voice, burned-in captions, a thumbnail, and a QC report.

Why

Screen recordings don't sell renders. Cloud video tools burn credits on every retry. RenderReel is the boring-reliable middle: your stills, your words, one command, a launch video in under a minute — on a Raspberry Pi.

Pipeline

brief.yml → lint → stills → Ken Burns clips → narration → music bed → mux → QC
   │           │        │          │              │           │          │       │
   │        Credit-  PIL gra-   zoompan +     Piper      synthesized  side-  dimen-
   │        Guard-   dient      xfade         neural     pulse/noir/  chain  sions,
   │        style              1080p          voice      ember beds   duck   duration,
   └        checks                                                        audio
Stage What it does Module
lint Fails fast on weak hooks, missing taglines, narration overflow brief.py
stills Forges cinematic title cards (PIL) or normalizes your stills stills.py
captions Distributes narration lines as .srt across scene slots captions.py
assemble Ken Burns + xfade + sidechain-ducked mux + burned-in captions + QC assemble.py

Quickstart

git clone https://github.com/madebysaira/RenderReel && cd RenderReel
pip install pyyaml pillow pytest
python -m pytest tests/ -q            # 10 tests, no ffmpeg needed
renderreel doctor                      # checks ffmpeg / piper / fonts
renderreel render demo/brief.yml --out ./launch --voice <piper-voice.onnx>

No voice model? Download one (~60MB): Piper voices — e.g. en_US-lessac-medium. Or skip --voice for a music-only cut.

The brief

product: "Neon Bazaar"
hook: "Your shop launch in twenty seconds flat."
tagline: "Stalls up. Lights on."
format: landscape        # landscape | portrait | square
palette: royal           # ember | royal | noir | pulse
mood: pulse              # pulse | noir | ember (music bed)
scenes:
  - title: "Selling online is boring."
    body: "same grid. same scroll. same yawn."
    narration: "Selling online is boring."
    seconds: 5
cta: "github.com/madebysaira/RenderReel"

The linter enforces: hook ≤ 12 words, tagline present, every scene has a visual, narration fits its slot, total 10–60s.

Demo — it made its own launch video

demo/brief.ymldemo/renderreel-launch.mp4 (17s, 1080p, narrated). RenderReel bragging about itself, in its own voice.

Portfolio fit

RenderReel is the launch layer on top of my AI-video toolchain:

Requirements

Python 3.10+, ffmpeg + ffprobe on PATH, one Piper .onnx voice (optional). Tested on Raspberry Pi (Debian) and Linux x86_64.

License

MIT.

About

Stills in. Launch video out. Offline cinematic launch videos from a one-page brief — narrated, captioned, QC-gated.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages