@picsart/ai-sdk 6.7.0 → 6.8.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.
Files changed (3) hide show
  1. package/index.d.ts +28 -0
  2. package/index.js +127 -22
  3. 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;
@@ -2977,6 +3004,7 @@ declare const Models: {
2977
3004
  readonly ElevenMultilingualStsV2: "eleven-multilingual-sts-v2";
2978
3005
  readonly ElevenMultilingualV2: "eleven-multilingual-v2";
2979
3006
  readonly ElevenStsV2: "eleven-sts-v2";
3007
+ readonly ElevenTextToDialogue: "eleven-text-to-dialogue";
2980
3008
  readonly ElevenV3: "eleven-v3";
2981
3009
  readonly ElevenVoiceCreate: "eleven-voice-create";
2982
3010
  readonly ElevenVoiceDesignV2: "eleven-voice-design-v2";
package/index.js CHANGED
@@ -6344,23 +6344,12 @@ registerEditPayloads(MODELS22, {
6344
6344
  });
6345
6345
 
6346
6346
  // src/vendors/catalog/elevenlabs.ts
6347
- var buildElevenLabsTTSPayload = (modelId) => (ctx) => ({
6348
- text: ctx.prompt,
6349
- voice_id: ctx.voiceId ?? DEFAULT_VOICE_ID,
6350
- model_id: modelId,
6351
- ...ctx.language ? { language_code: ctx.language } : {}
6352
- });
6347
+ var VOICE_CATALOG = { workflow: "elevenlabs/v1/catalog/voices" };
6353
6348
  var buildElevenLabsSFXPayload = (modelId) => (ctx) => ({
6354
6349
  text: ctx.prompt,
6355
6350
  duration_seconds: ctx.duration ?? 5,
6356
6351
  model_id: modelId
6357
6352
  });
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
6353
  var buildElevenLabsAudioIsolationPayload = (ctx) => ({
6365
6354
  audio_url: ctx.audioUrl
6366
6355
  });
@@ -6383,13 +6372,35 @@ var buildElevenLabsVoicePreviewsPayload = (ctx) => ({
6383
6372
  voice_description: ctx.prompt,
6384
6373
  auto_generate_text: true
6385
6374
  });
6375
+ var voiceSettingsParams = (withSpeakerBoost) => ({
6376
+ stability: {
6377
+ label: "Stability",
6378
+ descriptor: { kind: "range", min: 0, max: 1, step: 0.05 }
6379
+ },
6380
+ similarityBoost: {
6381
+ label: "Similarity",
6382
+ descriptor: { kind: "range", min: 0, max: 1, step: 0.05 }
6383
+ },
6384
+ // `style` is taken on GenerationContext by the image models' style *name*,
6385
+ // so the vendor's 0–1 style exaggeration gets a key of its own.
6386
+ styleExaggeration: {
6387
+ label: "Style Exaggeration",
6388
+ descriptor: { kind: "range", min: 0, max: 1, step: 0.05 }
6389
+ },
6390
+ speed: {
6391
+ label: "Speed",
6392
+ descriptor: { kind: "range", min: 0.1, max: 5, step: 0.05 }
6393
+ },
6394
+ ...withSpeakerBoost ? { useSpeakerBoost: { label: "Speaker Boost", descriptor: { kind: "boolean", default: true } } } : {}
6395
+ });
6386
6396
  var ttsParamConfig = (promptMaxLength, withLanguage) => ({
6387
6397
  // language_code is honoured by eleven_v3 only — the vendor documents it as
6388
6398
  // "not supported for multilingual_v2 models" (silently ignored there).
6389
6399
  // No accent param anywhere: no builder ever read it.
6390
6400
  ...withLanguage ? params.language(false) : {},
6391
6401
  ...params.prompt({ maxLength: promptMaxLength }),
6392
- ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } })
6402
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: VOICE_CATALOG }),
6403
+ ...voiceSettingsParams(true)
6393
6404
  });
6394
6405
  var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6395
6406
  // ── TTS ───────────────────────────────────────────────────────────
@@ -6399,7 +6410,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6399
6410
  modelId: "eleven_v3",
6400
6411
  addedAt: "2026-02-06",
6401
6412
  workflow: "elevenlabs/v1/text-to-speech",
6402
- buildPayload: buildElevenLabsTTSPayload("eleven_v3"),
6403
6413
  estimatedTime: 11,
6404
6414
  mode: "audio",
6405
6415
  inputType: "tts",
@@ -6414,7 +6424,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6414
6424
  modelId: "eleven_multilingual_v2",
6415
6425
  addedAt: "2026-02-06",
6416
6426
  workflow: "elevenlabs/v1/text-to-speech",
6417
- buildPayload: buildElevenLabsTTSPayload("eleven_multilingual_v2"),
6418
6427
  estimatedTime: 9,
6419
6428
  mode: "audio",
6420
6429
  inputType: "tts",
@@ -6423,6 +6432,61 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6423
6432
  features: [feat("Stable", "characteristic"), feat("Professional", "characteristic")],
6424
6433
  paramConfig: ttsParamConfig(1e4, false)
6425
6434
  },
6435
+ // ── Dialogue ──────────────────────────────────────────────────────
6436
+ {
6437
+ // `modelId` is the pricing-catalog key, not the vendor id: the worker
6438
+ // registers the operation as `eleven-text-to-dialogue` while the vendor
6439
+ // model behind it is plain `eleven_v3`.
6440
+ id: "eleven-text-to-dialogue",
6441
+ name: "Eleven Dialogue v3",
6442
+ modelId: "eleven-text-to-dialogue",
6443
+ addedAt: "2026-09-22",
6444
+ workflow: "elevenlabs/v1/text-to-dialogue",
6445
+ estimatedTime: 12,
6446
+ mode: "audio",
6447
+ inputType: "tts",
6448
+ description: "Generate a multi-speaker conversation \u2014 a voice per line \u2014 in one take.",
6449
+ features: [feat("Multi-Speaker", "characteristic"), feat("Creative Control", "characteristic")],
6450
+ paramConfig: {
6451
+ // One entry per spoken line, in order. The vendor publishes no cap on the
6452
+ // number of lines, so none is invented here.
6453
+ //
6454
+ // The 5,000-character limit is the vendor's hard cap and applies to the
6455
+ // dialogue AS A WHOLE, which a per-field maxLength cannot express — a
6456
+ // single line simply cannot exceed it either. Probed against the live
6457
+ // `elevenlabs/v1/text-to-dialogue` worker: 10,000 characters are refused
6458
+ // with "Request text length (10000) exceeds the maximum text length of
6459
+ // 5000 characters", while 2,600 generate fine. The docs' "keep it at or
6460
+ // below 2,000" is guidance, not a limit. Note the far end is slow: a
6461
+ // 5,000-character dialogue outruns the worker's 120s vendor timeout.
6462
+ dialogue: {
6463
+ label: "Dialogue",
6464
+ required: true,
6465
+ descriptor: {
6466
+ kind: "object",
6467
+ array: { min: 1 },
6468
+ fields: {
6469
+ // A plain id, not a catalog-bound picker: catalog loading resolves
6470
+ // top-level params only. Every ElevenLabs model shares one voices
6471
+ // task, so a caller lists them from any TTS model — e.g.
6472
+ // `ai.catalogs.voices('eleven-v3')` — and uses the ids here.
6473
+ voiceId: { label: "Voice ID", kind: "text", placeholder: DEFAULT_VOICE_ID },
6474
+ text: { label: "Line", kind: "text", maxLength: 5e3 }
6475
+ }
6476
+ }
6477
+ },
6478
+ // The vendor takes any 0–1 double and defaults to 0.5; eleven_v3 reads the
6479
+ // three presets below, so the picker offers those instead of a slider
6480
+ // whose in-between values the engine rounds anyway.
6481
+ ...p.enum("stability", [
6482
+ { id: 0, label: "Creative" },
6483
+ { id: 0.5, label: "Natural" },
6484
+ { id: 1, label: "Robust" }
6485
+ ], 0.5, { label: "Stability" }),
6486
+ ...params.language(false),
6487
+ ...params.seed(4294967295)
6488
+ }
6489
+ },
6426
6490
  // ── Sound Effects ─────────────────────────────────────────────────
6427
6491
  {
6428
6492
  id: "elevenlabs-sfx",
@@ -6469,7 +6533,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6469
6533
  modelId: "eleven_english_sts_v2",
6470
6534
  addedAt: "2026-02-15",
6471
6535
  workflow: "elevenlabs/v1/speech-to-speech",
6472
- buildPayload: buildElevenLabsSTSPayload("eleven_english_sts_v2"),
6473
6536
  estimatedTime: 15,
6474
6537
  mode: "audio",
6475
6538
  inputType: "sts",
@@ -6477,8 +6540,9 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6477
6540
  features: [feat("Voice Changer", "characteristic"), feat("Emotion Preserved", "characteristic")],
6478
6541
  paramConfig: {
6479
6542
  ...params.audioInput("Speech Audio", true),
6480
- ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } }),
6481
- ...p.boolean("removeBackgroundNoise", false, "Remove Background Noise")
6543
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: VOICE_CATALOG }),
6544
+ ...p.boolean("removeBackgroundNoise", false, "Remove Background Noise"),
6545
+ ...voiceSettingsParams(false)
6482
6546
  }
6483
6547
  },
6484
6548
  {
@@ -6487,7 +6551,6 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6487
6551
  modelId: "eleven_multilingual_sts_v2",
6488
6552
  addedAt: "2026-02-15",
6489
6553
  workflow: "elevenlabs/v1/speech-to-speech",
6490
- buildPayload: buildElevenLabsSTSPayload("eleven_multilingual_sts_v2"),
6491
6554
  estimatedTime: 15,
6492
6555
  mode: "audio",
6493
6556
  inputType: "sts",
@@ -6495,8 +6558,9 @@ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6495
6558
  features: [feat("Voice Changer", "characteristic"), feat("Multilingual", "characteristic"), feat("29 Languages", "characteristic")],
6496
6559
  paramConfig: {
6497
6560
  ...params.audioInput("Speech Audio", true),
6498
- ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } }),
6499
- ...p.boolean("removeBackgroundNoise", false, "Remove Background Noise")
6561
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: VOICE_CATALOG }),
6562
+ ...p.boolean("removeBackgroundNoise", false, "Remove Background Noise"),
6563
+ ...voiceSettingsParams(false)
6500
6564
  }
6501
6565
  },
6502
6566
  // ── Audio Processing ────────────────────────────────────────────
@@ -6611,8 +6675,47 @@ var buildElevenLabsMusicPayload = (input) => ({
6611
6675
  model_id: "music_v2",
6612
6676
  force_instrumental: input.isInstrumental ?? false
6613
6677
  });
6678
+ var voiceSettings = (input) => {
6679
+ const settings = {
6680
+ ...input.stability != null ? { stability: input.stability } : {},
6681
+ ...input.similarityBoost != null ? { similarity_boost: input.similarityBoost } : {},
6682
+ ...input.styleExaggeration != null ? { style: input.styleExaggeration } : {},
6683
+ ...input.speed != null ? { speed: input.speed } : {},
6684
+ ...input.useSpeakerBoost != null ? { use_speaker_boost: input.useSpeakerBoost } : {}
6685
+ };
6686
+ return Object.keys(settings).length > 0 ? { voice_settings: settings } : {};
6687
+ };
6688
+ var buildElevenLabsTTSPayload = (modelId) => (input) => ({
6689
+ text: input.prompt,
6690
+ voice_id: input.voiceId ?? DEFAULT_VOICE_ID,
6691
+ model_id: modelId,
6692
+ ...input.language ? { language_code: input.language } : {},
6693
+ ...voiceSettings(input)
6694
+ });
6695
+ var buildElevenLabsSTSPayload = (modelId) => (input) => ({
6696
+ audio_url: input.audioUrl,
6697
+ voice_id: input.voiceId ?? DEFAULT_VOICE_ID,
6698
+ model_id: modelId,
6699
+ remove_background_noise: input.removeBackgroundNoise ?? false,
6700
+ ...voiceSettings(input)
6701
+ });
6702
+ var buildElevenLabsDialoguePayload = (input) => ({
6703
+ conversation: input.dialogue.map((line) => ({
6704
+ voice_id: line.voiceId,
6705
+ text: line.text
6706
+ })),
6707
+ model_id: "eleven_v3",
6708
+ ...input.stability != null ? { settings: { stability: input.stability } } : {},
6709
+ ...input.language ? { language_code: input.language } : {},
6710
+ ...input.seed != null ? { seed: input.seed } : {}
6711
+ });
6614
6712
  registerPayloads(MODELS23, {
6615
- "elevenlabs-music-v2": buildElevenLabsMusicPayload
6713
+ "elevenlabs-music-v2": buildElevenLabsMusicPayload,
6714
+ "eleven-v3": buildElevenLabsTTSPayload("eleven_v3"),
6715
+ "eleven-multilingual-v2": buildElevenLabsTTSPayload("eleven_multilingual_v2"),
6716
+ "eleven-sts-v2": buildElevenLabsSTSPayload("eleven_english_sts_v2"),
6717
+ "eleven-multilingual-sts-v2": buildElevenLabsSTSPayload("eleven_multilingual_sts_v2"),
6718
+ "eleven-text-to-dialogue": buildElevenLabsDialoguePayload
6616
6719
  });
6617
6720
 
6618
6721
  // src/vendors/catalog/heygen.ts
@@ -12107,6 +12210,7 @@ var ElevenDubbing = "eleven-dubbing";
12107
12210
  var ElevenMultilingualStsV2 = "eleven-multilingual-sts-v2";
12108
12211
  var ElevenMultilingualV2 = "eleven-multilingual-v2";
12109
12212
  var ElevenStsV2 = "eleven-sts-v2";
12213
+ var ElevenTextToDialogue = "eleven-text-to-dialogue";
12110
12214
  var ElevenV3 = "eleven-v3";
12111
12215
  var ElevenVoiceCreate = "eleven-voice-create";
12112
12216
  var ElevenVoiceDesignV2 = "eleven-voice-design-v2";
@@ -12347,6 +12451,7 @@ var Models = {
12347
12451
  ElevenMultilingualStsV2,
12348
12452
  ElevenMultilingualV2,
12349
12453
  ElevenStsV2,
12454
+ ElevenTextToDialogue,
12350
12455
  ElevenV3,
12351
12456
  ElevenVoiceCreate,
12352
12457
  ElevenVoiceDesignV2,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "6.7.0",
3
+ "version": "6.8.0",
4
4
  "type": "module",
5
5
  "description": "Type-safe SDK for 100+ AI models — image, video, audio, and text generation with Picsart",
6
6
  "license": "MIT",