diff --git a/decart/models.py b/decart/models.py index b4de4df..97aa076 100644 --- a/decart/models.py +++ b/decart/models.py @@ -10,6 +10,7 @@ "lucy-2.5", "lucy-vton-2", "lucy-vton-3", + "lucy-vton-3.5", "lucy-restyle-2", # Latest aliases (server-side resolution) "lucy-latest", @@ -25,6 +26,7 @@ "lucy-2.5", "lucy-vton-2", "lucy-vton-3", + "lucy-vton-3.5", "lucy-restyle-2", # Latest aliases (server-side resolution) "lucy-latest", @@ -205,12 +207,13 @@ class ImageToImageInput(DecartBaseModel): width=1088, height=624, ), + # Server-side alias currently resolves to lucy-vton-3.5. "lucy-vton-latest": ModelDefinition( name="lucy-vton-latest", url_path="/v1/stream", fps=30, - width=1088, - height=624, + width=1280, + height=720, ), "lucy-vton-2": ModelDefinition( name="lucy-vton-2", @@ -226,6 +229,13 @@ class ImageToImageInput(DecartBaseModel): width=1088, height=624, ), + "lucy-vton-3.5": ModelDefinition( + name="lucy-vton-3.5", + url_path="/v1/stream", + fps=30, + width=1280, + height=720, + ), "lucy-2.1-vton-2": ModelDefinition( name="lucy-2.1-vton-2", url_path="/v1/stream", @@ -283,6 +293,14 @@ class ImageToImageInput(DecartBaseModel): height=624, input_schema=VideoEdit2Input, ), + "lucy-vton-3.5": ModelDefinition( + name="lucy-vton-3.5", + url_path="/v1/jobs/lucy-vton-3.5", + fps=20, + width=1280, + height=720, + input_schema=VideoEdit2Input, + ), "lucy-2.1-vton-2": ModelDefinition( name="lucy-2.1-vton-2", url_path="/v1/jobs/lucy-2.1-vton-2", @@ -308,12 +326,13 @@ class ImageToImageInput(DecartBaseModel): height=624, input_schema=VideoEdit2Input, ), + # Server-side alias currently resolves to lucy-vton-3.5. "lucy-vton-latest": ModelDefinition( name="lucy-vton-latest", url_path="/v1/jobs/lucy-vton-latest", fps=20, - width=1088, - height=624, + width=1280, + height=720, input_schema=VideoEdit2Input, ), "lucy-restyle-latest": ModelDefinition( diff --git a/playground/playground.py b/playground/playground.py index 9cb12c9..f8421c8 100644 --- a/playground/playground.py +++ b/playground/playground.py @@ -60,6 +60,7 @@ def _check_deps() -> None: "lucy-2.1", "lucy-2.5", "lucy-vton-3", + "lucy-vton-3.5", "lucy-restyle-2", ] diff --git a/tests/test_models.py b/tests/test_models.py index c279678..1f02afb 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -39,6 +39,13 @@ def test_canonical_realtime_models() -> None: assert model.width == 1088 assert model.height == 624 + model = models.realtime("lucy-vton-3.5") + assert model.name == "lucy-vton-3.5" + assert model.url_path == "/v1/stream" + assert model.fps == 30 + assert model.width == 1280 + assert model.height == 720 + def test_deprecated_realtime_models() -> None: _warned_aliases.clear() @@ -85,6 +92,13 @@ def test_canonical_video_models() -> None: assert model.width == 1088 assert model.height == 624 + model = models.video("lucy-vton-3.5") + assert model.name == "lucy-vton-3.5" + assert model.url_path == "/v1/jobs/lucy-vton-3.5" + assert model.fps == 20 + assert model.width == 1280 + assert model.height == 720 + model = models.video("lucy-restyle-2") assert model.name == "lucy-restyle-2" assert model.url_path == "/v1/jobs/lucy-restyle-2" @@ -150,8 +164,8 @@ def test_latest_realtime_models() -> None: assert model.name == "lucy-vton-latest" assert model.url_path == "/v1/stream" assert model.fps == 30 - assert model.width == 1088 - assert model.height == 624 + assert model.width == 1280 + assert model.height == 720 model = models.realtime("lucy-restyle-latest") assert model.name == "lucy-restyle-latest" @@ -173,8 +187,8 @@ def test_latest_video_models() -> None: assert model.name == "lucy-vton-latest" assert model.url_path == "/v1/jobs/lucy-vton-latest" assert model.fps == 20 - assert model.width == 1088 - assert model.height == 624 + assert model.width == 1280 + assert model.height == 720 model = models.video("lucy-restyle-latest") assert model.name == "lucy-restyle-latest"