À propos du projet

OpenStory est une plateforme open-source qui transforme un script écrit en une production vidéo stylisée. Elle analyse le script en un découpage de scènes avec des angles de caméra, des traitements d'ambiance et un suivi de continuité, puis génère une séquence de trames IA — images, vidéo animée et audio — tout en maintenant la cohérence des personnages, des lieux, des palettes de couleurs et de l'éclairage entre les scènes. Le projet se décrit comme gérant l'ingénierie des invites, la génération et le compositing afin que les équipes puissent se concentrer sur le travail créatif. Capacités clés décrites dans le README : - Analyse de script : collez un script et recevez un découpage automatique en scènes avec angles de caméra, traitements d'ambiance et suivi de continuité. - Génération d'images IA via Fal.ai, avec plusieurs options de modèles. - Mouvement image-vers-vidéo : convertissez des trames fixes en clips vidéo animés. - Cohérence de style : les personnages, lieux, palettes de couleurs et éclairages se transmettent automatiquement entre les scènes. - Les espaces de travail d'équipe sont annoncés comme bientôt disponibles, couvrant des bibliothèques partagées de styles, personnages, effets visuels et audio. - Authentification par clé d'accès via Better Auth pour une connexion sans mot de passe. - Déploiement en périphérie sur Cloudflare Workers avec un CDN mondial. Architecture et pile : l'application est construite avec TanStack Start, TanStack Router et Vite, fonctionnant sur Bun (>= 1.3.9). Les données sont stockées dans Cloudflare D1 (SQLite) via Drizzle ORM. Les fonctionnalités IA utilisent TanStack AI, Fal.ai et OpenRouter, avec PostHog pour l'observabilité des LLM. La génération de longue durée est gérée par Cloudflare Workflows pour une exécution durable, tandis que Cloudflare Durable Objects fournissent des mises à jour de progression en temps réel via SSE. Les actifs résident dans Cloudflare R2 (compatible S3). L'interface utilisateur utilise Tailwind v4 et shadcn/ui. Les outils de qualité incluent oxlint, oxfmt, tsgo, Lefthook et Knip ; les tests utilisent Vitest et Playwright. Pour commencer, seul Bun est requis. Le développement local exécute toute la pile — D1, R2, Workflows, Durable Objects et e-mail — dans Workerd via Miniflare, donc aucun Docker, base de données externe ou compte Cloudflare n'est nécessaire. Après avoir cloné et exécuté bun install, bun dev initialise .env.local avec des secrets d'authentification et de chiffrement, migre et remplit la base de données locale, et démarre le serveur de développement sur le port 3000. La génération IA nécessite deux clés : FAL_KEY pour la génération d'images, de vidéos et d'audio, et OPENROUTER_KEY pour l'analyse de script par LLM ; bun setup les ajoute de manière interactive. La configuration optionnelle couvre Google OAuth, Stripe, PostHog et R2 distant. Le dépôt documente un large ensemble de scripts pour le développement, les contrôles qualité, les tests, les migrations de base de données et le déploiement. Le déploiement cible Cloudflare Workers, avec un bouton de déploiement en un clic qui clone le dépôt, provisionne les ressources déclarées dans wrangler.jsonc et configure l'intégration continue. Cloudflare Workers Builds déploie automatiquement lors des pushs sur main, et les demandes de tirage reçoivent des déploiements de prévisualisation via GitHub Actions avec des bases de données D1 dédiées. Le projet est sous licence MIT et accueille les contributions, orientant les nouveaux venus vers les étiquettes de premiers problèmes et un guide CONTRIBUTING.