Relational Generative Previs
How Qweek Studio maintains character and world consistency across shots using a relational production graph, debounced orchestration, and dual STATIC/MOTION rendering pipelines.
Abstract
Stateless text-to-video systems break serialized storytelling because each generation lacks persistent identity. Qweek Studio treats the screenplay as source of truth and routes every shot through a relational generative graph — Character Bank, World Ledger, and story nodes linked by foreign keys and vector namespaces.
Problem
When @Maya appears in shot 1 and shot 47, a prompt-only pipeline must re-infer appearance every time. Production teams need a bible that compounds over time.
Architecture
- Relational layer — PostgreSQL stores workspaces, projects, characters, locations, story nodes, and timeline shots.
- Vector layer — Pinecone namespaces per project (
characters,locations) enrich generation context via OpenAI embeddings. - Orchestration — Script edits debounce into Redis queue jobs; workers call Replicate (STATIC/MOTION) with bible context.
- Sync — WebSocket broadcasts visual block updates to the split canvas in real time.
Dual rendering modes
- STATIC — Fast iteration (~2–5s) for storyboard frames (Flux-class models).
- MOTION — Lip-synced loops when blocks are mastered; higher cost, quota-gated.
Consistency mechanism
Generation prompts assemble from:
- Character
visual_dna_prompt+ turnaround pack URLs - Location
base_environment_prompt - Parsed
@characterreferences in script lines - Vector retrieval top-k from Pinecone namespace
Conclusion
The moat is not a better single-shot model — it is production state: a bible-linked timeline where line-level edits regenerate consistent frames.