Inspiration

Generative video can create an impressive individual shot, but filmmaking requires more than isolated images. Characters must remain recognizable, rooms must preserve their geometry, lighting must stay coherent, props must not change, and every camera angle must contribute to the story.

We built VideoForge after seeing the same failure repeatedly: six independent generations produced six visually interesting shots that did not feel like the same movie. Our inspiration was the discipline of a real film set—lock the world, plan the coverage, approve the first frames, and only then let the scene move.

What it does

VideoForge turns one story prompt into a controlled six-shot short film.

Qwen Cloud acts as the narrative director and visual planner. It creates a structured story, an immutable character-and-environment bible, and a dynamic shot list chosen for the specific prompt rather than following a fixed wide-to-close-up template. Each shot records its narrative purpose, framing, camera angle, physical action, start and end state, lighting, seed, model, and estimated cost.

The filmmaker reviews and approves the plan before any image-generation spend. Qwen Image then creates the storyboard keyframes, followed by a second human approval gate. Wan 2.7 animates only the approved frames with short, physical motion prompts. VideoForge verifies every clip, preserves individual outputs, and assembles the final cut with FFmpeg.

For shots that continue the same action, VideoForge can use an accepted ending frame as the next shot's continuity handoff. In our recorded production, a wide shot ends as the actor looks left; the following close-up is derived from that exact ending frame, preserving her pose, identity, lighting, room, and camera axis across the cut.

Every generation remains inspectable through a production ledger containing prompts, hashes, seeds, models, retries, task IDs, statuses, and cost estimates. The interface presents the workflow as a printed film-production call sheet rather than a conventional AI dashboard.

How we built it

VideoForge uses FastAPI and Pydantic for the application and production domain, SQLite for persistent projects, shots, assets, jobs, approvals, and provider task IDs, and a lightweight HTML, CSS, and JavaScript frontend.

The Qwen Cloud integration uses Qwen for structured planning and storyboard generation, then Wan 2.7 image-to-video for the approved shots. A deterministic prompt compiler injects the same visual bible into every keyframe prompt and produces restrained motion prompts built around one visible physical action and one camera instruction.

Generation jobs run independently and persist their progress. Wan task IDs survive browser refreshes and server restarts, successful shots remain available when another shot fails, and a filmmaker can retry one clip without paying to regenerate the entire sequence. Account-level provider failures stop queued sibling jobs before they create additional paid requests.

FFprobe validates codec, resolution, frame rate, and duration. FFmpeg normalizes and concatenates the verified clips into a 30-second H.264 final cut while retaining every original shot.

The recorded demo contains five saved Qwen keyframes, one deterministic continuity crop, six real paid Wan outputs, and their assembled final. Replaying the demo is instant and makes no new provider call, while the separate live-production path remains connected to Qwen Cloud and requires explicit confirmation before paid media generation.

Challenges we ran into

The hardest problem was continuity. Shared text prompts and repeated seeds helped, but they did not guarantee that independently generated shots would preserve the same room, lighting, character position, or prop design.

We also found that longer motion prompts made results less reliable. Instructions about fabric movement, particles, atmosphere, emotional subtext, and complex camera motion encouraged the model to invent details. Short physical actions—look left, lower the eyes, blink once, close a hand—were far more controllable.

Shot language needed to be visually enforceable. A requested close-up sometimes returned a full person and most of the room. We added framing contracts for masters, close-ups, shadow details, reflections, inserts, and over-the-shoulder compositions, plus targeted retry and crop logic when a frame could be corrected safely.

Lighting was another major challenge. Wan could reinterpret a visible fixture or television as a reason to relight the scene. We moved the lighting lock ahead of the action and simplified actions that accidentally suggested a lighting change.

Finally, real provider behavior required production safeguards. We encountered rate limits, delayed asynchronous tasks, failed framing checks, and account-level billing restrictions. This led us to add bounded retries, serialized video generation when needed, persistent task recovery, independent shot retry, and fail-fast cancellation for requests that had not yet reached the provider.

Accomplishments that we're proud of

We produced a real six-shot Qwen-and-Wan film rather than a simulated API demo. All six video clips are paid Wan image-to-video outputs, and the final cut is assembled from those actual generated clips.

We created a practical matching-action workflow that turns a model limitation into a cinematic technique. The transition from the wide first shot to the close second shot uses the accepted ending frame as a continuity handoff, giving the cut substantially stronger visual coherence.

We are also proud that VideoForge exposes its work. Prompts, seeds, hashes, provider models, retries, costs, approvals, and technical checks are visible instead of being hidden behind a single Generate button.

The final application includes a production-ready Qwen path, explicit approval gates around paid calls, persistent recovery, individual-shot retries, a clean recorded presentation route, and a complete automated test suite. The submission build passes 88 tests and an end-to-end smoke workflow.

What we learned

Continuity is a pipeline problem, not merely a prompting problem. A shared visual bible is necessary, but adjacent shots also need an explicit visual handoff.

The best video prompt is often the shortest prompt that describes one filmable physical action. Screenwriting language works better than prose because it tells the model what must be visible rather than what the moment is supposed to mean.

Cinematographic variety and continuity are complementary. A sequence can move dynamically between wide shots, close-ups, details, reflections, and over-the-shoulder shots while remaining coherent—as long as every new angle inherits the correct physical state from the previous shot.

Human approval is most valuable before expensive or irreversible steps. Separating planning, storyboard approval, animation, and final assembly gave us creative control while avoiding unnecessary paid retries.

We also learned that an AI filmmaking product needs the unglamorous production infrastructure: persisted jobs, rate-limit handling, task recovery, validation, audit metadata, and honest labeling of recorded versus newly generated media.

What's next for VideoForge: AI Showrunner

The next major step is to generalize continuity handoffs across the full shot plan. VideoForge should automatically identify matching-action pairs, extract the accepted ending frame, propose the next crop or camera setup, and ask the filmmaker to approve that bridge before generation.

We also want to add reference-based close-up recomposition, automated identity and lighting comparison between adjacent frames, sound design and dialogue timing, editable shot duration, and a lightweight nonlinear timeline.

For deployment beyond a single production, SQLite and local assets can move to managed SQL and object storage, while the existing persisted job protocol can move to a distributed worker queue. The core idea will remain the same: treat generative video like a controlled film production, not six unrelated rolls of the dice.

Built With

Share this project:

Updates