// LAUNCH TRANSMISSION · Jul 10, 2026

One prompt in. A finished, branded film out.

Video Gen Studio is an agentic video studio on Azure AI — a team of AI agents writes, directs, renders, narrates and finishes a brand-consistent film from a single sentence. Sora-2 for motion, gpt-image-2 for art, Azu...

sora-2gpt-image-2azure-aiagent-frameworkvideo-generationbyos
▶ LAUNCH TRAILER · 0:21

TL;DR — Type one sentence. A crew of AI agents scripts it, storyboards it, and waits for your approval — then Sora-2 renders every scene, Azure AI Speech narrates it, and a deterministic ffmpeg finishing pass burns in rolling captions, ducks a music bed under the voice, and tops-and-tails it with brand bumpers. Choose from nine cinematic styles — or upload any clip and it mints a brand-new style from the look. Everything lands in a real editing timeline. Built on Azure, driven end-to-end by GitHub Copilot CLI in autopilot.

A neon film-editing control room — the Video Gen Studio launch key art

1
prompt in
7
AI agents
9+
visual styles
0
editors needed
~$2
per 30s film*

Prompt in, premiere out

Making a short explainer or story film is a pipeline problem, not a single-model problem. You need a script, a consistent visual style, scenes that actually match the narration, a voice, captions, music, and a bit of brand polish so it doesn’t look like a tech demo. Today you either hire that out or stitch together six tools by hand.

Video Gen Studio collapses the whole pipeline into one screen. You give it a sentence and a look. A team of agents turns it into a finished, narrated, brand-consistent film — and hands you a real timeline to recut it.

Here’s a single frame, rendered by Sora-2 in the Cinematic style from the prompt “a lone lighthouse keeper watches a storm roll in at dusk” — no stock footage, no camera, one line of text:

A photoreal cinematic frame of a lighthouse keeper watching a storm at blue hour, rendered by Sora-2
Cinematic style · blue-hour grade · anamorphic framing — from a one-line prompt.

Meet the crew: an agentic film studio

The studio runs on the Microsoft Agent Framework. Each stage is a real agent with a job, and there’s a human gate in the middle — you approve the plan before a single expensive frame is rendered.

✍️ ScriptWriter 🎬 Director · your approval 🧬 Character-Consistency 🎥 Renderer · Sora-2 🔎 Continuity / QA 🎙️ DubbingArtist 📦 Distribution
  • ScriptWriter breaks your prompt into a beat-by-beat storyboard with per-scene narration.
  • Director reviews it for coherence and picture-voice lock, then pauses for you. Approve, or send it back.
  • Character-Consistency locks a reference so a subject looks the same across scenes.
  • Renderer calls Sora-2 to render each scene (2 concurrent, so it’s honest about time).
  • Continuity / QA looks at the actual rendered frames with gpt-4o vision and flags drift.
  • DubbingArtist casts a voice and narrates every scene with Azure AI Speech neural voices.
  • Distribution stitches, thumbnails, and hands off to finishing.

Scenes stream into the UI the moment each one finishes — you watch the film assemble itself.

The studio you actually edit in

This isn’t a “generate and pray” box. The output lands in a real editor: a proper transport (play / pause / scrub with time), a scene timeline with a playhead, a voice/waveform lane, and per-scene recut — reorder, cut, trim, re-voice (including Microsoft’s newest MAI-Voice-2 neural voices), or regenerate a single scene from an edited prompt while keeping the rest.

The Video Gen Studio editor: video viewer with transport, scene timeline with playhead, voice lane, and scene inspector
The recut studio — modeled on a real NLE. Play/pause/scrub, scene segments, and a per-scene inspector.

Nine looks — or bring your own

Style is a drop-in profile, so the same story can be a photoreal film, a cel-shaded anime, a claymation short, a neon cyberpunk piece, a watercolour storybook, or a black-and-white noir. Nine curated styles ship in the box, each with a few creative controls (lens, film stock, light, camera move…) that get injected straight into the render prompt.

A spectrum of visual styles: cinematic, anime, claymation, cyberpunk, watercolour storybook, and film noir
One story, many looks — cinematic · anime · claymation · cyberpunk · watercolour · noir.
The style gallery in the create modal, with adapter badges and per-style creative controls
Pick a look from the gallery — each shows whether it renders as video (Sora) or frames (gpt-image-2), plus its own controls.

Bring Your Own Style

Have a look you love? Upload any short video and the studio mints a brand-new style from it. A Video Analyser samples frames, gpt-4o vision extracts a transferable StyleDescriptor (palette, lighting, texture, motion — never the people or logos in the clip), a Style Researcher writes the master look prompt and its controls, and it’s compiled into a durable, reusable style tagged “yours.” It captures the look, not the copyrighted content — and flags any IP it spots.

A custom style minted from an uploaded video, shown in the gallery with auto-generated controls
Bring Your Own Style — a look minted from an uploaded clip in ~30 seconds, with auto-generated controls.

Finish like a brand, not a demo

The finishing pass is pure, deterministic ffmpeg — no image quota, seconds not minutes — so branding is free and repeatable:

💬

Rolling captions

Two-line cues timed to each scene, burned in, plus downloadable .srt/.vtt.

🎵

Music bed

Upload a track; it's side-chain ducked under the narration and normalized to −14 LUFS.

Brand bumpers

Auto-generated intro ident + outro/credits card (with a director credit), crossfaded on.

🖼️

Logo watermark

Your logo, any corner, with opacity and optional white key-out.

📐

Aspect exports

Subject-safe 9:16 and 1:1 reframes for Shorts / Reels / TikTok.

💾

Drafts

Save a setup, come back, and generate later — nothing is thrown away.

The Finish and Brand panel with watermark, captions, music bed and intro/outro toggles
Finish & Brand — straightforward defaults, fine-grained controls behind "advanced."

It respects trademarks

Because “make a video with <famous character>” is a real temptation, an IP / trademark guard agent screens every prompt and storyboard before rendering. It surfaces the risk right at the human gate — with the specific items it found, a recommendation (allow / abstract / refuse), and a ready-made generic rewrite — and leaves the final call to you.

The IP/trademark guard flagging protected characters and brands at the director gate
The IP guard at the gate — it flags protected characters, brands and public figures and suggests a safe rewrite.

Know the cost before you hit “go”

Generative video isn’t free, and the real bottleneck (Sora throughput, gpt-image-2’s 2-images-per-minute limit) is invisible until it bites. So the studio shows an honest ETA band and rough cost up front, with the bottleneck named — right in the render screen and in the Advanced tab.

The cost and quota card showing an ETA band, rough cost, and the render bottleneck
Cost & Quota — a rough estimate for planning, with the actual bottleneck called out.

The honest build journey

This whole thing was built on Azure, with GitHub Copilot CLI in autopilot driving the code, deploys, and tests. The interesting part isn’t that it worked — it’s the three bugs that only surfaced because of how it was tested:

  • The studio was silently blank — and every API test passed. A React hooks-order slip (a useState after an early return) crashed the UI on opening any project. TypeScript builds and API checks were all green; it only showed up when a headless Playwright pass screenshotted the deployed app. Lesson: for UI, a real screenshot is worth a thousand green checks.
  • Sora refused to render a person. Photoreal styles were using a generated character sheet as an image reference, and Sora’s moderation blocks reference images containing identifiable people (people-in-user-uploads). The fix: fall back to text-to-video for human/photoreal looks.
  • Captions “hung” for minutes on a fresh deploy. Not a hang — the first libass subtitle burn was cold-scanning the container’s giant Noto font set. Baking fc-cache into the image at build time cut a >3-minute first render to ~30 seconds.

None of these show up in a happy-path demo. All three were caught by testing the deployed thing the way a user would.

Under the hood

🧠

Agents

Microsoft Agent Framework orchestrates ScriptWriter, Director, QA, Dubbing & Distribution with a human gate.

🎥

Sora-2

Text-to-video scene rendering, 2 concurrent, with per-scene streaming into the UI.

🎨

gpt-image-2

Style keyframes, thumbnails, and the art on this very page.

🗣️

Azure AI Speech

Neural narration, including the newest MAI-Voice-2 voices, ducked under music.

👁️

gpt-4o vision

Continuity QA on real frames, and the Bring-Your-Own-Style analyser.

☁️

Azure Container Apps

VNet-integrated, keyless (Managed Identity) to Cosmos + Blob, deployed with azd.

Finishing (captions, music ducking, bumpers, watermark, aspect reframes) is all deterministic ffmpeg — which keeps branding free of any model quota and perfectly repeatable.

Why this is AI4Good

A film crew, a voice-over artist, a colourist, an editor, and a motion-graphics designer used to be the price of entry for a good explainer or story film. That priced out most teachers, tiny non-profits, heritage projects, and solo creators.

Video Gen Studio puts that whole crew behind one prompt — with the guardrails (a human approval gate, IP screening, honest cost estimates) that make it safe to hand to anyone. The same engine that renders a lighthouse at blue hour can render a folk tale for a classroom, a health explainer in a local language, or a heritage story in a shadow-puppet style. That’s the point: good stories, told well, should not require a studio budget.


*Rough estimate for a ~30-second, 6-scene film — a planning aid, not billing. Trailer footage is real Sora-2 output from the studio; on-page art is gpt-image-2. Built and documented with GitHub Copilot CLI in autopilot. #AI4Good