A Line Drawn Through the Middle of Every Frame
The workshop can put generated images on screen, and it routes every one of them through the family image engine rather than calling a provider itself — the same ownership rule as voice. But the interesting constraint is not where the images come from. It is what they are allowed to depict.
Every frame in a render falls into one of three categories, and the categories do not mix. Factual frames render from code and data — names, numbers, structures, anything a viewer could be misled by. Application visuals are real screenshots of live software, never mockups. Generated art carries mood and transitions only.
The hard gate sits on that third category: an art card that grows readable fake interface elements, invented application names, or numbers gets rejected outright. Not softened, not labeled — rejected and regenerated. The reasoning is that the claim "everything factual on this screen is real" is indivisible. One blurred boundary does not cost you that one frame; it costs the credibility of every other frame, because the viewer now has to wonder about each one.
Judging Generated Output Without Fooling Yourself
Generated images need acceptance criteria, because "does it look good" is not a decision procedure. The layered version that works looks like this:
Hard gates come first and are non-negotiable: text must be letter-perfect at full resolution, anatomy must survive inspection, and there must be no factual pollution. Any failure is a regeneration, with no discussion, because these are the failures a viewer notices instantly.
Measured checks come next, and the key move is to judge at delivery size. A card evaluated at full resolution on a large display is being judged under conditions no viewer will ever experience. Downscale it to the size and dwell time it actually gets. Things that looked fine at full size collapse; things that looked slightly rough turn out to be invisible.
Comparative selection comes last, and it is the one that changes results most. Absolute quality judgment is unreliable — asking "is this good?" gets you an answer shaped by what you were hoping for. Relative ranking is far more robust. So generate several candidates per slot, rank them against the criteria, ship the winner, and log every loser with its failure reason, which is what makes the taste auditable later.