Fallback is opt-in
fallback defaults to false. In the first release, each image/video item can try one eligible low-cost channel and, with fallback enabled, one official channel. Each item has at most two generation attempts.
With fallback off, an unavailable low-cost route does not silently become a more expensive official call. With fallback on, the official route must support the full input before acceptance.
Compatibility before price
Providers can use different field names, units, enums, and supported combinations for the same model. APIstable maps a versioned public schema to each eligible provider. Renaming duration_seconds to seconds is a mapping; dropping audio or changing resolution is not.
| Requested capability | Channel behavior |
|---|---|
| 5 seconds at 720p | Accept only channels supporting the exact combination. |
| Audio enabled | Exclude channels that cannot produce audio. |
| Fixed seed | Do not silently remove or substitute it. |
| Official route incompatible | Reject fallback=true before acceptance. |
A timeout is not a safe failure
A confirmed rejection before acceptance or an eligible terminal provider failure can trigger fallback. An unknown submission, running generation, content-policy rejection, or invalid input cannot be treated as a free pass to submit elsewhere.
Unknown results enter reconciliation. If a final decision releases the credits, a late success cannot silently recharge the account.