Skip to content

Video Flows 1.0

Choose a tag to compare

@p-chops p-chops released this 03 Mar 02:27
· 42 commits to main since this release

Automated video processing pipeline for dense, textural, otherworldly livestream visuals. Takes source footage or generates visuals from scratch via GLSL shaders, then processes through shader stacks, temporal effects, codec crush, compositing, and transitions.

Highlights

  • Shader packs — self-contained bundles of ISF shaders and curated stacks under packs/. Auto-discovered at runtime; filter with --pack to use specific packs. Ships with a starter pack (8 shaders, 5 stacks) that works out of the box — no external shaders needed.
  • Procedural recipe system — 11 structural archetypes (deep_time, polyrhythm, palimpsest, hybrid, etc.) with complexity scaling. Recipes can be hand-crafted, built from presets, or fully procedurally generated. All archetypes draw from installed packs.
  • Show reel generator — channel-surfing sequences of short heterogeneous clips at varying complexity, joined with random transitions. Supports source footage, pure generators, or mixed. Human-in-the-loop workflow: plan, edit manifest, render.
  • 21 temporal effects — scrub, drift, ping-pong, echo, slit scan, temporal FFT filtering, axis swap, temporal sort, feedback transform, and more. Fused time chains eliminate intermediate encode/decode cycles.
  • ISF v2 shader engine — headless ModernGL rendering with multi-pass persistent buffer support. Full ISF v2 translation to #version 330 GLSL.
  • Codec crush — fixed-QP encoding abuse for intentional compression artifacts (x264, mpeg2, mpeg4).
  • Compositing — multi-lane blend, masked composite, picture-in-picture, chromakey, with filter chain merging for consecutive ffmpeg operations.
  • Quality gate — 5-feature post-render quality classifier with automatic reroll for dead/static output.
  • Prefect orchestration — concurrent task execution, parallel lanes and shows, tag-based GPU/RAM throttling.

Requirements

  • Python 3.10+
  • ffmpeg / ffprobe on PATH
  • OpenGL 3.3+ GPU (headless — no window needed)

Quick start

pip install -e .

# Generator-only show reel using the starter pack (no source footage needed)
python -m pipeline.flows.show_reel run -n 8 --seed 42

# Use only the starter pack
python -m pipeline.flows.show_reel run -n 8 --pack starter --seed 42

# Mixed footage + generators
python -m pipeline.flows.show_reel run -n 10 --src input/footage.mp4 --footage-ratio 0.7 --seed 42

# Batch: 10 reels at once
python -m pipeline.flows.show_reel batch 10 --reel-dur 60 --src input/ --seed 7070

Shader packs

The pipeline ships with a starter pack (packs/starter/) containing 8 shaders and 5 stacks — enough to generate interesting output immediately. Create your own packs by adding a directory under packs/ with ISF v2 shaders and a stacks.yaml.

# Use all installed packs (default)
python -m pipeline.flows.show_reel run -n 8 --seed 42

# Restrict to specific packs
python -m pipeline.flows.show_reel run -n 8 --pack starter --seed 42
python -m pipeline.flows.show_reel run -n 8 --pack starter --pack my_effects --seed 42

License

MIT