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 & AI Movie Maker | M Studio</title> 103<meta data-rh="true" name="title" content="AI Storyboard Generator & 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 & 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 & 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="{"component":"LandingPage","props":{"errors":{},"app":{"url":"https://mstudio.ai","env":"production","starting_price_cents":2700},"features":{"animated_shots":false},"auth":{"user":null},"flash":{"success":null,"error":null},"ziggy":{"url":"https://mstudio.ai","port":null,"defaults":[],"routes":{"cashier.payment":{"uri":"stripe/payment/{id}","methods":["GET","HEAD"],"parameters":["id"]},"cashier.webhook":{"uri":"stripe/webhook","methods":["POST"]},"mcp.oauth.protected-resource":{"uri":".well-known/oauth-protected-resource","methods":["GET","HEAD"]},"mcp.oauth.authorization-server":{"uri":".well-known/oauth-authorization-server","methods":["GET","HEAD"]},"mcp.oauth.protected-resource.nested":{"uri":".well-known/oauth-protected-resource/{path}","methods":["GET","HEAD"],"wheres":{"path":".*"},"parameters":["path"]},"mcp.oauth.authorization-server.nested":{"uri":".well-known/oauth-authorization-server/{path}","methods":["GET","HEAD"],"wheres":{"path":".*"},"parameters":["path"]},"passport.token":{"uri":"oauth/token","methods":["POST"]},"passport.authorizations.authorize":{"uri":"oauth/authorize","methods":["GET","HEAD"]},"passport.token.refresh":{"uri":"oauth/token/refresh","methods":["POST"]},"passport.authorizations.approve":{"uri":"oauth/authorize","methods":["POST"]},"passport.authorizations.deny":{"uri":"oauth/authorize","methods":["DELETE"]},"projects.index":{"uri":"api/v1/projects","methods":["GET","HEAD"]},"projects.store":{"uri":"api/v1/projects","methods":["POST"]},"projects.show":{"uri":"api/v1/projects/{project}","methods":["GET","HEAD"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.update":{"uri":"api/v1/projects/{project}","methods":["PUT","PATCH"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.destroy":{"uri":"api/v1/projects/{project}","methods":["DELETE"],"parameters":["project"],"bindings":{"project":"uuid"}},"teams.index":{"uri":"api/v1/teams","methods":["GET","HEAD"]},"teams.store":{"uri":"api/v1/teams","methods":["POST"]},"teams.show":{"uri":"api/v1/teams/{team}","methods":["GET","HEAD"],"parameters":["team"],"bindings":{"team":"id"}},"teams.update":{"uri":"api/v1/teams/{team}","methods":["PUT","PATCH"],"parameters":["team"],"bindings":{"team":"id"}},"teams.destroy":{"uri":"api/v1/teams/{team}","methods":["DELETE"],"parameters":["team"],"bindings":{"team":"id"}},"api.subscription.confirm":{"uri":"api/subscription/confirm/{sessionId}","methods":["GET","HEAD"],"parameters":["sessionId"]},"webhooks.meta-leadgen.verify":{"uri":"api/webhooks/meta/leadgen","methods":["GET","HEAD"]},"webhooks.meta-leadgen":{"uri":"api/webhooks/meta/leadgen","methods":["POST"]},"webhooks.twilio.sms":{"uri":"api/webhooks/twilio/sms","methods":["POST"]},"webhooks.elevenlabs.post-call":{"uri":"api/webhooks/elevenlabs/post-call","methods":["POST"]},"webhooks.calendly":{"uri":"api/webhooks/calendly","methods":["POST"]},"worker.animation.show":{"uri":"api/worker/animation/jobs/{animationJob}","methods":["GET","HEAD"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.animation.project":{"uri":"api/worker/animation/jobs/{animationJob}/project","methods":["GET","HEAD"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.animation.assets":{"uri":"api/worker/animation/jobs/{animationJob}/assets","methods":["GET","HEAD"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.animation.audio":{"uri":"api/worker/animation/jobs/{animationJob}/audio","methods":["GET","HEAD"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.animation.assets.store":{"uri":"api/worker/animation/jobs/{animationJob}/assets","methods":["POST"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.animation.heartbeat":{"uri":"api/worker/animation/jobs/{animationJob}/heartbeat","methods":["POST"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.animation.result":{"uri":"api/worker/animation/jobs/{animationJob}/result","methods":["POST"],"wheres":{"animationJob":"[0-9]+"},"parameters":["animationJob"]},"worker.film.show":{"uri":"api/worker/film/exports/{filmExport}","methods":["GET","HEAD"],"wheres":{"filmExport":"[0-9]+"},"parameters":["filmExport"]},"worker.film.heartbeat":{"uri":"api/worker/film/exports/{filmExport}/heartbeat","methods":["POST"],"wheres":{"filmExport":"[0-9]+"},"parameters":["filmExport"]},"worker.film.uploads":{"uri":"api/worker/film/exports/{filmExport}/uploads","methods":["POST"],"wheres":{"filmExport":"[0-9]+"},"parameters":["filmExport"]},"worker.film.result":{"uri":"api/worker/film/exports/{filmExport}/result","methods":["POST"],"wheres":{"filmExport":"[0-9]+"},"parameters":["filmExport"]},"worker.film.assets.store":{"uri":"api/worker/film/exports/{filmExport}/assets","methods":["POST"],"wheres":{"filmExport":"[0-9]+"},"parameters":["filmExport"]},"worker.director.show":{"uri":"api/worker/director/turns/{directorTurn}","methods":["GET","HEAD"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"worker.director.events":{"uri":"api/worker/director/turns/{directorTurn}/events","methods":["POST"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"worker.director.transcript":{"uri":"api/worker/director/turns/{directorTurn}/transcript","methods":["GET","HEAD"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"worker.director.media":{"uri":"api/worker/director/turns/{directorTurn}/media","methods":["GET","HEAD"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"worker.director.assets.store":{"uri":"api/worker/director/turns/{directorTurn}/assets","methods":["POST"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"worker.director.transcript.store":{"uri":"api/worker/director/turns/{directorTurn}/transcript","methods":["PUT"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"worker.director.result":{"uri":"api/worker/director/turns/{directorTurn}/result","methods":["POST"],"wheres":{"directorTurn":"[0-9]+"},"parameters":["directorTurn"]},"webhooks.export":{"uri":"api/webhooks/export","methods":["POST"]},"blog.index":{"uri":"blog","methods":["GET","HEAD"]},"blog.show":{"uri":"blog/{blog_category}/{blog_slug}","methods":["GET","HEAD"],"parameters":["blog_category","blog_slug"]},"blog.category":{"uri":"blog/{blog_category}","methods":["GET","HEAD"],"parameters":["blog_category"]},"landing":{"uri":"/","methods":["GET","HEAD"]},"pricing":{"uri":"pricing","methods":["GET","HEAD"]},"enterprise":{"uri":"enterprise","methods":["GET","HEAD"]},"assistant":{"uri":"assistant","methods":["GET","HEAD"]},"distribution":{"uri":"distribution","methods":["GET","HEAD"]},"book-a-call":{"uri":"book-a-call","methods":["GET","HEAD"]},"for-agencies":{"uri":"for-agencies","methods":["GET","HEAD"]},"compare.capcut":{"uri":"compare/capcut","methods":["GET","HEAD"]},"compare.runway":{"uri":"compare/runway","methods":["GET","HEAD"]},"compare.pika":{"uri":"compare/pika","methods":["GET","HEAD"]},"after-effects":{"uri":"after-effects","methods":["GET","HEAD"]},"experience":{"uri":"experience","methods":["GET","HEAD"]},"learn":{"uri":"learn","methods":["GET","HEAD"]},"guide":{"uri":"learn/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"privacy":{"uri":"privacy","methods":["GET","HEAD"]},"terms":{"uri":"terms","methods":["GET","HEAD"]},"refund":{"uri":"refund","methods":["GET","HEAD"]},"support":{"uri":"support","methods":["GET","HEAD"]},"docs":{"uri":"docs","methods":["GET","HEAD"]},"about":{"uri":"about","methods":["GET","HEAD"]},"ai-director":{"uri":"ai-director","methods":["GET","HEAD"]},"ai-vfx":{"uri":"ai-vfx","methods":["GET","HEAD"]},"mcp-server":{"uri":"mcp-server","methods":["GET","HEAD"]},"features":{"uri":"features","methods":["GET","HEAD"]},"feature":{"uri":"features/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"compare":{"uri":"compare","methods":["GET","HEAD"]},"compare.page":{"uri":"compare/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"vs":{"uri":"vs","methods":["GET","HEAD"]},"vs.page":{"uri":"vs/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"insights":{"uri":"insights","methods":["GET","HEAD"]},"insights.page":{"uri":"insights/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"glossary":{"uri":"glossary","methods":["GET","HEAD"]},"glossary.page":{"uri":"glossary/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"google.redirect":{"uri":"auth/google/redirect","methods":["GET","HEAD"]},"google.callback":{"uri":"auth/google/callback","methods":["GET","HEAD"]},"login":{"uri":"login","methods":["GET","HEAD"]},"register":{"uri":"register","methods":["GET","HEAD"]},"password.request":{"uri":"forgot-password","methods":["GET","HEAD"]},"password.reset":{"uri":"reset-password","methods":["GET","HEAD"]},"verification.notice":{"uri":"verify-email","methods":["GET","HEAD"]},"dashboard":{"uri":"dashboard","methods":["GET","HEAD"]},"project.new":{"uri":"dashboard/new","methods":["GET","HEAD"]},"project":{"uri":"dashboard/projects/{uuid}","methods":["GET","HEAD"],"parameters":["uuid"]},"project.simple":{"uri":"dashboard/projects/simplified/{uuid}",&qu
597ot;methods":["GET","HEAD"],"parameters":["uuid"]},"project.setup":{"uri":"dashboard/projects/{uuid}/setup","methods":["GET","HEAD"],"parameters":["uuid"]},"project.script":{"uri":"dashboard/projects/{uuid}/script","methods":["GET","HEAD"],"parameters":["uuid"]},"video-generator":{"uri":"dashboard/video-generator","methods":["GET","HEAD"]},"teams":{"uri":"dashboard/teams","methods":["GET","HEAD"]},"settings":{"uri":"dashboard/settings","methods":["GET","HEAD"]},"payment.thank-you":{"uri":"dashboard/payment/thank-you","methods":["GET","HEAD"]},"templates":{"uri":"templates","methods":["GET","HEAD"]},"demo":{"uri":"demo","methods":["GET","HEAD"]},"demo.viewer":{"uri":"demo/{projectId}","methods":["GET","HEAD"],"parameters":["projectId"]},"preview":{"uri":"preview/{projectId}","methods":["GET","HEAD"],"parameters":["projectId"]},"share":{"uri":"share/{uuid}","methods":["GET","HEAD"],"parameters":["uuid"]},"storage.local":{"uri":"storage/{path}","methods":["GET","HEAD"],"wheres":{"path":".*"},"parameters":["path"]},"storage.local.upload":{"uri":"storage/{path}","methods":["PUT"],"wheres":{"path":".*"},"parameters":["path"]}},"location":"https://mstudio.ai"},"faqs":[{"question":"Is there a free trial?","answer":"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."},{"question":"Can I make a feature film or a full series?","answer":"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."},{"question":"How much film does each plan fit?","answer":"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."},{"question":"How does billing work?","answer":"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."},{"question":"Do re-takes and failed shots cost me?","answer":"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."},{"question":"Does making my storyboard use up my video budget?","answer":"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."},{"question":"How long is a single shot?","answer":"
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."},{"question":"What happens if I run out mid-month?","answer":"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."},{"question":"Will the models refuse anything I try to shoot?","answer":"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."},{"question":"What counts as a film?","answer":"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."},{"question":"Can I use what I make commercially, on YouTube or for clients?","answer":"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."},{"question":"How do I cancel, get a refund, or delete my account?","answer":"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."},{"question":"What currency are your prices in?","answer":"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."},{"question":"Which languages does M Studio support?","answer":"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."}]},"url":"/","version":"f1243441a4b5fd21e02f67454c014aba","clearHistory":false,"encryptHistory":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 [&_svg]:size-3 [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:size-3 [&_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 [&::-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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fd655aa25-4bba-4718-b5b4-bd73208b7f8e.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F82d0f006-0dd0-4fae-9e07-ab940d52282d.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F5e8c41b5-4f6d-4e81-be81-e543dfb9c923.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fb0196e4f-625f-4a7f-a346-34089e453477.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F33d65532-d584-4d91-a6be-3289cb1ac159.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Ff76f115a-791b-4592-9c44-36dbeec36d76.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Imag
597e=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F3b1731c5-e517-45a2-adb2-04e5ad0caf23.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fe324e2ec-c9b3-4b97-b906-2aa44860d828.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fa9c530d4-78fc-4b2f-a4ad-b34e52844b16.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2F656314c0-c91f-458b-b48b-eeb59cb4a0a3.webp&quality=30&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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fdb556ada-cf14-4e4c-996b-9d827b843225.webp&quality=30&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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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'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'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.</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'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'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'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'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 protected]</a> 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.</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'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&quality=30&width=800" srcSet="https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&quality=30&width=400 400w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&quality=30&width=800 800w, https://images.modelslab.sh/?Image=https%3A%2F%2Fassets.modelslab.ai%2Fgenerations%2Fc9ce3151-c274-466d-9c62-ec0c53794a88.webp&quality=30&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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 [&_svg]:pointer-events-none [&_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 & 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.