Skip to content

Releases: lidge-ai/vid2-gen

vid2-gen 0.5.0

Choose a tag to compare

@lidge-jun lidge-jun released this 29 Sep 22:38
5f6613e

Help you can navigate, the example films on demand, and a repository of its own.

Examples on demand. The six example films now ship in the npm package as code and steps, each with an example.json manifest.
vid2 example ls lists them, vid2 example show <name> prints what one needs, which files to edit and its exact steps, and
cd "$(vid2 example new <name>)" copies it into $VID2_HOME/examples/<name>; re-running keeps your edits and media, and --force
refreshes the sources. The new
vid2-examples skill maps a request (paper cutout, puppet story, launch film, keynote-style intro, capture-led demo, generated clip,
changelog, social vertical) to the closest example or template and the fastest route to a render. vid2-intro, a quiet keynote-style
film about vid2 itself, joins the examples, and vid2-launch no longer needs a repository checkout for its app capture.

Help you can navigate. Commands are grouped in vid2 --help, which also lists global options, environment variables and
examples. Every command and subcommand answers --help with its arguments, options (value names and defaults), inherited and global
options, and examples; vid2 help audio beats prints the same text as vid2 audio beats --help. -v/--version prints the
version. Help never runs a command and never fails on a bad flag.

Subcommands are real commands. audio, assets, capture and skill have one spec per subcommand, each with its own options.
Options are now strict per subcommand, so vid2 audio beats --preset x is an input error instead of being ignored. A subcommand must
directly follow its parent (vid2 audio beats x.wav); vid2 audio --json beats explains that. Typos get a suggestion
(vid2 skill instal → install). Extra positional arguments are refused (vid2 audio beats a.wav b.wav used to ignore b.wav),
and the command word must come before --.

JSON contract changes. Per-command help JSON (vid2 <cmd> --help --json, vid2 help <cmd> --json) now carries the full help
text in data.usage; the one-line synopsis moved to data.synopsis. Help JSON adds group, description, examples,
subcommands, defaultSubcommand, globalOptions and environment, and vid2 capabilities lists subcommands. A failure envelope
reports the full command path ("command": "audio beats"). Success command values are unchanged.

Repository and release. Development moved out of a shared checkout into vid2-gen's own git repository; nothing changes for users.
Releases now publish from the v* tag through npm Trusted Publishing (release.yml, OIDC, with provenance) instead of a local token.

vid2-gen 0.4.0

Choose a tag to compare

@lidge-jun lidge-jun released this 29 Sep 11:10
f1ac251

Hardware encoding you can trust, examples that keep only code in git, and the first npm release.

Hardware encoding. vid2 render --hw-accel disable|if-possible|required (--hw is shorthand for if-possible) and --hw-encoder videotoolbox|nvenc|qsv|amf|vaapi choose the final encoder before any segment renders. An encoder counts only after a five-frame trial encode passes, so a compiled-in NVENC without a GPU no longer fails mid-render. H.264 and HEVC are supported in every family, ProRes through VideoToolbox, and VAAPI gets its device and hwupload. if-possible falls back to software with a warning. required exits 3 with the failed probes. Render JSON and <out>.render.json report encoder: { name, hardware }, and vid2 doctor --hw shows which encoders pass. VideoToolbox quality was raised from q:v 65 to q:v 70 (HEVC q:v 74) after measurement: on a grain-heavy 1080p film the old setting scored VMAF 96.6 at an 11× smaller file, while the new one scores 97.4 against 97.5 for software x264 -preset slow -crf 18. That film now renders in 34 s with --hw-accel required instead of 70 s.

Examples. Examples keep their code and how-to in git. Media, captures, generated timelines and renders live in $VID2_HOME/examples/<name>, and node examples/workspace.mjs <name> copies the sources there. examples/README.md indexes them. Two motion examples are new: opus-astra-paper, a paper-cutout short made only from stage nodes, and claude-codex-dawn, a puppet film with reusable helper modules. The vid2-launch captures and stills and the ima2 icon left the repository; each README lists the command that recreates them.

Bun. vid2 runs under Bun and renders frames identical to Node's; a CI job checks this on every change. It is not faster: a full render took 55–57 s on Bun against 54 s on Node, and the stage renderer ran at 51 fps against 64 fps. Node 22.18+ remains the supported runtime.

Install. npm install -g vid2-gen. CI now also runs on pushes to dev.

Install: npm install -g vid2-gen (npm). The attached film is opus-astra-paper rendered with --hw-accel required (h264_videotoolbox, 34 s on an M5 Pro); its code is in examples/opus-astra-paper.

vid2 0.3.0 — beat-exact cuts, analyze and review, looks and HUD

Choose a tag to compare

@lidge-jun lidge-jun released this 28 Sep 11:09

Cuts that land on the beat, a film you can inspect without watching it, and a finishing layer for looks and HUDs.
Every change here came from frame-by-frame measurements of reference launch films against our own (devlog/_fin/260928_film_grammar).
The launch film from 0.2.0 stays attached to v0.2.0.

Generated clips. ima2 video requests validate options and ordered image references before a provider call. Reference cache keys track image bytes and order while requests without references retain their prior keys. A generated clip read beyond its duration holds the last frame and reports W_GENERATED_CLIP_HOLD in render output and the saved render manifest. A Grok example has an offline file-provider twin. Windows absolute --ref path parsing remains untested with ima2; live Grok verification is macOS only.

Film looks and HUD. Root film, riso, and paper looks now compile after the scene join with seeded textures and strength-scaled
parameters. A zero-strength look leaves the post graph unchanged. A timeline HUD renders above overlays and root effects in
absolute-time chunks, with its chunk count and look settings visible in the compile summary.

Analysis and review. vid2 analyze writes shot, color, motion, beat/onset and audio DSP evidence with keyframes and contact sheets. vid2 review combines that analysis with QA evidence, optional OpenAI-compatible frame critique and opt-in audio listening. Missing model configuration produces a local SKIPPED report; listener failures are recorded as UNHEARD without changing the review exit code.

Behavior changes. Scene boundaries are quantized once from the exact running time instead of rounding each scene, so beat- and bar-cut films stay on the grid (a 40 s film at 132 BPM previously drifted 4 frames); a non-cut transition can resolve one frame longer or shorter depending on position. Auto cameras now honor the authored hold (default 0.8s; it was ignored and 0.5 s / 0.7 s were used) and simplify to at most 24 keys.

Fixes. Media out is honored for video and capture sources (the read stops at out and the last allowed frame holds). A segment that reads one file several times reads lossless FFV1 cuts instead of seeking the source repeatedly (ffmpeg could stall). Camera expressions over 100,000 characters fail with a pathful E_INPUT instead of an ffmpeg out-of-memory error.
A stall watchdog kills an ffmpeg that stops making progress for VID2_FFMPEG_STALL_MS (default 180 s) and retries the segment once; ffmpeg occasionally deadlocked on segments with many looped inputs and the render waited forever. QA keyframes, contrast samples and analyze keyframes seek to the frame instead of decoding from the start (four at a time), so QA on a 40 s 1080p film no longer takes several minutes.

Time. New bar unit ("1bar" = meter beats) everywhere a time literal is accepted.

Assets. vid2-gen-0.3.0.tgz (sha256 58b1ab2520e98e3c2c87269897ce78c35febe1953dc07d3fccb8665acc0791fb), packed from a clean checkout of the tag. The launch film and poster are the 0.2.0 film, re-attached so the README links keep working.

Install: npm install -g https://github.com/lidge-ai/vid2-gen/releases/download/v0.3.0/vid2-gen-0.3.0.tgz

vid2 0.2.0 — launch films that look designed

Choose a tag to compare

@lidge-jun lidge-jun released this 28 Sep 00:29

vid2 0.2.0 — launch films that look designed. A new motion-graphics engine lets words, glyphs, icons and rebuilt UI move on
their own inside the same timeline.json: kinetic typography with magic-move reflow, typing into a growing input, bar charts that count
up, rolling tickers, chips with connectors, zoomfrom / iris transitions, and sound effects driven by the animation.

Film: ima2-launch.mp4 below (50 s, 1920×1080) was made with vid2 from examples/ima2-launch:
real ima2-gen generations, a real capture of the ima2 web UI, synthesized music. QA pass, −14 LUFS.

Install (npm publication pending):

npm install -g https://github.com/lidge-ai/vid2-gen/releases/download/v0.2.0/vid2-gen-0.2.0.tgz
vid2 init kinetic-launch my-film

See CHANGELOG.md for details.

vid2 0.1.0

Choose a tag to compare

@lidge-jun lidge-jun released this 27 Sep 21:46

vid2 0.1.0 — the video CLI for coding agents. Your agent writes a timeline.json, records your real app, pulls in generated images,
and vid2 renders a finished, loudness-mastered, QA-checked video with ffmpeg.

Launch video: vid2-launch.mp4 below (30 s, 1920×1080) was made with vid2 from examples/vid2-launch:
real web captures, three ima2-gen stills, synthesized music; vid2 qa passed with 0 issues (−14 LUFS).

Install

npm install -g https://github.com/lidge-ai/vid2-gen/releases/download/v0.1.0/vid2-gen-0.1.0.tgz
vid2 doctor

npm publication of vid2-gen is pending (the first publish needs a maintainer npm login); the tarball above is the exact package that will be
published. Requires Node.js 22.18+ and ffmpeg 6.1+ (7.1+ recommended).

Highlights

  • Render: schema v1 timelines, 30+ transitions, sub-pixel camera, window cards with 3D tilt, grade/vignette/grain/flash/RGB split/motion blur,
    libass typography with bundled OFL fonts or a pure-JS text fallback when ffmpeg lacks libass.
  • Capture: web (Chromium + CDP, action log, redacted typing), native macOS; Windows/Linux/Electron/terminal experimental; auto camera + synthetic cursor.
  • Audio: synth beds, anchored SFX, auto cues, ducking, two-pass loudness; optional ElevenLabs / ACE-Step.
  • Assets: optional ima2-gen images and Grok clips, cached and offline at render time.
  • Agents: qa, preview, capabilities, six Agent Skills (vid2 skill install), four templates (vid2 init).

Full notes: CHANGELOG.md.

Assets

File SHA-256
vid2-gen-0.1.0.tgz (787 KB, 463 files, packed from a clean checkout of v0.1.0) a26cb4e3701912fe3625824ff86515f37a2657c3f00874631564a692766acad6
vid2-launch.mp4 (30 s, 1920×1080, H.264 + AAC) 2df51d3194b7c7b0ffe4d6007ebe0804e7f97572ce1dbe09c7c32f363270d713