Routing and fallback
Routed per shot; one vendor fails, the next takes it
Shots inside one episode are never the same kind of job. So routing happens per shot, not per project: each shot filters for the vendors that can actually do it, ranks them by value, and moves down the list on failure. It drops to the built-in preview only when the list is exhausted. This page walks the whole chain.
Why per shot
Shots in one episode ask for very different things
The two-second close-up that opens it. The over-the-shoulder in the middle that has to match the next shot's first frame. The two-hander at the end where both faces must match their own reference images. Those ask completely different things of a model, and no single vendor is best at all three. Betting the whole film on one vendor means the shots it is worst at have to make do. So every render picks again, and it picks on what that shot actually needs.
One prompt, two models
Same sentence to both. Not the same film back.
This section does not pick a winner. One prompt, one aspect ratio, two vendors, and what each handed back sits here exactly as it arrived. You can see the difference for yourself — and that difference is the whole reason routing happens per shot.
A convenience store sign on a rainy night, reflected in the standing water, camera pushing in slowly. 9:16.
The catalog has it at 1 to 15 seconds, so five sits comfortably inside its range. Its per-second cost is calibrated against the published rate ($0.080/s), which means value-based ranking has a real number to divide by instead of a neutral placeholder.
It accepts only 4, 6 or 8 seconds, so this clip is four — not a preference, that is where its range starts. It is also one of the few in the catalog that can be handed an end frame, which puts it first when a shot has to match the one after it. Its per-second cost has no published source yet, so it counts as uncalibrated and sorts last under cost-first ordering.
- Both clips are AI-generated footage. They are raw output from the shot-render stage, upstream of the assembly stage that burns the badge in — so this sentence is the disclosure.
- The lengths differ because the vendors' own duration ranges differ, not because we chose them. Making the mode's total running time add up is the line's problem, not yours.
- Both carry a native audio track. They start muted; unmute in the player if you want to hear them.
We are not handing out a trophy
Five vendors in the catalog. Every shot filters for what it actually needs, then ranks the survivors by value. Which vendor suits which kind of shot gets settled by data off the line. Us picking a favourite on our own marketing page would be exactly the move we refuse to believe when a vendor does it.
Capability filter
First find who can do the job, then argue about value
The filter is about capability, not preference. If a vendor's shortest clip is four seconds, a two-second shot should not go to it. You would just get a clip of the wrong length and have to redo it.
Reference image
Whether this shot has to be anchored to a character or set that is already locked. A vendor without image-to-video is out at this step.
How the reference is fed
Some vendors only accept a publicly reachable address, others take it inline. When we only hold a local file, an address-only vendor degrades to plain text-to-video and consistency is lost, so it sorts lower.
End frame
Shots that must join onto the next one need a specified end frame. Not many vendors do this; the ones that do sort higher.
Multiple subjects
Two people in frame, each having to match their own reference, needs several reference images anchored separately.
Duration range
Vendors differ in the lengths they will produce. An ad spot is built out of one-to-three-second shots, and that alone rules out half the field.
Aspect
Vertical 9:16 is the default for drama, but not every vendor supports every aspect.
- End frame and multiple subjects are preferences, not requirements: a vendor without them sorts lower rather than being removed. Otherwise a shot needing an end frame would have nobody at all in an environment with only one vendor connected.
- If filtering on duration and aspect leaves nothing at all, we relax to “anything usable” and let it truncate. Still better than dropping straight to fallback.
Three orderings
The cheapest is not necessarily the best value
How the surviving candidates get ordered is configurable. The default is value.
ValueDefault
Composite score divided by cost per second. A cheap model that fails one time in three is, once you count retries and your waiting, more expensive. A vendor whose cost is not yet calibrated falls back to being judged on quality alone, rather than being treated as free.
Quality
The composite score from our own production data, price ignored. For work where the finished film matters more than the bill.
Cost
Cheapest per second first. Anything without a published rate counts as uncalibrated and sorts last. Something whose price you do not know should not win by default, and we will not invent a number for it.
After a failure
Move on or try again, depending on why it failed
Vendors bury the reason in free text; not one of them returns a structured code. We fold them into a single table, and the test is one question: could trying again possibly help?
Worth retrying: wait and go again
- Rate limited
- Request timed out
- Network dropped
- Output download failed
- Vendor-side error
- Response was not the expected shape
Not worth retrying: move on now
- Refused by content moderation
- No credentials configured
- Authentication rejected
- Invalid parameters
- Vendor cannot do this job
- Vendor account out of credit
- Backoff is linear, not exponential: three seconds after the first failure, six after the second, and the third moves on. At most three attempts per vendor.
- A moderation refusal returns the same answer however many times you ask, which is why it sits in the move-on column — it is the class that most needs to leave immediately. Chinese refusal wording used to match nothing at all, so every refusal burned all three attempts before falling back; both languages now live in the same table.
- An unrecognised failure counts as retryable. Better one wasted attempt than writing off a shot that would have worked.
- When a shot did switch vendors, the interface says which one it came from.
Fallback
Even with everything down, a film still ships
The fallback is an exception path, not the normal one. It is reached only after every candidate has been tried and failed. But it has to exist, or “one click and it renders” is an empty promise on any day a vendor misbehaves.
Footage
Only once the candidate list is exhausted does it drop to the built-in preview. You always come away with usable footage, and you can see which shots came from the fallback.
Voice
There has to be an audio track even with every external vendor down, a silent one if necessary. Otherwise the assembly step cannot line the picture up with the sound, and the whole film is wasted.
Reference images
Images have no built-in fallback, because a character sheet cannot be faked. So total failure means that one item is skipped. The line itself does not stop, and the later stages carry on.
The fallback is never billed
Anything served by a built-in implementation is not billed. But every attempt still writes a usage record, including the failed ones, at zero units. Both things have to hold at once: invisible on your bill, present in the denominator of the success rate.
Draft grade never enters this chain at all
Drafts always run on the built-in preview: no external model, no money, no queue. Every round of storyboard fixes runs there, and only the final render actually sends work out. That saves far more than squeezing unit prices, because what it saves is money that should never have been spent.
You never touch a single switch on this chain
Which vendor, what to do on failure, when to fall back. That is the line's internal business. Your part is pressing run and watching the console.
