@decartai/sdk 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/process/types.d.ts +1 -1
- package/dist/realtime/client.d.ts +1 -0
- package/dist/realtime/media-channel.js +7 -0
- package/dist/realtime/methods.js +5 -1
- package/dist/realtime/stream-session.js +6 -4
- package/dist/shared/model.d.ts +3 -39
- package/dist/shared/model.js +0 -50
- package/dist/tokens/client.d.ts +3 -1
- package/package.json +1 -1
package/dist/process/types.d.ts
CHANGED
|
@@ -143,7 +143,7 @@ interface PromptInput {
|
|
|
143
143
|
* This allows different models to have field-specific documentation while maintaining type safety.
|
|
144
144
|
* Specific models are checked first, then falls back to category-based selection.
|
|
145
145
|
*/
|
|
146
|
-
type ModelSpecificInputs<T extends ModelDefinition> = T["name"] extends "lucy-pro-i2i" | "lucy-image-2" ? ImageEditingInputs : T["name"] extends "lucy-restyle-v2v" | "lucy-restyle-2" ? VideoRestyleInputs : T["name"] extends "lucy-2.1" | "lucy-
|
|
146
|
+
type ModelSpecificInputs<T extends ModelDefinition> = T["name"] extends "lucy-pro-i2i" | "lucy-image-2" ? ImageEditingInputs : T["name"] extends "lucy-restyle-v2v" | "lucy-restyle-2" ? VideoRestyleInputs : T["name"] extends "lucy-2.1" | "lucy-vton-2" | "lucy-vton-3" | "lucy-2.1-vton-2" | "lucy-vton-latest" ? VideoEdit2Inputs : T["name"] extends "lucy-pro-v2v" | "lucy-clip" ? VideoEditInputs : T["name"] extends ImageModels ? ImageGenerationInputs : T["name"] extends VideoModels ? VideoModelInputs : PromptInput;
|
|
147
147
|
interface ProcessInputs {
|
|
148
148
|
/**
|
|
149
149
|
* Random seed for reproducible results.
|
|
@@ -98,6 +98,7 @@ type RealTimeClient = {
|
|
|
98
98
|
* - `null`: clear the current image.
|
|
99
99
|
*/
|
|
100
100
|
setImage: (image: Blob | File | string | null, options?: ImageSetOptions) => Promise<void>;
|
|
101
|
+
replaceVideoTrack: (track: MediaStreamTrack) => Promise<void>;
|
|
101
102
|
};
|
|
102
103
|
//#endregion
|
|
103
104
|
export { Events, RealTimeClient, RealTimeClientConnectOptions, RealTimeClientInitialState };
|
|
@@ -64,6 +64,13 @@ var MediaChannel = class {
|
|
|
64
64
|
await this.publishTracks(this.config.localStream);
|
|
65
65
|
this.config.observability?.endPhase("publish-local-track", { success: true });
|
|
66
66
|
}
|
|
67
|
+
async replaceVideoTrack(track) {
|
|
68
|
+
const room = this.room;
|
|
69
|
+
if (!room) throw new Error("Cannot replace video track: media channel is not connected");
|
|
70
|
+
const videoTrack = [...room.localParticipant.videoTrackPublications.values()][0]?.videoTrack;
|
|
71
|
+
if (!videoTrack) throw new Error("Cannot replace video track: no published video track");
|
|
72
|
+
await videoTrack.replaceTrack(track);
|
|
73
|
+
}
|
|
67
74
|
disconnect() {
|
|
68
75
|
const room = this.room;
|
|
69
76
|
this.room = null;
|
package/dist/realtime/methods.js
CHANGED
|
@@ -50,9 +50,13 @@ const realtimeMethods = (session, imageToBase64) => {
|
|
|
50
50
|
timeout: REALTIME_CONFIG.methods.promptTimeoutMs
|
|
51
51
|
});
|
|
52
52
|
};
|
|
53
|
+
const replaceVideoTrack = async (track) => {
|
|
54
|
+
await session.replaceVideoTrack(track);
|
|
55
|
+
};
|
|
53
56
|
return {
|
|
54
57
|
set,
|
|
55
|
-
setPrompt
|
|
58
|
+
setPrompt,
|
|
59
|
+
replaceVideoTrack
|
|
56
60
|
};
|
|
57
61
|
};
|
|
58
62
|
//#endregion
|
|
@@ -71,6 +71,12 @@ var StreamSession = class {
|
|
|
71
71
|
this.assertConnected();
|
|
72
72
|
return this.signaling.setImage(payload, opts);
|
|
73
73
|
}
|
|
74
|
+
async replaceVideoTrack(track) {
|
|
75
|
+
this.assertConnected();
|
|
76
|
+
await this.media.replaceVideoTrack(track);
|
|
77
|
+
const previous = this.config.localStream;
|
|
78
|
+
this.config.localStream = new MediaStream(previous ? [track, ...previous.getAudioTracks()] : [track]);
|
|
79
|
+
}
|
|
74
80
|
disconnect() {
|
|
75
81
|
this.disposed = true;
|
|
76
82
|
this.tearDown();
|
|
@@ -162,10 +168,6 @@ var StreamSession = class {
|
|
|
162
168
|
prompt: this.config.initialPrompt.text,
|
|
163
169
|
enhance: this.config.initialPrompt.enhance
|
|
164
170
|
};
|
|
165
|
-
if (this.config.localStream) return {
|
|
166
|
-
image: null,
|
|
167
|
-
prompt: null
|
|
168
|
-
};
|
|
169
171
|
}
|
|
170
172
|
wireSignalingEvents() {
|
|
171
173
|
this.signaling.on("queuePosition", (qp) => {
|
package/dist/shared/model.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { z } from "zod";
|
|
|
4
4
|
|
|
5
5
|
declare const canonicalModelSchema: z.ZodEnum<{
|
|
6
6
|
"lucy-2.1": "lucy-2.1";
|
|
7
|
-
"lucy-2.1-vton": "lucy-2.1-vton";
|
|
8
7
|
"lucy-vton-2": "lucy-vton-2";
|
|
9
8
|
"lucy-vton-3": "lucy-vton-3";
|
|
10
9
|
"lucy-restyle-2": "lucy-restyle-2";
|
|
@@ -18,7 +17,6 @@ type CanonicalModel = z.infer<typeof canonicalModelSchema>;
|
|
|
18
17
|
*/
|
|
19
18
|
declare const modelAliases: {
|
|
20
19
|
readonly mirage_v2: "lucy-restyle-2";
|
|
21
|
-
readonly "lucy-vton": "lucy-2.1-vton";
|
|
22
20
|
readonly "lucy-2.1-vton-2": "lucy-vton-2";
|
|
23
21
|
readonly "lucy-pro-v2v": "lucy-clip";
|
|
24
22
|
readonly "lucy-restyle-v2v": "lucy-restyle-2";
|
|
@@ -26,10 +24,10 @@ declare const modelAliases: {
|
|
|
26
24
|
};
|
|
27
25
|
/** @internal Test-only helper to reset deprecation warning tracking */
|
|
28
26
|
|
|
29
|
-
declare const realtimeModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-
|
|
30
|
-
declare const videoModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-
|
|
27
|
+
declare const realtimeModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"mirage_v2">, z.ZodLiteral<"lucy-2.1-vton-2">]>;
|
|
28
|
+
declare const videoModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"lucy-clip-latest">, z.ZodLiteral<"lucy-2.1-vton-2">, z.ZodLiteral<"lucy-pro-v2v">, z.ZodLiteral<"lucy-restyle-v2v">]>;
|
|
31
29
|
declare const imageModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-image-2">, z.ZodLiteral<"lucy-image-latest">, z.ZodLiteral<"lucy-pro-i2i">]>;
|
|
32
|
-
declare const modelSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-
|
|
30
|
+
declare const modelSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"mirage_v2">, z.ZodLiteral<"lucy-2.1-vton-2">]>, z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"lucy-clip-latest">, z.ZodLiteral<"lucy-2.1-vton-2">, z.ZodLiteral<"lucy-pro-v2v">, z.ZodLiteral<"lucy-restyle-v2v">]>, z.ZodUnion<readonly [z.ZodLiteral<"lucy-image-2">, z.ZodLiteral<"lucy-image-latest">, z.ZodLiteral<"lucy-pro-i2i">]>]>;
|
|
33
31
|
type Model = z.infer<typeof modelSchema>;
|
|
34
32
|
type RealTimeModels = z.infer<typeof realtimeModels>;
|
|
35
33
|
type VideoModels = z.infer<typeof videoModels>;
|
|
@@ -119,22 +117,6 @@ declare const modelInputSchemas: {
|
|
|
119
117
|
resolution: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"720p">>>;
|
|
120
118
|
enhance_prompt: z.ZodOptional<z.ZodBoolean>;
|
|
121
119
|
}, z.core.$strip>;
|
|
122
|
-
readonly "lucy-2.1-vton": z.ZodObject<{
|
|
123
|
-
prompt: z.ZodString;
|
|
124
|
-
reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
|
|
125
|
-
uri: z.ZodString;
|
|
126
|
-
type: z.ZodString;
|
|
127
|
-
name: z.ZodString;
|
|
128
|
-
}, z.core.$strip>]>>;
|
|
129
|
-
data: z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
|
|
130
|
-
uri: z.ZodString;
|
|
131
|
-
type: z.ZodString;
|
|
132
|
-
name: z.ZodString;
|
|
133
|
-
}, z.core.$strip>]>;
|
|
134
|
-
seed: z.ZodOptional<z.ZodNumber>;
|
|
135
|
-
resolution: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"720p">>>;
|
|
136
|
-
enhance_prompt: z.ZodOptional<z.ZodBoolean>;
|
|
137
|
-
}, z.core.$strip>;
|
|
138
120
|
readonly "lucy-vton-2": z.ZodObject<{
|
|
139
121
|
prompt: z.ZodString;
|
|
140
122
|
reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
|
|
@@ -250,22 +232,6 @@ declare const modelInputSchemas: {
|
|
|
250
232
|
}>>>;
|
|
251
233
|
enhance_prompt: z.ZodOptional<z.ZodBoolean>;
|
|
252
234
|
}, z.core.$strip>;
|
|
253
|
-
readonly "lucy-vton": z.ZodObject<{
|
|
254
|
-
prompt: z.ZodString;
|
|
255
|
-
reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
|
|
256
|
-
uri: z.ZodString;
|
|
257
|
-
type: z.ZodString;
|
|
258
|
-
name: z.ZodString;
|
|
259
|
-
}, z.core.$strip>]>>;
|
|
260
|
-
data: z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
|
|
261
|
-
uri: z.ZodString;
|
|
262
|
-
type: z.ZodString;
|
|
263
|
-
name: z.ZodString;
|
|
264
|
-
}, z.core.$strip>]>;
|
|
265
|
-
seed: z.ZodOptional<z.ZodNumber>;
|
|
266
|
-
resolution: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"720p">>>;
|
|
267
|
-
enhance_prompt: z.ZodOptional<z.ZodBoolean>;
|
|
268
|
-
}, z.core.$strip>;
|
|
269
235
|
readonly "lucy-2.1-vton-2": z.ZodObject<{
|
|
270
236
|
prompt: z.ZodString;
|
|
271
237
|
reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
|
|
@@ -395,7 +361,6 @@ declare const models: {
|
|
|
395
361
|
*
|
|
396
362
|
* Available options:
|
|
397
363
|
* - `"lucy-2.1"` - Lucy 2.1 realtime video editing
|
|
398
|
-
* - `"lucy-2.1-vton"` - Lucy 2.1 virtual try-on
|
|
399
364
|
* - `"lucy-vton-2"` - Lucy virtual try-on 2
|
|
400
365
|
* - `"lucy-vton-3"` - Lucy virtual try-on 3
|
|
401
366
|
* - `"lucy-restyle-2"` - Realtime video restyling
|
|
@@ -407,7 +372,6 @@ declare const models: {
|
|
|
407
372
|
* Available options:
|
|
408
373
|
* - `"lucy-clip"` - Video-to-video editing
|
|
409
374
|
* - `"lucy-2.1"` - Long-form video editing (Lucy 2.1)
|
|
410
|
-
* - `"lucy-2.1-vton"` - Virtual try-on video editing
|
|
411
375
|
* - `"lucy-vton-2"` - Virtual try-on 2 video editing
|
|
412
376
|
* - `"lucy-vton-3"` - Virtual try-on 3 video editing
|
|
413
377
|
* - `"lucy-restyle-2"` - Video restyling
|
package/dist/shared/model.js
CHANGED
|
@@ -3,7 +3,6 @@ import { z } from "zod";
|
|
|
3
3
|
//#region src/shared/model.ts
|
|
4
4
|
const CANONICAL_MODEL_NAMES = [
|
|
5
5
|
"lucy-2.1",
|
|
6
|
-
"lucy-2.1-vton",
|
|
7
6
|
"lucy-vton-2",
|
|
8
7
|
"lucy-vton-3",
|
|
9
8
|
"lucy-restyle-2",
|
|
@@ -12,7 +11,6 @@ const CANONICAL_MODEL_NAMES = [
|
|
|
12
11
|
];
|
|
13
12
|
const CANONICAL_REALTIME_MODEL_NAMES = [
|
|
14
13
|
"lucy-2.1",
|
|
15
|
-
"lucy-2.1-vton",
|
|
16
14
|
"lucy-vton-2",
|
|
17
15
|
"lucy-vton-3",
|
|
18
16
|
"lucy-restyle-2"
|
|
@@ -20,7 +18,6 @@ const CANONICAL_REALTIME_MODEL_NAMES = [
|
|
|
20
18
|
const CANONICAL_VIDEO_MODEL_NAMES = [
|
|
21
19
|
"lucy-clip",
|
|
22
20
|
"lucy-2.1",
|
|
23
|
-
"lucy-2.1-vton",
|
|
24
21
|
"lucy-vton-2",
|
|
25
22
|
"lucy-vton-3",
|
|
26
23
|
"lucy-restyle-2"
|
|
@@ -36,7 +33,6 @@ const canonicalModelSchema = z.enum(CANONICAL_MODEL_NAMES);
|
|
|
36
33
|
*/
|
|
37
34
|
const modelAliases = {
|
|
38
35
|
mirage_v2: "lucy-restyle-2",
|
|
39
|
-
"lucy-vton": "lucy-2.1-vton",
|
|
40
36
|
"lucy-2.1-vton-2": "lucy-vton-2",
|
|
41
37
|
"lucy-pro-v2v": "lucy-clip",
|
|
42
38
|
"lucy-restyle-v2v": "lucy-restyle-2",
|
|
@@ -52,7 +48,6 @@ function warnDeprecated(model) {
|
|
|
52
48
|
}
|
|
53
49
|
const realtimeModels = z.union([
|
|
54
50
|
z.literal("lucy-2.1"),
|
|
55
|
-
z.literal("lucy-2.1-vton"),
|
|
56
51
|
z.literal("lucy-vton-2"),
|
|
57
52
|
z.literal("lucy-vton-3"),
|
|
58
53
|
z.literal("lucy-restyle-2"),
|
|
@@ -60,13 +55,11 @@ const realtimeModels = z.union([
|
|
|
60
55
|
z.literal("lucy-vton-latest"),
|
|
61
56
|
z.literal("lucy-restyle-latest"),
|
|
62
57
|
z.literal("mirage_v2"),
|
|
63
|
-
z.literal("lucy-vton"),
|
|
64
58
|
z.literal("lucy-2.1-vton-2")
|
|
65
59
|
]);
|
|
66
60
|
const videoModels = z.union([
|
|
67
61
|
z.literal("lucy-clip"),
|
|
68
62
|
z.literal("lucy-2.1"),
|
|
69
|
-
z.literal("lucy-2.1-vton"),
|
|
70
63
|
z.literal("lucy-vton-2"),
|
|
71
64
|
z.literal("lucy-vton-3"),
|
|
72
65
|
z.literal("lucy-restyle-2"),
|
|
@@ -74,7 +67,6 @@ const videoModels = z.union([
|
|
|
74
67
|
z.literal("lucy-vton-latest"),
|
|
75
68
|
z.literal("lucy-restyle-latest"),
|
|
76
69
|
z.literal("lucy-clip-latest"),
|
|
77
|
-
z.literal("lucy-vton"),
|
|
78
70
|
z.literal("lucy-2.1-vton-2"),
|
|
79
71
|
z.literal("lucy-pro-v2v"),
|
|
80
72
|
z.literal("lucy-restyle-v2v")
|
|
@@ -186,7 +178,6 @@ const modelInputSchemas = {
|
|
|
186
178
|
"lucy-image-2": imageEditSchema,
|
|
187
179
|
"lucy-restyle-2": restyleSchema,
|
|
188
180
|
"lucy-2.1": videoEdit2Schema,
|
|
189
|
-
"lucy-2.1-vton": videoEdit2Schema,
|
|
190
181
|
"lucy-vton-2": videoEdit2Schema,
|
|
191
182
|
"lucy-vton-3": videoEdit2Schema,
|
|
192
183
|
"lucy-latest": videoEdit2Schema,
|
|
@@ -194,7 +185,6 @@ const modelInputSchemas = {
|
|
|
194
185
|
"lucy-restyle-latest": restyleSchema,
|
|
195
186
|
"lucy-clip-latest": videoEditSchema,
|
|
196
187
|
"lucy-image-latest": imageEditSchema,
|
|
197
|
-
"lucy-vton": videoEdit2Schema,
|
|
198
188
|
"lucy-2.1-vton-2": videoEdit2Schema,
|
|
199
189
|
"lucy-pro-v2v": videoEditSchema,
|
|
200
190
|
"lucy-pro-i2i": imageEditSchema,
|
|
@@ -231,17 +221,6 @@ const _models = {
|
|
|
231
221
|
height: 624,
|
|
232
222
|
inputSchema: z.object({})
|
|
233
223
|
},
|
|
234
|
-
"lucy-2.1-vton": {
|
|
235
|
-
urlPath: "/v1/stream",
|
|
236
|
-
name: "lucy-2.1-vton",
|
|
237
|
-
fps: {
|
|
238
|
-
ideal: 30,
|
|
239
|
-
max: 30
|
|
240
|
-
},
|
|
241
|
-
width: 1088,
|
|
242
|
-
height: 624,
|
|
243
|
-
inputSchema: z.object({})
|
|
244
|
-
},
|
|
245
224
|
"lucy-vton-2": {
|
|
246
225
|
urlPath: "/v1/stream",
|
|
247
226
|
name: "lucy-vton-2",
|
|
@@ -319,17 +298,6 @@ const _models = {
|
|
|
319
298
|
height: 704,
|
|
320
299
|
inputSchema: z.object({})
|
|
321
300
|
},
|
|
322
|
-
"lucy-vton": {
|
|
323
|
-
urlPath: "/v1/stream",
|
|
324
|
-
name: "lucy-vton",
|
|
325
|
-
fps: {
|
|
326
|
-
ideal: 30,
|
|
327
|
-
max: 30
|
|
328
|
-
},
|
|
329
|
-
width: 1088,
|
|
330
|
-
height: 624,
|
|
331
|
-
inputSchema: z.object({})
|
|
332
|
-
},
|
|
333
301
|
"lucy-2.1-vton-2": {
|
|
334
302
|
urlPath: "/v1/stream",
|
|
335
303
|
name: "lucy-2.1-vton-2",
|
|
@@ -390,15 +358,6 @@ const _models = {
|
|
|
390
358
|
height: 624,
|
|
391
359
|
inputSchema: modelInputSchemas["lucy-2.1"]
|
|
392
360
|
},
|
|
393
|
-
"lucy-2.1-vton": {
|
|
394
|
-
urlPath: "/v1/generate/lucy-2.1-vton",
|
|
395
|
-
queueUrlPath: "/v1/jobs/lucy-2.1-vton",
|
|
396
|
-
name: "lucy-2.1-vton",
|
|
397
|
-
fps: 20,
|
|
398
|
-
width: 1088,
|
|
399
|
-
height: 624,
|
|
400
|
-
inputSchema: modelInputSchemas["lucy-2.1-vton"]
|
|
401
|
-
},
|
|
402
361
|
"lucy-vton-2": {
|
|
403
362
|
urlPath: "/v1/generate/lucy-vton-2",
|
|
404
363
|
queueUrlPath: "/v1/jobs/lucy-vton-2",
|
|
@@ -462,15 +421,6 @@ const _models = {
|
|
|
462
421
|
height: 704,
|
|
463
422
|
inputSchema: modelInputSchemas["lucy-clip-latest"]
|
|
464
423
|
},
|
|
465
|
-
"lucy-vton": {
|
|
466
|
-
urlPath: "/v1/generate/lucy-vton",
|
|
467
|
-
queueUrlPath: "/v1/jobs/lucy-vton",
|
|
468
|
-
name: "lucy-vton",
|
|
469
|
-
fps: 20,
|
|
470
|
-
width: 1088,
|
|
471
|
-
height: 624,
|
|
472
|
-
inputSchema: modelInputSchemas["lucy-vton"]
|
|
473
|
-
},
|
|
474
424
|
"lucy-2.1-vton-2": {
|
|
475
425
|
urlPath: "/v1/generate/lucy-2.1-vton-2",
|
|
476
426
|
queueUrlPath: "/v1/jobs/lucy-2.1-vton-2",
|
package/dist/tokens/client.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ type CreateTokenOptions = {
|
|
|
25
25
|
};
|
|
26
26
|
type CreateTokenResponse = {
|
|
27
27
|
apiKey: string;
|
|
28
|
+
/** Signed JWT mirroring `apiKey`, verifiable offline via the public JWKS. */
|
|
29
|
+
token?: string;
|
|
28
30
|
expiresAt: string;
|
|
29
31
|
/** Present when `allowedModels` and/or `allowedOrigins` were set on the request. */
|
|
30
32
|
permissions?: {
|
|
@@ -48,7 +50,7 @@ type TokensClient = {
|
|
|
48
50
|
* ```ts
|
|
49
51
|
* const client = createDecartClient({ apiKey: process.env.DECART_API_KEY });
|
|
50
52
|
* const token = await client.tokens.create();
|
|
51
|
-
* // Returns: { apiKey: "ek_...", expiresAt: "2024-12-15T12:10:00Z" }
|
|
53
|
+
* // Returns: { apiKey: "ek_...", token: "eyJhbGciOiJFZERTQS...", expiresAt: "2024-12-15T12:10:00Z" }
|
|
52
54
|
*
|
|
53
55
|
* // With metadata:
|
|
54
56
|
* const token = await client.tokens.create({ metadata: { role: "viewer" } });
|