Free Shipping on all orders ยท Priority Mail Shipping with fee of $8.00
๐ŸŽฌ
Divine Tribe Software ยท Open Source

Story Forge

A local-only generative video system. Any kind of video, any style, on one laptop. No cloud.

Python + ffmpeg5 local AI modelsNo cloudOpen source
4:08
First Saga Runtime
43
Scenes
12 hr
Compute
0
Cloud Calls
What's new: May 24, 2026

2026-05-24 ship state

Three firsts landed this week. Each one shrinks the gap between "open the laptop" and "watch the finished film."

๐ŸŽฅ
Public first Apple Silicon MPS

LTX 13B distilled 0.9.8 running on Apple Silicon

118 seconds per 5-second clip on M5 Max via MPS. The first known public port of the distilled LTX 13B to Apple's GPU stack. No CUDA, no rented A100, no waitlist.

โšก
2-step distill trained on-device

Wan 2-step distillation, trained on the laptop itself

We train our own step-distillation LoRA for Wan directly on Apple Silicon, collapsing 4 denoising steps into 2. As far as we can find, this is the first distillation training of a video model done on a Mac instead of a data center. The model gets faster on the same machine that runs it.

๐Ÿ“œ
DSL Deterministic Scriptable

Story Forge DSL: .sf โ†’ .mp4 in one command

A scene-graph script language designed for film, not JSON. Hand it a .sf file, get a finished .mp4 back. Deterministic, repeatable, diffable, scriptable from any shell.

The same 4-minute video that costs $300 to $1000 on cloud video services runs here for the price of electricity. Hardware breaks even after about 40 films.

Watch the first DSL-rendered clip

First clip from a .sf script, rendered locally.

Short proof clip rendered straight from a Story Forge .sf script through the full pipeline (Flux still, LTX motion, Metal-accelerated attention), composited by ffmpeg. One command in, one MP4 out, nothing left the machine.

Newest film, October 31 2026

THE LAST SIGNAL: a sci fi trailer made 100% local on one M5 Max 128GB.

A cargo ship follows a signal nobody has charted, and the planet at the end of it already knows the captain's name.
46.6 s50 cuts4K deliverable5.1 surroundOne day, story to trailer
Hardware

MacBook Pro ยท Apple M5 Max ยท 128GB unified memory

No cloud renders, no API calls, no subscriptions. One model in memory at a time: load, batch every job, unload, next stage.

The pipeline, real clock times from 10/31
  1. 1Storypremise and script v3 locked, about 40 cuts2:00 to 2:52 AM
  2. 2Shot listevery shot planned before a render3:08 to 3:20 AM
  3. 3The shipBlender 5.1.1, Cycles on Metal3:20 to 4:27 AM
  4. 4Stallmemory guard refused a 48 GB image model16 min
  5. 5StillsZ-Image-Turbo 6B, bf164:50 to 5:45 AM
  6. 6PrevisLTX-2.5 distilled, MLX bf16, 20 drafts5:46 to 6:14 AM
  7. 7Quality passLTX-2.5 hq two stage, MLX bf16, 832x4806:15 to ~11:30 AM
  8. 8Clip gateQwen3-VL-32B local vision judge25 min
  9. 9ScoreACE-Step 1.5 through Song Forge3 candidates
  10. 10Synthour own numpy sub bass, beeps and kicksby script
  11. 11Sound effectsMMAudio large 44k v2, picture synced4 min
  12. 12VoicesChatterBox, 9 takes of 3 lines1.5 min
  13. 13Mixour own 5.1 panner5.1 + stereo
  14. 14UpscaleSeedVR2-3B fp16, 720p then 4K12:34 to 3:56 PM
  15. 15Gradeour own LUTs, grain, 2.39:1, FFmpegby script
  16. 16QCQwen3-VL-32B + Whisper, two rounds51 of 53 pass
  17. 17Readyfinished trailer5:38 PM
How each step worked

Story. Premise and trailer script written in chat, cut faster to v3 (about 40 cuts) and locked before anything rendered.

The ship. A procedural city sized ship in Blender 5.1.1, Cycles on Metal: 7 hero stills and 2 camera animations.

Stills. Z-Image-Turbo 6B in bf16 made the character canon and every start frame. The creature began as a MattPaint painting and went in through img2img to become photoreal. The Blender ship frames got a light img2img polish.

Previs. LTX-2.5 distilled made a quick draft of every shot (20 drafts, about 106 s each). A rough cut then decided which shots and seconds earned a real render.

Quality pass. LTX-2.5 hq two stage rendered 35 takes of only the shots that made the cut, about 9.5 min a take.

Score and synth. ACE-Step 1.5 made 3 instrumental candidates, each cut to the trailer's beat map by script. Our own numpy synth added the sub bass swell under the arrival, the heartbeat radio beep, a sub kick on every ramp cut and the title drop.

Sound effects. MMAudio large 44k v2 made 25 effects in one load, 15 of them generated from the clips so they sync to picture.

Voices. ChatterBox made 9 takes of the 3 lines. The planet is pitched down and layered, the captain whispered.

Mix. Our own 5.1 panner: the ship sweeps front to rear, the planet comes from every speaker, LFE on the rumble. E-AC3 5.1 plus stereo.

Upscale. SeedVR2-3B fp16 restored the held shots at 720p (866 frames, about 12.7 s a frame), then they were resized to 4K.

Grade. Bloom on the engines, our own LUTs (cold space teal, teal orange blockbuster), light grain, 2.39:1 scope, FFmpeg for every cut.

QC. A local vision model (Qwen3-VL-32B) plus Whisper checked the finished cut: 51 of 53 checks passed, and the 2 flags are the stone monster itself. A face check caught the captain drifting, so 4 shots got a face lock back to her canon face.

Honest notes

4K deliverable, not native 4K detail. Held shots were restored at 720p, then resized.

About 2 of the 14.5 hours were stalls. 16 min on the memory guard, 29 min getting the upscaler running, and 78 min when one shot came back smeared twice and had to be split.

October 2026 progress film

The Oldest Tree: the limit of local video on one M5 Max 128GB.

A girl, her grandfather, and the oldest redwood in the forest. He's starting to forget things, and the tree remembers for him. Every month I make a new film to show how far local AI video has come, and this one is about the limit of what a single M5 Max MacBook with 128GB can do right now.

What it took: 2,130 stills generated and judged by a local vision model (28% passed), 270 LTX-2.5 animation renders, and about 105 hours of measured compute for 2 minutes 53 seconds of film. The stack is Qwen-Image for stills, LTX-2.5 image to video, LTX-2 distilled audio to video for lip sync, Chatterbox and Kokoro for the voices, Song Forge (ACE-Step) for the score, Qwen3-VL as the judge, Whisper to check every line is heard, and FFmpeg for the cut and grade. New this month is a face check and a face lock: a face recognition model compares every face on screen with the cast portraits before a shot is kept, and every animated clip has its faces re-rendered frame by frame with the character's canon identity, so the motion stays and the face never drifts. That let us film the two scenes that never held before and recast the grown-up granddaughter so she reads her age.

Story Forge on GitHub ยท Watch on YouTube

Watch the first film

The Bear Sister: a two-act animated saga.

Five open-source models composed by ffmpeg, 12 hours of M5 Max compute, zero cloud calls. The film above is the first production from the Story Forge pipeline: Act One in Studio Ghibli watercolor, Act Two in photoreal cinematic, stitched into one 4-minute saga with scored music, narrated by a warm storyteller voice, with title and credits.

The next thousand are scripts away.

Why it's different

The Finished Films

Every one of these was generated start to finish by Story Forge on one M5 Max MacBook with 128GB. No cloud, no render farm.

THE LAST SIGNAL

October 31 2026 sci fi trailer. Blender ship, LTX-2.5 motion, 5.1 surround, made in one day on one M5 Max 128GB. The pipeline

The Oldest Tree

October 2026 progress film. Photoreal, 49 shots, the limit of one M5 Max 128GB today.

The Lucid Engine

A short film generated entirely on one Mac. Every frame, voice, and note on device.

Antarctica: The Continent We Just Met

A real documentary. Every discovery in it is true.

The Little Robot Who Built Himself

A bedtime cartoon made in one night by local AI.

The Bear Sister

A calm two-act kids saga, the first Story Forge production.

What makes Story Forge different

๐ŸŽž๏ธ

All local models

Qwen-Image stills + LTX-2.5 video + Chatterbox and Kokoro voices + ACE-Step score + Qwen3-VL judge + Whisper + ffmpeg. All open-source, all on-device.

๐Ÿ”Œ

Zero cloud

Nothing leaves the laptop. No upload step. No API charges. No rate limits. Ever.

๐Ÿ“

Scene-graph composable

Each scene = still + motion + narration. Change one, only that scene re-renders.

๐Ÿ”‰

Warm storyteller voice

Per-sentence Piper + adelay+amix scene-sync + warm EQ chain. Bedtime-story quality.

Newest: July 22, 2026

The Director: talk to it, get a movie

The whole pipeline now sits behind a conversation. Open Story Forge and tell it the movie you want. A local LLM talks the concept through with you (title, style, characters, mood), then fills a storyboard. Each scene card walks itself through the formula with a paper trail: a generated still, a vision-model quality check, your approve-and-lock, a cheap draft animation to catch bad staging, then the full render. A locked scene can never be touched again. At the end it composes an instrumental score, assembles the cut, and hands the film to the judge stage below for a verdict, with pass/fail counts reported as-is.

๐Ÿ’ฌ

Direct by conversation

Describe the film in plain words. The local director LLM pitches the concept and scene list back; you refine it in chat, nothing renders until it's locked.

๐ŸŽฌ

Storyboard with gates

Every scene: still โ†’ QC check โ†’ approve & lock โ†’ draft โ†’ final. Re-roll anything unlocked with one click, or drop your own image straight onto a card.

๐Ÿง 

Runs smart on one machine

A memory governor sequences image gen, video gen, music, the LLM and the vision judge on a single Mac. Models load in batches, never stack, never thrash.

New: July 2026

The hard part isn't generating. It's checking.

Anyone can generate a pretty five-second clip. Making a film that makes sense is a different problem, and it is mostly a verification problem. We learned that the expensive way: an episode of ours passed 91 automated checks, 86 of them green, and was still incoherent. The checks confirmed the right mouth moved on the right line, no faces melted, no limbs multiplied, every voice landed on time. All true. Meanwhile the shot meant to show a bear driving his shoulder into a jammed door showed a bear idly poking the wall with a stick, the door never opened anywhere in the film, and the character being rescued never appeared on screen at all.

Every individual check passed. The film made no sense. Technical QC cannot see story. So Story Forge grew a second kind of review, and it is the part we are proudest of.

๐ŸŽฌ

Does the picture show the beat?

A local vision model describes each frame blind (told the intended beat first, a model just agrees with you), then rules pass or fail against what the script says this shot is. First run over a "finished" episode: 2 of 11 shots passed.

๐Ÿ—ณ๏ธ

One instant is not a verdict

The same clip sampled at 1.1s and 2.7s ruled both ways. Every judgement votes across frames, majority rules, and every individual ballot is printed. Nothing hides behind an average.

๐Ÿงฌ

Characters and sets held to canon

Every named character in a shot is compared to its locked master, allowing for distance and light, but not for "a generic cartoon animal of roughly the right colour." Sets get the same treatment, because one episode quietly ended up with four different trains.

๐Ÿ•ณ๏ธ

The beat that was never shot

Per-shot checks cannot catch a missing scene. A story spine lists the beats a film cannot exist without, and the build stops and names the hole, like a door that never opens.

๐Ÿ”

It learns from the rejection

The judge says why in words. That sentence is fed into the next attempt and written to a house rulebook keyed by keyword, so a lesson earned on film one applies to film four. One shot failed four seeds, applied its own corrections, and passed on the next cycle unattended.

โš–๏ธ

We audit the auditor

A gate nobody checks is a different kind of guess. A calibration set of shots with known human verdicts grades the judge every run (currently 5 of 6), and it warns loudly if agreement drops below 80%.

It also caught us. A check we loosened too far let an off-model bear through; the calibration set flagged it. Nothing silently lowers a bar: a shot that can't prove itself is reported UNBUILT rather than quietly used, a clip that only partly holds its beat is trimmed to the part that does and the trim is declared, and anything the judge can't assess is reported UNCHECKED, never as a pass. All of it runs on one laptop, offline.

Who it's for

Is this for you?

  • Indie filmmakers + animators who want a free, local, unlimited rendering pipeline
  • Parents making calm, sensory-friendly stories for kids: no flashing, no violence, no cloud
  • AI researchers building cinema-quality output from open models on Apple Silicon
  • Creators tired of cloud rate limits, subscription gates, and rights-grabby ToS
How to get it

How to forge a story

1

Write the scenes

One scene = one still prompt + one motion prompt + one narration line. Build a list.

2

Click forge

The pipeline iterates: Flux makes stills, Wan animates each, Piper narrates, ACE-Step scores, ffmpeg composes.

3

Watch your film

Final MP4 auto-opens in QuickTime. Title + credits + xfade transitions baked in.

Manifesto

We make our own rules.

We're not bound by upstream library defaults. We write our own DSL when JSON's too clumsy, our own Metal kernels when the vendor's path is slow. Cloud companies will tell you AI cinema needs a server farm. It doesn't. It needs a laptop, a script, and somebody willing to read the source.

What the cloud charges hundreds per film for, this pipeline does for the price of electricity. What people paid big data centers to run, we proved runs on a MacBook Pro on a kitchen table. We make our own rules. We build new things constantly. We make possible what people said wasn't possible.

Ready to forge your first film?

It's free, open source, and runs on the hardware you already own. Read the README, watch the first film, drop a star to help us keep building in public.

For firms ยท Confidential workflows

Need this for a law firm, healthcare org, or anywhere documents can't leave the machine?

Story Forge runs the same on your firm's MacBook as it does on mine. AirGap AI is the commercial pilot: a 14-day engagement that ships Story Forge (and the rest of the local-AI stack) into a real legal/medical workflow with verified network audits. Confidential storyboards in, finished video out, never a byte to a cloud.

Explore the AirGap pilot โ†’ Get in touch
Stay in the tribe

More from Divine Tribe

Full technical docs

The complete README

Open the GitHub README โ€” every detail, every benchmark, every code block

Story Forge

A local-only generative video system. Any kind of video, any style, on one laptop. No cloud.

Story Forge is a generative video system for making video of any kind โ€” narrated explainers, ambient pieces, promos, documentary cuts, music-driven shorts, and fully animated films โ€” in any style, from one readable script, entirely on local Apple Silicon. Motion, narration, original music, titles and credits. Five open-source models composed by ffmpeg. Zero cloud calls. Zero API charges. Zero rate limits.

Full source, every benchmark, and every code block on GitHub →

The pipeline

.sf script → parser → resolver → emitter → .storyplan.json IR → render-route → ffmpeg

  • Flux 1 Dev โ€” a still per scene (composition + character look)
  • Wan 2.2 i2v โ€” hero motion (faces, action), native 5-second clips
  • LTX-Video 13B distilled 0.9.8 โ€” atmospheric B-roll at 118s/clip on M5, ~5.6× faster than Wan
  • Piper TTS โ€” warm storyteller narration through a deliberate EQ chain
  • ACE-Step โ€” original instrumental score + per-scene SFX
  • ffmpeg โ€” xfade stitch, sidechain-ducked mix, fades, mux

The .sf language

Story Forge films are written as .sf scripts โ€” indentation-aware, comment-friendly, stdlib-only parser. A film is scenes; each scene declares its still, its motion engine, narration voices, music and SFX. render-route sends character/hero shots to Wan and atmospheric B-roll to LTX automatically, or you pin the engine per scene.

What's genuinely ours

  • LTX 13B distilled 0.9.8 on Apple Silicon MPS โ€” likely the first public-confirmed working setup, via Lightricks' upstream multi-scale path.
  • Wan 2-step distillation trained on-device โ€” we train our own step-distillation LoRA for Wan directly on Apple Silicon (not a data center) to collapse 4 denoising steps into 2.
  • An LPIPS-gated speedup harness โ€” CI-style perceptual regression gates on every render optimization, so speedups can never silently degrade quality.
  • A compiled film DSL with deterministic IR + local multi-engine routing โ€” a language for film, not JSON.

Why local

A full animated short with custom score and synced narration runs on one laptop you can carry in a bag. No upload step, no queue position, no subscription, no telemetry. What the cloud charges hundreds of dollars per film for, this does for the price of electricity.