Turn a Story Into a Finished Video
Rilo turns a plain text story into a finished video — AI-generated script, voiceover, keyframes, and composition, all in one command.
Built for creators and teams who need reproducible, high-quality video at scale without manual editing.
Full Pipeline, One Command
Write your story in plain text. Rilo handles the rest:
Script generation → Voiceover synthesis → Keyframe rendering → Segment generation → Final composition
No manual stitching. No timeline editing. One command from story to finished video.
rilo --project demo --story-file ./story.txt
Checkpointed Runs
Every stage saves checkpointed artifacts. Resume an interrupted run from where it left off. Regenerate just the segments if you changed a model. Re-render only keyframes if you tweaked prompts.
rilo --project demo # resume from last checkpoint
rilo --project demo --force # restart from earlier stages
rilo --project demo --force --full-run # skip keyframe review, run all stages
Fine-grained control without starting over.
Your Models, Your Control
Choose your text-to-image and image-to-video models. Override per-model options for full creative control. Switch models between runs without changing your story.
Rilo's model adapter system maps your story context to each model's native input format — you don't need to learn model-specific APIs.
Code-Driven Pipeline
Deterministic code handles job orchestration, checkpointing, artifact management, and state tracking. Your tokens go toward creative generation — script writing, image rendering, and video synthesis — not toward infrastructure overhead.
No context windows burned on file I/O. No tokens wasted on orchestration chatter. Just generation where it counts.
Subtitle Alignment & Burn-In
Auto-align subtitles to voiceover timing with ffsubsync. Burn them into the final video as styled ASS subtitles. Optional, configurable, and fully automated.
# Configure in your project config
rilo --project demo --story-file ./story.txt
Preview Dashboard
Start a local web dashboard for project management, live status monitoring, asset preview, and targeted regeneration.
rilo preview
rilo preview --port 4000 --no-open
Api server, background worker, and Vite React frontend — all started in one command. View job history, inspect artifacts, and trigger regenerations from your browser.
HTTP API & Webhooks
Run Rilo as a service. Bearer-token authentication. OpenAPI 3.1 spec for schema-driven integration. Webhook subscriptions for job lifecycle events.
- Swagger UI at
/docswhen runningnpm run api - OpenAPI JSON at
/openapi.json - Webhook events for job created, stage completed, job finished, job failed
- Firebase Functions adapter for serverless deployment
Cross-Platform
Runs on macOS, Linux, and Windows. Requires Node.js 22+ and ffmpeg in PATH.
Ready to Generate Your First Video?
Or jump straight to the Quickstart and CLI Reference.