← Back
ilkerzg

ilkerzg/storycast

Type a topic. Get a story.

View on GitHub ↗https://storycast-fawn.vercel.app ↗
Stars
228
Forks
75
Watchers
228
Open issues
0
Contributors
1
Language
TypeScript
License
—
Default branch
main
Created Sep 24, 2026Updated Sep 25, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

Storycast

Storycast

Type a topic. Get a story.
Pick a character, give it a topic, and get back a narrated animated film, made end to end on fal.

Open Storycast · Watch the launch video

Storycast home

What it makes

A character narrates a short film that explains a topic: a script, keyframes, animated shots, on-camera lines, narration, a score, a hand-lettered end card and word-by-word subtitles. 50 ready narrators, 26 illustrated looks, 74 languages, 1 to 10 minutes long. You can also invent a character, upload your own, or bring your own illustration style.

Nib and the stick inside the pencil
Nib and the stick inside the pencil · Claymation
Kiko and the secret life of lightning
Kiko and the secret life of lightning · Watercolor anime
Stella and the very first newspapers
Stella and the very first newspapers · Comic ligne claire
Rex and the bone that turned to stone
Rex and the bone that turned to stone · Kid's crayon
Rio y el tango del puerto
Rio y el tango del puerto · Marker sketch · Español
Wren ve yerin altındaki gizli şehirler
Wren ve yerin altındaki gizli şehirler · Gouache storybook · Türkçe

Watch the launch video
▶ Launch video

How it works

Everything runs in your browser with your own fal key.

Make a film Watch a film
Pick a topic, a narrator, a look, a voice and a length Watch, share or download the finished film
  1. Script. A director writes the story in blocks, each either voice-over or the narrator talking on camera, and a script editor smooths every jump between scenes.
  2. Narrator and keyframes. The narrator gets a model sheet and a hero portrait, and every block gets a keyframe in the chosen look.
  3. Voice. Each block is narrated, and on-camera lines are fitted to the right length.
  4. Shots. Voice-over blocks become animated shots and on-camera blocks become lip-synced shots.
  5. Score and edit. A score is composed, the shots are cut to the narration, the sound is mixed, an end card is lettered and subtitles are added.

Models

Step fal endpoint
Director, script editor openrouter/router with Claude Opus 5.5
Reading images, shot checks openrouter/router/vision with Claude Opus 5.5 and Gemini 3.8 Flash
Model sheets, keyframes, end cards openai/gpt-image-2.5/flare/text-to-image, openai/gpt-image-2.5/flare/edit
Shots minimax/h3-max/reference-to-video
On-camera lines minimax/h3-max/lip-sync/image-to-video
Narration fal-ai/elevenlabs/tts/eleven-v3
Score elevenlabs/music/v2.5
Edit fal-ai/workflow-utilities/trim-video and fal-ai/ffmpeg-api (extract-frame, merge-videos, images-to-video, compose, loudnorm, merge-audio-video)
Subtitles fal-ai/workflow-utilities/auto-subtitle

Make one with your agent

Every page has a Copy agent prompt button. It copies a step-by-step brief of this pipeline, filled in with the page's topic, look, narrator and voice, so a coding agent with a fal key can make the film from your terminal.

Explore

Run locally

cd web && npm install && npm run dev

Connect your fal key in the app to make stories.

Deploy

web/ is a static Vite site. Deploy it to any static host (on Vercel: root web/).

Sharing (optional)

share/ is a Cloudflare Worker with D1 and R2. Without it, sharing is hidden.

cd share && npm install && npx wrangler login
npx wrangler d1 create storycast
npx wrangler r2 bucket create storycast-media
npx wrangler d1 execute storycast --remote --file schema.sql
npx wrangler turnstile widget create storycast-share --domain <your site host> --mode managed

Put the database id and your site's address (ALLOWED_ORIGINS) into share/wrangler.jsonc, then:

npx wrangler secret put IP_SALT
npx wrangler secret put TURNSTILE_SECRET
npx wrangler secret put FAL_KEY
npx wrangler deploy

Set VITE_SHARE_API and VITE_TURNSTILE_SITE_KEY for the site build (see web/.env.example) and redeploy.

To publish a story sent to Explore:

npx wrangler d1 execute storycast --remote --command "UPDATE films SET status = 'public' WHERE id = '<story id>'"