feat(novita): add Vidu Q1/Q2/Q3 request shapes - #17
Merged
Conversation
Nine new NovitaRequestShape variants covering the Vidu video family on
Novita's async media proxy, shared where request bodies are identical
(the two Q2 img2video tiers, the Q2 subject/reference pair, and each Q3
task across its turbo/pro tiers):
- ViduQ1{TextToVideo,ImageToVideo,ReferenceToVideo}
- ViduQ2{TextToVideo,ImageToVideo,SubjectToVideo}
- ViduQ3{TextToVideo,ImageToVideo,FirstLastToVideo}
build_body:
- remaps RouterBase's `image_urls` array onto Vidu's native `images`
field (start-end frames keep [start, end] order);
- makes `prompt` optional for the i2v / start-end shapes (the source
image carries the intent) while every other shape still requires it;
- forwards `subjects[]` verbatim for reference/subject video;
- never forwards `off_peak` — RouterBase always charges the peak rate.
Covered by six build_body unit tests.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
I have read the Contributor License Agreement (CLA) and hereby sign the CLA. You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
duanbing
added a commit
that referenced
this pull request
Aug 9, 2026
Commit 141516f ("chore: build docker images", Jan 26) sed-replaced `github.repository == 'tensorzero/tensorzero'` with 'RouterBase/tensorzero' across 24 workflow files while wiring up the gateway container build. That guard is upstream's fork killswitch — the mechanism by which tensorzero/tensorzero keeps its org-only machinery from running in anyone else's copy. Rewriting the org name turned all of it on in a fork that has none of the matching secrets: - Batch Inference Completion-time Cron, hourly: 23/23 runs failing on an empty OPENAI_API_KEY. - Live Batch Tests (daily) and Scheduled Optimization Tests (daily + weekly): failing, ~29 minutes of runner time each. - Two crons at */5 (auto-approve trusted PR workflows, cancel merge queue on job failure): ~576 no-op runs a day for a fork with no merge queue. - On our own PRs: CLAAssistant, which signs contributors against upstream's CLA, and the CI-bot feedback job, which wants Tailscale and ClickHouse credentials. Both red on #17-#22. Restore the upstream string in all 63 guards. Every upstream job now self-skips here, and because this is upstream's own text, future syncs conflict less rather than more. Nothing we depend on is lost: the gateway image comes from RouterBase's ci.yml, which builds this submodule directly; the fork's build-gateway-container pushes to ghcr.io/RouterBase/tensorzero, which nothing references. Add routerbase-fork-ci.yml to fill the gap that leaves — see the header comment there for what it does and does not check.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds nine
NovitaRequestShapevariants for the Vidu video family on the Novita async media proxy, shared where request bodies are identical (Q2 pro/turbo img2video, the Q2 subject/reference pair, and each Q3 task across turbo/pro tiers).build_bodybehaviorimage_urlsarray onto Vidu's nativeimagesfield; start-end (f2v) keeps[start, end]order.promptis optional for the i2v / start-end shapes (the source image carries intent); required for every other shape.subjects[]forwarded verbatim for reference/subject video.off_peakis never forwarded — RouterBase always charges Vidu's peak rate (matches how fal.ai / wavespeed.ai price Vidu).Tests — six
build_bodyunit tests: image→imagesremap, start-end ordering, prompt optional/required,off_peakexclusion,subjectspassthrough.Paired with the RouterBase-side seed migration,
request_shape_for()rows, regeneratedtensorzero.toml, and docs.🤖 Generated with Claude Code