Repository navigation
Releases: LordVayron/video-factory
Releases · LordVayron/video-factory
Release list
2.11.1: decide per video
- The best model for the job, then the cheapest of the best.
studio.mjs pricesnames what the video needs (characters that act, photoreal people) and recommends from reviewed side-by-side tests recorded per need (studio.mjs fit, kept inengine/data/model-fit.json). The table offers only models good for that job, then the untested ones to try. With no evidence for the need yet, the book waits for two models tested on one shot. - Music derived from the film.
musicBriefnow asks for the analysis (premise, emotion, context, narrator) and the approach it leads to (instruments, tempo, energy and why), plus how the score leaves room for the voice (voiceRoom), which replaces the drum ban under a narration. No genre or tempo is prescribed. - A visual hook in the first 3 seconds. A launch plan's first shot names what happens on screen by 3 s; a camera move alone is refused.
- Docs. The 2.11.0 launch recipe and notes carried one film's results (a model ranking, a music direction); they now describe the method.
2.11.0: characters that act, voices that breathe
- Characters that act. A launch shot with people takes an
actingdirection (intention, reactions, body language). It lifts the style's "small actions" rule for that shot while faces, clothes, the set and every object stay locked, so painted characters feel alive instead of moving their mouths. - The model fits the job.
studio.mjs pricesreads what the video needs (painted characters that act, photoreal people) and ranks models by how well they did that job in side-by-side tests, then by price. Untested models are shown as untested and are never recommended over a proven fit. - Voices that breathe.
voDirectionsends delivery tags to the voice while the take is still checked word for word against the script;take.paragraphsgives every line its own paragraph so the narrator breathes inside one generation;take.temposlows a whole take evenly. A brand name heard as two words ("Brand name") matches its one script word. - Music designed from the film. A launch with music needs a
musicBrief: the emotion to evoke, the intent, the style, the narrator, and where the music turns on the script's lines. The launch template carries one. - Motion tests before the book. A test take can run before the Production Book (which requires one) inside its own capped allowance, raised per project in the creator's words; test takes are marked in the ledger, also when recovered.
- Logo and look.
brand.logoWidth,brand.logoYandbrand.logoInset the logo's size, height and fade-and-grow entrance, and the CTA enters with the logo.style.grade: falsekeeps each take's own light instead of leveling it to an average. - Fixes. Re-approving the book keeps the budget already approved. Take names are claimed atomically, so two jobs started at once never overwrite each other. The review join sheet works with takes of different heights; a chained frame copy keeps its
.png; the voice folder is created before cutting; the commit-message test passes onmain.
v2.10.0: camera kits
- Camera kits. Choose how a production is shot: 6 kits (film 35mm + Cooke, digital cinema + Zeiss, phone, anamorphic large format, 16mm vintage, IMAX landscape) built from 6 bodies, 8 lenses, 8 focal lengths and 4 apertures. The optics go into every still the video models start from (frames, storyboards, angle frames) and are held in each video prompt so the look stays.
- Camera moves. 20 moves for the video (push-in, orbit, crane, handheld, rack focus, crash zoom, dolly zoom and more), one per shot, written the way video models follow best.
- A recommendation per format, and full freedom. Every photographic format has a recommended kit; pick any other, change one part for the whole film, or set a different kit or move on a single shot (a flashback in 16mm, a close-up at 85mm).
studio.mjs camera <slug> --listshows them; the choice is recorded in the creator's words and shown in the Production Book. - Rules that protect the shot: unknown gear, two moves in one shot, more than one bold move per film, and a lens wider than 24mm on a face are refused unless the creator asks for them.
gen.mjs still --kit <id>for camera tests.
v2.9.0: the engine speaks English
- The engine speaks English. Every message, error, step name, intake question and the reference breakdown page is now in English (they were in Spanish). Your agent reads them and talks to you in your own language, so nothing changes in how you work with it.
- A check keeps it that way:
npm testfails on Spanish text in engine code. The detector of exaggerated claims still understands Spanish scripts.
v2.8.4: comments explain why
- Comments explain why. Code comments across the engine now say why each rule exists, without dates or production anecdotes. No behavior changed.
- A check keeps it that way:
npm testfails when a comment carries a date or a production story.
v2.8.3: checks on every PR, contribution templates
- Checks on every pull request. GitHub runs the offline checks (
npm test: no keys, no paid calls) on every PR and onmain; the README shows the result. npm testruns the checks, as most projects expect.- Issue and pull request templates: bug report, feature request and a PR checklist. Security reports go through GitHub's private vulnerability reporting.
- A full CONTRIBUTING guide: setup, branches, Conventional Commits titles, where each kind of change goes, and what never to commit.
- SECURITY.md covers both providers.
- Commit subjects and PR titles follow Conventional Commits in the maintainer's checkout (the guard enforces it there; off in a regular install).
v2.8.2: optional PR-only main
- Optional PR-only main rule in the guard. In the maintainer's own checkout, the guard refuses a commit or push straight to
main(branches and tags still allowed). It stays off in a regular install, so your workflow doesn't change. - Tests for the rule.
v2.8.1: repos carry only what changed
- Repos carry only what changed. The guard refuses a commit message, tag, release note or PR text that names or quotes the repo owner (
scripts/unquote.mjs), andnpm run checkfails when a code comment or log quotes them. - Cleaner code comments. Comments keep the rule and its date, without attributions or quotes.
- Budget top-ups store the approval words in a
saidfield.
v2.8.0: APIMart as the main provider, live prices from both, reference engine
- APIMart is the main provider, Kie the second. Every model the engine runs that APIMart also sells (Seedance 2.0 Mini/Fast/2.0/2.5, Wan 3.0 and Prime, Veo 3.1 Lite/Fast/Quality, Grok Imagine, Kling 3, GPT Image 2.5) has its APIMart request and live price. Each job runs on whichever provider sells that model cheaper right now (APIMart wins ties within 2 %), so the Production Book, the budget lock and the filming use the same price. Put
APIMART_API_KEYin.env; either key alone works. - Safe fallback. If APIMart refuses a job (no balance, a parameter it doesn't take), nothing was billed and it moves to Kie with the budget checked again at Kie's price. An accepted job is never resubmitted. The ledger keeps the cost APIMart reports.
- Live prices from both.
studio.mjs pricesand the book show the provider and the other one's price for every model;gen.mjs pricesandcreditscover both. The vision judge tries APIMart first. The guard blocks APIMart calls outside the engine, and checks make sure no key is ever committed. - Reference engine. Give the agent any video you like (a file or a TikTok/Reel/YouTube link): it measures it locally (transcript, cuts, per-shot timing and motion, hook, pauses, music tempo, sound hits, on-screen text, look), cuts per-shot and per-join sheets, writes a frame-by-frame breakdown, and adds it to your bank in your words. Productions pick their references before the concept, are calibrated to them, and never repeat their lines. New
referencesskill;requirements.txtadds yt-dlp, rapidocr and scipy. - Likeness in your words. A character based on a real person other than you goes ahead on your statement that they authorized it (
cast.mjs likeness <id> --kind real-person --said "..."); the cast gate enforces it.
v2.7.0: launch films in any style
- Art styles for launch films. Pick storybook, anime or photoreal (any bible style with a
launchblock, which says how real footage is graded into that world), or bring your own:launch.mjs style-from-refs <slug> --name <id> --ref a.png --ref b.png --look "..." --negative "..." --said "..."copies your images into the bible and sends them to every frame and character sheet. A style from references needs two or more images, a written look, a never-list, a footage treatment and your words; the visual identity is still approved withstudio.mjs approve-look. - The interview asks for the style (or your reference images) along with the ICP, the pain and the CTA.