A studio in Sao Paulo opens a new shot group and leaves the ensemble unspecified. A studio in Lagos does the same thing an hour later. What should the model put in frame? Left to its own defaults, most video and image models answer that question the same way regardless of who asked: a base prior trained on a Western-skewed slice of the internet. VisionX now answers it differently, because the default is one of the most-used settings on the platform and the current answer for every other tool we tested was the same one, no matter where the request came from.
The default is doing more work than it looks like
Cinema controls on VisionX include an ethnicity field, same as lens, lighting ratio, and camera body. Most requests leave it unset, which is exactly the point: the value of a good default is that people never have to think about it. So we built a map from roughly 150 ISO country codes to fourteen regional casting categories, keyed off the request's own geography. A new Shot Group opened from Brazil defaults to a Latin American ensemble. One opened from Nigeria defaults differently again. The model's baseline preference, whatever it happens to be, never gets to cast every unspecified request as if the world only has one region in it.
This isn't a filter bolted onto the output. It's a clause composed into the prompt before generation runs, the same layer that already handles lens character, film stock emulation, and lighting key. Ethnicity is cinema-grade input like everything else in that system, not an afterthought tacked onto a demographic checkbox.
Two explicit ways to opt out, on purpose
A regional default is still a default, and defaults are wrong exactly often enough to need an escape hatch. So the field also accepts unspecified, which drops the clause entirely and lets the model do whatever it would have done on its own, and ambiguous, which is useful for ensemble shots where you deliberately want the model to vary faces across a crowd rather than lock to one category. Neither of those is a fallback path bolted on for edge cases. They're first-class values in the same enum as every named region, because a caster who wants to override a default should never have to fight the tool to do it.
The header lesson we already had to learn once
Geography detection has a sharp edge we'd already hit before this feature existed: the platform sits behind Cloudflare in front of Vercel, and for a while our currency detection read the wrong header, so a signup from India got priced and geo-cast as if it originated from wherever Vercel's edge node happened to be, not where the request actually came from. We fixed that by reading cf-ipcountry ahead of the Vercel-native header, and we carried that exact precedence into the casting default too, with the same header order and the same explicit skip for the sentinel values a CDN emits when it genuinely doesn't know. Casting a shot from the correct region only matters if you can actually tell what region the request came from. We weren't going to ship a demographic default on top of a geography signal we'd already caught lying once.
None of this makes the casting choice for you. It just means the choice VisionX makes when you don't specify one looks like your market instead of a stranger's average of the internet, and it stays that way even as the infrastructure in front of the app changes.