From 0022f52e338e059deffb54a58204d116dfad3c0e Mon Sep 17 00:00:00 2001 From: Tomer Shlasky Date: Wed, 7 Oct 2026 10:24:07 +0000 Subject: [PATCH 1/2] feat: add lucy-vton-3.6 (realtime + batch) at 720p Mirrors DecartAI/sdk#217. The model is already served in production; this only makes it reachable through the typed SDK surface. - 1280x720 on both surfaces, fps 30 realtime / 20 video. - No supported_speeds: lucy-vton-3.6 is not offered on the fast tier, so FAST_REALTIME_MODELS is deliberately unchanged. - lucy-vton-latest still resolves to lucy-vton-3.5; 3.6 is opt-in by name. --- decart/models.py | 18 ++++++++++++++++++ playground/playground.py | 1 + tests/test_models.py | 16 ++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/decart/models.py b/decart/models.py index 9ce5317..14fb6d9 100644 --- a/decart/models.py +++ b/decart/models.py @@ -9,6 +9,7 @@ "lucy-2.1", "lucy-2.5", "lucy-vton-3.5", + "lucy-vton-3.6", "lucy-restyle-2", # Latest aliases (server-side resolution) "lucy-latest", @@ -21,6 +22,7 @@ "lucy-2.1", "lucy-2.5", "lucy-vton-3.5", + "lucy-vton-3.6", "lucy-restyle-2", # Latest aliases (server-side resolution) "lucy-latest", @@ -246,6 +248,14 @@ class ImageToImageInput(DecartBaseModel): height=720, supported_speeds=("fast",), ), + # No supported_speeds: lucy-vton-3.6 is not offered on the fast tier. + "lucy-vton-3.6": ModelDefinition( + name="lucy-vton-3.6", + url_path="/v1/stream", + fps=30, + width=1280, + height=720, + ), "lucy-restyle-latest": ModelDefinition( name="lucy-restyle-latest", url_path="/v1/stream", @@ -288,6 +298,14 @@ class ImageToImageInput(DecartBaseModel): height=720, input_schema=VideoEdit2Input, ), + "lucy-vton-3.6": ModelDefinition( + name="lucy-vton-3.6", + url_path="/v1/jobs/lucy-vton-3.6", + fps=20, + width=1280, + height=720, + input_schema=VideoEdit2Input, + ), "lucy-restyle-2": ModelDefinition( name="lucy-restyle-2", url_path="/v1/jobs/lucy-restyle-2", diff --git a/playground/playground.py b/playground/playground.py index e17ebc5..eb6c8f2 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.5", + "lucy-vton-3.6", "lucy-vton-latest", "lucy-restyle-2", ] diff --git a/tests/test_models.py b/tests/test_models.py index 3e1ada2..82814ac 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -32,6 +32,15 @@ def test_canonical_realtime_models() -> None: assert model.width == 1280 assert model.height == 720 + model = models.realtime("lucy-vton-3.6") + assert model.name == "lucy-vton-3.6" + assert model.url_path == "/v1/stream" + assert model.fps == 30 + assert model.width == 1280 + assert model.height == 720 + # 3.6 is not offered on the fast tier, unlike 3.5. + assert model.supported_speeds == () + def test_canonical_video_models() -> None: model = models.video("lucy-clip") @@ -59,6 +68,13 @@ def test_canonical_video_models() -> None: assert model.width == 1280 assert model.height == 720 + model = models.video("lucy-vton-3.6") + assert model.name == "lucy-vton-3.6" + assert model.url_path == "/v1/jobs/lucy-vton-3.6" + 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" From 815dc67e4557e328eff0590a43586a9f2b89d0e0 Mon Sep 17 00:00:00 2001 From: Tomer Shlasky Date: Wed, 7 Oct 2026 11:39:59 +0000 Subject: [PATCH 2/2] chore: drop the comment explaining an absent field Per review: supported_speeds is simply not set for lucy-vton-3.6, so a comment saying so is state that can go stale without anything catching it. --- decart/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/decart/models.py b/decart/models.py index 14fb6d9..7d1bab9 100644 --- a/decart/models.py +++ b/decart/models.py @@ -248,7 +248,6 @@ class ImageToImageInput(DecartBaseModel): height=720, supported_speeds=("fast",), ), - # No supported_speeds: lucy-vton-3.6 is not offered on the fast tier. "lucy-vton-3.6": ModelDefinition( name="lucy-vton-3.6", url_path="/v1/stream",