Inspiration

Traditional storyboard tools require manual character design, making consistency across frames difficult. We solved this by using reference images with AI models to maintain character and prop appearance throughout storyboard sequences.

What it does

Previz transforms a logline into a cinematic storyboard. Users input a tagline; the system uses Grok to analyze narrative, generate prompts for characters, props/costumes, and attach them to specific characters. Props, characters and clothing is generated via Seedream and nano-banana-pro is used for the final storyboard shot using reference images to maintain character consistency. Props and costumes appear on assigned characters across all shots. Users can upload custom images that are auto-classified as characters, props, or costumes.

How we built it

The tech stack is grok-4-1-fast-reasoning, TypeScript, Next.js, backend Supabase, Seedream and nano-banana-pro image model run on Replicate. Next.js 14 App Router with React/TypeScript frontend. Supabase PostgreSQL stores projects, characters, shots, and jobs; Supabase Storage backs up images. Grok-4-1-fast-reasoning handles narrative generation with all prompt generation for props, clothing, etc. Replicate runs Seedream for characters/props (fast) and nano-banana-pro for final shots (cinematic quality). Tag system (@character-1, @prop-1) maintains consistency. Reference images inject into scene prompts. Parallel job processing with webhook-based async generation. When uploading images, LLM automatically categorizes them as character, clothing, or prop.

Challenges we ran into

Character consistency across frames required extensive prompt engineering with reference images. Coordinating parallel image jobs with webhooks needed robust job tracking in Supabase. Replicate's 2000-character prompt limit required truncation preserving style, characters, and action. Auto-classifying uploads needed careful LLM prompting and positional matching. Pipeline orchestration required portraits to complete before shot generation. Making @character-X tags reliable across LLM outputs needed fallback matching and debugging.

Accomplishments that we're proud of

LLM auto-classifies uploads as characters, props, or costumes. Real-time UI shows characters and shots as they generate. Hybrid model approach: Seedream for characters/props, nano-banana-pro for final shots. Robust @character-X/@prop-X/@costume-X tag system maintains consistency. Parallel pipeline generates assets simultaneously. LLM determines prop-to-character relationships. Regenerate individual characters or shots without recreating entire projects.

What we learned

Reference images alone aren't enough - prompts must explicitly reference traits while avoiding conflicts. Idempotency, error handling, and status tracking are critical for webhook systems. Structured JSON output requires validation and fallback logic. Seedream is fast but doesn't create cinematic enough or consistent scenes, so we use Seedream for props and characters, nano-banana-pro for final shots. Different models interpret references differently, requiring testing and prompt adjustment. Complex nested state (projects → characters/props/shots) requires balancing normalization with query performance. Progressive loading and real-time updates are essential for multi-minute operations.

What's next for Previz

Adding video models like Seedance 1.0, Kling, or Veo and export full videos. Sound generation with Suno and voiceover via ElevenLabs and/or sound generation in the video models. Sharing of characters and props between projects. Template library for common genres and shot types. Export to industry-standard formats.

Built With

Share this project:

Updates