lazy-frames README

The project's README from github.com/cosmicstack-labs/lazy-frames. As one markdown file: README.md.

Lazy Frames — agentic video generation, byte-stable and fully local

Lazy Frames

npm version license

Agentic video generation. Feed a skill URL to your AI agent — it captures, authors a spec, runs the gates, and renders a pixel-perfect MP4. The core runs fully locally with no keys; reviewed plugins can opt into explicitly declared external services.

Same spec + same machine = byte-identical MP4, every time.

Part of CosmicStack.AI.

Give it to your agent

Paste the raw Markdown skill URL into your AI agent:

https://lazy-frames.cosmicstack.ai/skill.md

For example: Read this skill, then make a promo video for https://example.com.


Install

From npm

npm install lazy-frames

Then run any command via npx:

npx lazy doctor
npx lazy capture https://example.com projects/acme
npx lazy render projects/acme

From source (for development or the agentic skill)

git clone https://github.com/cosmicstack-labs/lazy-frames.git
cd lazy-frames
npm install && npm run build
node packages/cli/dist/index.js doctor

Prerequisites

Dependency Required for Check
Node.js ≥ 20 CLI + engine node --version
ffmpeg + ffprobe encoding + audio ffmpeg -version
Google Chrome headless rendering lazy doctor (Windows: Chrome/Edge in Program Files, or CHROME_PATH)
Python 3 audio sidecar (music, TTS, SFX) python3 --version or python --version; override with LAZY_PYTHON
Local TTS narration (say or Windows SAPI) lazy doctor
ELEVENLABS_API_KEY Optional ElevenLabs plugin lazy doctor

Run npx lazy doctor to verify all providers and see your hardware tier.

Quick start

Website promo — from URL to MP4

npx lazy capture https://example.com projects/acme
npx lazy snapshot projects/acme --update
npx lazy check projects/acme
npx lazy preview projects/acme       # review in browser
# ... approve ...
npx lazy render projects/acme         # byte-stable MP4

lazy capture writes screenshots @2x, palette, copy blocks, fonts, logo, and a starter spec.json.

Cinematic — generated stills + depth parallax + audio

npx lazy gen image -p projects/cine --seed 21 --style ridge --name r01
npx lazy gen music -p projects/cine --mood calm --bpm 90 --seed 21 --name bgm
# write spec.json referencing assets/gen/r01.png + r01.depth.png
npx lazy render projects/cine

Plugin marketplace

The Lazy Frames Plugin Marketplace indexes folder-owned, schema-validated extensions and their exact permissions. ElevenLabs is the only plugin included by default; running install grants project-scoped approval for external access:

npx lazy plugin install elevenlabs -p projects/cine
export ELEVENLABS_API_KEY="your-key"
npx lazy script projects/cine --provider elevenlabs --voice YOUR_VOICE_ID --apply
npx lazy render projects/cine

Each narration beat is anchored with sceneId and offsetMs, so the spoken line starts on the intended screen. Generated audio is normalized to canonical WAV and cached; the API key is never written to project files. Plugin dependencies are fingerprint-locked in the project, while consent is stored separately as a user-local, project-scoped approval.

Browse 16 plugins across voice, storytelling, visuals, audio, captions, and delivery, or run npx lazy plugin search. The other integrations are installable scaffolds: their manifests and permission locks work now, while execution remains blocked until a reviewed adapter ships.

Contributors add one self-contained plugins/<id>/manifest.json folder and run npm run plugins:build; the CLI registry, machine index, marketplace card, and detail page are generated from that folder.

CLI commands

Command What it does
lazy doctor Environment + provider capability report
lazy capture <url> [project] Capture a website → screenshots, palette, copy, starter spec
lazy gen image Generate procedural still + matching depth map
lazy gen music Generate procedural music WAV
lazy gen tts Generate TTS narration WAV (macOS say or Windows SAPI)
lazy script <project> Draft editable, scene-linked narration beats
lazy plugin search Search reviewed plugins by name or capability
lazy plugin info <id> Inspect status, provider, permissions, and detail URL
lazy plugin install <id> Install a fingerprinted plugin into a project
lazy check <project> Validate spec + run snapshot & determinism gates
lazy snapshot <project> --update Establish/refresh the regression baseline
lazy render <project> Render to MP4 (byte-stable, with audio)
lazy preview <project> Scrubbable timeline preview at localhost:4173, with mixed audio when the spec has it

Scene types

Type What it does
typography Text reveals: titles, quotes, lockups (4 reveal styles)
stat-hit Count-up numbers, labels, bars
browser-frame Screenshot in a browser chrome mockup with cursor
ui-callout Screenshot with dimmed mask, hotspot spotlight, label
atmosphere Drifting gradient blobs — ambient backdrops
parallax 2.5D camera move over a still (flat or depth-map mode)
video-layer Footage playback with trim, speed, grade
three-scene Deterministic 3D: cube/ico/grid/particles (canvas 2D)

Plus: 7 transitions (cut, fade, dissolve, whip-pan, light-leak, dip-to-black, luma-wipe), stage-level CSS grade presets, output-level 3D LUT pipeline, and declarative audio (narration + music + SFX).

Agentic skill

Lazy Frames ships with a complete agent skill. Point any coding agent at skill/SKILL.md — it contains the full routing rules, agent contract, and reference docs. The agent reads the skill (not the source code) and knows how to capture, author, check, preview, and render.

skill/
  SKILL.md                    ← entry point + routing + agent contract
  references/
    spec-format.md             ← full spec schema
    scene-types.md             ← all 8 scene types
    workflows.md               ← website-promo / cinematic / edit
    cli.md                     ← every CLI command
    gates.md                   ← determinism + snapshot gates

Determinism

Same spec + same machine = byte-identical MP4 (SHA-256 verified). Enforced by:

Examples

Verify

npm run verify:demo        # byte-stability (two renders, sha256 compare)
npm run verify:cinematic   # gen assets + gates + audio determinism

Architecture

spec.json (typed JSON)
  ├─ @lazy/engine       compile spec → HTML composition + channel data
  ├─ @lazy/renderer     headless Chrome (jitless + swiftshader) → frames → ffmpeg → MP4
  ├─ @lazy/capture      site screenshots + palette/copy/font/logo extraction
  ├─ @lazy/gen-sidecar  Python: procedural music, TTS (say), SFX synthesis
  └─ @lazy/cli          lazy capture | gen | check | snapshot | render | preview | doctor

License

MIT © CosmicStack Labs

lazy-frames (cosmicstack-labs/lazy-frames)

Searching Database…

这是什么?Lazy Frames 是一个 agentic 视频生成工具:你把一个 skill URL 喂给你的 AI coding agent,它负责采集素材、编写规格说明,并渲染成像素级精准、字节级稳定的 MP4;核心管线完全本地运行,不需要云端。
这是个 CLI 工具,还是我要导入的库?它是一个 Node.js CLI(`lazy` 命令,通过 npx 运行),配套一个 agent skill 文件,coding agent 读取它来驱动采集、编写、检查和渲染——它不是要导入你自己代码里的库。
怎么让它跑起来?用 `npm install lazy-frames` 安装(开发也可以从源码构建),然后通过 npx 运行命令,比如 `npx lazy capture` 抓取网站,或 `npx lazy render` 生成 MP4。先运行 `npx lazy doctor` 验证你的环境。
除了这个 npm 包,还需要装什么?Node.js 20 或更新版本、用于编码的 ffmpeg + ffprobe、用于 headless 渲染的 Google Chrome,以及音频附属程序(音乐、TTS、音效)所需的 Python 3;旁白使用 macOS say 或 Windows SAPI,ElevenLabs 插件可选配 API 密钥。
市场里的插件集成都能真正用吗?默认只有 ElevenLabs 插件是启用的。市场里的其他条目都是可安装的脚手架,它们的清单和权限锁现在就能工作,但在经过审核的适配器发布之前,实际执行仍被阻止。
我的数据或 API 密钥会离开我的电脑吗?核心引擎不需要任何密钥,完全本地运行;只有像 ElevenLabs 这样经过明确审核的插件才会访问外部服务,而且即便如此,API 密钥也绝不会写入项目文件。
它如何保证每次运行的输出完全一致?它使用 V8 的 --jitless 标志渲染,通过 --use-angle=swiftshader 做软件渲染,CSS 变换使用整数像素,canvas 场景用 putImageData,ffmpeg 编码保持比特一致,因此同一台机器上相同的规格会生成 SHA-256 完全相同的 MP4。
我能构建哪些类型的场景?八种内置场景类型涵盖文字揭示、数据命中计数、浏览器窗口样机、UI 标注、氛围背景、视差/纵深运镜、视频层素材和确定性三场景 3D,另有 7 种转场和调色/LUT 预设。
为什么让 agent 读 skill 文件而不是源码?skill/SKILL.md 完整编码了采集、编写、检查、预览和渲染的路由规则与 agent 契约,这样 agent 遵循既定的工作流,而不必逆向推敲整个代码库。
市场里有多少插件,都覆盖什么?16 个经过审核的插件覆盖语音、叙事、视觉、音频、字幕和交付,可以用 `npx lazy plugin search` 搜索。
Size
4 MB
Stars
165
Updated
CommitAug 19
Age
2mo
Commits · 90 Days