PageSourceSearch

https://mstudio.ai/

html mstudio.ai collected 2026-10-05 12:16:38 UTC 212,296 bytes, 754 lines download raw bytes

1<!DOCTYPE html>
2
3<html lang="en" translate="no">
4
5<head>
5<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push(i)})
6(window,'AW-17986842622','google_tags_first_party');</script>
6<script async src="/ha5x/"></script>
6
7			
7<script>
8				window.dataLayer = window.dataLayer || [];
9				function gtag(){dataLayer.push(arguments);}
10				gtag('js', new Date());
11				gtag('set', 'developer_id.dY2E1Nz', true);
12				
13			</script>
13
14			
15    
15<script>
16        // `mstudio.ai.` (with its trailing dot) is a different site to the
17        // browser: its own cookies, so its own session. Cloudflare and Google's
18        // front end drop the dot from the Host header, so the server cannot
19        // see it; only the page can.
20        if (location.hostname.slice(-1) === '.') {
21            location.replace(location.protocol + '//' + location.hostname.replace(/\.+$/, '') + (location.port ? ':' + location.port : '') + location.pathname + location.search + location.hash);
22        }
23    </script>
23
24    
24<script>
25        window._AutofillCallbackHandler = window._AutofillCallbackHandler || function() {};
26        (function() {
27            document.documentElement.classList.add('js-enabled');
28            var theme = localStorage.getItem('theme');
29            if (theme === 'light') {
30                document.documentElement.classList.remove('dark');
31            } else {
32                document.documentElement.classList.add('dark');
33            }
34            // CLS guard: reserve space for the global announcement banner
35            // BEFORE first paint so React hydration doesn't shift the body
36            // down by ~48px. The banner component refines the value via
37            // ResizeObserver after hydration.
38            //
39            // Zero the reservation when the banner won't render:
40            //   1. user dismissed it (localStorage flag), OR
41            //   2. on a studio editor page (banner hides itself on /dashboard/projects/*
42            //      that aren't /settings — keep this in sync with
43            //      GlobalAnnouncementBanner.tsx).
44            try {
45                var __path = window.location.pathname;
46                var __isStudio = (__path.indexOf('/dashboard/projects/') === 0 && __path.indexOf('/settings') === -1) ||
47                                 __path.indexOf('/dashboard/video-generator') === 0 ||
48                                 __path.indexOf('/demo/') === 0 ||
49                                 __path.indexOf('/share/') === 0 ||
50                                 __path === '/experience';
51                var __dismissed = false;
52                var __dismissedAt = localStorage.getItem('mstudio:announcement:mcp-agent:dismissed_at');
53                if (__dismissedAt) {
54                    var __timeDiff = Date.now() - parseInt(__dismissedAt, 10);
55                    if (__timeDiff < 3 * 24 * 60 * 60 * 1000) {
56                        __dismissed = true;
57                    }
58                }
59                if (!__dismissed) {
60                    for (var i = 0; i < localStorage.length; i++) {
61                        var k = localStorage.key(i);
62                        if (k && k.indexOf('mstudio:announcement:') === 0 && k.indexOf('dismissed_at') !== -1) {
63                            var val = localStorage.getItem(k);
64                            if (val && (Date.now() - parseInt(val, 10) < 3 * 24 * 60 * 60 * 1000)) {
65                                __dismissed = true;
66                                break;
67                            }
68                        }
69                    }
70                }
71                if (__isStudio || __dismissed) {
72                    document.documentElement.style.setProperty('--global-announcement-height', '0px');
73                }
74            } catch (e) {}
75        })();
76    </script>
76
77    <style>
78        /* Default announcement-banner reservation, used for the first paint
79           until GlobalAnnouncementBanner measures the real element and
80           overwrites this. The inline script above zeroes it for users who
81           have dismissed the banner.
82
83           These two numbers must track the banner's own `min-h-10` /
84           `sm:min-h-12` plus its 1px bottom border. The mobile value said 80px
85           — left over from a three-row phone banner that was replaced by a
86           single compact row — so on phones the header was pinned 39px below
87           a 41px banner and the gap rendered as a black band. Breakpoint is
88           639.98px, not 640px, so it cannot overlap Tailwind's `sm` (min-width
89           640px) and leave both rules applying at exactly 640. */
90        :root { --global-announcement-height: 49px; }
91        @media (max-width: 639.98px) { :root { --global-announcement-height: 41px; } }
92    </style>
93    <meta charset="UTF-8">
94    <meta name="viewport" content="width=device-width, initial-scale=1.0">
95    <meta http-equiv="X-UA-Compatible" content="IE=edge">
96    
97    <meta name="google" content="notranslate">
98
99    
100    
101    
102    <title data-rh="true">AI Storyboard Generator &amp; AI Movie Maker | M Studio</title>
103<meta data-rh="true" name="title" content="AI Storyboard Generator &amp; AI Movie Maker | M Studio"/><meta data-rh="true" name="description" content="Create AI storyboards, generate video from text, and produce complete films in one workspace. M Studio is the AI filmmaking platform for storyboarding, video generation, voice, sound design, and export."/><meta data-rh="true" name="keywords" content="AI storyboard generator, AI movie maker, storyboard software, script to storyboard, AI video editor, text to video, AI filmmaking software, storyboard template, AI script generator, AI video generator, previs software, animatic maker, AI animation maker, screenplay to storyboard, corporate video production"/><meta data-rh="true" name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"/><meta data-rh="true" property="og:type" content="website"/><meta data-rh="true" property="og:title" content="AI Storyboard Generator &amp; AI Movie Maker | M Studio"/><meta data-rh="true" property="og:description" content="Create AI storyboards, generate video from text, and produce complete films in one workspace. M Studio is the AI filmmaking platform for storyboarding, video generation, voice, sound design, and export."/><meta data-rh="true" property="og:image" content="https://assets.modelslab.ai/generations/a962e495-7dbf-4c22-9e27-30698116fdfe.webp"/><meta data-rh="true" property="og:url" content="https://mstudio.ai/"/><meta data-rh="true" property="og:site_name" content="M Studio"/><meta data-rh="true" name="twitter:card" content="summary_large_image"/><meta data-rh="true" name="twitter:title" content="AI Storyboard Generator &amp; AI Movie Maker | M Studio"/><meta data-rh="true" name="twitter:description" content="Create AI storyboards, generate video from text, and produce complete films in one workspace. M Studio is the AI filmmaking platform for storyboarding, video generation, voice, sound design, and export."/><meta data-rh="true" name="twitter:image" content="https://assets.modelslab.ai/generations/a962e495-7dbf-4c22-9e27-30698116fdfe.webp"/>
104<link data-rh="true" rel="canonical" href="https://mstudio.ai/"/>
105<script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://mstudio.ai/#webpage","name":"AI Storyboard Generator & AI Movie Maker | M Studio","description":"Turn scripts and ideas into storyboards, AI video, voice, and sound in one production workspace.","url":"https://mstudio.ai/","isPartOf":{"@id":"https://mstudio.ai/#website"},"about":{"@id":"https://mstudio.ai/#software"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["h1",".hero-description","meta[name='description']"]}},{"@type":"SoftwareApplication","@id":"https://mstudio.ai/#software","name":"M Studio","applicationCategory":"MultimediaApplication","operatingSystem":"Web","url":"https://mstudio.ai","description":"AI filmmaking software for storyboarding, script to storyboard workflows, AI video generation, voice, sound design, timeline editing, and export.","brand":{"@id":"https://mstudio.ai/#organization"},"inLanguage":"en","offers":{"@type":"Offer","price":"27.00","priceCurrency":"USD","availability":"https://schema.org/InStock","description":"Subscription plans start at $27/month","url":"https://mstudio.ai/pricing","priceSpecification":{"@type":"UnitPriceSpecification","price":"27.00","priceCurrency":"USD","unitCode":"MON","billingIncrement":1}},"featureList":["AI storyboard generator","Script to storyboard workflow","AI movie maker","AI video generation","Voice and narration","Sound design and SFX","Timeline editing","Export and review sharing"]},{"@type":"FAQPage","@id":"https://mstudio.ai/#faq","mainEntity":[{"@type":"Question","name":"Is there a free trial?","acceptedA
105nswer":{"@type":"Answer","text":"There's no free plan or free trial — every plan is paid, starting at $27/month. When a trial is offered, new accounts can start with a paid trial: you pay the small trial fee today and get the script, storyboard, scene audio and score. When the trial ends, the plan you chose starts automatically and your card is charged, unless you cancel first in Settings → Billing. The trial fee is not refunded. Your first plan payment comes with a 24-hour money-back window from the moment it is charged. You can also see what M Studio makes before you pay — the demo gallery has complete films made on M Studio, start to finish."}},{"@type":"Question","name":"Can I make a feature film or a full series?","acceptedAnswer":{"@type":"Answer","text":"Yes — there's no cap on film length. Films are built shot by shot, so how long a piece can run comes down to your plan's monthly budget rather than any limit in the editor, and episodic work is what the Studio plan is sized for. If you're planning something feature-length or a multi-episode series, talk to us before you subscribe and we'll tell you honestly what it will take on your script."}},{"@type":"Question","name":"How much film does each plan fit?","acceptedA
105nswer":{"@type":"Answer","text":"Every plan includes minutes of finished AI video each month: 20 minutes on Starter, 50 on Professional and 100 on Studio. Video costs 7.5¢ a second from a monthly budget of $90, $225 or $450, and the same budget can go on storyboard pictures instead, at 25¢ each. Re-takes count too, so the minutes are what you generate, not the length of your final cut. Voiceover, music and sound effects cost nothing."}},{"@type":"Question","name":"How does billing work?","acceptedAnswer":{"@type":"Answer","text":"One flat price each month, and your plan includes a monthly generation budget — $90 on Starter, $225 on Professional, $450 on Studio. Video draws 7.5¢ a second and storyboard pictures 25¢ each; voiceover, music and sound effects cost nothing. Settings → Billing shows the running balance at any time. Nothing extra is ever charged unless you choose to top up."}},{"@type":"Question","name":"Do re-takes and failed shots cost me?","acceptedAnswer":{"@type":"Answer","text":"Yes. Every generation that reaches the model is charged, including re-takes and shots you end up discarding — a generation that fails before it reaches the model is not. Most directors budget two to three attempts on the shots that matter, so read the plan budget as generations rather than as finished shots."}},{"@type":"Question","name":"Does making my storyboard use up my video budget?","acceptedA
105nswer":{"@type":"Answer","text":"Yes. Storyboard pictures and video clips are both charged per generation, and both draw from the same monthly budget. There is no separate free allowance for storyboard pictures."}},{"@type":"Question","name":"How long is a single shot?","acceptedAnswer":{"@type":"Answer","text":"Between 3 and 15 seconds, and 5 seconds is the default. You set the length per shot, and longer shots cost proportionally more because video is billed by the second."}},{"@type":"Question","name":"What happens if I run out mid-month?","acceptedAnswer":{"@type":"Answer","text":"Nothing stops automatically. You can buy a top-up to keep going, or wait until next month. No surprise charges — you're always in control, and you can cancel any time."}},{"@type":"Question","name":"Will the models refuse anything I try to shoot?","acceptedAnswer":{"@type":"Answer","text":"Sometimes. Every shot passes through the underlying model's own safety filter, and action — fights, stunts, weapons — is what trips it most often. Re-prompting the shot or switching the model for that one shot usually clears it. If action carries your film, test a fight beat in your first session so you know where the line sits before you build a slate around it. Our Acceptable Use terms set the outer boundary."}}
105,{"@type":"Question","name":"What counts as a film?","acceptedAnswer":{"@type":"Answer","text":"One film is one workspace for a film or storyboard. The number of films on your plan is how many you can keep at once, not how many you can make in a month — delete a film you've finished and the slot comes straight back."}},{"@type":"Question","name":"Can I use what I make commercially, on YouTube or for clients?","acceptedAnswer":{"@type":"Answer","text":"Yes. You own the content you generate and you can use it commercially, including monetized YouTube, client work and ads. See our Terms for the full wording."}},{"@type":"Question","name":"How do I cancel, get a refund, or delete my account?","acceptedAnswer":{"@type":"Answer","text":"You can cancel any time from Settings → Billing; you keep access until the end of the period you've paid for. A trial cancels at once, and the plan never starts. For a refund, your first plan payment is covered for 24 hours from the moment it is charged (a trial fee is not refunded) — email [email protected] or start a live chat and we'll sort it out. To delete your account and its data entirely, email the same address and we'll delete it. You don't need Discord for any of this."}},{"@type":"Question","name":"What currency are your prices in?","acceptedA
105nswer":{"@type":"Answer","text":"US dollars, everywhere on the site. Your bank converts at its own rate on the day, so the amount on your statement will differ from the sticker price if you're billed in another currency."}},{"@type":"Question","name":"Which languages does M Studio support?","acceptedAnswer":{"@type":"Answer","text":"Twelve: English, Chinese, Hindi, Spanish, French, Arabic, Portuguese, Russian, Japanese, German, Italian, and Korean. Pick the language when you create a film — the script, dialogue, and voice narration are generated in it — and dub any finished clip into another of them from AI VFX, with every speaker keeping their own voice."}}]}]}</script>
105    
106    
107    
108    <!-- Additional SEO Meta Tags (always included) -->
109    <meta name="application-name" content="M Studio">
110    <meta name="apple-mobile-web-app-title" content="M Studio">
111    <meta name="apple-mobile-web-app-capable" content="yes">
112    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
113    <meta name="mobile-web-app-capable" content="yes">
114    <meta name="format-detection" content="telephone=no">
115    <meta name="theme-color" content="#09090B">
116    <meta name="msapplication-TileColor" content="#09090B">
117
118    <!-- Favicon -->
119    <link rel="icon" type="image/png" href="https://mstudio.ai/favicon.png">
120    <link rel="shortcut icon" type="image/png" href="https://mstudio.ai/favicon.png">
121    <link rel="apple-touch-icon" href="https://mstudio.ai/favicon.png">
122    <link rel="manifest" href="https://mstudio.ai/site.webmanifest">
123
124    <!-- LLM Context Discovery -->
125    <link rel="llms-txt" href="/llms.txt" type="text/plain">
126
127    
128    
129    
130    
130<script>
131    (function(){
132        try {
133            if (document.cookie.indexOf('_ga=') !== -1) return;
134            var clientId = Math.floor(Math.random() * 2147483647) + '.' + Math.floor(Date.now() / 1000);
135            var domainAttr = '';
136            var host = location.hostname;
137            if (host && host.indexOf('.') !== -1 && !/^[0-9.]+$/.test(host)) {
138                domainAttr = '; domain=.' + host.split('.').slice(-2).join('.');
139            }
140            var secure = location.protocol === 'https:' ? '; Secure' : '';
141            document.cookie = '_ga=GA1.1.' + clientId + '; path=/; max-age=63072000; SameSite=Lax' + domainAttr + secure;
142        } catch (e) {}
143    })();
144    </script>
144
145
146        <!-- Google Tag Manager (deferred until idle to keep critical path clear) -->
147    
147<script>
148    (function(){
149        window.dataLayer = window.dataLayer || [];
150        window.dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
151        // Resolved once the container has actually executed (or failed to).
152        // The SPA waits on this before stripping ad params from the URL —
153        // GA4 reads campaign params (gclid/utm_*) off document.location when
154        // its page_view fires, so cleaning the URL first silently destroys
155        // session attribution. See cleanTrackingParamsFromUrl() in tracking.ts.
156        function markGtmReady(){
157            if (window.__gtmReady) return; window.__gtmReady = true;
158            try { window.dispatchEvent(new Event('mstudio:gtm-ready')); } catch (e) {}
159        }
160        window.__gtmReady = false;
161        function loadGtm(){
162            if (window.__gtmLoaded) return; window.__gtmLoaded = true;
163            var f = document.getElementsByTagName('script')[0];
164            var j = document.createElement('script');
165            j.async = true;
166            j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WGNNMVSG';
167            // onerror covers ad-blockers: resolve anyway so the SPA never
168            // holds the params on the URL indefinitely.
169            j.onload = markGtmReady;
170            j.onerror = markGtmReady;
171            f.parentNode.insertBefore(j, f);
172        }
173        // Defer until idle (or 2.5s fallback). Drop scroll/pointerdown
174        // triggers — they fire within the first 100ms on mobile and were
175        // pulling the GTM container (and the GA4 + tag scripts it injects)
176        // onto the critical path. keydown retained for desktop bounce capture.
177        var schedule = window.requestIdleCallback || function(cb){ return setTimeout(cb, 2500); };
178        if (document.readyState === 'complete') {
179            schedule(loadGtm);
180        } else {
181            window.addEventListener('load', function(){ schedule(loadGtm); }, { once: true });
182        }
183        window.addEventListener('keydown', function(){ schedule(loadGtm); }, { once: true, passive: true });
184    })();
185    </script>
185
186    <!-- End Google Tag Manager -->
187    
188            
189    
189<script>
190    (function(w, d, s, u) {
191        if (w.oaiq) return;
192        var q = function() {
193            q.q.push(arguments);
194        };
195        q.q = [];
196        w.oaiq = q;
197        var j = d.createElement(s);
198        j.async = true;
199        j.src = u;
200        var f = d.getElementsByTagName(s)[0];
201        f.parentNode.insertBefore(j, f);
202    })(window, document, 'script', 'https://bzrcdn.openai.com/sdk/oaiq.min.js');
203
204    (function() {
205        try {
206            var params = new URLSearchParams(window.location.search);
207            var oppref = params.get('oppref') || params.get('__oppref');
208            if (oppref) {
209                var maxAge = 60 * 60 * 24 * 30;
210                document.cookie = '__oppref=' + encodeURIComponent(oppref.slice(0, 255)) + '; Max-Age=' + maxAge + '; Path=/; SameSite=Lax; Secure';
211            }
212        } catch (e) {}
213    })();
214
215    oaiq('init', {
216        pixelId: "Ep2VexxSm7VqQq3DuSM5bd",
217        debug: false,
218    });
219
220    (function() {
221        var pageId = window.location.pathname || '/';
222        window.__openAiAdsTrackedPageViews = window.__openAiAdsTrackedPageViews || {};
223        if (window.__openAiAdsTrackedPageViews[pageId]) {
224            return;
225        }
226
227        window.__openAiAdsTrackedPageViews[pageId] = true;
228        oaiq('measure', 'page_viewed', {
229            type: 'contents',
230            contents: [{
231                id: pageId,
232                name: document.title || pageId,
233                content_type: 'page',
234            }],
235        });
236    })();
237    </script>
237
238        
239
240    
241            
241<script>
242    (function() {
243        var META_PIXEL_ID = "1751975056211645";
244
245        // Stub fbq + queue (Meta's standard async loader). All fbq() calls
246        // before fbevents.js loads are queued and replayed once it arrives.
247        !function(f,b,e,v,n,t,s){
248            if(f.fbq)return;n=f.fbq=function(){
249                n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments)
250            };
251            if(!f._fbq)f._fbq=n;
252            n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];
253        }(window, document);
254
255        var advancedMatching = {};
256        
257        // Queue init + PageView before fbevents.js loads so they replay in
258        // order with the right advanced-matching payload.
259        fbq('init', META_PIXEL_ID, advancedMatching);
260        fbq('track', 'PageView');
261
262        // Load the SDK shortly after DOMContentLoaded. Conversion calls are
263        // queued by the stub, but fast signups need fbevents.js to set _fbp /
264        // _fbc cookies before the registration payload is built.
265        function loadFbevents() {
266            if (window.__fbeventsLoaded) return; window.__fbeventsLoaded = true;
267            var t = document.createElement('script');
268            t.async = true;
269            t.src = 'https://connect.facebook.net/en_US/fbevents.js';
270            var s = document.getElementsByTagName('script')[0];
271            s.parentNode.insertBefore(t, s);
272        }
273
274        function scheduleFbeventsLoad() {
275            setTimeout(loadFbevents, 500);
276        }
277
278        if (document.readyState === 'loading') {
279            document.addEventListener('DOMContentLoaded', scheduleFbeventsLoad, { once: true });
280        } else {
281            scheduleFbeventsLoad();
282        }
283
284        // Fallback for unusual lifecycle timing, plus user-intent shortcuts.
285        // Most paid-social / in-app traffic is mobile, which rarely fires
286        // keydown — also load on first touch/pointer so _fbp/_fbc are set
287        // before a fast signup builds its registration payload.
288        setTimeout(loadFbevents, 1500);
289        ['keydown', 'pointerdown', 'touchstart'].forEach(function (evt) {
290            window.addEventListener(evt, loadFbevents, { once: true, passive: true });
291        });
292    })();
293    </script>
293
294    <noscript>
295        <img height="1" width="1" style="display:none"
296            src="https://www.facebook.com/tr?id=1751975056211645&ev=PageView&noscript=1" alt="" />
297    </noscript>
298        
299
300    
301    
301<script type="application/ld+json">
302    {
303        "@context": "https://schema.org",
304        "@graph": [
305            {
306                "@type": "Organization",
307                "@id": "https://mstudio.ai/#organization",
308                "name": "M Studio",
309                "url": "https://mstudio.ai",
310                "logo": {
311                    "@type": "ImageObject",
312                    "url": "https://mstudio.ai/images/og-image.png",
313                    "width": 1200,
314                    "height": 630
315                },
316                "description": "AI-powered filmmaking and video production platform for creators and production teams",
317                "foundingDate": "2026-06",
318                "founder": {
319                    "@type": "Person",
320                    "@id": "https://mstudio.ai/about#founder",
321                    "name": "Adhik Joshi",
322                    "jobTitle": "Founder",
323                    "sameAs": [
324                        "https://www.linkedin.com/in/adhikjoshi/",
325                        "https://x.com/adhik_joshi",
326                        "https://github.com/adhikjoshi"
327                    ]
328                },
329                "parentOrganization": {
330                    "@type": "Organization",
331                    "name": "ModelsLab",
332                    "url": "https://modelslab.com"
333                },
334                "sameAs": [
335                    "https://twitter.com/M_Studio_AI",
336                    "https://discord.gg/4NPUExFwDa",
337                    "https://www.instagram.com/mstudioai",
338                    "https://www.facebook.com/mstudioai",
339                    "https://www.reddit.com/r/mstudioai",
340                    "https://www.youtube.com/@mstudioai",
341                    "https://www.linkedin.com/company/mstudioai",
342                    "https://github.com/ModelsLab"
343                ],
344                "contactPoint": {
345                    "@type": "ContactPoint",
346                    "contactType": "customer support",
347                    "email": "[email protected]",
348                    "url": "https://mstudio.ai/support"
349                }
350            },
351            {
352                "@type": "WebSite",
353                "@id": "https://mstudio.ai/#website",
354                "name": "M Studio",
355                "url": "https://mstudio.ai",
356                "description": "AI storyboard generator and video production platform for filmmakers, agencies, and creators",
357                "publisher": {
358                    "@id": "https://mstudio.ai/#organization"
359                }
360            }
361        ]
362    }
363    </script>
363
364
365        <!-- Microsoft Clarity Analytics (deferred until idle) -->
366    
366<script type="text/javascript">
367        (function(){
368            function loadClarity(){
369                if (window.__clarityLoaded) return; window.__clarityLoaded = true;
370                (function(c,l,a,r,i,t,y){
371                    c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
372                    t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
373                    y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
374                })(window, document, "clarity", "script", "v2unge6jcd");
375            }
376            var schedule = window.requestIdleCallback || function(cb){ return setTimeout(cb, 3000); };
377            if (document.readyState === 'complete') {
378                schedule(loadClarity);
379            } else {
380                window.addEventListener('load', function(){ schedule(loadClarity); }, { once: true });
381            }
382        })();
383    </script>
383
384    
385    <!-- The home hero's LCP is the product demo poster: fetch it with the HTML,
386         before the CSS and the scripts are parsed. Home only — every other
387         hero's largest element is text or a still named in its own markup. -->
388        <link rel="preload" as="image" href="/videos/home/product-demo-poster.jpg" imagesrcset="/videos/home/product-demo-poster-960.webp 960w, /videos/home/product-demo-poster-1920.webp 1920w" imagesizes="(max-width: 1200px) 100vw, 1152px" fetchpriority="high">
389    
390    <!-- Preconnect to external resources -->
391    <link rel="preconnect" href="https://fonts.googleapis.com">
392    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
393    <link rel="preconnect" href="https://assets.modelslab.ai" crossorigin>
394    <link rel="preconnect" href="https://images.modelslab.sh" crossorigin>
395    <link rel="dns-prefetch" href="https://fonts.googleapis.com">
396    <link rel="dns-prefetch" href="https://fonts.gstatic.com">
397    <link rel="dns-prefetch" href="https://assets.modelslab.ai">
398    <link rel="dns-prefetch" href="https://images.modelslab.sh">
399
400    <!-- Fonts (trimmed: dropped Courier Prime + unused weights to cut request weight).
401         display=optional kills font-swap CLS: the browser uses the system
402         fallback if the web font isn't already in the http cache after
403         ~100ms, and won't swap mid-paint. Trade-off: first-visit slow-network
404         users render with the fallback for the whole session — acceptable
405         because Inter / Plus Jakarta Sans / Instrument Serif italic all
406         degrade to legible system-font equivalents. -->
407    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400&display=optional">
408    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400&display=optional" rel="stylesheet" media="print" onload="this.media='all'">
409    <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400&display=optional" rel="stylesheet"></noscript>
410
411        <link rel="preload" as="style" href="https://mstudio.ai/build/assets/app.BpxBHA-A.css" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/app.CGHjAJjT.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/entry-client.DX3aUoe5.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/inertia.BE4YqsTM.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/http.DWpeO7Ui.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/utils.CgzVjNgC.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/icons.ChOq_Y4q.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/react-core.CAMe6Z4j.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/state.L8kQliOB.js" crossorigin="anonymous" /><link rel="modulepreload" as="script" href="https://mstudio.ai/build/assets/rolldown-runtime.C1f3BsDW.js" crossorigin="anonymous" /><link rel="stylesheet" href="https://mstudio.ai/build/assets/app.BpxBHA-A.css" data-navigate-track="reload" crossorigin="anonymous" />
411<script type="module" src="https://mstudio.ai/build/assets/app.CGHjAJjT.js" data-navigate-track="reload" crossorigin="anonymous"></script>
411<script type="module" src="https://mstudio.ai/build/assets/entry-client.DX3aUoe5.js" data-navigate-track="reload" crossorigin="anonymous"></script>
411
412    <!-- Tawk.to Live Chat Widget — homepage, /pricing and /support only.
413         /pricing added 2026-08-02: it is the #2 page by sessions and the #1
414         dead-click page (Clarity) — visitors sit there with pre-sale questions
415         and had no way to ask them. Keep this list in sync with
416         isTawkAllowedPage() below. -->
417                
417<script type="text/javascript">
418            var Tawk_API = Tawk_API || {};
419            var Tawk_LoadStart = new Date();
420
421            function isTawkAllowedPage() {
422                var path = window.location.pathname;
423                return path === '/' || path === '/pricing' || path === '/support';
424            }
425
426            // No auto-open. The launcher stays; the chat only opens when the
427            // visitor clicks it. Greeting pop-ups and triggers are set in the
428            // Tawk dashboard, so a trigger that opens the window on its own is
429            // closed again here: a real click moves focus into Tawk's iframe,
430            // an automatic open does not. Only the first automatic open is
431            // closed, so a misread can never lock a visitor out of the chat.
432            // A chat already in progress is never closed.
433            // A page button that opens the chat ("Start a live chat") calls
434            // Tawk_API.maximize() from a click on the page itself, so focus is
435            // on that button, not the iframe: a gesture in the last moment
436            // counts as the visitor's own open too.
437            var tawkAutoOpenClosed = false;
438            var tawkLastGestureAt = 0;
439            ['pointerdown', 'keydown'].forEach(function (type) {
440                document.addEventListener(type, function () { tawkLastGestureAt = Date.now(); }, true);
441            });
442            function tawkChatOngoing() {
443                try { return Boolean(Tawk_API.isChatOngoing && Tawk_API.isChatOngoing()); } catch (e) { return false; }
444            }
445            Tawk_API.onChatMaximized = function () {
446                var active = document.activeElement;
447                var openedByVisitor = (active && active.tagName === 'IFRAME') || Date.now() - tawkLastGestureAt < 2000;
448                if (!openedByVisitor && !tawkAutoOpenClosed && !tawkChatOngoing()) {
449                    tawkAutoOpenClosed = true;
450                    try { Tawk_API.minimize(); } catch (e) {}
451                }
452            };
453
454            Tawk_API.onLoad = function () {
455                if (!tawkChatOngoing()) {
456                    try { Tawk_API.minimize(); } catch (e) {}
457                }
458                
459                setTimeout(function() {
460                    if (isTawkAllowedPage()) {
461                        Tawk_API.showWidget();
462                    } else {
463                        Tawk_API.hideWidget();
464                    }
465                }, 100);
466            };
467
468            // Defer Tawk.to until idle / user interaction. The widget itself
469            // pulls ~200KB+ of JS plus a websocket — keep it off the critical
470            // path so first paint stays fast.
471            (function () {
472                // Not inside an in-app browser (Facebook, Instagram …): there
473                // the Open in browser bar is the visitor's next step, and the
474                // chat bubble and its greeting cover it on a phone. The chat
475                // loads once they are in their real browser. Same list as
476                // isRestrictedOAuthWebView() in resources/js/lib/browser.ts.
477                if (/Instagram|FBAN|FBAV|FB_IAB|Line\/|Twitter|TikTok|Snapchat|Pinterest|LinkedIn/i.test(navigator.userAgent)) {
478                    return;
479                }
480                var loaded = false;
481                function loadTawk() {
482                    if (loaded) return; loaded = true;
483                    var s1 = document.createElement("script"),
484                        s0 = document.getElementsByTagName("script")[0];
485                    s1.async = true;
486                    s1.src = 'https://embed.tawk.to/69e09feac0e3ae1c3248cf6c/1jman1bm5';
487                    s1.charset = 'UTF-8';
488                    s1.setAttribute('crossorigin', '*');
489                    s0.parentNode.insertBefore(s1, s0);
490                }
491                // Defer until idle (or 4s fallback). Tawk pulls 128KB script
492                // + 42KB emojione + websocket — mobile scroll/touch firing
493                // these on first paint is what was tanking LCP. Keep keydown
494                // for desktop intent, drop the touch triggers.
495                var schedule = window.requestIdleCallback || function(cb){ return setTimeout(cb, 4000); };
496                if (document.readyState === 'complete') {
497                    schedule(loadTawk);
498                } else {
499                    window.addEventListener('load', function(){ schedule(loadTawk); }, { once: true });
500                }
501                window.addEventListener('keydown', loadTawk, { once: true, passive: true });
502            })();
503
504            // Hide widget on SPA navigation away from allowed pages
505            try {
506                var lastPath = window.location.pathname;
507                setInterval(function() {
508                    try {
509                        var currentPath = window.location.pathname;
510                        if (currentPath !== lastPath) {
511                            lastPath = currentPath;
512                            if (typeof Tawk_API !== 'undefined' && Tawk_API && Tawk_API.hideWidget) {
513                                setTimeout(function() {
514                                    try {
515                                        if (isTawkAllowedPage()) {
516                                            Tawk_API.showWidget();
517                                        } else {
518                                            Tawk_API.hideWidget();
519                                        }
520                                    } catch (e) {}
521                                }, 100);
522                            }
523                        }
524                    } catch (e) {}
525                }, 300);
526            } catch (e) {}
527        </script>
527
528    </head>
529
530<body>
531
532        <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 532-533
532
533    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
533GTM-WGNNMVSG
vendor: 91 bytes, lines 533-535
533"
534    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
535    
535<!-- End Google Tag Manager (noscript) -->
536    
537    <!-- Skip to main content for accessibility -->
538    <a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 bg-primary text-primary-foreground px-4 py-2 rounded-lg z-50">
539        Skip to main content
540    </a>
541
542    
542<script>
543    // Guard against third-party widgets (tawk.to "max-widget", MaxWidget, etc.)
544    // corrupting history.state before Inertia reads it. These widgets append
545    // fragments like #max-widget to the URL and replace history.state with a
546    // primitive (number '1', true, null), which causes Inertia's
547    // `page.rememberedState ?? (page.rememberedState = {})` to throw
548    // "Cannot create property 'rememberedState' on number '1'".
549    //
550    // This must run BEFORE the @inertia directive below, so our popstate
551    // sanitizer is registered first and can repair state before Inertia's own
552    // popstate handler reads it.
553    //
554    // The directive is escaped as `@inertia` on purpose. Blade compiles the
555    // whole file as text and has no idea this is a JavaScript comment, so an
556    // unescaped mention here expands into a second Inertia root element —
557    // opening tag, serialised page payload and all — right in the middle of
558    // this script. The browser then reads the rest of the block as garbage and
559    // everything below dies with "SyntaxError: Invalid or unexpected token",
560    // including the sanitizer this comment is describing. It shipped that way
561    // on 2026-08-12 and threw on every page load until 08-13.
562    (function () {
563        function isValidPageState(state) {
564            // Inertia writes { page: {object}, scrollRegions?, documentScrollPosition? }.
565            // A valid page is a non-null object with at least a `component` string.
566            if (state === null || typeof state !== 'object') return false;
567            var page = state.page;
568            if (page === null || typeof page !== 'object') return false;
569            return typeof page.component === 'string' || typeof page.url === 'string';
570        }
571
572        function sanitizeState() {
573            try {
574                if (history.state === null || typeof history.state === 'undefined') {
575                    return;
576                }
577                if (!isValidPageState(history.state)) {
578                    // Replace with a bare object so Inertia falls back to the
579                    // data-page payload embedded in the DOM instead of reading
580                    // a corrupted primitive from history.state.
581                    history.replaceState({}, '');
582                }
583            } catch (e) {}
584        }
585
586        // Repair on first paint (covers hard load / reload with corrupted state).
587        sanitizeState();
588
589        // Repair on back/forward navigation BEFORE Inertia's popstate handler.
590        // Capture phase so we run before any bubble-phase listener Inertia adds.
591        window.addEventListener('popstate', sanitizeState, true);
592        // hashchange fires when tawk.to appends #max-widget — sanitize after.
593        window.addEventListener('hashchange', sanitizeState, true);
594    })();
595    </script>
595
596
597    <div id="app" data-page="{&quot;component&quot;:&quot;LandingPage&quot;,&quot;props&quot;:{&quot;errors&quot;:{},&quot;app&quot;:{&quot;url&quot;:&quot;https://mstudio.ai&quot;,&quot;env&quot;:&quot;production&quot;,&quot;starting_price_cents&quot;:2700},&quot;features&quot;:{&quot;animated_shots&quot;:false},&quot;auth&quot;:{&quot;user&quot;:null},&quot;flash&quot;:{&quot;success&quot;:null,&quot;error&quot;:null},&quot;ziggy&quot;:{&quot;url&quot;:&quot;https://mstudio.ai&quot;,&quot;port&quot;:null,&quot;defaults&quot;:[],&quot;routes&quot;:{&quot;cashier.payment&quot;:{&quot;uri&quot;:&quot;stripe/payment/{id}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;id&quot;]},&quot;cashier.webhook&quot;:{&quot;uri&quot;:&quot;stripe/webhook&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;mcp.oauth.protected-resource&quot;:{&quot;uri&quot;:&quot;.well-known/oauth-protected-resource&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;mcp.oauth.authorization-server&quot;:{&quot;uri&quot;:&quot;.well-known/oauth-authorization-server&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;mcp.oauth.protected-resource.nested&quot;:{&quot;uri&quot;:&quot;.well-known/oauth-protected-resource/{path}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;path&quot;:&quot;.*&quot;},&quot;parameters&quot;:[&quot;path&quot;]},&quot;mcp.oauth.authorization-server.nested&quot;:{&quot;uri&quot;:&quot;.well-known/oauth-authorization-server/{path}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;path&quot;:&quot;.*&quot;},&quot;parameters&quot;:[&quot;path&quot;]},&quot;passport.token&quot;:{&quot;uri&quot;:&quot;oauth/token&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passport.authorizations.authorize&quot;:{&quot;uri&quot;:&quot;oauth/authorize&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;passport.token.refresh&quot;:{&quot;uri&quot;:&quot;oauth/token/refresh&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passport.authorizations.approve&quot;:{&quot;uri&quot;:&quot;oauth/authorize&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passport.authorizations.deny&quot;:{&quot;uri&quot;:&quot;oauth/authorize&quot;,&quot;methods&quot;:[&quot;DELETE&quot;]},&quot;projects.index&quot;:{&quot;uri&quot;:&quot;api/v1/projects&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;projects.store&quot;:{&quot;uri&quot;:&quot;api/v1/projects&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;projects.show&quot;:{&quot;uri&quot;:&quot;api/v1/projects/{project}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.update&quot;:{&quot;uri&quot;:&quot;api/v1/projects/{project}&quot;,&quot;methods&quot;:[&quot;PUT&quot;,&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.destroy&quot;:{&quot;uri&quot;:&quot;api/v1/projects/{project}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;teams.index&quot;:{&quot;uri&quot;:&quot;api/v1/teams&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;teams.store&quot;:{&quot;uri&quot;:&quot;api/v1/teams&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;teams.show&quot;:{&quot;uri&quot;:&quot;api/v1/teams/{team}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;id&quot;}},&quot;teams.update&quot;:{&quot;uri&quot;:&quot;api/v1/teams/{team}&quot;,&quot;methods&quot;:[&quot;PUT&quot;,&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;id&quot;}},&quot;teams.destroy&quot;:{&quot;uri&quot;:&quot;api/v1/teams/{team}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;id&quot;}},&quot;api.subscription.confirm&quot;:{&quot;uri&quot;:&quot;api/subscription/confirm/{sessionId}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;sessionId&quot;]},&quot;webhooks.meta-leadgen.verify&quot;:{&quot;uri&quot;:&quot;api/webhooks/meta/leadgen&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;webhooks.meta-leadgen&quot;:{&quot;uri&quot;:&quot;api/webhooks/meta/leadgen&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;webhooks.twilio.sms&quot;:{&quot;uri&quot;:&quot;api/webhooks/twilio/sms&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;webhooks.elevenlabs.post-call&quot;:{&quot;uri&quot;:&quot;api/webhooks/elevenlabs/post-call&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;webhooks.calendly&quot;:{&quot;uri&quot;:&quot;api/webhooks/calendly&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;worker.animation.show&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.animation.project&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}/project&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.animation.assets&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}/assets&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.animation.audio&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}/audio&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.animation.assets.store&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}/assets&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.animation.heartbeat&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}/heartbeat&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.animation.result&quot;:{&quot;uri&quot;:&quot;api/worker/animation/jobs/{animationJob}/result&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;animationJob&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;animationJob&quot;]},&quot;worker.film.show&quot;:{&quot;uri&quot;:&quot;api/worker/film/exports/{filmExport}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;filmExport&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;filmExport&quot;]},&quot;worker.film.heartbeat&quot;:{&quot;uri&quot;:&quot;api/worker/film/exports/{filmExport}/heartbeat&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;filmExport&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;filmExport&quot;]},&quot;worker.film.uploads&quot;:{&quot;uri&quot;:&quot;api/worker/film/exports/{filmExport}/uploads&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;filmExport&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;filmExport&quot;]},&quot;worker.film.result&quot;:{&quot;uri&quot;:&quot;api/worker/film/exports/{filmExport}/result&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;filmExport&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;filmExport&quot;]},&quot;worker.film.assets.store&quot;:{&quot;uri&quot;:&quot;api/worker/film/exports/{filmExport}/assets&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;filmExport&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;filmExport&quot;]},&quot;worker.director.show&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;worker.director.events&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}/events&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;worker.director.transcript&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}/transcript&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;worker.director.media&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}/media&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;worker.director.assets.store&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}/assets&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;worker.director.transcript.store&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}/transcript&quot;,&quot;methods&quot;:[&quot;PUT&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;worker.director.result&quot;:{&quot;uri&quot;:&quot;api/worker/director/turns/{directorTurn}/result&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;wheres&quot;:{&quot;directorTurn&quot;:&quot;[0-9]+&quot;},&quot;parameters&quot;:[&quot;directorTurn&quot;]},&quot;webhooks.export&quot;:{&quot;uri&quot;:&quot;api/webhooks/export&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;blog.index&quot;:{&quot;uri&quot;:&quot;blog&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;blog.show&quot;:{&quot;uri&quot;:&quot;blog/{blog_category}/{blog_slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;blog_category&quot;,&quot;blog_slug&quot;]},&quot;blog.category&quot;:{&quot;uri&quot;:&quot;blog/{blog_category}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;blog_category&quot;]},&quot;landing&quot;:{&quot;uri&quot;:&quot;/&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;pricing&quot;:{&quot;uri&quot;:&quot;pricing&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;enterprise&quot;:{&quot;uri&quot;:&quot;enterprise&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;assistant&quot;:{&quot;uri&quot;:&quot;assistant&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;distribution&quot;:{&quot;uri&quot;:&quot;distribution&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;book-a-call&quot;:{&quot;uri&quot;:&quot;book-a-call&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;for-agencies&quot;:{&quot;uri&quot;:&quot;for-agencies&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;compare.capcut&quot;:{&quot;uri&quot;:&quot;compare/capcut&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;compare.runway&quot;:{&quot;uri&quot;:&quot;compare/runway&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;compare.pika&quot;:{&quot;uri&quot;:&quot;compare/pika&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;after-effects&quot;:{&quot;uri&quot;:&quot;after-effects&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;experience&quot;:{&quot;uri&quot;:&quot;experience&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;learn&quot;:{&quot;uri&quot;:&quot;learn&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;guide&quot;:{&quot;uri&quot;:&quot;learn/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;privacy&quot;:{&quot;uri&quot;:&quot;privacy&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;terms&quot;:{&quot;uri&quot;:&quot;terms&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;refund&quot;:{&quot;uri&quot;:&quot;refund&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;support&quot;:{&quot;uri&quot;:&quot;support&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;docs&quot;:{&quot;uri&quot;:&quot;docs&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;about&quot;:{&quot;uri&quot;:&quot;about&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;ai-director&quot;:{&quot;uri&quot;:&quot;ai-director&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;ai-vfx&quot;:{&quot;uri&quot;:&quot;ai-vfx&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;mcp-server&quot;:{&quot;uri&quot;:&quot;mcp-server&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;features&quot;:{&quot;uri&quot;:&quot;features&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;feature&quot;:{&quot;uri&quot;:&quot;features/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;compare&quot;:{&quot;uri&quot;:&quot;compare&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;compare.page&quot;:{&quot;uri&quot;:&quot;compare/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;vs&quot;:{&quot;uri&quot;:&quot;vs&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;vs.page&quot;:{&quot;uri&quot;:&quot;vs/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;insights&quot;:{&quot;uri&quot;:&quot;insights&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;insights.page&quot;:{&quot;uri&quot;:&quot;insights/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;glossary&quot;:{&quot;uri&quot;:&quot;glossary&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;glossary.page&quot;:{&quot;uri&quot;:&quot;glossary/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;google.redirect&quot;:{&quot;uri&quot;:&quot;auth/google/redirect&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;google.callback&quot;:{&quot;uri&quot;:&quot;auth/google/callback&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;login&quot;:{&quot;uri&quot;:&quot;login&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;register&quot;:{&quot;uri&quot;:&quot;register&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;password.request&quot;:{&quot;uri&quot;:&quot;forgot-password&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;password.reset&quot;:{&quot;uri&quot;:&quot;reset-password&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;verification.notice&quot;:{&quot;uri&quot;:&quot;verify-email&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;dashboard&quot;:{&quot;uri&quot;:&quot;dashboard&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;project.new&quot;:{&quot;uri&quot;:&quot;dashboard/new&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;project&quot;:{&quot;uri&quot;:&quot;dashboard/projects/{uuid}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;uuid&quot;]},&quot;project.simple&quot;:{&quot;uri&quot;:&quot;dashboard/projects/simplified/{uuid}&quot;,&qu
597ot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;uuid&quot;]},&quot;project.setup&quot;:{&quot;uri&quot;:&quot;dashboard/projects/{uuid}/setup&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;uuid&quot;]},&quot;project.script&quot;:{&quot;uri&quot;:&quot;dashboard/projects/{uuid}/script&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;uuid&quot;]},&quot;video-generator&quot;:{&quot;uri&quot;:&quot;dashboard/video-generator&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;teams&quot;:{&quot;uri&quot;:&quot;dashboard/teams&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;settings&quot;:{&quot;uri&quot;:&quot;dashboard/settings&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;payment.thank-you&quot;:{&quot;uri&quot;:&quot;dashboard/payment/thank-you&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;templates&quot;:{&quot;uri&quot;:&quot;templates&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;demo&quot;:{&quot;uri&quot;:&quot;demo&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;demo.viewer&quot;:{&quot;uri&quot;:&quot;demo/{projectId}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;projectId&quot;]},&quot;preview&quot;:{&quot;uri&quot;:&quot;preview/{projectId}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;projectId&quot;]},&quot;share&quot;:{&quot;uri&quot;:&quot;share/{uuid}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;uuid&quot;]},&quot;storage.local&quot;:{&quot;uri&quot;:&quot;storage/{path}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;path&quot;:&quot;.*&quot;},&quot;parameters&quot;:[&quot;path&quot;]},&quot;storage.local.upload&quot;:{&quot;uri&quot;:&quot;storage/{path}&quot;,&quot;methods&quot;:[&quot;PUT&quot;],&quot;wheres&quot;:{&quot;path&quot;:&quot;.*&quot;},&quot;parameters&quot;:[&quot;path&quot;]}},&quot;location&quot;:&quot;https://mstudio.ai&quot;},&quot;faqs&quot;:[{&quot;question&quot;:&quot;Is there a free trial?&quot;,&quot;answer&quot;:&quot;There&#x27;s no free plan or free trial — every plan is paid, starting at $27/month. When a trial is offered, new accounts can start with a paid trial: you pay the small trial fee today and get the script, storyboard, scene audio and score. When the trial ends, the plan you chose starts automatically and your card is charged, unless you cancel first in Settings → Billing. The trial fee is not refunded. Your first plan payment comes with a 24-hour money-back window from the moment it is charged. You can also see what M Studio makes before you pay — the demo gallery has complete films made on M Studio, start to finish.&quot;},{&quot;question&quot;:&quot;Can I make a feature film or a full series?&quot;,&quot;answer&quot;:&quot;Yes — there&#x27;s no cap on film length. Films are built shot by shot, so how long a piece can run comes down to your plan&#x27;s monthly budget rather than any limit in the editor, and episodic work is what the Studio plan is sized for. If you&#x27;re planning something feature-length or a multi-episode series, talk to us before you subscribe and we&#x27;ll tell you honestly what it will take on your script.&quot;},{&quot;question&quot;:&quot;How much film does each plan fit?&quot;,&quot;answer&quot;:&quot;Every plan includes minutes of finished AI video each month: 20 minutes on Starter, 50 on Professional and 100 on Studio. Video costs 7.5¢ a second from a monthly budget of $90, $225 or $450, and the same budget can go on storyboard pictures instead, at 25¢ each. Re-takes count too, so the minutes are what you generate, not the length of your final cut. Voiceover, music and sound effects cost nothing.&quot;},{&quot;question&quot;:&quot;How does billing work?&quot;,&quot;answer&quot;:&quot;One flat price each month, and your plan includes a monthly generation budget — $90 on Starter, $225 on Professional, $450 on Studio. Video draws 7.5¢ a second and storyboard pictures 25¢ each; voiceover, music and sound effects cost nothing. Settings → Billing shows the running balance at any time. Nothing extra is ever charged unless you choose to top up.&quot;},{&quot;question&quot;:&quot;Do re-takes and failed shots cost me?&quot;,&quot;answer&quot;:&quot;Yes. Every generation that reaches the model is charged, including re-takes and shots you end up discarding — a generation that fails before it reaches the model is not. Most directors budget two to three attempts on the shots that matter, so read the plan budget as generations rather than as finished shots.&quot;},{&quot;question&quot;:&quot;Does making my storyboard use up my video budget?&quot;,&quot;answer&quot;:&quot;Yes. Storyboard pictures and video clips are both charged per generation, and both draw from the same monthly budget. There is no separate free allowance for storyboard pictures.&quot;},{&quot;question&quot;:&quot;How long is a single shot?&quot;,&quot;answer&quot;:&quot;
597Between 3 and 15 seconds, and 5 seconds is the default. You set the length per shot, and longer shots cost proportionally more because video is billed by the second.&quot;},{&quot;question&quot;:&quot;What happens if I run out mid-month?&quot;,&quot;answer&quot;:&quot;Nothing stops automatically. You can buy a top-up to keep going, or wait until next month. No surprise charges — you&#x27;re always in control, and you can cancel any time.&quot;},{&quot;question&quot;:&quot;Will the models refuse anything I try to shoot?&quot;,&quot;answer&quot;:&quot;Sometimes. Every shot passes through the underlying model&#x27;s own safety filter, and action — fights, stunts, weapons — is what trips it most often. Re-prompting the shot or switching the model for that one shot usually clears it. If action carries your film, test a fight beat in your first session so you know where the line sits before you build a slate around it. Our Acceptable Use terms set the outer boundary.&quot;},{&quot;question&quot;:&quot;What counts as a film?&quot;,&quot;answer&quot;:&quot;One film is one workspace for a film or storyboard. The number of films on your plan is how many you can keep at once, not how many you can make in a month — delete a film you&#x27;ve finished and the slot comes straight back.&quot;},{&quot;question&quot;:&quot;Can I use what I make commercially, on YouTube or for clients?&quot;,&quot;answer&quot;:&quot;Yes. You own the content you generate and you can use it commercially, including monetized YouTube, client work and ads. See our Terms for the full wording.&quot;},{&quot;question&quot;:&quot;How do I cancel, get a refund, or delete my account?&quot;,&quot;answer&quot;:&quot;You can cancel any time from Settings → Billing; you keep access until the end of the period you&#x27;ve paid for. A trial cancels at once, and the plan never starts. For a refund, your first plan payment is covered for 24 hours from the moment it is charged (a trial fee is not refunded) — email [email protected] or start a live chat and we&#x27;ll sort it out. To delete your account and its data entirely, email the same address and we&#x27;ll delete it. You don&#x27;t need Discord for any of this.&quot;},{&quot;question&quot;:&quot;What currency are your prices in?&quot;,&quot;answer&quot;:&quot;US dollars, everywhere on the site. Your bank converts at its own rate on the day, so the amount on your statement will differ from the sticker price if you&#x27;re billed in another currency.&quot;},{&quot;question&quot;:&quot;Which languages does M Studio support?&quot;,&quot;answer&quot;:&quot;Twelve: English, Chinese, Hindi, Spanish, French, Arabic, Portuguese, Russian, Japanese, German, Italian, and Korean. Pick the language when you create a film — the script, dialogue, and voice narration are generated in it — and dub any finished clip into another of them from AI VFX, with every speaker keeping their own voice.&quot;}]},&quot;url&quot;:&quot;/&quot;,&quot;version&quot;:&quot;f1243441a4b5fd21e02f67454c014aba&quot;,&quot;clearHistory&quot;:false,&quot;encryptHistory&quot;:false}"><div class="theme-marketing min-h-screen bg-background text-foreground font-sans"><header class="fixed z-50 w-full p-2 transition-[transform,background-color,border-color,backdrop-filter,box-shadow] duration-300 ease-out border-b border-transparent bg-gradient-to-b from-background via-background/50 to-transparent translate-y-0" style="top:var(--global-announcement-height, 0px)"><div class="mx-auto flex w-full max-w-screen-2xl items-center justify-between rounded-lg p-2"><div class="flex items-center justify-start md:flex-1"><a href="https://mstudio.ai"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 142 142" preserveAspectRatio="xMidYMid meet" fill="none" class="block sm:hidden h-7 sm:h-5"><path fill="#17171b" stroke="#d3b796" stroke-width="5" d="M77.65 2.508c9.812.045 19.51.302 27.514.952 4 .325 7.619.751 10.639 1.308 2.775.511 5.237 1.166 7.039 2.06l.351.18c6.506 3.52 11.734 10.233 13.966 17.215l.206.676.001.001c.443 1.525.772 3.843 1.033 6.59.267 2.8.477 6.22.64 10.04.326 7.
597646.463 16.99.461 26.403-.003 18.178-.526 36.831-1.249 44.029l-.071.66c-.389 3.414-1.132 6.784-2.779 10.04l-.34.65c-4.75 8.705-12.18 12.941-20.988 15.474l-.266.076-.278.017c-13.87.822-28.179.32-41.933.281l-2.743-.001c-11.571.026-24.353.872-36.293-.206l-1.153-.11c-4.169-.422-8.62-1.231-12.674-3.476-6.144-3.405-12.006-9.95-13.997-17.006l-.085-.32c-.423-1.659-.756-4.177-1.028-7.19-.295-3.274-.534-7.313-.714-11.842-.36-9.062-.49-20.162-.361-31.173.128-11.007.514-21.964 1.187-30.73.337-4.38.749-8.252 1.244-11.328.247-1.536.52-2.909.826-4.064.295-1.117.66-2.188 1.147-3.022h.001C12.037 10.006 19.6 5.734 28.761 3.46l.265-.065.274-.007c8.431-.214 28.724-.972 48.35-.881Z"></path><path fill="#d3b796" d="m35 39 16.326.01c6.517 7.69 13.307 16.499 19.684 24.415l19.627-24.421 16.355.015L107 103l-13.504-.041V58.916L71.01 86.222 48.513 58.907l-.01 44.082-13.494-.022z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 707 142" preserveAspectRatio="xMidYMid meet" fill="none" class="hidden sm:block h-7 sm:h-5"><path fill="#17171b" stroke="#d3b796" stroke-width="5" d="M77.65 2.508c9.812.045 19.51.302 27.514.952 4 .325 7.619.751 10.639 1.308 2.775.511 5.237 1.166 7.039 2.06l.351.18c6.506 3.52 11.734 10.233 13.966 17.215l.206.676.001.001c.443 1.525.772 3.843 1.033 6.59.267 2.8.477 6.22.64 10.04.326 7.646.463 16.99.461 26.403-.003 18.178-.526 36.831-1.249 44.029l-.071.66c-.389 3.414-1.132 6.784-2.779 10.04l-.34.65c-4.75 8.705-12.18 12.941-20.988 15.474l-.266.076-.278.017c-13.87.822-28.179.32-41.933.281l-2.743-.001c-11.571.026-24.353.872-36.293-.206l-1.153-.11c-4.169-.422-8.62-1.231-12.674-3.476-6.144-3.405-12.006-9.95-13.997-17.006l-.085-.32c-.423-1.659-.756-4.177-1.028-7.19-.295-3.274-.534-7.313-.714-11.842-.36-9.062-.49-20.162-.361-31.173.128-11.007.514-21.964 1.187-30.73.337-4.38.749-8.252 1.244-11.328.247-1.536.52-2.909.826-4.064.295-1.117.66-2.188 1.147-3.022h.001C12.037 10.006 19.6 5.734 28.761 3.46l.265-.065.274-.007c8.431-.214 28.724-.972 48.35-.881Z"></path><path fill="#d3b796" d="m35 39 16.326.01c6.517 7.69 13.307 16.499 19.684 24.415l19.627-24.421 16.355.015L107 103l-13.504-.041V58.916L71.01 86.222 48.513 58.907l-.01 44.082-13.494-.022z"></path><path fill="#fff" d="M228.367 51.992q-.547-5.116-4.609-7.969-4.023-2.85-10.469-2.851-4.531 0-7.773 1.367t-4.961 3.711-1.758 5.352q0 2.5 1.133 4.336 1.172 1.835 3.164 3.124a22.3 22.3 0 0 0 4.414 2.11 47 47 0 0 0 4.883 1.445l7.5 1.875a51.7 51.7 0 0 1 8.711 2.852q4.218 1.797 7.539 4.531a20.1 20.1 0 0 1 5.312 6.602q1.953 3.867 1.953 9.062 0 7.031-3.593 12.383-3.594 5.313-10.391 8.32-6.758 2.969-16.367 2.969-9.336 0-16.211-2.891-6.837-2.89-10.703-8.437-3.828-5.547-4.141-13.516h14.258q.313 4.18 2.578 6.953 2.266 2.775 5.898 4.14 3.672 1.368 8.204 1.368 4.726 0 8.281-1.406 3.594-1.446 5.625-3.984 2.031-2.58 2.07-6.016-.039-3.126-1.836-5.156-1.797-2.07-5.039-3.438-3.202-1.405-7.5-2.5l-9.101-2.344q-9.883-2.538-15.625-7.695-5.704-5.196-5.704-13.789 0-7.07 3.829-12.383 3.867-5.312 10.507-8.242 6.64-2.97 15.039-2.969 8.516 0 14.922 2.969 6.446 2.93 10.117 8.164 3.672 5.196 3.789 11.953zm46.444-9.844V30h63.828v12.148h-24.727V110h-14.375V42.148zM423.373 30h14.492v52.266q0 8.594-4.062 15.117-4.024 6.523-11.328 10.195-7.305 3.633-17.071 3.633-9.804 0-17.109-3.633-7.305-3.672-11.328-10.195-4.024-6.524-4.024-15.117V30h14.493v51.055q0 5 2.187 8.906 2.226 3.906 6.25 6.133 4.023 2.187 9.531 2.187t9.532-2.187q4.062-2.227 6.25-6.133t2.187-8.906zm79.354 80h-27.11V30h27.656q11.914 0 20.469 4.805 8.594 4.766 13.203 13.71 4.61 8.946 4.61 21.407 0 12.5-4.649 21.484-4.61 8.985-13.32 13.789Q514.915 110 502.727 110m-12.618-12.54h11.914q8.36 0 13.946-3.046 5.586-3.086 8.398-9.18 2.813-6.132 2.813-15.312t-2.813-15.234q-2.812-6.095-8.32-9.102-5.469-3.047-13.594-3.047h-12.344zM591.816 30v80h-14.492V30zm109.178 40q0 12.93-4.844 22.148-4.805 9.18-13.125 14.063-8.28 4.883-18.789 4.883-10.507 0-18.828-4.883-8.281-4.922-13.125-14.102-4.804-9.218-4.804-22.109 0-12.93 4.804-22.11 4.844-9.218 13.125-14.1 8.32-4.884 18.828-4.884 10.509 0 18.789 4.883 8.32 4.883 13.125 14.102 4.844 9.18 4.844 22.109m-14.57 0q0-9.102-2.852-15.352-2.813-6.288-7.812-9.492-5-3.242-11.524-3.242t-11.523 3.242q-5 3.204-7.852 9.492-2.812 6.25-2.8
59712 15.352t2.812 15.39q2.852 6.25 7.852 9.493 5 3.203 11.523 3.203t11.524-3.203q5-3.243 7.812-9.492 2.852-6.29 2.852-15.391"></path></svg></div></a></div><nav aria-label="Main navigation" class="hidden shrink-0 items-center justify-center gap-7 rounded-lg px-6 py-2.5 xl:flex 2xl:gap-8 2xl:px-8"><a href="https://mstudio.ai/ai-vfx" class="group/flagship relative inline-flex items-center gap-1.5 whitespace-nowrap text-sm font-medium text-muted-foreground transition-colors hover:text-foreground rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50">AI VFX<span aria-hidden="true" class="flagship-underline pointer-events-none absolute -bottom-1 left-0 h-px w-full bg-primary flagship-underline-first" style="animation-delay:0s"></span></a><a href="https://mstudio.ai/ai-director" class="group/flagship relative inline-flex items-center gap-1.5 whitespace-nowrap text-sm font-medium text-muted-foreground transition-colors hover:text-foreground rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50">AI Director<span aria-hidden="true" class="flagship-underline pointer-events-none absolute -bottom-1 left-0 h-px w-full bg-primary" style="animation-delay:1.8s"></span></a><a href="https://mstudio.ai/mcp-server" class="group/flagship relative inline-flex items-center gap-1.5 whitespace-nowrap text-sm font-medium text-muted-foreground transition-colors hover:text-foreground rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50">AI Agent<span aria-hidden="true" class="flagship-underline pointer-events-none absolute -bottom-1 left-0 h-px w-full bg-primary" style="animation-delay:3.6s"></span></a><a href="https://mstudio.ai/distribution" class="group/flagship relative inline-flex items-center gap-1.5 whitespace-nowrap text-sm font-medium text-muted-foreground transition-colors hover:text-foreground rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50">Distribution<span aria-hidden="true" class="flagship-underline pointer-events-none absolute -bottom-1 left-0 h-px w-full bg-primary" style="animation-delay:5.4s"></span></a><a href="https://mstudio.ai/experience?from=header" class="group/flagship relative inline-flex items-center gap-1.5 whitespace-nowrap text-sm font-medium text-muted-foreground transition-colors hover:text-foreground rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50">Watch the film<span class="inline-flex h-5 shrink-0 items-center gap-1 whitespace-nowrap rounded-md border px-1.5 text-2xs font-medium [&amp;_svg]:size-3 [&amp;_svg]:shrink-0 border-primary/25 bg-primary/10 text-primary uppercase tracking-wide">New</span><span aria-hidden="true" class="flagship-underline pointer-events-none absolute -bottom-1 left-0 h-px w-full bg-primary" style="animation-delay:7.2s"></span></a><button type="button" class="flex items-center gap-1.5 rounded-md text-sm font-medium text-muted-foreground hover:text-foreground data-[state=open]:text-foreground outline-none transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50" id="radix-:R1p7il:" aria-haspopup="menu" aria-expanded="false" data-state="closed">Explore<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 transition-transform duration-150" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><a class="text-sm font-medium text-muted-foreground transition-colors hover:text-foreground rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50" href="https://mstudio.ai/pricing">Pricing</a></nav><div class="flex items-center justify-center gap-1.5 sm:gap-2 md:flex-1 md:justify-end xl:gap-3"><a class="relative shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active h-9 px-4 text-sm gap-2 rounded-lg hidden bg-background md:inline-flex" href="https://mstudio.ai/login">Log in</a><a class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 h-9 px-4 text-sm gap-2 rounded-lg" href="https://mstudio.ai/register">Sign up</a><button class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active rounded-lg size-8 xl:hidden" type="button" aria-label="Toggle menu" aria-expanded="false" aria-controls="public-header-mobile-navigation"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-4 w-4"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></div><div id="public-header-mobile-navigation" hidden="" class="mx-auto mt-2 w-full max-w-screen-xl xl:hidden"><div class="max-h-[70vh] overflow-y-auto overscroll-contain rounded-xl border border-border/60 bg-background/95 p-3 shadow-raised-lg"><div class="flex flex-col gap-1"><div class="flex flex-col"><a href="https://mstudio.ai/ai-vfx" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles h-4 w-4 shrink-0 text-primary" aria-hidden="true"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg>AI VFX</a><a href="https://mstudio.ai/ai-director" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clapperboard h-4 w-4 shrink-0 text-primary" aria-hidden="true"><path d="M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z"></path><path d="m6.2 5.3 3.1 3.9"></path><path d="m12.4 3.4 3.1 4"></path><path d="M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"></path></svg>AI Director</a><a href="https://mstudio.ai/mcp-server" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4 shrink-0 text-primary" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>AI Agent</a><a href="https://mstudio.ai/distribution" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio h-4 w-4 shrink-0 text-primary" aria-hidden="true"><path d="M4.9 19.1C1 15.2 1 8.8 4.9 4.9"></path><path d="M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5"></path><circle cx="12" cy="12" r="2"></circle><path d="M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5"></path><path d="M19.1 4.9C23 8.8 23 15.1 19.1 19"></path></svg>Distribution</a><a href="https://mstudio.ai/experience?from=header" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-play h-4 w-4 shrink-0 text-primary" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polygon points="10 8 16 12 10 16 10 8"></polygon></svg>Watch the film<span class="inline-flex h-5 shrink-0 items-center gap-1 whitespace-nowrap rounded-md border px-1.5 text-2xs font-medium [&amp;_svg]:size-3 [&amp;_svg]:shrink-0 border-primary/25 bg-primary/10 text-primary uppercase tracking-wide">New</span></a></div><div class="my-1 h-px bg-border"></div><details class="group/explore"><summary class="flex cursor-pointer list-none items-center justify-between rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover [&amp;::-webkit-details-marker]:hidden">Explore<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 transition-transform group-open/explore:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></summary><div class="flex flex-col"><span class="px-3 pb-1 pt-2 text-2xs font-semibold uppercase tracking-[0.14em] text-muted-foreground">Create</span><a href="https://mstudio.ai/templates" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-template h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><rect width="18" height="7" x="3" y="3" rx="1"></rect><rect width="9" height="7" x="3" y="14" rx="1"></rect><rect width="5" height="7" x="16" y="14" rx="1"></rect></svg>Templates</a><a href="https://mstudio.ai/features" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-grid h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><rect width="7" height="7" x="3" y="3" rx="1"></rect><rect width="7" height="7" x="14" y="3" rx="1"></rect><rect width="7" height="7" x="14" y="14" rx="1"></rect><rect width="7" height="7" x="3" y="14" rx="1"></rect></svg>Features</a><a href="/features/ai-storyboard-generator" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg>AI Storyboard Generator</a><a href="https://mstudio.ai/assistant" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>Assistant</a><a href="https://mstudio.ai/for-agencies" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building2 h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z"></path><path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2"></path><path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2"></path><path d="M10 6h4"></path><path d="M10 10h4"></path><path d="M10 14h4"></path><path d="M10 18h4"></path></svg>
597For agencies</a><a href="https://mstudio.ai/enterprise" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-briefcase h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg>Enterprise</a></div><div class="flex flex-col"><span class="px-3 pb-1 pt-2 text-2xs font-semibold uppercase tracking-[0.14em] text-muted-foreground">Learn and support</span><a href="https://mstudio.ai/demo" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-play h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polygon points="10 8 16 12 10 16 10 8"></polygon></svg>Demo</a><a href="https://mstudio.ai/learn" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg>Learn</a><a href="https://mstudio.ai/blog" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-newspaper h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M15 18h-5"></path><path d="M18 14h-8"></path><path d="M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2"></path><rect x="10" y="6" width="8" height="4" rx="1"></rect></svg>Blog</a><a href="https://mstudio.ai/compare" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-compare h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M13 6h3a2 2 0 0 1 2 2v7"></path><path d="M11 18H8a2 2 0 0 1-2-2V9"></path></svg>Compare</a><a href="https://mstudio.ai/docs" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>API docs</a><a href="https://mstudio.ai/support" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-surface-hover"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-life-buoy h-4 w-4 shrink-0 text-muted-foreground" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m4.93 4.93 4.24 4.24"></path><path d="m14.83 9.17 4.24-4.24"></path><path d="m14.83 14.83 4.24 4.24"></path><path d="m9.17 14.83-4.24 4.24"></path><circle cx="12" cy="12" r="4"></circle></svg>Support</a></div></details><a class="rounded-lg px-3 py-2 text-sm font-medium text-foreground hover:bg-surface-hover" href="https://mstudio.ai/pricing">Pricing</a><div class="my-1 h-px bg-border"></div><a class="flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-primary hover:bg-primary/10" href="https://www.facebook.com/groups/1105959302005051" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4"><path d="M13.5 21v-7.2h2.4l.4-2.9h-2.8V9.1c0-.8.3-1.4 1.4-1.4h1.5V5.1c-.3 0-1.2-.1-2.2-.1-2.2 0-3.7 1.3-3.7 3.8v2.1H8v2.9h2.5V21h3Z"></path></svg>Join the Facebook group</a><a class="rounded-lg px-3 py-2 text-sm font-medium text-primary hover:bg-primary/10" href="https://discord.gg/4NPUExFwDa" target="_blank" rel="noopener noreferrer">Join Discord</a><a class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active h-9 px-4 text-sm gap-2 rounded-lg" href="https://mstudio.ai/login">Log in</a></div></div></div></header><section class="relative overflow-hidden pt-20"><div class="relative z-10 flex flex-col items-center justify-center gap-4 px-3 pb-8 pt-10 sm:px-4 sm:pt-20 md:pb-12 md:pt-24"><div class="js-intro-prehide absolute -top-14 left-1/2 -z-10 h-40 w-[36rem] -translate-x-1/2 roun
597ded-full bg-primary/35 blur-[150px] md:h-44 md:w-[50rem] md:blur-[180px]"></div><a href="https://mstudio.ai/experience?from=home-hero" class="group inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 py-1 pl-1 pr-3 text-xs text-muted-foreground transition-colors duration-150 hover:border-primary/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 sm:text-sm"><span class="inline-flex h-6 w-6 items-center justify-center rounded-full bg-primary text-primary-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-3 w-3 fill-current" aria-hidden="true"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span><span class="font-medium text-foreground">Experience M Studio</span><span class="hidden sm:inline">· <!-- -->a 3-minute film</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5 transition-transform duration-150 group-hover:translate-x-0.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><h1 class="flex flex-col items-center justify-center gap-2 text-center text-4xl font-semibold leading-tight sm:gap-3 sm:text-5xl md:text-6xl lg:text-7xl"><div class="flex flex-wrap items-center justify-center gap-x-5 gap-y-2">The<!-- --> <span class="font-serif italic font-normal">AI filmmaking platform</span></div><div class="flex flex-wrap items-center justify-center gap-x-2 sm:gap-x-5 gap-y-2">built for<!-- --> <span class="font-serif italic font-normal">creators</span></div></h1><div class="max-w-[34rem] px-4 text-center text-sm text-muted-foreground sm:text-base">Type your idea — M Studio writes the script, shoots every scene, voices the cast and cuts the film. First cut in one session, no editing skills needed.</div><div class="flex flex-wrap items-center justify-center gap-2 px-3"><a href="https://mstudio.ai/pricing" class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 gap-2.5 rounded-lg sm:text-base sm:h-11 h-8 sm:px-6 px-3 text-sm">Start now</a><a href="https://mstudio.ai/demo" class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active gap-2.5 rounded-lg sm:text-base sm:h-11 h-8 sm:px-6 px-3 text-sm">Watch examples</a></div><p class="flex flex-wrap items-center justify-center gap-x-2 gap-y-1 text-xs text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check h-3.5 w-3.5 text-primary" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span>Plans from $27/mo</span><span aria-hidden="true">·</span><span>100% refund within 24h</span><span aria-hidden="true">·</span><span>Cancel anytime</span></p><div class="flex flex-wrap items-center justify-center gap-2 px-4"><a href="/pricing" class="inline-flex items-center gap-1.5 rounded-full border border-border/60 bg-secondary/10 px-3 py-1.5 text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground"><span class="font-medium text-foreground">Is it free?</span>From $27/mo, 24h refund</a><a href="/demo" class="inline-flex items-center gap-1.5 rounded-full border border-border/60 bg-secondary/10 px-3 py-1.5 text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground"><span class="font-medium text-foreground">How long?</span>First cut in one session</a><a href="/templates" class="inline-flex items-center gap-1.5 rounded-full border border-border/60 bg-secondary/10 px-3 py-1.5 text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground"><span class="font-medium text-foreground">Need skills?</span>No editing experience</a></div></div><div class="relative z-10 mx-auto max-w-screen-2xl px-4 pb-6 sm:px-6"><figure class="hero-panel-enter relative mx-auto w-full max-w-6xl overflow-hidden rounded-xl border border-border-strong bg-zinc-950 shadow-raised-lg"><div class="flex h-8 items-center gap-1.5 border-b border-border/60 bg-zinc-900/80 px-3" aria-hidden="true"><span class="h-2.5 w-2.5 rounded-full bg-zinc-700"></span><span class="h-2.5 w-2.5 rounded-full bg-zinc-700"></span><span class="h-2.5 w-2.5 rounded-full bg-zinc-700"></span><span class="ml-3 truncate font-mono text-[11px] text-muted-foreground">M Studio · Letters from the Sky</span></div><div class="relative aspect-video w-full"><img src="/videos/home/product-demo-poster.jpg" srcSet="/videos/home/product-demo-poster-960.webp 960w, /videos/home/product-demo-poster-1920.webp 1920w" sizes="(max-width: 1200px) 100v
597w, 1152px" alt="The M Studio storyboard of a short film, eight shots drawn from a one-line idea" width="1920" height="1080" loading="eager" decoding="async" fetchpriority="high" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-150 opacity-100"/></div></figure></div></section><section class="relative mx-auto max-w-screen-2xl overflow-hidden px-2 pb-20 pt-16 sm:pb-24 md:pb-28 lg:pb-36" aria-labelledby="multi-video-heading"><div aria-hidden="true" class="pointer-events-none absolute inset-0 overflow-hidden"><div class="absolute rounded-full blur-[140px] left-1/3 -top-16 h-60 w-60 bg-primary/16"></div><div class="absolute rounded-full blur-[140px] -left-12 bottom-[-3rem] h-52 w-52 bg-accent/20"></div></div><div class="relative z-10"><div class=""><h2 id="multi-video-heading" class="mb-4 px-2 text-center text-3xl font-semibold leading-tight sm:text-4xl md:text-5xl">One platform,<!-- --> <span class="font-serif font-normal italic text-primary">every tool you need</span></h2></div><div class=""><p class="mx-auto mb-8 max-w-[42rem] px-3 text-center text-sm text-muted-foreground sm:mb-10 sm:text-base">Script, characters, pictures, video, voice and the timeline that ties them together — every part of making a film lives in one place.<!-- --> <span class="text-foreground">Pick a tool to see it in action.</span></p></div><div class=""><div role="tablist" aria-label="Choose a tool to preview" class="mx-auto mb-8 flex w-full max-w-full gap-2 overflow-x-auto rounded-md bg-muted p-2 sm:mb-10 md:w-fit md:justify-center"><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-video-tab-editor" aria-selected="true" aria-controls="multi-video-panel-editor">Editor</button><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-transparent text-foreground border border-transparent hover:bg-surface-hover active:bg-surface-active h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-video-tab-ai-script" aria-selected="false" aria-controls="multi-video-panel-editor">Script</button><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-transparent text-foreground border border-transparent hover:bg-surface-hover active:bg-surface-active h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-video-tab-ai-character" aria-selected="false" aria-controls="multi-video-panel-editor">Characters</button><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-transparent text-foreground border border-transparent hover:bg-surface-hover active:bg-surface-active h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-v
597ideo-tab-ai-image" aria-selected="false" aria-controls="multi-video-panel-editor">Storyboard pictures</button><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-transparent text-foreground border border-transparent hover:bg-surface-hover active:bg-surface-active h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-video-tab-ai-video" aria-selected="false" aria-controls="multi-video-panel-editor">Video clips</button><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-transparent text-foreground border border-transparent hover:bg-surface-hover active:bg-surface-active h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-video-tab-voice-narration" aria-selected="false" aria-controls="multi-video-panel-editor">Voice and narration</button><button class="relative inline-flex items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-transparent text-foreground border border-transparent hover:bg-surface-hover active:bg-surface-active h-8 px-3 text-sm gap-1.5 rounded-lg shrink-0" type="button" role="tab" id="multi-video-tab-timeline-director" aria-selected="false" aria-controls="multi-video-panel-editor">Timeline and director</button></div></div><div class=""><div class="mx-auto w-full max-w-[60rem]"><div id="multi-video-panel-editor" role="tabpanel" aria-labelledby="multi-video-tab-editor" class="aspect-video w-full overflow-hidden rounded-lg border border-border bg-muted/40 shadow-raised-lg sm:rounded-xl"><button type="button" class="group relative block h-full w-full overflow-hidden " aria-label="Play video: Editor walkthrough"><img src="https://i.ytimg.com/vi_webp/lPNikstMeRQ/maxresdefault.webp" alt="Editor walkthrough" width="1280" height="720" loading="lazy" decoding="async" class="h-full w-full object-cover transition-transform duration-500 group-hover:scale-[1.03]"/><span class="absolute inset-0 bg-background/25 transition-colors group-hover:bg-background/10"></span><span class="absolute left-1/2 top-1/2 flex h-16 w-16 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg transition-transform duration-200 group-hover:scale-110"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play ml-0.5 h-6 w-6 fill-current"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span></button></div><p class="mx-auto mt-4 max-w-[42rem] px-3 text-center text-sm text-muted-foreground" aria-live="polite"><span class="font-medium text-foreground">Editor</span> <!-- -->— <!-- -->Lay your shots out on a real timeline and cut them together.</p></div></div></div></section><section class="relative" id="vertical-feature-list-section" style="height:500vh"><div class="sticky top-0 mx-auto h-screen w-full max-w-screen-2xl px-2 py-6 md:py-10 pt-24 lg:pt-48"><div class="absolute -top-16 -z-10 left-1/2 hidden h-44 w-[50rem] -translate-x-1/2 roun
597ded-[100%] bg-primary/40 blur-[180px] sm:block"></div><div class="absolute top-[56%] -left-[20rem] -translate-y-1/2 hidden lg:block"><div class="relative w-[40rem] h-[40rem]"><img src="/images/landingpage/lence.webp" class="h-full w-full [filter:hue-rotate(100deg)_saturate(1.1)]" alt="" loading="lazy" decoding="async" width="640" height="640"/><div class="absolute inset-0 -translate-x-7 -translate-y-9 pointer-events-none"><div class="absolute left-1/2 top-1/2" style="transform:rotate(0deg)  translateX(23.5rem)"><span class="block text-7xl -translate-x-1/2 -translate-y-1/2 font-serif text-primary transition-opacity duration-300 opacity-100">1</span></div><div class="absolute left-1/2 top-1/2" style="transform:rotate(72deg)  translateX(23.5rem)"><span class="block text-7xl -translate-x-1/2 -translate-y-1/2 font-serif text-primary transition-opacity duration-300 opacity-50">2</span></div><div class="absolute left-1/2 top-1/2" style="transform:rotate(144deg)  translateX(23.5rem)"><span class="block text-7xl -translate-x-1/2 -translate-y-1/2 font-serif text-primary transition-opacity duration-300 opacity-50">3</span></div><div class="absolute left-1/2 top-1/2" style="transform:rotate(216deg)  translateX(23.5rem)"><span class="block text-7xl -translate-x-1/2 -translate-y-1/2 font-serif text-primary transition-opacity duration-300 opacity-50">4</span></div><div class="absolute left-1/2 top-1/2" style="transform:rotate(288deg)  translateX(23.5rem)"><span class="block text-7xl -translate-x-1/2 -translate-y-1/2 font-serif text-primary transition-opacity duration-300 opacity-50">5</span></div></div></div></div><div class="relative h-[68vh] md:h-[70vh]"><div class="absolute inset-0 flex items-center justify-center lg:justify-end px-3 md:px-8"><article class="w-full max-w-3xl p-4 md:p-10"><h3 class="mb-7 text-3xl font-serif text-primary md:text-5xl lg:text-6xl">Product ads and agencies</h3><div class="relative mx-auto max-w-2xl overflow-hidden rounded-2xl border border-primary/20 bg-card/50"><button type="button" class="absolute right-3 top-3 z-10 inline-flex h-9 w-9 items-center justify-center rounded-full border border-border/60 bg-background/80 text-foreground transition-colors hover:bg-background outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50" aria-label="Pause video" aria-pressed="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pause h-4 w-4" aria-hidden="true"><rect x="14" y="4" width="4" height="16" rx="1"></rect><rect x="6" y="4" width="4" height="16" rx="1"></rect></svg></button><div class="relative h-[180px] w-full md:h-[240px]"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Product ads and agencies" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="none" class="transition-opacity duration-300 opacity-0 block h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><p class="mt-6 text-base leading-relaxed text-muted-foreground md:text-xl">Paste your brief. Get a campaign you can pitch — ad script, product shots from every angle and a 30-second cut with a 4K export. No creative agency required.</p></article></div><div class="absolute inset-0 flex items-center justify-center lg:justify-end px-3 md:px-8"><article class="w-full max-w-3xl p-4 md:p-10"><h3 class="mb-7 text-3xl font-serif text-primary md:text-5xl lg:text-6xl">Film pre-production</h3><div class="relative mx-auto max-w-2xl overflow-hidden rounded-2xl border border-primary/20 bg-card/50"><button type="button" class="absolute right-3 top-3 z-10 inline-flex h-9 w-9 items-center justify-center rounded-full border border-border/60 bg-background/80 text-foreground transition-colors hover:bg-background outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50" aria-label="Pause video" aria-pressed="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pause h-4 w-4" aria-hidden="true"><rect x="14" y="4" width="4" height="16" rx="1"></rect><rect x="6" y="4" width="4" height="16" rx="1"></rect></svg></button><div class="relative h-[180px] w-full md:h-[240px]"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Film pre-production" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="none" class="transition-opacity duration-300 opacity-0 block h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><p class="mt-6 text-base leading-relaxed text-muted-foreground md:text-xl">Upload your screenplay. Get storyboard pictures, blocking references and previs video clips for every scene. No VFX house, no six-figure previs budget.</p></article></div><div class="absolute inset-0 flex items-center justify-center lg:justify-end px-3 md:px-8"><article class="w-full max-w-3xl p-4 md:p-10"><h3 class="mb-7 text-3xl font-serif text-primary md:text-5xl lg:text-6xl">Social media creators</h3><div class="relative mx-auto max-w-2xl overflow-hidden rounded-2xl border border-primary/20 bg-card/50"><button type="button" class="absolute right-3 top-3 z-10 inline-flex h-9 w-9 items-center justify-center rounded-full border border-border/60 bg-background/80 text-foreground transition-colors hover:bg-background outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50" aria-label="Pause video" aria-pressed="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pause h-4 w-4" aria-hidden="true"><rect x="14" y="4" width="4" height="16" rx="1"></rect><rect x="6" y="4" width="4" height="16" rx="1"></rect></svg></button><div class="relative h-[180px] w-full md:h-[240px]"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Social media creators" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="none" class="transition-opacity duration-300 opacity-0 block h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><p class="mt-6 text-base leading-relaxed text-muted-foreground md:text-xl">Type your idea. M Studio writes the hook, draws the shots, speaks in your cloned voice, adds music and exports a Reel ready to post. First cut in one session.</p></article></div><div class="absolute inset-0 flex items-center justify-center lg:justify-end px-3 md:px-8"><article class="w-full max-w-3xl p-4 md:p-10"><h3 class="mb-7 text-3xl font-serif text-primary md:text-5xl lg:text-6xl">VFX and filmmakers</h3><div class="relative mx-auto max-w-2xl overflow-hidden rounded-2xl border border-primary/20 bg-card/50"><button type="button" class="absolute right-3 top-3 z-10 inline-flex h-9 w-9 items-center justify-center rounded-full border border-border/60 bg-background/80 text-foreground transition-colors hover:bg-background outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50" aria-label="Pause video" aria-pressed="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pause h-4 w-4" aria-hidden="true"><rect x="14" y="4" width="4" height="16" rx="1"></rect><rect x="6" y="4" width="4" height="16" rx="1"></rect></svg></button><div class="relative h-[180px] w-full md:h-[240px]"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="VFX and filmmakers" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="none" class="transition-opacity duration-300 opacity-0 block h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><p class="mt-6 text-base leading-relaxed text-muted-foreground md:text-xl">Describe your shot in plain words. Get a cinematic reference picture, then change the lens, light or angle and draw it again — as many times as the shot needs, with no art department.</p></article></div><div class="absolute inset-0 flex items-center justify-center lg:justify-end px-3 md:px-8"><article class="w-full max-w-3xl p-4 md:p-10"><h3 class="mb-7 text-3xl font-serif text-primary md:text-5xl lg:text-6xl">Anime and illustrated video</h3><div class="relative mx-auto max-w-2xl overflow-hidden rounded-2xl border border-primary/20 bg-card/50"><button type="button" class="absolute right-3 top-3 z-10 inline-flex h-9 w-9 items-center justify-center rounded-full border border-border/60 bg-background/80 text-foreground transition-colors hover:bg-background outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50" aria-label="Pause video" aria-pressed="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pause h-4 w-4" aria-hidden="true"><rect x="14" y="4" width="4" height="16" rx="1"></rect><rect x="6" y="4" width="4" height="16" rx="1"></rect></svg></button><div class="relative h-[180px] w-full md:h-[240px]"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Anime and illustrated video" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="none" class="transition-opacity duration-300 opacity-0 block h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><p class="mt-6 text-base leading-relaxed text-muted-foreground md:text-xl">Describe your world. M Studio keeps your characters the same in every shot, in any style — shonen, cyberpunk, dark fantasy — voices your cast in 12 languages and scores the episode.</p></article></div></div></div></section><section id="studio-reel" class="relative overflow-hidden py-16 sm:py-20 lg:py-24" aria-labelledby="studio-reel-heading"><div aria-hidden="true" class="pointer-events-none absolute inset-0 overflow-hidden opacity-50"><div class="absolute rounded-full blur-[140px] -right-16 top-1/3 h-64 w-64 bg-primary/14"></div><div class="absolute rounded-full blur-[140px] left-1/4 -bottom-14 h-48 w-48 bg-accent/22"></div></div><div class="relative z-10 mx-auto max-w-7xl px-4 sm:px-6 lg:px-8"><div class=""><div class="mx-auto mb-10 max-w-3xl text-center sm:mb-12"><p class="text-xs font-semibold uppercase tracking-[0.24em] text-primary/80">Showreel</p><h2 id="studio-reel-heading" class="mt-3 text-3xl font-semibold tracking-tight text-foreground sm:text-4xl md:text-5xl">Made in M Studio</h2><p class="mx-auto mt-4 max-w-2xl text-sm leading-relaxed text-muted-foreground sm:text-base">Video clips from films made in M Studio — each one started as a line of script and a storyboard picture.</p></div></div><div class="grid auto-rows-[150px] grid-cols-2 gap-3 sm:auto-rows-[190px] sm:gap-4 md:grid-cols-3 lg:auto-rows-[220px]"><div class="relative overflow-hidden rounded-2xl bg-card/60 col-span-2 md:row-span-2"><div class="absolute inset-0 h-full w-full"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><div class="relative overflow-hidden rounded-2xl bg-card/60"><div class="absolute inset-0 h-full w-full"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Imag
597e=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><div class="relative overflow-hidden rounded-2xl bg-card/60"><div class="absolute inset-0 h-full w-full"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><div class="relative overflow-hidden rounded-2xl bg-card/60"><div class="absolute inset-0 h-full w-full"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><div class="relative overflow-hidden rounded-2xl bg-card/60"><div class="absolute inset-0 h-full w-full"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div><div class="relative overflow-hidden rounded-2xl bg-card/60 hidden md:block"><div class="absolute inset-0 h-full w-full"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div></div></div><div class=""><div class="mt-10 flex justify-center"><a href="/demo" class="relative shrink-0 justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active h-9 px-4 text-sm rounded-lg inline-flex items-center gap-2">Watch examples<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-play h-4 w-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polygon points="10 8 16 12 10 16 10 8"></polygon></svg></a></div></div></div></section><section class="relative overflow-hidden py-16 sm:py-20 lg:py-24"><div aria-hidden="true" class="pointer-events-none absolute inset-0 overflow-hidden"><div class="absolute rounded-full blur-[140px] left-1/3 -top-16 h-60 w-60 bg-primary/16"></div><div class="absolute rounded-full blur-[140px] -left-12 bottom-[-3rem] h-52 w-52 bg-accent/20"></div></div><div class="relative z-10 mx-auto grid max-w-7xl gap-8 px-4 sm:px-6 lg:grid-cols-[minmax(260px,360px)_1fr] lg:items-center lg:gap-10 lg:px-8"><div><div class=""><p class="text-xs font-semibold uppercase tracking-[0.22em] text-primary/80">Guided tour</p><h2 class="mt-3 max-w-[14ch] text-2xl font-semibold tracking-tight text-foreground sm:text-4xl">See how a film comes together</h2></div><div class=""><ul class="mt-8 space-y-4"><li><button type="button" class="group flex w-full items-center gap-4 roun
597ded-xl px-4 py-3 text-left transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 bg-card/70"><span class="relative h-10 w-1 rounded-full bg-border/50"><span class="absolute bottom-0 left-0 w-full rounded-full bg-primary"></span></span><span class="inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border/50 bg-background/70"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg></span><span class="text-sm font-medium leading-tight sm:text-base">Storyboard pictures</span></button></li><li><button type="button" class="group flex w-full items-center gap-4 roun
597ded-xl px-4 py-3 text-left transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 hover:bg-card/40"><span class="relative h-10 w-1 rounded-full bg-border/50"><span class="absolute bottom-0 left-0 w-full rounded-full bg-primary"></span></span><span class="inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border/50 bg-background/70"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles h-4 w-4"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg></span><span class="text-sm font-medium leading-tight sm:text-base">Video clips</span></button></li><li><button type="button" class="group flex w-full items-center gap-4 roun
597ded-xl px-4 py-3 text-left transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 hover:bg-card/40"><span class="relative h-10 w-1 rounded-full bg-border/50"><span class="absolute bottom-0 left-0 w-full rounded-full bg-primary"></span></span><span class="inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border/50 bg-background/70"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gauge h-4 w-4"><path d="m12 14 4-4"></path><path d="M3.34 19a10 10 0 1 1 17.32 0"></path></svg></span><span class="text-sm font-medium leading-tight sm:text-base">Timeline</span></button></li></ul></div></div><div class=""><div class="relative h-[360px] overflow-hidden rounded-2xl sm:h-[420px] sm:rounded-3xl"><div class="relative h-full rounded-2xl"><div class="absolute inset-0"><button type="button" class="group relative block h-full w-full overflow-hidden h-full w-full rounded-xl sm:rounded-2xl" aria-label="Play video: Storyboard pictures walkthrough"><img src="https://i.ytimg.com/vi_webp/-HvMaAxU0Po/maxresdefault.webp" alt="Storyboard pictures walkthrough" width="1280" height="720" loading="lazy" decoding="async" class="h-full w-full object-cover transition-transform duration-500 group-hover:scale-[1.03]"/><span class="absolute inset-0 bg-background/25 transition-colors group-hover:bg-background/10"></span><span class="absolute left-1/2 top-1/2 flex h-16 w-16 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg transition-transform duration-200 group-hover:scale-110"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play ml-0.5 h-6 w-6 fill-current"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span></button></div><div class="absolute inset-0"></div><div class="absolute inset-0"></div></div></div></div></div></section><section id="how-it-works" class="py-24 sm:py-32 border-b border-border/50"><div class="max-w-6xl mx-auto px-4 sm:px-6"><div class=""><div class="text-center mb-16 sm:mb-20"><p class="mb-4 text-xs font-semibold uppercase tracking-[0.24em] text-primary/80">How it works</p><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold tracking-tight text-foreground mb-4">From script to screen in six steps</h2><p class="text-base sm:text-lg text-muted-foreground max-w-2xl mx-auto">M Studio builds a film shot by shot, and you direct every shot — this is the whole path, start to finish.</p></div></div><ol class="grid gap-8 sm:gap-10 sm:grid-cols-2 lg:grid-cols-3 list-none p-0"><li class="relative"><div class=""><div class="mb-5"><span class="text-4xl sm:text-5xl font-black text-primary/40">01</span></div><h3 class="text-lg font-semibold text-foreground mb-2">Start a film</h3><p class="text-sm text-muted-foreground leading-relaxed">Start from a one-line brief, or import a screenplay PDF and build straight from the pages you already wrote.</p></div><div aria-hidden="true" class="hidden lg:block absolute top-8 right-0 w-[calc(100%-3.5rem)] h-px bg-border"></div></li><li class="relative"><div class=""><div class="mb-5"><span class="text-4xl sm:text-5xl font-black text-primary/40">02</span></div><h3 class="text-lg font-semibold text-foreground mb-2">Add your script</h3><p class="text-sm text-muted-foreground leading-relaxed">Scenes, action and dialogue laid out shot by shot — editable line by line before anything renders.</p></div><div aria-hidden="true" class="hidden lg:block absolute top-8 right-0 w-[calc(100%-3.5rem)] h-px bg-border"></div></li><li class="relative"><div class=""><div class="mb-5"><span class="text-4xl sm:text-5xl font-black text-primary/40">03</span></div><h3 class="text-lg font-semibold text-foreground mb-2">Add your characters</h3><p class="text-sm text-muted-foreground leading-relaxed">Add each character once with a reference image so the same face carries across every shot in the film.</p></div></li><li class="relative"><div class=""><div class="mb-5"><span class="text-4xl sm:text-5xl font-black text-primary/40">04</span></div><h3 class="text-lg font-semibold text-foreground mb-2">Build the storyboard</h3><p class="text-sm text-muted-foreground leading-relaxed">Your script breaks into shots on a canvas. Reorder, reframe and re-prompt any shot until the board reads right.</p></div>
597<div aria-hidden="true" class="hidden lg:block absolute top-8 right-0 w-[calc(100%-3.5rem)] h-px bg-border"></div></li><li class="relative"><div class=""><div class="mb-5"><span class="text-4xl sm:text-5xl font-black text-primary/40">05</span></div><h3 class="text-lg font-semibold text-foreground mb-2">Make the video clips</h3><p class="text-sm text-muted-foreground leading-relaxed">Turn approved storyboard pictures into video clips one shot at a time, then layer voiceover, music and sound effects.</p></div><div aria-hidden="true" class="hidden lg:block absolute top-8 right-0 w-[calc(100%-3.5rem)] h-px bg-border"></div></li><li class="relative"><div class=""><div class="mb-5"><span class="text-4xl sm:text-5xl font-black text-primary/40">06</span></div><h3 class="text-lg font-semibold text-foreground mb-2">Export the cut</h3><p class="text-sm text-muted-foreground leading-relaxed">Take the finished cut out as an MP4, MOV or WebM, up to 4K, ready for the edit or the pitch.</p></div></li></ol><div class=""><p class="text-sm text-muted-foreground text-center max-w-2xl mx-auto mt-14 sm:mt-16">There is no length cap in the editor. Because films are made shot by shot, how long a film can run comes down to how many video clips your plan includes — not a limit in the tool.</p></div></div></section><section class="relative mx-auto max-w-screen-2xl overflow-hidden px-4 py-16 sm:px-6 sm:py-20 lg:py-28"><div class="absolute top-0 left-1/4 right-1/4 h-[1px] bg-gradient-to-r from-transparent via-border to-transparent"></div><div class="absolute bottom-0 left-1/4 right-1/4 h-[1px] bg-gradient-to-r from-transparent via-border to-transparent"></div><div class="relative z-10 mx-auto max-w-3xl text-center"><div class=""><p class="text-xs font-semibold uppercase tracking-[0.25em] text-primary/80">Why M Studio</p></div><div class="mt-4"><h2 class="text-3xl font-bold tracking-tight text-foreground sm:text-4xl lg:text-5xl leading-tight">Everything from script to final cut in one place</h2></div><div class="mt-4"><p class="mx-auto max-w-2xl text-sm leading-relaxed text-muted-foreground sm:text-base md:text-lg">One connected pipeline — the<!-- --> <a class="font-medium text-foreground underline decoration-primary/50 underline-offset-4 transition-colors hover:text-primary" href="/features/ai-storyboard-generator">AI storyboard generator</a> <!-- -->turns your script into shots, then video clips, voice and sound land on a real timeline. First cut in one session.</p></div></div><div class="relative z-10 mt-14 grid gap-6 sm:grid-cols-2 lg:grid-cols-4"><div class="h-full"><div class="group relative overflow-hidden rounded-3xl border border-border/40 bg-gradient-to-b from-card/95 via-card/60 to-card/30 p-8 transition-all duration-300 ease-out hover:-translate-y-1 hover:border-primary/30 h-full flex flex-col justify-between"><div class="absolute inset-0 -z-10 bg-gradient-to-br from-primary/5 via-transparent to-transparent opacity-0 transition-opacity duration-500 group-hover:opacity-100"></div><div class="absolute top-0 right-0 h-24 w-24 bg-primary/10 blur-xl opacity-0 transition-opacity duration-500 group-hover:opacity-100 pointer-events-none"></div><div><div class="inline-flex h-12 w-12 items-center justify-center rounded-2xl border border-primary/20 bg-primary/5 text-primary transition-all duration-500 ease-out group-hover:scale-110 group-hover:bg-primary/10 group-hover:border-primary/45 group-hover:shadow-[0_0_20px_rgba(245,158,11,0.15)]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clapperboard h-5 w-5 transition-transform duration-500 ease-out group-hover:rotate-6" aria-hidden="true"><path d="M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z"></path><path d="m6.2 5.3 3.1 3.9"></path><path d="m12.4 3.4 3.1 4"></path><path d="M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"></path></svg></div><h3 class="mt-6 text-2xl font-bold tracking-tight text-foreground group-hover:text-primary transition-colors duration-300">One session</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground group-hover:text-foreground
597/80 transition-colors duration-300">Script, storyboard, video, voice, and sound in a single workflow — no tool switching.</p></div><div class="absolute bottom-0 left-0 right-0 h-[2px] bg-gradient-to-r from-transparent via-primary/40 to-transparent scale-x-0 transition-transform duration-500 ease-out group-hover:scale-x-100"></div></div></div><div class="h-full"><div class="group relative overflow-hidden rounded-3xl border border-border/40 bg-gradient-to-b from-card/95 via-card/60 to-card/30 p-8 transition-all duration-300 ease-out hover:-translate-y-1 hover:border-primary/30 h-full flex flex-col justify-between"><div class="absolute inset-0 -z-10 bg-gradient-to-br from-primary/5 via-transparent to-transparent opacity-0 transition-opacity duration-500 group-hover:opacity-100"></div><div class="absolute top-0 right-0 h-24 w-24 bg-primary/10 blur-xl opacity-0 transition-opacity duration-500 group-hover:opacity-100 pointer-events-none"></div><div><div class="inline-flex h-12 w-12 items-center justify-center rounded-2xl border border-primary/20 bg-primary/5 text-primary transition-all duration-500 ease-out group-hover:scale-110 group-hover:bg-primary/10 group-hover:border-primary/45 group-hover:shadow-[0_0_20px_rgba(245,158,11,0.15)]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles h-5 w-5 transition-transform duration-500 ease-out group-hover:rotate-6" aria-hidden="true"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg></div><h3 class="mt-6 text-2xl font-bold tracking-tight text-foreground group-hover:text-primary transition-colors duration-300">4K export</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground group-hover:text-foreground/80 transition-colors duration-300">Export the finished film in 4K. Video clips render at up to 1080p.</p></div><div class="absolute bottom-0 left-0 right-0 h-[2px] bg-gradient-to-r from-transparent via-primary/40 to-transparent scale-x-0 transition-transform duration-500 ease-out group-hover:scale-x-100"></div></div></div><div class="h-full"><div class="group relative overflow-hidden rounded-3xl border border-border/40 bg-gradient-to-b from-card/95 via-card/60 to-card/30 p-8 transition-all duration-300 ease-out hover:-translate-y-1 hover:border-primary/30 h-full flex flex-col justify-between"><div class="absolute inset-0 -z-10 bg-gradient-to-br from-primary/5 via-transparent to-transparent opacity-0 transition-opacity duration-500 group-hover:opacity-100"></div><div class="absolute top-0 right-0 h-24 w-24 bg-primary/10 blur-xl opacity-0 transition-opacity duration-500 group-hover:opacity-100 pointer-events-none"></div><div><div class="inline-flex h-12 w-12 items-center justify-center rounded-2xl border border-primary/20 bg-primary/5 text-primary transition-all duration-500 ease-out group-hover:scale-110 group-hover:bg-primary/10 group-hover:border-primary/45 group-hover:shadow-[0_0_20px_rgba(245,158,11,0.15)]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mic h-5 w-5 transition-transform duration-500 ease-out group-hover:rotate-6" aria-hidden="true"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" x2="12" y1="19" y2="22"></line></svg></div><h3 class="mt-6 text-2xl font-bold tracking-tight text-foreground group-hover:text-primary transition-colors duration-300">12 languages</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground group-hover:text-foreground/80 transition-colors duration-300">Write, direct, and narrate films end to end — scripts, dialogue, and voiceover in your language.</p></div><div class="absolute bottom-0 left-0 right-0 h-[2px] bg-gradient-to-r from-transparent via-primary/40 to-transparent scale-x-0 transition-transform duration-500 ease-out group-hover:scale-x-100"></div></div></div><div class="h-full"><div class="group relative overflow-hidden rounded-3xl border border-border/40 bg-gradient-to-b from-card/95 via-card/60 to-card/30 p-8 transition-all duration-300 ease-out hover:-translate-y-1 hover:border-primary/30 h-full flex flex-col justify-between"><div class="absolute inset-0 -z-10 bg-gradient-to-br from-primary/5 via-trans
597parent to-transparent opacity-0 transition-opacity duration-500 group-hover:opacity-100"></div><div class="absolute top-0 right-0 h-24 w-24 bg-primary/10 blur-xl opacity-0 transition-opacity duration-500 group-hover:opacity-100 pointer-events-none"></div><div><div class="inline-flex h-12 w-12 items-center justify-center rounded-2xl border border-primary/20 bg-primary/5 text-primary transition-all duration-500 ease-out group-hover:scale-110 group-hover:bg-primary/10 group-hover:border-primary/45 group-hover:shadow-[0_0_20px_rgba(245,158,11,0.15)]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-film h-5 w-5 transition-transform duration-500 ease-out group-hover:rotate-6" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M7 3v18"></path><path d="M3 7.5h4"></path><path d="M3 12h18"></path><path d="M3 16.5h4"></path><path d="M17 3v18"></path><path d="M17 7.5h4"></path><path d="M17 16.5h4"></path></svg></div><h3 class="mt-6 text-2xl font-bold tracking-tight text-foreground group-hover:text-primary transition-colors duration-300">Yours to use</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground group-hover:text-foreground/80 transition-colors duration-300">You own what you make — use it commercially, on YouTube or for clients.</p></div><div class="absolute bottom-0 left-0 right-0 h-[2px] bg-gradient-to-r from-transparent via-primary/40 to-transparent scale-x-0 transition-transform duration-500 ease-out group-hover:scale-x-100"></div></div></div></div><div class="mt-16 text-center"><div class="inline-flex flex-wrap items-center justify-center gap-x-4 gap-y-2 rounded-full border border-border/40 bg-card/60 px-6 py-2 text-xs text-muted-foreground/60"><span>Models from</span><span class="inline-flex items-center gap-4"><span class="font-semibold text-muted-foreground/80">OpenAI</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">Google</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">MiniMax</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">Alibaba (Wan)</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">ByteDance</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">xAI</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">Black Forest Labs</span></span><span class="inline-flex items-center gap-4"><span class="h-1 w-1 rounded-full bg-border" aria-hidden="true"></span><span class="font-semibold text-muted-foreground/80">ElevenLabs</span></span></div></div><div class="mt-12 flex items-center justify-center"><a href="https://mstudio.ai/pricing" class="relative shrink-0 justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 h-11 px-6 text-base rounded-lg group inline-flex items-center gap-2">Start now<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-4 w-4 transition-transform duration-300 group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></section><section id="languages" class="relative mx-auto max-w-screen-2xl overflow-hidden px-4 py-16 sm:px-6 sm:py-20"><div class="absolute top-0 left-1/4 right-1/4 h-[1px] bg-gradient-to-r from-transparent via-border to-transparent"></div><div class="relative z-10 mx-auto max-w-3xl text-center"><div class=""><p class="text-xs font-semibold uppercase tracking-[0.25em] text-primary/80">Create in your language</p></div><div class="mt-4"><h2 class="text-3xl font-bold tracking-tight text-foreground sm:text-4xl leading-tight">12<!-- --> languages, one pipeline</h2></div><div class="mt-4"><p class="mx-auto max-w-2xl text-sm leading-relaxed text-muted-foreground sm:text-base">Scripts, dialogue, and narration are written and voiced in the language your audience speaks. Picture and video prompts stay in English for the models.</p></div></div><div class="relative z-10 mt-10"><div class="mx-auto flex max-w-4xl flex-wrap items-center justify-center gap-2 sm:gap-3"><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">English</span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">
597中文<span class="text-xs text-muted-foreground/70">Chinese</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">हिन्दी<span class="text-xs text-muted-foreground/70">Hindi</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">Español<span class="text-xs text-muted-foreground/70">Spanish</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">Français<span class="text-xs text-muted-foreground/70">French</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">العربية<span class="text-xs text-muted-foreground/70">Arabic</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">Português<span class="text-xs text-muted-foreground/70">Portuguese</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">Русский<span class="text-xs text-muted-foreground/70">Russian</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">日本語<span class="text-xs text-muted-foreground/70">Japanese</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">Deutsch<span class="text-xs text-muted-foreground/70">German</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">Italiano<span class="text-xs text-muted-foreground/70">Italian</span></span><span class="inline-flex items-baseline gap-2 rounded-full border border-border/40 bg-card/60 px-4 py-2 text-sm font-medium text-foreground transition-colors duration-300 hover:border-primary/40 hover:bg-card">한국어<span class="text-xs text-muted-foreground/70">Korean</span></span></div></div><div class="relative z-10 mt-8 text-center"><p class="inline-flex items-center gap-2 text-xs text-muted-foreground/60"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages h-3.5 w-3.5" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg>Every language is verified end to end — script generation through spoken narration — before it ships.</p></div></section><section class="relative mx-auto max-w-screen-2xl overflow-hidden px-2 py-16 sm:py-24 md:py-32" id="faq-section"><div aria-hidden="true" class="pointer-events-none absolute inset-0 overflow-hidden"><div class="absolute rounded-full blur-[140px] right-8 top-8 h-52 w-52 bg-primary/18"></div><div class="absolute rounded-full blur-[140px] left-8 bottom-[-4rem] h-60 w-60 bg-accent/14"></div></div><div class="relative z-10 grid gap-10 lg:grid-cols-2 lg:gap-16"><div><div class=""><p class="mb-3 text-sm font-semibold tracking-[0.2em] text-muted-foreground">FAQ</p><h2 class="mb-4 text-2xl font-semibold leading-tight sm:text-3xl md:text-5xl">Questions before you create</h2><p class="mb-8 max-w-xl text-sm leading-relaxed text-muted-foreground sm:text-base md:text-lg">Get quick answers about workflow, speed, and production readiness.</p><div class="flex flex-wrap items-center gap-3"><a href="/pricing" class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 h-9 px-4 text-sm gap-2 rounded-lg">Start now</a><a href="/features" class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active h-9 px-4 text-sm gap-2 rounded-lg">View all features</a></div></div></div><div class="space-y-3"><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="open"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":Rqril:-trigger" aria-expanded="true" aria-controls=":Rqril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground
597/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Is there a free trial?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[1fr]"><div id=":Rqril:-region" role="region" aria-labelledby=":Rqril:-trigger" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">There&#x27;s no free plan or free trial — every plan is paid, starting at $27/month. When a trial is offered, new accounts can start with a paid trial: you pay the small trial fee today and get the script, storyboard, scene audio and score. When the trial ends, the plan you chose starts automatically and your card is charged, unless you cancel first in Settings → Billing. The trial fee is not refunded. Your first plan payment comes with a 24-hour money-back window from the moment it is charged. You can also see what M Studio makes before you pay — the demo gallery has complete films made on M Studio, start to finish.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R1aril:-trigger" aria-expanded="false" aria-controls=":R1aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Can I make a feature film or a full series?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R1aril:-region" role="region" aria-labelledby=":R1aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Yes — there&#x27;s no cap on film length. Films are built shot by shot, so how long a piece can run comes down to your plan&#x27;s monthly budget rather than any limit in the editor, and episodic work is what the Studio plan is sized for. If you&#x27;re planning something feature-length or a multi-episode series, talk to us before you subscribe and we&#x27;ll tell you honestly what it will take on your script.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R1qril:-trigger" aria-expanded="false" aria-controls=":R1qril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">How much film does each plan fit?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R1qril:-region" role="region" aria-labelledby=":R1qril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Every plan includes minutes of finished AI video each month: 20 minutes on Starter, 50 on Professional and 100 on Studio. Video costs 7.5¢ a second from a monthly budget of $90, $225 or $450, and the same budget can go on storyboard pictures instead, at 25¢ each. Re-takes count too, so the minutes are what you generate, not the length of your final cut. Voiceover, music and sound effects cost nothing.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R2aril:-trigger" aria-expanded="false" aria-controls=":R2aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground
597/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">How does billing work?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R2aril:-region" role="region" aria-labelledby=":R2aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">One flat price each month, and your plan includes a monthly generation budget — $90 on Starter, $225 on Professional, $450 on Studio. Video draws 7.5¢ a second and storyboard pictures 25¢ each; voiceover, music and sound effects cost nothing. Settings → Billing shows the running balance at any time. Nothing extra is ever charged unless you choose to top up.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R2qril:-trigger" aria-expanded="false" aria-controls=":R2qril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Do re-takes and failed shots cost me?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R2qril:-region" role="region" aria-labelledby=":R2qril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Yes. Every generation that reaches the model is charged, including re-takes and shots you end up discarding — a generation that fails before it reaches the model is not. Most directors budget two to three attempts on the shots that matter, so read the plan budget as generations rather than as finished shots.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R3aril:-trigger" aria-expanded="false" aria-controls=":R3aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Does making my storyboard use up my video budget?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R3aril:-region" role="region" aria-labelledby=":R3aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Yes. Storyboard pictures and video clips are both charged per generation, and both draw from the same monthly budget. There is no separate free allowance for storyboard pictures.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R3qril:-trigger" aria-expanded="false" aria-controls=":R3qril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground
597/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">How long is a single shot?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R3qril:-region" role="region" aria-labelledby=":R3qril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Between 3 and 15 seconds, and 5 seconds is the default. You set the length per shot, and longer shots cost proportionally more because video is billed by the second.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R4aril:-trigger" aria-expanded="false" aria-controls=":R4aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">What happens if I run out mid-month?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R4aril:-region" role="region" aria-labelledby=":R4aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Nothing stops automatically. You can buy a top-up to keep going, or wait until next month. No surprise charges — you&#x27;re always in control, and you can cancel any time.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R4qril:-trigger" aria-expanded="false" aria-controls=":R4qril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Will the models refuse anything I try to shoot?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R4qril:-region" role="region" aria-labelledby=":R4qril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Sometimes. Every shot passes through the underlying model&#x27;s own safety filter, and action — fights, stunts, weapons — is what trips it most often. Re-prompting the shot or switching the model for that one shot usually clears it. If action carries your film, test a fight beat in your first session so you know 
597where the line sits before you build a slate around it. Our Acceptable Use terms set the outer boundary.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R5aril:-trigger" aria-expanded="false" aria-controls=":R5aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">What counts as a film?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R5aril:-region" role="region" aria-labelledby=":R5aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">One film is one workspace for a film or storyboard. The number of films on your plan is how many you can keep at once, not how many you can make in a month — delete a film you&#x27;ve finished and the slot comes straight back.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R5qril:-trigger" aria-expanded="false" aria-controls=":R5qril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Can I use what I make commercially, on YouTube or for clients?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R5qril:-region" role="region" aria-labelledby=":R5qril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Yes. You own the content you generate and you can use it commercially, including monetized YouTube, client work and ads. See our Terms for the full wording.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R6aril:-trigger" aria-expanded="false" aria-controls=":R6aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">How do I cancel, get a refund, or delete my account?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R6aril:-region" role="region" aria-labelledby=":R6aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">You can cancel any time from Settings → Billing;
597 you keep access until the end of the period you&#x27;ve paid for. A trial cancels at once, and the plan never starts. For a refund, your first plan payment is covered for 24 hours from the moment it is charged (a trial fee is not refunded) — email <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="157d7079797a5578666160717c7a3b747c">[email&#160;protected]</a> or start a live chat and we&#x27;ll sort it out. To delete your account and its data entirely, email the same address and we&#x27;ll delete it. You don&#x27;t need Discord for any of this.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R6qril:-trigger" aria-expanded="false" aria-controls=":R6qril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">What currency are your prices in?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R6qril:-region" role="region" aria-labelledby=":R6qril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">US dollars, everywhere on the site. Your bank converts at its own rate on the day, so the amount on your statement will differ from the sticker price if you&#x27;re billed in another currency.</p></div></div></div></div></article></div><div class=""><article class="rounded-2xl border border-border bg-gradient-to-br from-primary/10 to-card/20"><div data-state="closed"><h3 class="font-sans text-base font-medium tracking-normal"><button type="button" id=":R7aril:-trigger" aria-expanded="false" aria-controls=":R7aril:-region" class="flex w-full justify-between gap-4 text-left text-foreground transition-colors duration-150 hover:text-foreground/80 outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 items-start rounded-2xl p-4 text-sm focus-visible:ring-inset sm:p-5 sm:text-base md:p-6 md:text-lg"><span class="min-w-0 flex-1">Which languages does M Studio support?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="grid transition-[grid-template-rows] duration-200 ease-out grid-rows-[0fr]"><div id=":R7aril:-region" role="region" aria-labelledby=":R7aril:-trigger" inert="" class="min-h-0 overflow-hidden"><div class="text-muted-foreground px-5 pb-5 text-base md:px-6 md:pb-6"><p class="text-muted-foreground leading-relaxed">Twelve: English, Chinese, Hindi, Spanish, French, Arabic, Portuguese, Russian, Japanese, German, Italian, and Korean. Pick the language when you create a film — the script, dialogue, and voice narration are generated in it — and dub any finished clip into another of them from AI VFX, with every speaker keeping their own voice.</p></div></div></div></div></article></div></div></div></section><section class="relative mx-auto max-w-7xl overflow-hidden px-4 py-14 sm:px-6 sm:py-18 lg:px-8 lg:py-24"><div class="relative z-10 overflow-hidden rounded-3xl bg-card/80"><div class="absolute inset-0"><img src="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&amp;quality=30&amp;width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&amp;quality=30&amp;width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&amp;quality=30&amp;width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&amp;quality=30&amp;width=1200 1200w" sizes="(max-width: 768px) 100vw, 50vw" alt="Video clip made in M Studio" loading="lazy" decoding="async" class="absolute inset-0 h-full w-full object-cover transition-opacity duration-300 opacity-100"/><video preload="metadata" class="transition-opacity duration-300 opacity-0 h-full w-full object-cover" muted="" loop="" playsinline=""></video></div><div class="absolute inset-0 bg-gradient-to-r from-background/95 via-background/85 to-background/45"></div><div class="relative z-10 max-w-xl p-6 sm:p-8 md:p-10 lg:p-12"><p class="text-xs font-semibold uppercase tracking-[0.22em] text-primary/85">Ready when you are</p><h2 class="mt-3 text-2xl font-semibold leading-tight text-foreground sm:text-3xl lg:text-4xl">Turn your next idea into a film</h2><p class="mt-4 text-sm leading-relaxed text-muted-foreground sm:text-base">Script, storyboard, video clips, voice and music in one place — you direct every shot. First cut in one session.</p><div class="mt-7 flex flex-wrap items-center gap-3"><a href="https://mstudio.ai/pricing" class="relative shrink-0 justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 h-9 px-4 text-sm rounded-lg inline-flex items-center gap-2">Start now<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-4 w-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="/demo" class="relative shrink-0 justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active h-9 px-4 text-sm rounded-lg inline-flex items-center gap-2">Watch examples<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-play h-4 w-4"><circle cx="12" cy="12" r="10"></circle><polygon points="10 8 16 12 10 16 10 8"></polygon></svg></a></div><p class="flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted-foreground mt-4 justify-start"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check h-3.5 w-3.5 text-primary" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span>Plans from $27/mo</span><span aria-hidden="true">·</span><span>100% refund within 24h</span><span aria-hidden="true">·</span><span>Cancel anytime</span></p></div></div></section><footer class="relative overflow-hidden bg-muted"><div class="relative z-10 bg-gradient-to-b from-primary/10"><div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-20 lg:py-28 text-center"><h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold tracking-tight text-foreground mb-6">
597Your next film starts here</h2><p class="text-lg text-muted-foreground mb-8 max-w-xl mx-auto">Type your idea. M Studio writes the script, draws the storyboard, voices the cast and makes the video clips. First cut in one session.</p><div class="flex flex-col sm:flex-row gap-4 justify-center"><a href="https://mstudio.ai/pricing" class="relative shrink-0 justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 bg-primary text-primary-foreground border border-black/10 shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.45)] hover:bg-primary-hover active:bg-primary-hover/90 h-11 px-6 text-base rounded-lg flex items-center gap-2">Start now <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-4 w-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="https://mstudio.ai/demo" class="relative inline-flex shrink-0 items-center justify-center whitespace-nowrap font-medium select-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-out outline-none focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 aria-pressed:bg-surface-active aria-pressed:text-foreground aria-pressed:border-border-strong bg-card/40 text-foreground border border-border shadow-xs hover:bg-surface-hover hover:border-border-strong active:bg-surface-active h-11 px-6 text-base gap-2.5 rounded-lg">Watch examples</a></div></div></div><div class="relative z-10 mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-12 lg:py-16"><div class="grid grid-cols-2 gap-8 md:grid-cols-7 lg:gap-12"><div class="col-span-2"><a href="https://mstudio.ai" class="inline-flex items-center gap-2.5 mb-5"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 142 142" preserveAspectRatio="xMidYMid meet" fill="none" class="block sm:hidden h-5 text-foreground"><path fill="#17171b" stroke="#d3b796" stroke-width="5" d="M77.65 2.508c9.812.045 19.51.302 27.514.952 4 .325 7.619.751 10.639 1.308 2.775.511 5.237 1.166 7.039 2.06l.351.18c6.506 3.52 11.734 10.233 13.966 17.215l.206.676.001.001c.443 1.525.772 3.843 1.033 6.59.267 2.8.477 6.22.64 10.04.326 7.646.463 16.99.461 26.403-.003 18.178-.526 36.831-1.249 44.029l-.071.66c-.389 3.414-1.132 6.784-2.779 10.04l-.34.65c-4.75 8.705-12.18 12.941-20.988 15.474l-.266.076-.278.017c-13.87.822-28.179.32-41.933.281l-2.743-.001c-11.571.026-24.353.872-36.293-.206l-1.153-.11c-4.169-.422-8.62-1.231-12.674-3.476-6.144-3.405-12.006-9.95-13.997-17.006l-.085-.32c-.423-1.659-.756-4.177-1.028-7.19-.295-3.274-.534-7.313-.714-11.842-.36-9.062-.49-20.162-.361-31.173.128-11.007.514-21.964 1.187-30.73.337-4.38.749-8.252 1.244-11.328.247-1.536.52-2.909.826-4.064.295-1.117.66-2.188 1.147-3.022h.001C12.037 10.006 19.6 5.734 28.761 3.46l.265-.065.274-.007c8.431-.214 28.724-.972 48.35-.881Z"></path><path fill="#d3b796" d="m35 39 16.326.01c6.517 7.69 13.307 16.499 19.684 24.415l19.627-24.421 16.355.015L107 103l-13.504-.041V58.916L71.01 86.222 48.513 58.907l-.01 44.082-13.494-.022z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 707 142" preserveAspectRatio="xMidYMid meet" fill="none" class="hidden sm:block h-5 text-foreground"><path fill="#17171b" stroke="#d3b796" stroke-width="5" d="M77.65 2.508c9.812.045 19.51.302 27.514.952 4 .325 7.619.751 10.639 1.308 2.775.511 5.237 1.166 7.039 2.06l.351.18c6.506 3.52 11.734 10.233 13.966 17.215l.206.676.001.001c.443 1.525.772 3.843 1.033 6.59.267 2.8.477 6.22.64 10.04.326 7.646.463 16.99.461 26.403-.003 18.178-.526 36.831-1.249 44.029l-.071.66c-.389 3.414-1.132 6.784-2.779 10.04l-.34.65c-4.75 8.705-12.18 12.941-20.988 15.474l-.266.076-.278.017c-13.87.822-28.179.32-41.933.28
5971l-2.743-.001c-11.571.026-24.353.872-36.293-.206l-1.153-.11c-4.169-.422-8.62-1.231-12.674-3.476-6.144-3.405-12.006-9.95-13.997-17.006l-.085-.32c-.423-1.659-.756-4.177-1.028-7.19-.295-3.274-.534-7.313-.714-11.842-.36-9.062-.49-20.162-.361-31.173.128-11.007.514-21.964 1.187-30.73.337-4.38.749-8.252 1.244-11.328.247-1.536.52-2.909.826-4.064.295-1.117.66-2.188 1.147-3.022h.001C12.037 10.006 19.6 5.734 28.761 3.46l.265-.065.274-.007c8.431-.214 28.724-.972 48.35-.881Z"></path><path fill="#d3b796" d="m35 39 16.326.01c6.517 7.69 13.307 16.499 19.684 24.415l19.627-24.421 16.355.015L107 103l-13.504-.041V58.916L71.01 86.222 48.513 58.907l-.01 44.082-13.494-.022z"></path><path fill="#fff" d="M228.367 51.992q-.547-5.116-4.609-7.969-4.023-2.85-10.469-2.851-4.531 0-7.773 1.367t-4.961 3.711-1.758 5.352q0 2.5 1.133 4.336 1.172 1.835 3.164 3.124a22.3 22.3 0 0 0 4.414 2.11 47 47 0 0 0 4.883 1.445l7.5 1.875a51.7 51.7 0 0 1 8.711 2.852q4.218 1.797 7.539 4.531a20.1 20.1 0 0 1 5.312 6.602q1.953 3.867 1.953 9.062 0 7.031-3.593 12.383-3.594 5.313-10.391 8.32-6.758 2.969-16.367 2.969-9.336 0-16.211-2.891-6.837-2.89-10.703-8.437-3.828-5.547-4.141-13.516h14.258q.313 4.18 2.578 6.953 2.266 2.775 5.898 4.14 3.672 1.368 8.204 1.368 4.726 0 8.281-1.406 3.594-1.446 5.625-3.984 2.031-2.58 2.07-6.016-.039-3.126-1.836-5.156-1.797-2.07-5.039-3.438-3.202-1.405-7.5-2.5l-9.101-2.344q-9.883-2.538-15.625-7.695-5.704-5.196-5.704-13.789 0-7.07 3.829-12.383 3.867-5.312 10.507-8.242 6.64-2.97 15.039-2.969 8.516 0 14.922 2.969 6.446 2.93 10.117 8.164 3.672 5.196 3.789 11.953zm46.444-9.844V30h63.828v12.148h-24.727V110h-14.375V42.148zM423.373 30h14.492v52.266q0 8.594-4.062 15.117-4.024 6.523-11.328 10.195-7.305 3.633-17.071 3.633-9.804 0-17.109-3.633-7.305-3.672-11.328-10.195-4.024-6.524-4.024-15.117V30h14.493v51.055q0 5 2.187 8.906 2.226 3.906 6.25 6.133 4.023 2.187 9.531 2.187t9.532-2.187q4.062-2.227 6.25-6.133t2.187-8.906zm79.354 80h-27.11V30h27.656q11.914 0 20.469 4.805 8.594 4.766 13.203 13.71 4.61 8.946 4.61 21.407 0 12.5-4.649 21.484-4.61 8.985-13.32 13.789Q514.915 110 502.727 110m-12.618-12.54h11.914q8.36 0 13.946-3.046 5.586-3.086 8.398-9.18 2.813-6.132 2.813-15.312t-2.813-15.234q-2.812-6.095-8.32-9.102-5.469-3.047-13.594-3.047h-12.344zM591.816 30v80h-14.492V30zm109.178 40q0 12.93-4.844 22.148-4.805 9.18-13.125 14.063-8.28 4.883-18.789 4.883-10.507 0-18.828-4.883-8.281-4.922-13.125-14.102-4.804-9.218-4.804-22.109 0-12.93 4.804-22.11 4.844-9.218 13.125-14.1 8.32-4.884 18.828-4.884 10.509 0 18.789 4.883 8.32 4.883 13.125 14.102 4.844 9.18 4.844 22.109m-14.57 0q0-9.102-2.852-15.352-2.813-6.288-7.812-9.492-5-3.242-11.524-3.242t-11.523 3.242q-5 3.204-7.852 9.492-2.812 6.25-2.812 15.352t2.812 15.39q2.852 6.25 7.852 9.493 5 3.203 11.523 3.203t11.524-3.203q5-3.243 7.812-9.492 2.852-6.29 2.852-15.391"></path></svg></a><p class="text-sm text-muted-foreground max-w-xs leading-relaxed mb-4">The AI filmmaking platform. First cut in one session.</p><div class="flex items-center text-foreground gap-2"><a target="_blank" href="https://www.instagram.com/m_studio.ai" aria-label="M Studio on Instagram" class="flex items-center gap-2 text-muted-foreground hover:text-foreground transition-all text-sm" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="size-7"><g fill="currentColor"><path fill-rule="evenodd" d="M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12m0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8" clip-rule="evenodd"></path><path d="M18 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2"></path><path fill-rule="evenodd" d="M1.654 4.276C1 5.56 1 7.24 1 10.6v2.8c0 3.36 0 5.04.654 6.324a6 6 0 0 0 2.622 2.622C5.56 23 7.24 23 10.6 23h2.8c3.36 0 5.04 0 6.324-.654a6 6 0 0 0 2.622-2.622C23 18.44 23 16.76 23 13.4v-2.8c0-3.36 0-5.04-.654-6.324a6 6 0 0 0-2.622-2.622C18.44 1 16.76 1 13.4 1h-2.8c-3.36 0-5.04 0-6.324.654a6 6 0 0 0-2.622 2.622M13.4 3h-2.8c-1.713 0-2.878.002-3.778.075-.877.072-1.325.202-1.638.361a4 4 0 0 0-1.748 1.748c-.16.313-.29.761-.36 1.638C3.001 7.722 3 8.887 3 10.6v2.8c0 1.713.002 2.878.075 3.778.072.877.202 1.325.361 1.638a4 4 0 0 0 1.748 1.748c.313.16.761.29 1.638.36.9.074 2.065.076 3.778.076h2.8c1.713 0 2.878-.002 3.778-.075.877-.072 1.325-.202 1.638-.361a4 4 0 0 0 1.748-1.748c.16-.313.29-.761.36-1.638.074-.9.076-2.065.076-3.778v-2.8c0-1.713-.002-2.878-.075-3.778-.072-.877-.202-1.325-.361-1.638a4 4 0 0 0-1.748-1.748c-.313-.16-.761-.29-1.638-.36C16.278 3.001 15.113 3 13.4 3" clip-rule="evenodd"></path></g></svg></a><a target="_blank" href="https://www.facebook.com/mstudioai" aria-label="M Studio on Facebook" class="flex items-center gap-2 text-muted-foreground hover:text-foreground transition-all text-sm" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-5 0 20 20" class="size-6">
597<path fill="currentColor" fill-rule="evenodd" stroke="none" d="M6.821 20v-9h2.733L10 7H6.821V5.052C6.821 4.022 6.848 3 8.287 3h1.458V.14c0-.043-1.253-.14-2.52-.14C4.58 0 2.924 1.657 2.924 4.7V7H0v4h2.923v9z"></path></svg></a><a target="_blank" href="https://x.com/M_Studio_AI" aria-label="M Studio on X" class="flex items-center gap-2 text-muted-foreground hover:text-foreground transition-all text-sm" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" class="size-[26px] p-0.5"><path fill="currentColor" d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"></path></svg></a></div></div><div><h4 class="text-sm font-semibold text-foreground mb-5">Features</h4><ul class="space-y-2.5"><li><a href="https://mstudio.ai/features" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">All features</a></li><li><a href="https://mstudio.ai/features/ai-storyboard-generator" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI storyboard generator</a></li><li><a href="https://mstudio.ai/features/animatic-maker" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Animatic maker</a></li><li><a href="https://mstudio.ai/features/script" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI script generator</a></li><li><a href="https://mstudio.ai/features/previs-software" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Previs software</a></li><li><a href="https://mstudio.ai/features/ai-video" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI video generation</a></li><li><a href="https://mstudio.ai/features/ai-image" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI image generation</a></li><li><a href="https://mstudio.ai/features/film-production" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI film production</a></li><li><a href="https://mstudio.ai/ai-vfx" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI VFX</a></li></ul></div><div><h4 class="text-sm font-semibold text-foreground mb-5">Product</h4><ul class="space-y-2.5"><li><a href="https://mstudio.ai/pricing" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Pricing</a></li><li><a href="https://mstudio.ai/templates" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Templates</a></li><li><a href="https://mstudio.ai/demo" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Demo</a></li><li><a href="https://mstudio.ai/experience?from=footer" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Experience M Studio</a></li><li><a href="https://mstudio.ai/ai-director" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI Director</a></li><li><a href="https://mstudio.ai/mcp-server" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">AI Agent</a></li><li><a href="https://mstudio.ai/distribution" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Distribution</a></li><li><a href="https://mstudio.ai/assistant" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Assistant</a></li><li><a href="https://mstudio.ai/for-agencies" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">For agencies</a></li><li><a href="https://mstudio.ai/enterprise" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Enterprise</a></li><li><a href="https://mstudio.ai/compare" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Compare</a></li><li><a href="https://mstudio.ai/vs" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Head-to-head</a></li><li><a href="https://mstudio.ai/docs" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">API docs</a></li></ul></div><div><h4 class="text-sm font-semibold text-foreground mb-5">Guides</h4><ul class="space-y-2.5"><li><a href="https://mstudio.ai/insights" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Buyer guides</a></li><li><a href="https://mstudio.ai/blog" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Blog</a></li><li><a href="https://mstudio.ai/learn" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Learn</a></li><li><a href="https://mstudio.ai/glossary" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Glossary</a></li></ul></div><div><h4 class="text-sm font-semibold text-foreground mb-5">Support</h4><ul class="space-y-2.5"><li><a href="https://mstudio.ai/about" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">About M Studio</a></li><li><a href="https://mstudio.ai/support" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Support</a></li><li><a href="/cdn-cgi/l/email-protection#c7afa2ababa887aab4b3b2a3aea8e9a6ae" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Contact</a></li><li><a href="https://discord.gg/4NPUExFwDa" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Discord<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link h-3 w-3" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></li><li><a href="https://www.facebook.com/groups/1105959302005051" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Facebook group<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link h-3 w-3" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></li></ul></div><div><h4 class="text-sm font-semibold text-foreground mb-5">Legal</h4><ul class="space-y-2.5"><li><a href="https://mstudio.ai/privacy" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Privacy Policy</a></li><li><a href="https://mstudio.ai/refund" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Refund Policy</a></li><li><a href="https://mstudio.ai/terms" class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors">Terms of Service</a></li></ul></div></div></div><div class="relative z-10"><div class="mx-auto max-w-7xl px-4 sm:px-6 pb-20 lg:px-8 py-8"><div class="flex flex-col md:flex-row justify-between items-center gap-6"><p class="text-sm text-muted-foreground">© <!-- -->2026<!-- --> M Studio. All rights reserved.</p></div></div></div><div aria-hidden="true" class="pointer-events-none whitespace-nowrap absolute -bottom-[20vh] z-0 flex opacity-25 w-full select-none items-center justify-center bg-gradient-to-t from-primary to-transparent bg-clip-text text-[20vw] font-bold text-transparent">M STUDIO</div></footer></div></div>
vendor: 113 bytes, lines 597-598
597
598    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
598<script>
599    (function () {
600        var sent = {};
601        var csrfToken = document.cookie.match(/XSRF-TOKEN=([^;]+)/);
602        csrfToken = csrfToken ? decodeURIComponent(csrfToken[1]) : '';
603
604        function isThirdPartyContext(source, stack) {
605            var haystack = (String(source || '') + ' ' + String(stack || '')).toLowerCase();
606            var thirds = [
607                'googletagmanager.com', 'google-analytics.com', 'clarity.ms',
608                'hotjar.com', 'connect.facebook.net', 'doubleclick.net',
609                'embed.tawk.to', 'bzrcdn.openai.com', 'bzr.openai.com',
610                'chrome-extension://', 'sendmessagetoiframes'
611            ];
612            for (var i = 0; i < thirds.length; i++) {
613                if (haystack.indexOf(thirds[i]) !== -1) { return true; }
614            }
615            return false;
616        }
617
618        // "Script error." (with no stack, no source, line 0) is the browser's
619        // CORS-masked placeholder — it means a cross-origin script threw but
620        // the browser refused to share details.  This is never actionable
621        // (we can't fix third-party trackers), so drop it before the dedup
622        // check to avoid flooding the error channel.
623        //
624        // Accepts either the raw window.onerror arguments or a payload-like
625        // object, so it can be reused for error events and promise rejections.
626        function isCorsMaskedError(message, source, line, stack) {
627            var msg = String(message || '');
628            if (msg !== 'Script error.' && msg !== 'Script error') { return false; }
629            // Confirm: no usable source info → definitely CORS-masked.
630            // If there *is* a source file, it's a real same-origin error
631            // that just happens to say "Script error." — don't suppress those.
632            return (!source || source === '') && (!line || line === 0) && (!stack || stack === '');
633        }
634
635        function report(payload) {
636            // Drop CORS-masked third-party errors early — they have no
637            // actionable info and would otherwise flood Discord.
638            if (isCorsMaskedError(payload.message, payload.source, payload.line, payload.stack)) { return; }
639
640            // Drop React hydration errors (usually caused by browser extensions/translate)
641            var msg = String(payload.message || '').toLowerCase();
642            if (msg.indexOf('minified react error #418') !== -1 ||
643                msg.indexOf('minified react error #423') !== -1 ||
644                msg.indexOf('minified react error #425') !== -1 ||
645                msg.indexOf('hydration failed') !== -1 ||
646                msg.indexOf('text content does not match') !== -1) {
647                return;
648            }
649
650            // Drop iOS Autofill / Facebook WebView injection errors
651            if (msg.indexOf('_autofillcallbackhandler') !== -1) {
652                return;
653            }
654
655            var key = (payload.message || '') + '|' + (payload.source || '') + '|' + (payload.line || '');
656            if (sent[key]) { return; }
657            sent[key] = true;
658            if (isThirdPartyContext(payload.source, payload.stack)) { return; }
659            try {
660                fetch('/js-errors', {
661                    method: 'POST',
662                    headers: {
663                        'Content-Type': 'application/json',
664                        'X-XSRF-TOKEN': csrfToken
665                    },
666                    body: JSON.stringify(payload),
667                    keepalive: true
668                });
669            } catch (e) {}
670        }
671
672        window.onerror = function (message, source, line, column, error) {
673            if (isCorsMaskedError(message, source, line, error && error.stack ? error.stack : '')) {
674                return;
675            }
676            report({
677                message: String(message),
678                source: source || '',
679                line: line || null,
680                column: column || null,
681                stack: error && error.stack ? error.stack : '',
682                url: window.location.href,
683                user_agent: navigator.userAgent,
684                type: 'error'
685            });
686        };
687
688        window.addEventListener('unhandledrejection', function (event) {
689            var reason = event.reason || {};
690            report({
691                message: reason.message || String(event.reason) || 'Unhandled promise rejection',
692                source: '',
693                line: null,
694                column: null,
695                stack: reason.stack || '',
696                url: window.location.href,
697                user_agent: navigator.userAgent,
698                type: 'unhandledrejection'
699            });
700        });
701    })();
702    </script>
702
703
704    <!-- Noscript fallback for SEO and AI crawlers -->
705    
706    <noscript>
707        <div style="padding: 2rem; max-width: 800px; margin: 0 auto; font-family: system-ui, sans-serif;">
708            <p style="font-size: 1.75rem; font-weight: 700; margin-bottom: 1rem;">M Studio - AI Storyboard Generator &amp; Video Production Platform</p>
709            <p><strong>M Studio is an AI-powered storyboard generator and video production platform that converts scripts into visual storyboards with AI-generated images, video, voiceover, and sound design. Used by filmmakers, agencies, and production teams in 40+ countries to move from concept to final video in one session.</strong></p>
710            <p>Please enable JavaScript to use M Studio.</p>
711
712            <h2>Core Features</h2>
713            <ul style="list-style: none; padding: 0;">
714                <li><a href="/features/ai-storyboard-generator">AI Storyboard Generator</a> - Generate visual storyboards from scripts and ideas</li>
715                <li><a href="/features/ai-video">AI Video Generation</a> - Turn frames into video with Google Veo 3.1 Lite, Wan 3.0, MiniMax H3, and Grok Video</li>
716                <li><a href="/features/ai-image">AI Image Generation</a> - Create cinematic stills with OpenAI GPT Image, Nano Banana, Seedream, and Flux</li>
717                <li><a href="/features/ai-script-generator">AI Script Generator</a> - Generate scripts from ideas</li>
718                <li><a href="/features/text-to-video">Text to Video</a> - Convert text to AI video</li>
719                <li><a href="/features/voice">Voice Generation</a> - AI voiceover and voice cloning in 12 languages</li>
720                <li><a href="/features/sound-design">Sound Design</a> - AI-generated sound effects</li>
721                <li><a href="/features/timeline">Timeline Editor</a> - Multi-track audio and video timeline</li>
722                <li><a href="/features/consistent-characters">Character Consistency</a> - Maintain characters across frames</li>
723                <li><a href="/features/storyboard-template">Storyboard Templates</a> - Pre-built templates for films and ads</li>
724                <li><a href="/features/corporate-video-production">Corporate Video Production</a> - Professional business videos</li>
725                <li><a href="/features/ai-music-video-generator">AI Music Video Generator</a> - Music videos with AI</li>
726                <li><a href="/features/ae-plugin">After Effects Plugin</a> - Bidirectional AE sync</li>
727                <li><a href="/features/teams">Team Collaboration</a> - Role-based access for teams</li>
728                <li><a href="/features/export">Export</a> - MP4 video rendering</li>
729            </ul>
730
731            <h2>Compare Alternatives</h2>
732            <ul style="list-style: none; padding: 0;">
733                <li><a href="/compare/boords-alternative">Boords Alternative</a></li>
734                <li><a href="/compare/runway-alternative">Runway ML Alternative</a></li>
735                <li><a href="/compare/sora-alternative">Sora Alternative</a></li>
736                <li><a href="/compare/ltx-studio-alternative">LTX Studio Alternative</a></li>
737                <li><a href="/compare/heygen-alternative">HeyGen Alternative</a></li>
738                <li><a href="/compare/capcut-alternative">CapCut Alternative</a></li>
739            </ul>
740
741            <h2>Resources</h2>
742            <ul style="list-style: none; padding: 0;">
743                <li><a href="/pricing">Pricing</a> - Plans from $27/month, with 20 minutes of AI video</li>
744                <li><a href="/blog">Blog</a> - AI filmmaking tutorials and guides</li>
745                <li><a href="/learn">Learn</a> - Step-by-step guides</li>
746                <li><a href="/glossary">Glossary</a> - Film and video production terms</li>
747                <li><a href="/insights">Buyer Guides</a> - Best storyboard and AI tools</li>
748                <li><a href="/demo">Demo</a> - Try without signing up</li>
749            </ul>
750        </div>
751    </noscript>
752</body>
753
754</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.