From e7cce1bb1b334c4f00b0e1dfbcc7346a2a4323c0 Mon Sep 17 00:00:00 2001 From: Adir Amsalem Date: Thu, 23 Oct 2025 23:13:45 +0300 Subject: [PATCH] feat: support 'mirage_v2' realtime model --- decart/models.py | 10 +++++++++- examples/realtime_file.py | 2 +- examples/realtime_synthetic.py | 2 +- tests/test_models.py | 7 +++++++ tests/test_realtime_unit.py | 8 ++++++++ uv.lock | 2 +- 6 files changed, 27 insertions(+), 4 deletions(-) diff --git a/decart/models.py b/decart/models.py index b1a2c88..e553f45 100644 --- a/decart/models.py +++ b/decart/models.py @@ -4,7 +4,7 @@ from .types import FileInput -RealTimeModels = Literal["mirage", "lucy_v2v_720p_rt"] +RealTimeModels = Literal["mirage", "mirage_v2", "lucy_v2v_720p_rt"] VideoModels = Literal[ "lucy-dev-i2v", "lucy-dev-v2v", @@ -86,6 +86,14 @@ class ImageToImageInput(DecartBaseModel): height=704, input_schema=BaseModel, ), + "mirage_v2": ModelDefinition( + name="mirage_v2", + url_path="/v1/stream", + fps=12, + width=1280, + height=704, + input_schema=BaseModel, + ), "lucy_v2v_720p_rt": ModelDefinition( name="lucy_v2v_720p_rt", url_path="/v1/stream", diff --git a/examples/realtime_file.py b/examples/realtime_file.py index 5bc929b..9e899c8 100644 --- a/examples/realtime_file.py +++ b/examples/realtime_file.py @@ -46,7 +46,7 @@ async def main(): print("Creating Decart client...") async with DecartClient(api_key=api_key) as client: - model = models.realtime("mirage") + model = models.realtime("mirage_v2") print(f"Using model: {model.name}") frame_count = 0 diff --git a/examples/realtime_synthetic.py b/examples/realtime_synthetic.py index e12c159..f7402fe 100644 --- a/examples/realtime_synthetic.py +++ b/examples/realtime_synthetic.py @@ -73,7 +73,7 @@ async def main(): print("Creating synthetic video track...") video_track = SyntheticVideoTrack() - model = models.realtime("mirage") + model = models.realtime("mirage_v2") print(f"Using model: {model.name}") print(f"Model config - FPS: {model.fps}, Size: {model.width}x{model.height}") diff --git a/tests/test_models.py b/tests/test_models.py index 80a00fe..0db0a3e 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -10,6 +10,13 @@ def test_realtime_models() -> None: assert model.height == 704 assert model.url_path == "/v1/stream" + model = models.realtime("mirage_v2") + assert model.name == "mirage_v2" + assert model.fps == 12 + assert model.width == 1280 + assert model.height == 704 + assert model.url_path == "/v1/stream" + def test_video_models() -> None: model = models.video("lucy-pro-t2v") diff --git a/tests/test_realtime_unit.py b/tests/test_realtime_unit.py index 73efdc7..fabcfb9 100644 --- a/tests/test_realtime_unit.py +++ b/tests/test_realtime_unit.py @@ -28,6 +28,14 @@ def test_realtime_models_available(): assert model.fps == 25 assert model.width == 1280 assert model.height == 704 + assert model.url_path == "/v1/stream" + + model2 = models.realtime("mirage_v2") + assert model2.name == "mirage_v2" + assert model2.fps == 12 + assert model2.width == 1280 + assert model2.height == 704 + assert model2.url_path == "/v1/stream" model2 = models.realtime("lucy_v2v_720p_rt") assert model2.name == "lucy_v2v_720p_rt" diff --git a/uv.lock b/uv.lock index dacbc40..e91c9d0 100644 --- a/uv.lock +++ b/uv.lock @@ -900,7 +900,7 @@ wheels = [ [[package]] name = "decart" -version = "0.0.3" +version = "0.0.4" source = { editable = "." } dependencies = [ { name = "aiofiles" },