@picsart/ai-sdk 6.7.0 → 6.9.0
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/_vendor/workflows-types/index.d.ts +581 -375
- package/index.d.ts +52 -0
- package/index.js +298 -22
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -191,20 +191,47 @@ type ModelInputById = {
|
|
|
191
191
|
audioUrl: string;
|
|
192
192
|
voiceId?: string;
|
|
193
193
|
removeBackgroundNoise?: boolean;
|
|
194
|
+
stability?: number;
|
|
195
|
+
similarityBoost?: number;
|
|
196
|
+
styleExaggeration?: number;
|
|
197
|
+
speed?: number;
|
|
194
198
|
};
|
|
195
199
|
"eleven-multilingual-v2": {
|
|
196
200
|
prompt: string;
|
|
197
201
|
voiceId?: string;
|
|
202
|
+
stability?: number;
|
|
203
|
+
similarityBoost?: number;
|
|
204
|
+
styleExaggeration?: number;
|
|
205
|
+
speed?: number;
|
|
206
|
+
useSpeakerBoost?: boolean;
|
|
198
207
|
};
|
|
199
208
|
"eleven-sts-v2": {
|
|
200
209
|
audioUrl: string;
|
|
201
210
|
voiceId?: string;
|
|
202
211
|
removeBackgroundNoise?: boolean;
|
|
212
|
+
stability?: number;
|
|
213
|
+
similarityBoost?: number;
|
|
214
|
+
styleExaggeration?: number;
|
|
215
|
+
speed?: number;
|
|
216
|
+
};
|
|
217
|
+
"eleven-text-to-dialogue": {
|
|
218
|
+
dialogue: Array<{
|
|
219
|
+
voiceId: string;
|
|
220
|
+
text: string;
|
|
221
|
+
}>;
|
|
222
|
+
stability?: 0 | 0.5 | 1;
|
|
223
|
+
language?: string;
|
|
224
|
+
seed?: number;
|
|
203
225
|
};
|
|
204
226
|
"eleven-v3": {
|
|
205
227
|
language?: string;
|
|
206
228
|
prompt: string;
|
|
207
229
|
voiceId?: string;
|
|
230
|
+
stability?: number;
|
|
231
|
+
similarityBoost?: number;
|
|
232
|
+
styleExaggeration?: number;
|
|
233
|
+
speed?: number;
|
|
234
|
+
useSpeakerBoost?: boolean;
|
|
208
235
|
};
|
|
209
236
|
"eleven-voice-create": {
|
|
210
237
|
prompt: string;
|
|
@@ -852,6 +879,28 @@ type ModelInputById = {
|
|
|
852
879
|
startTime?: number;
|
|
853
880
|
videoUrl: string;
|
|
854
881
|
};
|
|
882
|
+
"ltx-v2.5-fast": {
|
|
883
|
+
prompt: string;
|
|
884
|
+
duration?: 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20;
|
|
885
|
+
resolution?: "720p" | "1080p" | "1440p" | "2160p";
|
|
886
|
+
aspectRatio?: "16:9" | "9:16";
|
|
887
|
+
fps?: 24 | 25 | 48 | 50;
|
|
888
|
+
cameraMotion?: "none" | "static" | "dolly_in" | "dolly_out" | "dolly_left" | "dolly_right" | "jib_up" | "jib_down" | "focus_shift";
|
|
889
|
+
generateAudio?: boolean;
|
|
890
|
+
startFrame?: string;
|
|
891
|
+
endFrame?: string;
|
|
892
|
+
};
|
|
893
|
+
"ltx-v2.5-pro": {
|
|
894
|
+
prompt: string;
|
|
895
|
+
duration?: 6 | 8 | 10;
|
|
896
|
+
resolution?: "720p" | "1080p";
|
|
897
|
+
aspectRatio?: "16:9" | "9:16";
|
|
898
|
+
fps?: 24 | 25 | 50;
|
|
899
|
+
cameraMotion?: "none" | "static" | "dolly_in" | "dolly_out" | "dolly_left" | "dolly_right" | "jib_up" | "jib_down" | "focus_shift";
|
|
900
|
+
generateAudio?: boolean;
|
|
901
|
+
startFrame?: string;
|
|
902
|
+
endFrame?: string;
|
|
903
|
+
};
|
|
855
904
|
"luma-ray-2": {
|
|
856
905
|
prompt: string;
|
|
857
906
|
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "21:9" | "9:21";
|
|
@@ -2977,6 +3026,7 @@ declare const Models: {
|
|
|
2977
3026
|
readonly ElevenMultilingualStsV2: "eleven-multilingual-sts-v2";
|
|
2978
3027
|
readonly ElevenMultilingualV2: "eleven-multilingual-v2";
|
|
2979
3028
|
readonly ElevenStsV2: "eleven-sts-v2";
|
|
3029
|
+
readonly ElevenTextToDialogue: "eleven-text-to-dialogue";
|
|
2980
3030
|
readonly ElevenV3: "eleven-v3";
|
|
2981
3031
|
readonly ElevenVoiceCreate: "eleven-voice-create";
|
|
2982
3032
|
readonly ElevenVoiceDesignV2: "eleven-voice-design-v2";
|
|
@@ -3073,6 +3123,8 @@ declare const Models: {
|
|
|
3073
3123
|
readonly LtxV23Fast: "ltx-v2.3-fast";
|
|
3074
3124
|
readonly LtxV23Pro: "ltx-v2.3-pro";
|
|
3075
3125
|
readonly LtxV23Retake: "ltx-v2.3-retake";
|
|
3126
|
+
readonly LtxV25Fast: "ltx-v2.5-fast";
|
|
3127
|
+
readonly LtxV25Pro: "ltx-v2.5-pro";
|
|
3076
3128
|
readonly LumaRay2: "luma-ray-2";
|
|
3077
3129
|
readonly LumaRay2ReframeVideo: "luma-ray-2-reframe-video";
|
|
3078
3130
|
readonly LumaRay32: "luma-ray-3.2";
|
package/index.js
CHANGED
|
@@ -2111,6 +2111,30 @@ var LTX_RESOLUTIONS = ["1080p", "1440p", "2160p"];
|
|
|
2111
2111
|
var LTX_23_AR = ["16:9", "9:16"];
|
|
2112
2112
|
var LTX_23_FPS = [24, 25, 48, 50];
|
|
2113
2113
|
var LTX_PROMPT_MAX = 5e3;
|
|
2114
|
+
var LTX_25_AR = ["16:9", "9:16"];
|
|
2115
|
+
var LTX_25_PRO_RESOLUTIONS = ["720p", "1080p"];
|
|
2116
|
+
var LTX_25_FAST_RESOLUTIONS = ["720p", "1080p", "1440p", "2160p"];
|
|
2117
|
+
var LTX_25_PRO_FPS = [24, 25, 50];
|
|
2118
|
+
var LTX_25_FAST_FPS = [24, 25, 48, 50];
|
|
2119
|
+
var LTX_25_CAMERA_MOTIONS = [
|
|
2120
|
+
{ id: "none", label: "None" },
|
|
2121
|
+
{ id: "static", label: "Static" },
|
|
2122
|
+
{ id: "dolly_in", label: "Dolly In" },
|
|
2123
|
+
{ id: "dolly_out", label: "Dolly Out" },
|
|
2124
|
+
{ id: "dolly_left", label: "Dolly Left" },
|
|
2125
|
+
{ id: "dolly_right", label: "Dolly Right" },
|
|
2126
|
+
{ id: "jib_up", label: "Jib Up" },
|
|
2127
|
+
{ id: "jib_down", label: "Jib Down" },
|
|
2128
|
+
{ id: "focus_shift", label: "Focus Shift" }
|
|
2129
|
+
];
|
|
2130
|
+
var LTX_25_FAST_LONG = "Videos longer than 10s render at 720p/1080p and 24 or 25 fps.";
|
|
2131
|
+
var ltx25FastLongConstraints = [12, 14, 16, 18, 20].map((d) => ({
|
|
2132
|
+
when: { duration: { is: d } },
|
|
2133
|
+
then: {
|
|
2134
|
+
resolution: { allowed: ["720p", "1080p"], reason: LTX_25_FAST_LONG },
|
|
2135
|
+
fps: { allowed: [24, 25], reason: LTX_25_FAST_LONG }
|
|
2136
|
+
}
|
|
2137
|
+
}));
|
|
2114
2138
|
var FAST_LONG = "Videos longer than 10s render at 1080p / 25 fps.";
|
|
2115
2139
|
var ltxFastLongConstraints = [12, 14, 16, 18, 20].map((d) => ({
|
|
2116
2140
|
when: { duration: { is: d } },
|
|
@@ -2387,6 +2411,74 @@ var { MODELS: MODELS2 } = defineModels("ltx", [
|
|
|
2387
2411
|
},
|
|
2388
2412
|
...params.videoInput("Source Video")
|
|
2389
2413
|
}
|
|
2414
|
+
},
|
|
2415
|
+
// ── LTX 2.5 ──────────────────────────────────────────────────────
|
|
2416
|
+
// One entry per tier: text-to-video on `workflow`, image-to-video on
|
|
2417
|
+
// `editWorkflow`. A start or end frame is what routes a call to the image
|
|
2418
|
+
// side (see `resolvePayloadBuild`), and `end_image_url` — a transition from
|
|
2419
|
+
// the start frame to the end one — exists only there.
|
|
2420
|
+
{
|
|
2421
|
+
id: "ltx-v2.5-pro",
|
|
2422
|
+
name: "LTX 2.5 Pro",
|
|
2423
|
+
modelId: "fal-ai-ltx-2.5-pro",
|
|
2424
|
+
addedAt: "2026-09-23",
|
|
2425
|
+
workflow: "lightricks/ltx-2.5/text-to-video/pro",
|
|
2426
|
+
editWorkflow: "lightricks/ltx-2.5/image-to-video/pro",
|
|
2427
|
+
estimatedTime: 75,
|
|
2428
|
+
editEstimatedTime: 78,
|
|
2429
|
+
mode: "video",
|
|
2430
|
+
inputType: "t2v",
|
|
2431
|
+
description: "Quality-optimized 2.5 with synchronized native audio in a single pass \u2014 720p/1080p, 6-10s, with camera motion control.",
|
|
2432
|
+
features: [feat("Image Input", "input"), feat("Start Frame", "frame"), feat("End Frame", "frame"), feat("Audio", "audio"), feat("Camera Motion", "characteristic"), feat("6/8/10 sec", "duration")],
|
|
2433
|
+
paramConfig: {
|
|
2434
|
+
...params.prompt({ maxLength: LTX_PROMPT_MAX }),
|
|
2435
|
+
...params.duration(PRO_DURATIONS, 6),
|
|
2436
|
+
...params.resolution(LTX_25_PRO_RESOLUTIONS, "1080p"),
|
|
2437
|
+
...params.aspectRatio(LTX_25_AR),
|
|
2438
|
+
...p.enum("fps", LTX_25_PRO_FPS, 25, { label: "FPS" }),
|
|
2439
|
+
...p.enum("cameraMotion", LTX_25_CAMERA_MOTIONS, "none", { label: "Camera Motion" }),
|
|
2440
|
+
...params.generateAudio(),
|
|
2441
|
+
...params.startFrame("Start Frame"),
|
|
2442
|
+
...params.endFrame()
|
|
2443
|
+
},
|
|
2444
|
+
constraints: [
|
|
2445
|
+
// end_image_url exists only on the I2V route, which a start frame triggers.
|
|
2446
|
+
{ when: { startFrame: { exists: false } }, then: {
|
|
2447
|
+
endFrame: { disabled: true, reason: "An end frame requires a start image." }
|
|
2448
|
+
} }
|
|
2449
|
+
]
|
|
2450
|
+
},
|
|
2451
|
+
{
|
|
2452
|
+
id: "ltx-v2.5-fast",
|
|
2453
|
+
name: "LTX 2.5 Fast",
|
|
2454
|
+
modelId: "fal-ai-ltx-2.5-fast",
|
|
2455
|
+
addedAt: "2026-09-23",
|
|
2456
|
+
workflow: "lightricks/ltx-2.5/text-to-video/fast",
|
|
2457
|
+
editWorkflow: "lightricks/ltx-2.5/image-to-video/fast",
|
|
2458
|
+
estimatedTime: 38,
|
|
2459
|
+
editEstimatedTime: 40,
|
|
2460
|
+
mode: "video",
|
|
2461
|
+
inputType: "t2v",
|
|
2462
|
+
description: "Speed-optimized 2.5 with synchronized native audio \u2014 up to 4K, up to 20s, with camera motion control.",
|
|
2463
|
+
features: [feat("Image Input", "input"), feat("Start Frame", "frame"), feat("End Frame", "frame"), feat("Fast", "duration"), feat("Up to 20s", "duration"), feat("Audio", "audio"), feat("4K", "resolution"), feat("Camera Motion", "characteristic")],
|
|
2464
|
+
paramConfig: {
|
|
2465
|
+
...params.prompt({ maxLength: LTX_PROMPT_MAX }),
|
|
2466
|
+
...params.duration(FAST_DURATIONS, 6),
|
|
2467
|
+
...params.resolution(LTX_25_FAST_RESOLUTIONS, "1080p"),
|
|
2468
|
+
...params.aspectRatio(LTX_25_AR),
|
|
2469
|
+
...p.enum("fps", LTX_25_FAST_FPS, 25, { label: "FPS" }),
|
|
2470
|
+
...p.enum("cameraMotion", LTX_25_CAMERA_MOTIONS, "none", { label: "Camera Motion" }),
|
|
2471
|
+
...params.generateAudio(),
|
|
2472
|
+
...params.startFrame("Start Frame"),
|
|
2473
|
+
...params.endFrame()
|
|
2474
|
+
},
|
|
2475
|
+
constraints: [
|
|
2476
|
+
...ltx25FastLongConstraints,
|
|
2477
|
+
// end_image_url exists only on the I2V route, which a start frame triggers.
|
|
2478
|
+
{ when: { startFrame: { exists: false } }, then: {
|
|
2479
|
+
endFrame: { disabled: true, reason: "An end frame requires a start image." }
|
|
2480
|
+
} }
|
|
2481
|
+
]
|
|
2390
2482
|
}
|
|
2391
2483
|
]);
|
|
2392
2484
|
|
|
@@ -6344,23 +6436,12 @@ registerEditPayloads(MODELS22, {
|
|
|
6344
6436
|
});
|
|
6345
6437
|
|
|
6346
6438
|
// src/vendors/catalog/elevenlabs.ts
|
|
6347
|
-
var
|
|
6348
|
-
text: ctx.prompt,
|
|
6349
|
-
voice_id: ctx.voiceId ?? DEFAULT_VOICE_ID,
|
|
6350
|
-
model_id: modelId,
|
|
6351
|
-
...ctx.language ? { language_code: ctx.language } : {}
|
|
6352
|
-
});
|
|
6439
|
+
var VOICE_CATALOG = { workflow: "elevenlabs/v1/catalog/voices" };
|
|
6353
6440
|
var buildElevenLabsSFXPayload = (modelId) => (ctx) => ({
|
|
6354
6441
|
text: ctx.prompt,
|
|
6355
6442
|
duration_seconds: ctx.duration ?? 5,
|
|
6356
6443
|
model_id: modelId
|
|
6357
6444
|
});
|
|
6358
|
-
var buildElevenLabsSTSPayload = (modelId) => (ctx) => ({
|
|
6359
|
-
audio_url: ctx.audioUrl,
|
|
6360
|
-
voice_id: ctx.voiceId ?? DEFAULT_VOICE_ID,
|
|
6361
|
-
model_id: modelId,
|
|
6362
|
-
remove_background_noise: ctx.removeBackgroundNoise ?? false
|
|
6363
|
-
});
|
|
6364
6445
|
var buildElevenLabsAudioIsolationPayload = (ctx) => ({
|
|
6365
6446
|
audio_url: ctx.audioUrl
|
|
6366
6447
|
});
|
|
@@ -6383,13 +6464,35 @@ var buildElevenLabsVoicePreviewsPayload = (ctx) => ({
|
|
|
6383
6464
|
voice_description: ctx.prompt,
|
|
6384
6465
|
auto_generate_text: true
|
|
6385
6466
|
});
|
|
6467
|
+
var voiceSettingsParams = (withSpeakerBoost) => ({
|
|
6468
|
+
stability: {
|
|
6469
|
+
label: "Stability",
|
|
6470
|
+
descriptor: { kind: "range", min: 0, max: 1, step: 0.05 }
|
|
6471
|
+
},
|
|
6472
|
+
similarityBoost: {
|
|
6473
|
+
label: "Similarity",
|
|
6474
|
+
descriptor: { kind: "range", min: 0, max: 1, step: 0.05 }
|
|
6475
|
+
},
|
|
6476
|
+
// `style` is taken on GenerationContext by the image models' style *name*,
|
|
6477
|
+
// so the vendor's 0–1 style exaggeration gets a key of its own.
|
|
6478
|
+
styleExaggeration: {
|
|
6479
|
+
label: "Style Exaggeration",
|
|
6480
|
+
descriptor: { kind: "range", min: 0, max: 1, step: 0.05 }
|
|
6481
|
+
},
|
|
6482
|
+
speed: {
|
|
6483
|
+
label: "Speed",
|
|
6484
|
+
descriptor: { kind: "range", min: 0.1, max: 5, step: 0.05 }
|
|
6485
|
+
},
|
|
6486
|
+
...withSpeakerBoost ? { useSpeakerBoost: { label: "Speaker Boost", descriptor: { kind: "boolean", default: true } } } : {}
|
|
6487
|
+
});
|
|
6386
6488
|
var ttsParamConfig = (promptMaxLength, withLanguage) => ({
|
|
6387
6489
|
// language_code is honoured by eleven_v3 only — the vendor documents it as
|
|
6388
6490
|
// "not supported for multilingual_v2 models" (silently ignored there).
|
|
6389
6491
|
// No accent param anywhere: no builder ever read it.
|
|
6390
6492
|
...withLanguage ? params.language(false) : {},
|
|
6391
6493
|
...params.prompt({ maxLength: promptMaxLength }),
|
|
6392
|
-
...params.voiceId([], DEFAULT_VOICE_ID, { catalog:
|
|
6494
|
+
...params.voiceId([], DEFAULT_VOICE_ID, { catalog: VOICE_CATALOG }),
|
|
6495
|
+
...voiceSettingsParams(true)
|
|
6393
6496
|
});
|
|
6394
6497
|
var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
6395
6498
|
// ── TTS ───────────────────────────────────────────────────────────
|
|
@@ -6399,7 +6502,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6399
6502
|
modelId: "eleven_v3",
|
|
6400
6503
|
addedAt: "2026-02-06",
|
|
6401
6504
|
workflow: "elevenlabs/v1/text-to-speech",
|
|
6402
|
-
buildPayload: buildElevenLabsTTSPayload("eleven_v3"),
|
|
6403
6505
|
estimatedTime: 11,
|
|
6404
6506
|
mode: "audio",
|
|
6405
6507
|
inputType: "tts",
|
|
@@ -6414,7 +6516,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6414
6516
|
modelId: "eleven_multilingual_v2",
|
|
6415
6517
|
addedAt: "2026-02-06",
|
|
6416
6518
|
workflow: "elevenlabs/v1/text-to-speech",
|
|
6417
|
-
buildPayload: buildElevenLabsTTSPayload("eleven_multilingual_v2"),
|
|
6418
6519
|
estimatedTime: 9,
|
|
6419
6520
|
mode: "audio",
|
|
6420
6521
|
inputType: "tts",
|
|
@@ -6423,6 +6524,61 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6423
6524
|
features: [feat("Stable", "characteristic"), feat("Professional", "characteristic")],
|
|
6424
6525
|
paramConfig: ttsParamConfig(1e4, false)
|
|
6425
6526
|
},
|
|
6527
|
+
// ── Dialogue ──────────────────────────────────────────────────────
|
|
6528
|
+
{
|
|
6529
|
+
// `modelId` is the pricing-catalog key, not the vendor id: the worker
|
|
6530
|
+
// registers the operation as `eleven-text-to-dialogue` while the vendor
|
|
6531
|
+
// model behind it is plain `eleven_v3`.
|
|
6532
|
+
id: "eleven-text-to-dialogue",
|
|
6533
|
+
name: "Eleven Dialogue v3",
|
|
6534
|
+
modelId: "eleven-text-to-dialogue",
|
|
6535
|
+
addedAt: "2026-09-22",
|
|
6536
|
+
workflow: "elevenlabs/v1/text-to-dialogue",
|
|
6537
|
+
estimatedTime: 12,
|
|
6538
|
+
mode: "audio",
|
|
6539
|
+
inputType: "tts",
|
|
6540
|
+
description: "Generate a multi-speaker conversation \u2014 a voice per line \u2014 in one take.",
|
|
6541
|
+
features: [feat("Multi-Speaker", "characteristic"), feat("Creative Control", "characteristic")],
|
|
6542
|
+
paramConfig: {
|
|
6543
|
+
// One entry per spoken line, in order. The vendor publishes no cap on the
|
|
6544
|
+
// number of lines, so none is invented here.
|
|
6545
|
+
//
|
|
6546
|
+
// The 5,000-character limit is the vendor's hard cap and applies to the
|
|
6547
|
+
// dialogue AS A WHOLE, which a per-field maxLength cannot express — a
|
|
6548
|
+
// single line simply cannot exceed it either. Probed against the live
|
|
6549
|
+
// `elevenlabs/v1/text-to-dialogue` worker: 10,000 characters are refused
|
|
6550
|
+
// with "Request text length (10000) exceeds the maximum text length of
|
|
6551
|
+
// 5000 characters", while 2,600 generate fine. The docs' "keep it at or
|
|
6552
|
+
// below 2,000" is guidance, not a limit. Note the far end is slow: a
|
|
6553
|
+
// 5,000-character dialogue outruns the worker's 120s vendor timeout.
|
|
6554
|
+
dialogue: {
|
|
6555
|
+
label: "Dialogue",
|
|
6556
|
+
required: true,
|
|
6557
|
+
descriptor: {
|
|
6558
|
+
kind: "object",
|
|
6559
|
+
array: { min: 1 },
|
|
6560
|
+
fields: {
|
|
6561
|
+
// A plain id, not a catalog-bound picker: catalog loading resolves
|
|
6562
|
+
// top-level params only. Every ElevenLabs model shares one voices
|
|
6563
|
+
// task, so a caller lists them from any TTS model — e.g.
|
|
6564
|
+
// `ai.catalogs.voices('eleven-v3')` — and uses the ids here.
|
|
6565
|
+
voiceId: { label: "Voice ID", kind: "text", placeholder: DEFAULT_VOICE_ID },
|
|
6566
|
+
text: { label: "Line", kind: "text", maxLength: 5e3 }
|
|
6567
|
+
}
|
|
6568
|
+
}
|
|
6569
|
+
},
|
|
6570
|
+
// The vendor takes any 0–1 double and defaults to 0.5; eleven_v3 reads the
|
|
6571
|
+
// three presets below, so the picker offers those instead of a slider
|
|
6572
|
+
// whose in-between values the engine rounds anyway.
|
|
6573
|
+
...p.enum("stability", [
|
|
6574
|
+
{ id: 0, label: "Creative" },
|
|
6575
|
+
{ id: 0.5, label: "Natural" },
|
|
6576
|
+
{ id: 1, label: "Robust" }
|
|
6577
|
+
], 0.5, { label: "Stability" }),
|
|
6578
|
+
...params.language(false),
|
|
6579
|
+
...params.seed(4294967295)
|
|
6580
|
+
}
|
|
6581
|
+
},
|
|
6426
6582
|
// ── Sound Effects ─────────────────────────────────────────────────
|
|
6427
6583
|
{
|
|
6428
6584
|
id: "elevenlabs-sfx",
|
|
@@ -6469,7 +6625,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6469
6625
|
modelId: "eleven_english_sts_v2",
|
|
6470
6626
|
addedAt: "2026-02-15",
|
|
6471
6627
|
workflow: "elevenlabs/v1/speech-to-speech",
|
|
6472
|
-
buildPayload: buildElevenLabsSTSPayload("eleven_english_sts_v2"),
|
|
6473
6628
|
estimatedTime: 15,
|
|
6474
6629
|
mode: "audio",
|
|
6475
6630
|
inputType: "sts",
|
|
@@ -6477,8 +6632,9 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6477
6632
|
features: [feat("Voice Changer", "characteristic"), feat("Emotion Preserved", "characteristic")],
|
|
6478
6633
|
paramConfig: {
|
|
6479
6634
|
...params.audioInput("Speech Audio", true),
|
|
6480
|
-
...params.voiceId([], DEFAULT_VOICE_ID, { catalog:
|
|
6481
|
-
...p.boolean("removeBackgroundNoise", false, "Remove Background Noise")
|
|
6635
|
+
...params.voiceId([], DEFAULT_VOICE_ID, { catalog: VOICE_CATALOG }),
|
|
6636
|
+
...p.boolean("removeBackgroundNoise", false, "Remove Background Noise"),
|
|
6637
|
+
...voiceSettingsParams(false)
|
|
6482
6638
|
}
|
|
6483
6639
|
},
|
|
6484
6640
|
{
|
|
@@ -6487,7 +6643,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6487
6643
|
modelId: "eleven_multilingual_sts_v2",
|
|
6488
6644
|
addedAt: "2026-02-15",
|
|
6489
6645
|
workflow: "elevenlabs/v1/speech-to-speech",
|
|
6490
|
-
buildPayload: buildElevenLabsSTSPayload("eleven_multilingual_sts_v2"),
|
|
6491
6646
|
estimatedTime: 15,
|
|
6492
6647
|
mode: "audio",
|
|
6493
6648
|
inputType: "sts",
|
|
@@ -6495,8 +6650,9 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
|
|
|
6495
6650
|
features: [feat("Voice Changer", "characteristic"), feat("Multilingual", "characteristic"), feat("29 Languages", "characteristic")],
|
|
6496
6651
|
paramConfig: {
|
|
6497
6652
|
...params.audioInput("Speech Audio", true),
|
|
6498
|
-
...params.voiceId([], DEFAULT_VOICE_ID, { catalog:
|
|
6499
|
-
...p.boolean("removeBackgroundNoise", false, "Remove Background Noise")
|
|
6653
|
+
...params.voiceId([], DEFAULT_VOICE_ID, { catalog: VOICE_CATALOG }),
|
|
6654
|
+
...p.boolean("removeBackgroundNoise", false, "Remove Background Noise"),
|
|
6655
|
+
...voiceSettingsParams(false)
|
|
6500
6656
|
}
|
|
6501
6657
|
},
|
|
6502
6658
|
// ── Audio Processing ────────────────────────────────────────────
|
|
@@ -6611,8 +6767,47 @@ var buildElevenLabsMusicPayload = (input) => ({
|
|
|
6611
6767
|
model_id: "music_v2",
|
|
6612
6768
|
force_instrumental: input.isInstrumental ?? false
|
|
6613
6769
|
});
|
|
6770
|
+
var voiceSettings = (input) => {
|
|
6771
|
+
const settings = {
|
|
6772
|
+
...input.stability != null ? { stability: input.stability } : {},
|
|
6773
|
+
...input.similarityBoost != null ? { similarity_boost: input.similarityBoost } : {},
|
|
6774
|
+
...input.styleExaggeration != null ? { style: input.styleExaggeration } : {},
|
|
6775
|
+
...input.speed != null ? { speed: input.speed } : {},
|
|
6776
|
+
...input.useSpeakerBoost != null ? { use_speaker_boost: input.useSpeakerBoost } : {}
|
|
6777
|
+
};
|
|
6778
|
+
return Object.keys(settings).length > 0 ? { voice_settings: settings } : {};
|
|
6779
|
+
};
|
|
6780
|
+
var buildElevenLabsTTSPayload = (modelId) => (input) => ({
|
|
6781
|
+
text: input.prompt,
|
|
6782
|
+
voice_id: input.voiceId ?? DEFAULT_VOICE_ID,
|
|
6783
|
+
model_id: modelId,
|
|
6784
|
+
...input.language ? { language_code: input.language } : {},
|
|
6785
|
+
...voiceSettings(input)
|
|
6786
|
+
});
|
|
6787
|
+
var buildElevenLabsSTSPayload = (modelId) => (input) => ({
|
|
6788
|
+
audio_url: input.audioUrl,
|
|
6789
|
+
voice_id: input.voiceId ?? DEFAULT_VOICE_ID,
|
|
6790
|
+
model_id: modelId,
|
|
6791
|
+
remove_background_noise: input.removeBackgroundNoise ?? false,
|
|
6792
|
+
...voiceSettings(input)
|
|
6793
|
+
});
|
|
6794
|
+
var buildElevenLabsDialoguePayload = (input) => ({
|
|
6795
|
+
conversation: input.dialogue.map((line) => ({
|
|
6796
|
+
voice_id: line.voiceId,
|
|
6797
|
+
text: line.text
|
|
6798
|
+
})),
|
|
6799
|
+
model_id: "eleven_v3",
|
|
6800
|
+
...input.stability != null ? { settings: { stability: input.stability } } : {},
|
|
6801
|
+
...input.language ? { language_code: input.language } : {},
|
|
6802
|
+
...input.seed != null ? { seed: input.seed } : {}
|
|
6803
|
+
});
|
|
6614
6804
|
registerPayloads(MODELS23, {
|
|
6615
|
-
"elevenlabs-music-v2": buildElevenLabsMusicPayload
|
|
6805
|
+
"elevenlabs-music-v2": buildElevenLabsMusicPayload,
|
|
6806
|
+
"eleven-v3": buildElevenLabsTTSPayload("eleven_v3"),
|
|
6807
|
+
"eleven-multilingual-v2": buildElevenLabsTTSPayload("eleven_multilingual_v2"),
|
|
6808
|
+
"eleven-sts-v2": buildElevenLabsSTSPayload("eleven_english_sts_v2"),
|
|
6809
|
+
"eleven-multilingual-sts-v2": buildElevenLabsSTSPayload("eleven_multilingual_sts_v2"),
|
|
6810
|
+
"eleven-text-to-dialogue": buildElevenLabsDialoguePayload
|
|
6616
6811
|
});
|
|
6617
6812
|
|
|
6618
6813
|
// src/vendors/catalog/heygen.ts
|
|
@@ -9539,6 +9734,81 @@ registerPayloads(MODELS3, {
|
|
|
9539
9734
|
"creatify-boreal": buildCreatifyBorealPayload
|
|
9540
9735
|
});
|
|
9541
9736
|
|
|
9737
|
+
// src/vendors/catalog/ltx.payloads.ts
|
|
9738
|
+
function requireStartFrame(input) {
|
|
9739
|
+
if (!input.startFrame) {
|
|
9740
|
+
throw new ApiError("LTX 2.5: an end frame requires a start image.", {
|
|
9741
|
+
status: 400,
|
|
9742
|
+
code: "validation_error"
|
|
9743
|
+
});
|
|
9744
|
+
}
|
|
9745
|
+
return input.startFrame;
|
|
9746
|
+
}
|
|
9747
|
+
var buildLtx25ProT2VPayload = (input) => ({
|
|
9748
|
+
prompt: input.prompt,
|
|
9749
|
+
...input.duration != null ? { duration: input.duration } : {},
|
|
9750
|
+
...input.resolution ? { resolution: input.resolution } : {},
|
|
9751
|
+
...input.aspectRatio ? { aspect_ratio: input.aspectRatio } : {},
|
|
9752
|
+
...input.fps != null ? { fps: input.fps } : {},
|
|
9753
|
+
// `none` is the paramConfig sentinel for "leave the camera alone": the wire
|
|
9754
|
+
// has no such value and omitting the field is the vendor's default. Spelled
|
|
9755
|
+
// out per builder rather than shared, so the check narrows the literal union
|
|
9756
|
+
// instead of widening it to `string`. (`static` is a real, locked-off camera.)
|
|
9757
|
+
...input.cameraMotion && input.cameraMotion !== "none" ? { camera_motion: input.cameraMotion } : {},
|
|
9758
|
+
generate_audio: input.generateAudio ?? true
|
|
9759
|
+
});
|
|
9760
|
+
var buildLtx25ProI2VPayload = (input) => ({
|
|
9761
|
+
prompt: input.prompt,
|
|
9762
|
+
image_url: requireStartFrame(input),
|
|
9763
|
+
...input.endFrame ? { end_image_url: input.endFrame } : {},
|
|
9764
|
+
...input.duration != null ? { duration: input.duration } : {},
|
|
9765
|
+
...input.resolution ? { resolution: input.resolution } : {},
|
|
9766
|
+
...input.aspectRatio ? { aspect_ratio: input.aspectRatio } : {},
|
|
9767
|
+
...input.fps != null ? { fps: input.fps } : {},
|
|
9768
|
+
// `none` is the paramConfig sentinel for "leave the camera alone": the wire
|
|
9769
|
+
// has no such value and omitting the field is the vendor's default. Spelled
|
|
9770
|
+
// out per builder rather than shared, so the check narrows the literal union
|
|
9771
|
+
// instead of widening it to `string`. (`static` is a real, locked-off camera.)
|
|
9772
|
+
...input.cameraMotion && input.cameraMotion !== "none" ? { camera_motion: input.cameraMotion } : {},
|
|
9773
|
+
generate_audio: input.generateAudio ?? true
|
|
9774
|
+
});
|
|
9775
|
+
var buildLtx25FastT2VPayload = (input) => ({
|
|
9776
|
+
prompt: input.prompt,
|
|
9777
|
+
...input.duration != null ? { duration: input.duration } : {},
|
|
9778
|
+
...input.resolution ? { resolution: input.resolution } : {},
|
|
9779
|
+
...input.aspectRatio ? { aspect_ratio: input.aspectRatio } : {},
|
|
9780
|
+
...input.fps != null ? { fps: input.fps } : {},
|
|
9781
|
+
// `none` is the paramConfig sentinel for "leave the camera alone": the wire
|
|
9782
|
+
// has no such value and omitting the field is the vendor's default. Spelled
|
|
9783
|
+
// out per builder rather than shared, so the check narrows the literal union
|
|
9784
|
+
// instead of widening it to `string`. (`static` is a real, locked-off camera.)
|
|
9785
|
+
...input.cameraMotion && input.cameraMotion !== "none" ? { camera_motion: input.cameraMotion } : {},
|
|
9786
|
+
generate_audio: input.generateAudio ?? true
|
|
9787
|
+
});
|
|
9788
|
+
var buildLtx25FastI2VPayload = (input) => ({
|
|
9789
|
+
prompt: input.prompt,
|
|
9790
|
+
image_url: requireStartFrame(input),
|
|
9791
|
+
...input.endFrame ? { end_image_url: input.endFrame } : {},
|
|
9792
|
+
...input.duration != null ? { duration: input.duration } : {},
|
|
9793
|
+
...input.resolution ? { resolution: input.resolution } : {},
|
|
9794
|
+
...input.aspectRatio ? { aspect_ratio: input.aspectRatio } : {},
|
|
9795
|
+
...input.fps != null ? { fps: input.fps } : {},
|
|
9796
|
+
// `none` is the paramConfig sentinel for "leave the camera alone": the wire
|
|
9797
|
+
// has no such value and omitting the field is the vendor's default. Spelled
|
|
9798
|
+
// out per builder rather than shared, so the check narrows the literal union
|
|
9799
|
+
// instead of widening it to `string`. (`static` is a real, locked-off camera.)
|
|
9800
|
+
...input.cameraMotion && input.cameraMotion !== "none" ? { camera_motion: input.cameraMotion } : {},
|
|
9801
|
+
generate_audio: input.generateAudio ?? true
|
|
9802
|
+
});
|
|
9803
|
+
registerPayloads(MODELS2, {
|
|
9804
|
+
"ltx-v2.5-pro": buildLtx25ProT2VPayload,
|
|
9805
|
+
"ltx-v2.5-fast": buildLtx25FastT2VPayload
|
|
9806
|
+
});
|
|
9807
|
+
registerEditPayloads(MODELS2, {
|
|
9808
|
+
"ltx-v2.5-pro": buildLtx25ProI2VPayload,
|
|
9809
|
+
"ltx-v2.5-fast": buildLtx25FastI2VPayload
|
|
9810
|
+
});
|
|
9811
|
+
|
|
9542
9812
|
// src/vendors/catalog/index.ts
|
|
9543
9813
|
var ALL_MODELS = [
|
|
9544
9814
|
...MODELS,
|
|
@@ -12107,6 +12377,7 @@ var ElevenDubbing = "eleven-dubbing";
|
|
|
12107
12377
|
var ElevenMultilingualStsV2 = "eleven-multilingual-sts-v2";
|
|
12108
12378
|
var ElevenMultilingualV2 = "eleven-multilingual-v2";
|
|
12109
12379
|
var ElevenStsV2 = "eleven-sts-v2";
|
|
12380
|
+
var ElevenTextToDialogue = "eleven-text-to-dialogue";
|
|
12110
12381
|
var ElevenV3 = "eleven-v3";
|
|
12111
12382
|
var ElevenVoiceCreate = "eleven-voice-create";
|
|
12112
12383
|
var ElevenVoiceDesignV2 = "eleven-voice-design-v2";
|
|
@@ -12203,6 +12474,8 @@ var LtxV23Extend = "ltx-v2.3-extend";
|
|
|
12203
12474
|
var LtxV23Fast = "ltx-v2.3-fast";
|
|
12204
12475
|
var LtxV23Pro = "ltx-v2.3-pro";
|
|
12205
12476
|
var LtxV23Retake = "ltx-v2.3-retake";
|
|
12477
|
+
var LtxV25Fast = "ltx-v2.5-fast";
|
|
12478
|
+
var LtxV25Pro = "ltx-v2.5-pro";
|
|
12206
12479
|
var LumaRay2 = "luma-ray-2";
|
|
12207
12480
|
var LumaRay2ReframeVideo = "luma-ray-2-reframe-video";
|
|
12208
12481
|
var LumaRay32 = "luma-ray-3.2";
|
|
@@ -12347,6 +12620,7 @@ var Models = {
|
|
|
12347
12620
|
ElevenMultilingualStsV2,
|
|
12348
12621
|
ElevenMultilingualV2,
|
|
12349
12622
|
ElevenStsV2,
|
|
12623
|
+
ElevenTextToDialogue,
|
|
12350
12624
|
ElevenV3,
|
|
12351
12625
|
ElevenVoiceCreate,
|
|
12352
12626
|
ElevenVoiceDesignV2,
|
|
@@ -12443,6 +12717,8 @@ var Models = {
|
|
|
12443
12717
|
LtxV23Fast,
|
|
12444
12718
|
LtxV23Pro,
|
|
12445
12719
|
LtxV23Retake,
|
|
12720
|
+
LtxV25Fast,
|
|
12721
|
+
LtxV25Pro,
|
|
12446
12722
|
LumaRay2,
|
|
12447
12723
|
LumaRay2ReframeVideo,
|
|
12448
12724
|
LumaRay32,
|