Skip to content

feat: remove legacy lucy-clip model ID (and lucy-clip-latest, lucy-pro-v2v) - #74

Merged
AdirAmsalem merged 2 commits into
mainfrom
conductor/remove-lucy-clip-python
Oct 14, 2026
Merged

AdirAmsalem merged 2 commits into
mainfrom
conductor/remove-lucy-clip-python

Conversation

@AdirAmsalem

@AdirAmsalem AdirAmsalem commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Removes the legacy Lucy Clip model from the SDK. Mirrors DecartAI/sdk#223 and follows the same pattern as #68 (retired lucy-vton-2 / lucy-vton-3 IDs).

  • decart/models.py: removes lucy-clip, the lucy-clip-latest alias and the deprecated lucy-pro-v2v alias from VideoModels, MODEL_ALIASES and the video registry, plus the lucy-clip line in the models.video() docstring.
  • Removes VideoToVideoInput. Only these three IDs used it, and it was never exported from the decart package.
  • Video-to-video samples (DecartClient and QueueClient docstrings, README.md, examples/process_video.py, examples/process_url.py, examples/queue_example.py, examples/README.md, test_ui.py) now use lucy-latest. queue_example.py no longer passes the lucy-clip-specific "resolution": "480p", so it uses the model's default resolution.
  • Tests: removed the coverage for the three IDs. The generic queue tests now use lucy-latest, including the expected /v1/jobs/lucy-latest URL and the Invalid inputs for lucy-latest message. The "deprecation warning only once" test now uses lucy-restyle-v2v.

The lucy-clip removal changes no other models, aliases, geometry or input schemas. The separate geometry fix is described below.

Compatibility

models.video("lucy-clip"), models.video("lucy-clip-latest") and models.video("lucy-pro-v2v") no longer resolve. They raise ModelNotFoundError and fail type checking against VideoModels. Use lucy-latest or lucy-2.5 instead. Note that these take the same input fields as lucy-2.1 (prompt, data, optional reference_image, seed, resolution, enhance_prompt). Unlike lucy-clip, they accept an empty prompt.

Also in this PR

fix(models): lucy-2.1 and lucy-latest capture at 1280x720 on the realtime and video surfaces (separate commit, mirrors DecartAI/sdk#215)

  • decart/models.py: the realtime and video entries for lucy-2.1 and lucy-latest change from 1088x624 to 1280x720, the geometry lucy-2.5 already has (lucy-latest resolves server-side to lucy-2.5). fps is unchanged.
  • tests/test_models.py: the four 1088x624 assertions now expect 1280x720. New assertions check that lucy-latest matches lucy-2.5's width and height on both surfaces.
  • A comparison of every model's width, height and fps against the JS SDK registry found only these four mismatches, so nothing else changes. No README, example or docs text mentions the old geometry.

Test plan

Run on the branch head, with both commits:

  • uv run pytest tests/ -v: 132 passed
  • uv run black --check decart/ tests/ examples/: 42 files unchanged
  • uv run ruff check decart/ tests/ examples/: all checks passed
  • uv build + twine check: passed
  • python -m py_compile on every file in examples/ and on test_ui.py: ok
  • uv run mypy decart/: 37 errors, the same as on main (CI runs it with continue-on-error). None are in models.py.
  • Searching the repo for lucy-clip, lucy_clip, lucy-pro-v2v and VideoToVideoInput finds no matches. Searching for 1088 / 624 finds no matches either.
  • The updated examples were not run against the live API. Only their syntax was checked.

Note

Medium Risk
Breaking change: existing integrations using lucy-clip, lucy-clip-latest, or lucy-pro-v2v will fail at runtime and type-check time until they migrate to lucy-latest or lucy-2.5.

Overview
Removes legacy video model IDs lucy-clip, lucy-clip-latest, and lucy-pro-v2v from the SDK model registry, VideoModels typing, and MODEL_ALIASES. Calls to models.video() with those names now raise ModelNotFoundError instead of resolving (including the old lucy-pro-v2v → lucy-clip deprecation path).

The VideoToVideoInput schema and all registry entries that used it are deleted; remaining video edit models keep VideoEdit2Input / VideoRestyleInput.

Docs, examples, Gradio test UI, and tests are updated to use lucy-latest for generic video-to-video samples. queue_example.py no longer passes resolution: "480p", which was tied to the removed clip model.

Reviewed by Cursor Bugbot for commit 1d38ce5. Bugbot is set up for automated code reviews on this repo. Configure here.

…o-v2v)

Drops lucy-clip, its lucy-clip-latest alias, and the deprecated
lucy-pro-v2v alias from VideoModels, MODEL_ALIASES and the video
registry, along with the now-orphaned (unexported) VideoToVideoInput
schema. Docstrings, README, examples and test_ui.py switch to
lucy-latest; queue tests do the same, and the deprecation-warning
tests now exercise lucy-restyle-v2v.
…time and video surfaces

Mirrors DecartAI/sdk#215. The realtime and video entries for lucy-2.1
and lucy-latest move from 1088x624 to 1280x720, the geometry lucy-2.5
already carries (lucy-latest resolves server-side to lucy-2.5). fps is
unchanged. Tests pin 1280x720 and assert lucy-latest matches lucy-2.5
on each surface.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7f10492. Configure here.

Comment thread decart/models.py
width=1088,
height=624,
width=1280,
height=720,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorrect lucy-2.1 native geometry

Medium Severity

lucy-2.1 realtime and video entries now advertise 1280x720, which is lucy-2.5's native size. lucy-2.1 remains 1088x624 in the JS and iOS SDKs, and this repo previously kept that geometry when lucy-2.5 was corrected. Clients that size capture from model.width and model.height will send the wrong frame size.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 7f10492. Configure here.

@AdirAmsalem
AdirAmsalem merged commit 454f7aa into main Oct 14, 2026
9 checks passed
@AdirAmsalem
AdirAmsalem deleted the conductor/remove-lucy-clip-python branch October 14, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant