Atlas image-to-video must select the image-to-video model - #26
Merged
Conversation
Follow-up to #13. Atlas Cloud exposes image-to-video as its own model id (bytedance/seedance-2.0/image-to-video), and the text-to-video model's published schema has no `image` field — so the previous default (always text-to-video, image attached anyway) made the default-config image-to-video path ship a video that ignores the first frame, or get rejected, without any error naming the cause. GENERATE's character-consistency flow (locked portrait -> i2v) rides exactly that path. - Default the model by task type: image_url present -> the i2v model id, absent -> text-to-video, explicit model/config always wins. - Fail closed on an explicit mismatch, naming the fix in the error: a text-to-video model given a first frame would silently produce a wrong delivery, and an image-to-video model without a frame cannot run at all. Verified: build green; 218 tests pass — the prior test that pinned the broken combination (image + t2v default) now pins the i2v default, plus new cases for the no-image default and both mismatch refusals. Model ids and the schema difference confirmed against the Atlas model pages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VL7mRpmEphLAbcH7YmABnV
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.
Follow-up to #13, as flagged in the review comment. Independent of the #14–#25 sync stack (branched off current main).
The defect
Atlas exposes image-to-video as its own model id (
bytedance/seedance-2.0/image-to-video), and the text-to-video model's schema has noimagefield. #13 defaulted to the t2v id unconditionally and attachedimageanyway — so the default-config i2v path either gets rejected or silently ships a video that ignores the first frame. GENERATE's character-consistency flow (locked portrait → i2v) rides exactly that path.The fix
image_urlpresent →bytedance/seedance-2.0/image-to-video; absent →bytedance/seedance-2.0/text-to-video. An explicitmodel(param or config) always wins.Verification
Build green; 218 tests pass. The prior test that pinned the broken combination (image + t2v default) now pins the i2v default; new cases cover the no-image default and both mismatch refusals. Model ids and the schema difference verified against the Atlas model pages linked above.
Known remaining nits from the #13 review (out of scope here):
data.errordetail dropped on a failed poll; the no-provider error message still saysprovider=doubao;ratio: "adaptive"/duration: -1/-SRresolutions not expressible through the current param enums.🤖 Generated with Claude Code
https://claude.ai/code/session_01VL7mRpmEphLAbcH7YmABnV