Skip to content

feat: fast mode on lucy-vton-3.6; lucy-vton-latest resolves to 3.6 - #34

Merged
tomershlasky merged 1 commit into
mainfrom
vton-3-6-fast-latest
Oct 12, 2026
Merged

tomershlasky merged 1 commit into
mainfrom
vton-3-6-fast-latest

Conversation

@tomershlasky

@tomershlasky tomershlasky commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Mirrors the JS SDK (DecartAI/sdk) for two API-side changes:

  1. Fast mode on lucy-vton-3.6 (realtime only). The API now serves 3.6 on the fast tier, billed at 2x like 3.5. RealtimeModels.LUCY_VTON_3_6 now advertises supportedSpeeds = setOf(Speed.FAST), the same as 3.5.
  2. lucy-vton-latest now resolves server-side to lucy-vton-3.6 (it used to resolve to 3.5). Geometry is the same (realtime 1280x720@30, video 1280x720@20), so only comments and tests change for this part. 3.6 is no longer something you have to pick by name to get.

Changes

  • RealtimeModels.kt: LUCY_VTON_3_6 gets setOf(Speed.FAST). The latest-aliases comment now notes lucy-vton-latest -> lucy-vton-3.6.
  • VideoModels.kt: same note on the latest-aliases comment. Video models have no speed tiers, so nothing else changes here.
  • RealTimeClient.kt: the Speed KDoc lists the new fast set.
  • RealtimeModelsTest.kt: the fast-capability pin test now includes 3.6, so the set is lucy-2.5, lucy-latest, lucy-vton-3.5, lucy-vton-3.6 and lucy-vton-latest. The test is renamed to match, and the lucy-vton-latest geometry comment now points at 3.6.
  • RealTimeClientUrlTest.kt: LUCY_VTON_3_6 + Speed.FAST is now covered by the "does not warn" case.
  • README.md: the fast-mode prose lists the new fast set.

No public API shape changes and no version bump.

Verification

  • Ran ./gradlew :sdk:testDebugUnitTest locally (JDK 17 Corretto, Android SDK platform 35): BUILD SUCCESSFUL, 194 tests, 0 failures, 0 skipped. That includes the updated pin test and the URL/warning tests.
  • The repo has no CI workflows and no ktlint, detekt or spotless config, so no lint ran.
  • Not tested against a live backend or on a device.

Server-side

  • Fast mode for lucy-vton-3.6 is already live on the API.
  • The lucy-vton-latest → 3.6 alias change is rolling out on the API separately. This PR only changes docs/comments for the alias (geometry and fast capability are identical for 3.5 and 3.6), so merge order doesn't matter.

Note

Low Risk
Registry metadata, docs, and tests only; billing behavior for fast mode follows existing patterns for other VTON models.

Overview
Aligns the Android SDK with backend changes for lucy-vton-3.6 and the lucy-vton-latest alias.

RealtimeModels.LUCY_VTON_3_6 now advertises Speed.FAST in supportedSpeeds (same as 3.5), so ConnectOptions.speed = Speed.FAST is treated as supported and no longer triggers the unsupported-speed warning for that model. README and Speed KDoc list lucy-vton-3.6 / lucy-vton-latest among fast-tier models (2× billing, US only).

Comments in RealtimeModels and VideoModels now state that lucy-vton-latest resolves server-side to lucy-vton-3.6 (was 3.5); output geometry is unchanged. Unit tests pin the fast-capability set and cover LUCY_VTON_3_6 + FAST in the no-warning path.

No new public API surface or version bump.

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


Companion PRs (lucy-vton-3.6: fast mode + lucy-vton-latest → 3.6)

Mirrors the JS SDK. The API now serves lucy-vton-3.6 on the fast tier,
billed at 2x like 3.5, and lucy-vton-latest moves from lucy-vton-3.5 to
lucy-vton-3.6 server-side.

- RealtimeModels.LUCY_VTON_3_6 advertises supportedSpeeds = setOf(Speed.FAST).
- Fast set is now lucy-2.5, lucy-latest, lucy-vton-3.5, lucy-vton-3.6,
  lucy-vton-latest; Speed KDoc, README and the capability pin test updated.
- lucy-vton-latest geometry is unchanged (realtime 1280x720@30, video
  1280x720@20), so only comments/tests reflect the new resolution target.
tomershlasky added a commit to DecartAI/sdk that referenced this pull request Oct 12, 2026
…lves to 3.6 (#222)

## Description

Two updates for `lucy-vton-3.6`, now that the API supports them:

1. **Fast mode on `lucy-vton-3.6`.** The realtime registry entry gains
`supportedSpeeds: ["fast"]`. The API already serves 3.6 on the fast
tier, billed at 2x the standard realtime rate like 3.5. Without this
change, `speed: "fast"` on 3.6 logs a "model does not list it" warning.
This applies to realtime only; batch has no speed tier.
2. **`lucy-vton-latest` → `lucy-vton-3.6`.** The alias resolves
server-side, so the SDK only updates comments, docs and test names. 3.5
and 3.6 have identical geometry: realtime 1280x720 at `{ideal: 30, max:
30}`, video 1280x720 at 20 fps. The alias entries keep their values, and
`lucy-vton-latest` keeps `supportedSpeeds: ["fast"]`.

Following the AGENTS.md runbook, `supportedSpeeds` is added only now
that the API actually serves 3.6 on the fast tier.

## Changes

| File | Change |
| --- | --- |
| `src/shared/model.ts` | `supportedSpeeds: ["fast"]` on realtime
`lucy-vton-3.6`; both `lucy-vton-latest` comments now point at 3.6 |
| `src/realtime/client.ts`, `README.md`, `index.html` | fast-mode model
lists now include `lucy-vton-3.6` |
| `AGENTS.md` | removes "opt-in by name; no fast tier" from 3.6;
`lucy-vton-latest` → `lucy-vton-3.6` |
| `tests/unit.test.ts` | adds 3.6 to `fastRealtimeModels` (the pinned
exact set); 3.6 asserts `["fast"]`; latest test titles say 3.6 |
| `tests/realtime.unit.test.ts` | adds 3.6 to the "no speed warning"
loop |

## Verification

| Command | Result |
| --- | --- |
| `pnpm --filter @decartai/sdk typecheck` | pass |
| `pnpm --filter @decartai/sdk test` | 386 passed (15 files) |
| `pnpm --filter @decartai/sdk build` | pass |
| `pnpm --filter @decartai/sdk test:package` | pass |
| `pnpm --filter @decartai/sdk format:check` | 86 files, clean |

The live e2e was not run locally because no `DECART_API_KEY` was
available.

## Compatibility

Additive. `models.realtime("lucy-vton-3.6").supportedSpeeds` changes
from `undefined` to `["fast"]`. No ids, geometry or types change.

## Server-side

- Fast mode for `lucy-vton-3.6` is already live on the API.
- The `lucy-vton-latest` → 3.6 alias change is rolling out on the API
separately. Only docs and comments here depend on it, so merge order
doesn't matter.

---
### Companion PRs (lucy-vton-3.6: fast mode + `lucy-vton-latest` → 3.6)
- JS SDK: #222
- Python: DecartAI/decart-python#73
- iOS: DecartAI/decart-ios#49
- Android: DecartAI/decart-android#34
- C++: DecartAI/decart-cpp#15

<!-- conductor-workspace-link -->

---

[Open workspace in Conductor](https://app.conductor.build/decart/w/261)
@tomershlasky
tomershlasky merged commit 52a3129 into main Oct 12, 2026
1 check passed
@tomershlasky
tomershlasky deleted the vton-3-6-fast-latest branch October 12, 2026 10:29
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.

2 participants