Read the license before you watch the demo
I’ve promised you this post three times now. In July I said every model in MoVox is under a permissive open license, Apache 2.0 or MIT, and that my reason was practical, not idealism. Then I went quiet for two months, came back, and promised it again. Twice. So before I write the next thing I actually want to write, let me pay this one off.
So what’s the practical reason?
At the end of this pipeline there’s a video file. A chapter of a 600-year-old novel, painted, voiced and cut. Where does a video like that go? YouTube. That’s where the audience is, and it’s where almost everyone I’d share it with would actually watch it.
And a video on YouTube can earn money. Not because I set out to make any, but because that’s how the platform works: put something there that people watch, and it has the potential to make money whether you planned for it or not. So the moment I picked YouTube, I had to pick models whose licenses allow that.
That’s it. That’s the whole reason.
I’ll be straight about the money part, because this is the only post where I’m going to talk about it. Money was never the objective. I started because I wanted to hear these books read, and somewhere along the way that turned into directing something like a TV episode for every chapter. The other half of the reason was learning: I wanted to really learn the new AI tech, by building my own multi-agent pipeline from scratch and running it on my own machines. Neither of those needs a cent. But I don’t want to find out later that a film I made can’t go where every other video goes. If the license on a model says non-commercial, then every frame that model touched is non-commercial, and so is the film it’s in. You can’t edit that out later. You’d have to redraw the whole thing.
The book itself is fine, by the way. Romance of the Three Kingdoms is about six centuries old. Nobody owns Guan Yu. The tools are where the strings are.
Apache 2.0 and MIT, in one paragraph.
If you haven’t had to read these: both are permissive licenses. Roughly, they say you can use the thing for anything, including commercially, modify it, and ship it, as long as you keep the copyright notice. Apache 2.0 adds an explicit patent grant on top, which is part of why companies like it. Neither one cares what you make with the model. There’s no list of approved uses, no revenue threshold, no countries left out.
Compare that with what a lot of “open” models actually ship under, and you’ll see why I drew the line where I did.
What the rule ruled out.
Let me make this concrete, because “permissive licenses only” sounds like a checkbox until you watch it delete the obvious choice.
Faces. The first design for the Painter, back in April, needed every character to look the same in every scene. The standard tools for that are FaceID, InstantID and PuLID. They’re good, everyone uses them, and every one of them depends on InsightFace, whose face models are for non-commercial research. So they were out on day one. The plan became training a small custom model per character, a LoRA (a little add-on you train to teach a big model one specific face or style), for every major character in the book. That’s a lot of training, for a lot of characters.
Then in July, during a tech review, Qwen-Image-Edit-2511 showed up. Apache 2.0. You hand it one approved portrait of a character, and it carries that face, that costume and even that weapon into a new scene. No InsightFace anywhere in the chain. The per-character LoRA training went from the plan to an optional fallback, and it’s still parked. Every keyframe in chapter 1 was drawn that way.
I want to be fair here: the license rule didn’t design that. A better model came along. But the rule is why I was looking, instead of happily shipping the tool everyone else uses.
Motion. For animation, the field looked like this when I chose. HunyuanVideo is under Tencent’s own community license, which excludes the EU, the UK and South Korea. Imagine telling a viewer in London the chapter isn’t licensed for their country. CogVideoX has Apache 2.0 code, and model weights that are non-commercial. LTX-2 is genuinely open and genuinely impressive, and it’s free only until your company reaches $10 million in annual revenue. That’s a fine deal for most people, and I’ll never be close to that number. But it’s a threshold, not a license that just lets you use it, and I didn’t want a business condition baked into a film. The newer Wan versions, 2.5 and 2.6, are API-only.
Which leaves Wan2.2. Apache 2.0, and it happens to be very good at exactly what I need: take a still image and make it move. Every animated clip you’ve seen from MoVox comes out of it, sped up by a small Apache 2.0 add-on called Lightning that cuts the work from dozens of steps to four.
Sound effects. This one I lost. In October I went looking for a model that could watch a clip and add foley: hooves, wind, a sword leaving its sheath. MMAudio’s weights are CC-BY-NC, the NC meaning non-commercial. HunyuanVideo-Foley has the same regional exclusions as its big brother. A third one is reported non-commercial, and I couldn’t find its license at the source to say otherwise. When I can’t confirm a license is clean, I treat it as a no, because the risk of guessing wrong lands on every film it touches. So for now the films have a voice and no footsteps. That’s a real cost of the rule, and I’m not going to pretend it isn’t.
The license on the repo is not the license on the weights.
This is the part I’d want you to remember even if you never touch a video model.
A model isn’t one file. It’s a code repository, a set of weights, and often a handful of smaller models it downloads quietly at runtime: a face detector here, an audio encoder there. Each of those has its own license. The one on the GitHub front page is just the first one you see.
Two examples from the lip-sync survey I did in October.
LatentSync, a lip-sync model from ByteDance. The code is Apache 2.0. The weights, on both versions, are OpenRAIL++. OpenRAIL is a family of licenses that let you use the model commercially but attach a list of use restrictions that you have to pass downstream, so it isn’t the same thing as Apache. And here’s the funny part: several articles I found describe LatentSync as “Apache 2.0.” They read the code license. Nobody opened the weights page.
MuseTalk is the better story. Code and weights are MIT, and the README says, in so many words, any purpose, even commercially. Clear, right? Except it runs a face parser to find the mouth, and that parser’s weights carry no license at all, and were trained on CelebAMask-HQ, a dataset released for non-commercial research. The headline says MIT. The pipeline as shipped is blocked. You’d have to swap that one small file for a cleanly licensed one before you could use it.
The one I actually use is InfiniteTalk. It’s Apache 2.0, the video model underneath it is Apache 2.0, and the audio encoder it uses to hear Mandarin is MIT. I checked every file it loads, the whole chain came back clear, and it’s what lip-syncs the characters now.
So my rule now is “the whole chain”: every weight the model loads when it runs, not just the repo it lives in. It’s tedious. It’s a spreadsheet of model cards. It’s also the only version of the check that means anything.
先小人,后君子. Be the petty one first, so you can be the gentleman later. Settle the terms before you fall in love with the demo, because once you’ve built a pipeline around a model, you will really want to believe its license is fine.
What it costs.
I don’t want this to read like the rule is free. It isn’t.
The best open image models are big. Qwen-Image is 20 billion parameters, and on a 16 GB card it only fits squeezed down to 4-bit, which costs some detail. I’ve spent weeks on fine-detail problems a closed API, or a non-commercial model, might have handed me solved. And the field moves. Something will come out next month that’s better, and it may well be non-commercial, and I’ll have to watch it and choose not to use it.
Sometimes it moves the other way, though. Google’s Gemma models shipped under Google’s own terms of use, right up to Gemma 3. Gemma 4 came out in April under plain Apache 2.0. One of my reviewer agents runs on it, and I’ll admit I didn’t pick it for the license. I downloaded it to try it the week it came out, and it stuck. I only checked the license afterwards. It’s clean, but that’s the order I’m telling you not to do it in.
There’s one exception built into the rule, so let me say it. OpenRAIL isn’t banned outright. It’s allowed where I’ve looked at that specific model, read the restrictions, and written down why it’s acceptable. So far I haven’t needed it. LatentSync would have needed that decision, and InfiniteTalk made it unnecessary.
And what it doesn’t do.
I’m not a lawyer, and this isn’t legal advice. A clean license on every model means the people who made the tools have no claim on the film. It doesn’t settle every question about who owns AI-generated work. That’s still being argued in courts and copyright offices, and I’m not going to pretend I know where it lands. What I can control is not inviting a claim I could have avoided, so I do that part properly.
Why I’d do it again.
Because the constraint has paid for itself more than once. It sent me to a better identity method than the one everyone uses. It kept me on a video model I can run in my own house, on my own card, with nobody’s server in the loop. And it taught me to read past the first license I see, which is a habit I wish I’d had years earlier.
If you’re building anything you might one day want to ship, publish or sell: read the license before you watch the demo. Then read the license on everything the demo downloads.