@picsart/ai-sdk 3.23.0 → 3.24.1

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 (4) hide show
  1. package/README.md +35 -7
  2. package/index.d.ts +14 -1
  3. package/index.js +353 -72
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -24,9 +24,9 @@ npm install @picsart/ai-sdk
24
24
  ```typescript
25
25
  import { createClient, Models, Model, catalog } from '@picsart/ai-sdk'
26
26
 
27
- // Create a client — pass your authenticated fetch
27
+ // Create a client — pass your Picsart API key
28
28
  const ai = createClient({
29
- fetch: myAuthenticatedFetch,
29
+ apiKey: process.env.PICSART_API_KEY,
30
30
  apiUrl: 'https://api.picsart.com',
31
31
  })
32
32
 
@@ -49,13 +49,41 @@ Model(Models.Flux2Pro).params().toSchema() // param schema
49
49
  Model(Models.Flux2Pro).validate({ prompt: 'a cat' })
50
50
  ```
51
51
 
52
+ ## Authentication
53
+
54
+ Pass `apiKey` and the SDK sends `Authorization: Bearer <apiKey>` on every request
55
+ (a leading `Bearer ` is stripped if present). Create a key from the
56
+ [Authentication guide](https://picsart.com/api-platform/docs/authentication).
57
+
58
+ ```typescript
59
+ const ai = createClient({
60
+ apiKey: process.env.PICSART_API_KEY,
61
+ apiUrl: 'https://api.picsart.com',
62
+ })
63
+ ```
64
+
65
+ Keep the key server-side — anything shipped to a browser is public.
66
+
67
+ Apps that already handle auth themselves (session cookies, token refresh, a
68
+ backend proxy) can pass their own `fetch` instead. It takes precedence over
69
+ `apiKey` when both are set:
70
+
71
+ ```typescript
72
+ const ai = createClient({
73
+ fetch: myAuthenticatedFetch,
74
+ apiUrl: 'https://api.picsart.com',
75
+ })
76
+ ```
77
+
78
+ `createClient` throws if neither `apiKey` nor `fetch` is provided.
79
+
52
80
  ## Drive Integration
53
81
 
54
82
  Auto-save generations to Picsart Drive:
55
83
 
56
84
  ```typescript
57
85
  const ai = createClient({
58
- fetch: myAuthenticatedFetch,
86
+ apiKey: process.env.PICSART_API_KEY,
59
87
  apiUrl: 'https://api.picsart.com',
60
88
  drive: { folder: 'AI Playground' },
61
89
  })
@@ -83,7 +111,7 @@ as `mode: 'text'`. Each vendor uses its own native workflow, so capabilities are
83
111
  ```typescript
84
112
  import { createClient, Models } from '@picsart/ai-sdk'
85
113
 
86
- const ai = createClient({ fetch: myAuthenticatedFetch, apiUrl: 'https://api.picsart.com' })
114
+ const ai = createClient({ apiKey: process.env.PICSART_API_KEY, apiUrl: 'https://api.picsart.com' })
87
115
 
88
116
  // Text in, text out
89
117
  const { text } = await ai.generateText(Models.ClaudeOpus48, { prompt: 'Explain RAG in one line.' })
@@ -139,11 +167,11 @@ The SDK exports 7 symbols:
139
167
 
140
168
  | Export | Type | Description |
141
169
  |--------|------|-------------|
142
- | `createClient` | function | Create an AI client from authenticated fetch |
170
+ | `createClient` | function | Create an AI client from an API key (or a custom authenticated fetch) |
143
171
  | `Models` | object | Model catalog: 108 models + list/search/validate/toSchema |
144
172
  | `GenerateResult` | type | `{ url, model, handle, drive? }` |
145
- | `ClientConfig` | type | `{ fetch, apiUrl, drive? }` |
146
- | `AuthenticatedFetch` | type | `(url, init?) => Promise<Response>` |
173
+ | `ClientConfig` | type | `{ apiKey?, fetch?, apiUrl, drive? }` — one of `apiKey` / `fetch` required |
174
+ | `AuthenticatedFetch` | type | `(url, init?) => Promise<Response>` — for the custom-`fetch` path |
147
175
  | `SdkTransport` | type | Advanced: custom transport interface |
148
176
  | `WorkflowJobHandle` | type | Job handle for submit/status/cancel |
149
177
 
package/index.d.ts CHANGED
@@ -1100,6 +1100,18 @@ type ModelInputById = {
1100
1100
  aspectRatio?: "16:9" | "9:16";
1101
1101
  imageUrls?: string[];
1102
1102
  };
1103
+ "seed-audio-1.0": {
1104
+ prompt: string;
1105
+ voiceId?: "zh_female_vv_uranus_bigtts" | "zh_female_xiaohe_uranus_bigtts" | "en_female_stokie_uranus_bigtts" | "en_female_dacey_uranus_bigtts" | "en_male_tim_uranus_bigtts" | "zh_male_m191_uranus_bigtts" | "zh_male_taocheng_uranus_bigtts" | "zh_male_sophie_uranus_bigtts" | "zh_female_yingyujiaoxue_uranus_bigtts" | "zh_male_dayi_uranus_bigtts" | "zh_female_mizai_uranus_bigtts" | "zh_female_jitangnv_uranus_bigtts" | "zh_female_meilinvyou_uranus_bigtts" | "zh_female_liuchangnv_uranus_bigtts" | "zh_male_ruyayichen_uranus_bigtts" | "zh_female_cancan_uranus_bigtts" | "zh_female_tianmeixiaoyuan_uranus_bigtts" | "zh_female_tianmeitaozi_uranus_bigtts" | "zh_female_shuangkuaisisi_uranus_bigtts" | "zh_female_peiqi_uranus_bigtts" | "zh_female_xiaoxue_uranus_bigtts" | "zh_female_yuanqi_uranus_bigtts" | "zh_female_kefunvsheng_uranus_bigtts" | "zh_male_shaonianzixin_uranus_bigtts" | "zh_female_linjianvhai_uranus_bigtts" | "zh_female_kiwi_uranus_bigtts" | "zh_female_sajiaoxuemei_uranus_bigtts" | "de_male_seven_uranus_bigtts" | "jp_female_minimi_uranus_bigtts" | "fr_male_usseau_uranus_bigtts" | "es_male_felipe_uranus_bigtts" | "id_male_han_uranus_bigtts" | "pt_male_martins_uranus_bigtts" | "it_male_enzo_uranus_bigtts" | "kr_male_shane_uranus_bigtts" | "zh_male_liufei_uranus_bigtts" | "zh_female_qingxinnvsheng_uranus_bigtts" | "zh_male_sunwukong_uranus_bigtts" | "en_male_adam-imitation_uranus_bigtts" | "en_male_alberto_uranus_bigtts" | "en_male_alex_uranus_bigtts" | "en_female_allison_uranus_bigtts" | "en_female_authoritative-british_uranus_bigtts" | "en_female_authoritative-informative_uranus_bigtts" | "en_male_bill-jones_uranus_bigtts" | "en_male_bill_jones_corey_uranus_bigtts" | "en_male_brad_pitt_p1_uranus_bigtts" | "en_female_brittney_uranus_bigtts" | "en_female_brittney_pimintel_uranus_bigtts" | "en_male_bruce_uranus_bigtts" | "en_male_chandler_p1_uranus_bigtts" | "en_male_cowboy-bob_uranus_bigtts" | "en_male_cowboy_john_b_uranus_bigtts" | "en_male_david_uranus_bigtts" | "en_male_deep-voice_uranus_bigtts" | "en_male_diyuwenrounan_uranus_bigtts" | "en_male_evil-guy-oxley_uranus_bigtts" | "en_male_excited-male-voice_uranus_bigtts" | "en_male_father-christmas_uranus_bigtts" | "en_female_female_tutor_ms-jenny_uranus_bigtts" | "en_male_fernando-martinez_uranus_bigtts" | "en_male_godfather_uranus_bigtts" | "en_male_gollum_uranus_bigtts" | "en_male_hades_uranus_bigtts" | "en_female_hayley_uranus_bigtts" | "en_male_jamie_uranus_bigtts" | "en_female_jane_uranus_bigtts" | "en_female_jenny_uranus_bigtts" | "en_male_jidongchuanjiaoshi_uranus_bigtts" | "en_male_jimmy_uranus_bigtts" | "en_female_joanne_uranus_bigtts" | "en_male_joker_uranus_bigtts" | "en_male_josh_uranus_bigtts" | "en_male_josh_coery_uranus_bigtts" | "en_male_kevin_uranus_bigtts" | "en_male_knightley_uranus_bigtts" | "en_female_lana_del_rey_kelley_d_p1_uranus_bigtts" | "en_female_lana_del_rey_parky_s_p1_uranus_bigtts" | "en_male_marcus_uranus_bigtts" | "en_female_mel_uranus_bigtts" | "en_male_michael_uranus_bigtts" | "en_male_michael-mouse_uranus_bigtts" | "en_male_michael_kevin_uranus_bigtts" | "en_male_motivational-coach_uranus_bigtts" | "en_female_myra_uranus_bigtts" | "en_female_myra_cmb_uranus_bigtts" | "en_female_nadia_uranus_bigtts" | "en_female_natasha_uranus_bigtts" | "en_female_pleasant-female_uranus_bigtts" | "en_female_rachel_p1_uranus_bigtts" | "en_male_ronald_uranus_bigtts" | "en_male_russell_uranus_bigtts" | "en_female_scarlet_p1_uranus_bigtts" | "en_female_sharron_uranus_bigtts" | "en_male_simba_p1_uranus_bigtts" | "en_female_skye_uranus_bigtts" | "en_male_tom_hiddleston_p1_uranus_bigtts" | "en_male_valentino_uranus_bigtts" | "en_male_valentino_corey_uranus_bigtts" | "en_female_wenrouzhishijieshuonv_uranus_bigtts" | "en_female_xinwenjieshuonv_uranus_bigtts" | "en_male_yangguangjieshuonan_uranus_bigtts" | "en_female_zendaya_p1_uranus_bigtts" | "ja_female_bv024_uranus_bigtts" | "ja_female_bv520_uranus_bigtts" | "ja_female_bv521_uranus_bigtts" | "ja_female_bv522_uranus_bigtts" | "ja_female_bv523_uranus_bigtts" | "ja_male_bv524_uranus_bigtts" | "ja_female_minimi_uranus_bigtts" | "ja_female_shirou_uranus_bigtts" | "de_female_bv081_uranus_bigtts" | "de_male_sven_uranus_bigtts" | "es_female_bv084_uranus_bigtts" | "es_male_dani_uranus_bigtts" | "es_male_guillem_uranus_bigtts" | "es_female_ht_mx_f6_uranus_bigtts" | "mx_female_bv065_uranus_bigtts" | "mx_male_bv165dialogue_uranus_bigtts" | "mx_male_bv165narrator_uranus_bigtts" | "mx_female_bv166dialogue_uranus_bigtts" | "mx_female_bv166emotion_uranus_bigtts" | "mx_female_bv166narrator_uranus_bigtts" | "mx_male_felipe_uranus_bigtts" | "mx_male_ht_mx_m012_uranus_bigtts" | "mx_female_leslie_uranus_bigtts" | "mx_male_marcelo_uranus_bigtts" | "fr_female_fr_bv078_uranus_bigtts" | "fr_female_fr_f47_uranus_bigtts" | "fr_male_fr_m29_uranus_bigtts" | "id_male_bv160_uranus_bigtts" | "id_male_bv160dialogue_uranus_bigtts" | "id_male_bv160narration_uranus_bigtts" | "id_female_bv161_uranus_bigtts" | "id_female_bv161dialogue_uranus_bigtts" | "id_female_bv161narration_uranus_bigtts" | "id_female_bv164_uranus_bigtts" | "id_male_bv164dialogue_uranus_bigtts" | "id_male_bv164narration_uranus_bigtts" | "id_female_f20_uranus_bigtts" | "id_male_m08_uranus_bigtts" | "id_female_phulia_uranus_bigtts" | "pt_male_bv172_uranus_bigtts" | "pt_male_bv172dialogue_uranus_bigtts" | "pt_male_bv172emotion_uranus_bigtts" | "pt_male_bv172narrator_uranus_bigtts" | "pt_female_bv173_uranus_bigtts" | "pt_female_bv173dialogue_uranus_bigtts" | "pt_female_bv173emotion_uranus_bigtts" | "pt_female_bv173narrator_uranus_bigtts" | "pt_female_bv530_uranus_bigtts" | "pt_male_bv531_uranus_bigtts" | "pt_female_mari_uranus_bigtts" | "pt_male_rael_uranus_bigtts" | "ar_female_dina_uranus_bigtts" | "ar_female_fatma_uranus_bigtts" | "ar_male_youssef_uranus_bigtts" | "tl_female_annika_uranus_bigtts" | "tl_male_ed_uranus_bigtts" | "tl_female_hervie_uranus_bigtts" | "ko_male_bv545_uranus_bigtts" | "ko_female_bv546_uranus_bigtts" | "ko_male_m03_uranus_bigtts" | "ko_male_shane_uranus_bigtts" | "ms_male_ham_uranus_bigtts" | "ms_male_naim_uranus_bigtts" | "ru_female_af07_uranus_bigtts" | "ru_female_irinae_uranus_bigtts" | "ru_male_pavel_uranus_bigtts" | "ru_female_sophie_uranus_bigtts" | "ru_male_vlad_uranus_bigtts" | "th_female_bv568_angry_uranus_bigtts" | "th_female_bv568_fear_uranus_bigtts" | "th_female_bv568_happy_uranus_bigtts" | "th_female_bv568_hate_uranus_bigtts" | "th_female_bv568_neutral_uranus_bigtts" | "th_female_bv568_sad_uranus_bigtts" | "th_female_bv568_suprise_uranus_bigtts" | "vi_female_hong_uranus_bigtts" | "vi_female_ling_uranus_bigtts" | "vi_female_linh_uranus_bigtts" | "vi_female_partner_uranus_bigtts" | "vi_female_ruan_uranus_bigtts" | "vi_female_wu_uranus_bigtts" | "vi_male_wumg_uranus_bigtts";
1106
+ audioUrls?: string[];
1107
+ imageUrls?: string[];
1108
+ format?: "wav" | "mp3" | "pcm" | "ogg_opus";
1109
+ sampleRate?: 8000 | 16000 | 24000 | 32000 | 44100 | 48000;
1110
+ speechRate?: number;
1111
+ loudnessRate?: number;
1112
+ pitchRate?: number;
1113
+ aigcWatermark?: boolean;
1114
+ };
1103
1115
  "seedance-1.5-pro": {
1104
1116
  prompt: string;
1105
1117
  aspectRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "21:9" | "adaptive";
@@ -1897,7 +1909,7 @@ interface ModelFilter$1 {
1897
1909
  release?: ReleaseTag[];
1898
1910
  }
1899
1911
 
1900
- type AppProvider = 'picsart' | 'google' | 'kling' | 'grok' | 'openai' | 'flux' | 'ideogram' | 'elevenlabs' | 'minimax' | 'wan' | 'seedance' | 'ltx' | 'seedream' | 'hunyuan' | 'pika' | 'runway' | 'luma' | 'ovi' | 'creatify' | 'veed' | 'bytedance' | 'qwen' | 'reve' | 'recraft' | 'videography' | 'topaz' | 'heygen' | 'happyhorse' | 'pixverse' | 'anthropic' | 'async';
1912
+ type AppProvider = 'picsart' | 'google' | 'kling' | 'grok' | 'openai' | 'flux' | 'ideogram' | 'elevenlabs' | 'minimax' | 'wan' | 'seedance' | 'ltx' | 'seedream' | 'seedaudio' | 'hunyuan' | 'pika' | 'runway' | 'luma' | 'ovi' | 'creatify' | 'veed' | 'bytedance' | 'qwen' | 'reve' | 'recraft' | 'videography' | 'topaz' | 'heygen' | 'happyhorse' | 'pixverse' | 'anthropic' | 'async';
1901
1913
  /** Provider used by model definitions. */
1902
1914
  type Provider = AppProvider;
1903
1915
  /** App generation modes. */
@@ -2262,6 +2274,7 @@ declare const Models: {
2262
2274
  readonly RunwayGen4Aleph: "runway-gen4-aleph";
2263
2275
  readonly RunwayGen4Ref: "runway-gen4-ref";
2264
2276
  readonly RunwayGen45: "runway-gen4.5";
2277
+ readonly SeedAudio10: "seed-audio-1.0";
2265
2278
  readonly Seedance15Pro: "seedance-1.5-pro";
2266
2279
  readonly Seedance20: "seedance-2.0";
2267
2280
  readonly Seedance20Fast: "seedance-2.0-fast";
package/index.js CHANGED
@@ -662,6 +662,7 @@ var providers = {
662
662
  seedance: { color: "#EC4899", label: "SD", name: "Seedance" },
663
663
  ltx: { color: "#6366F1", label: "LT", name: "LTX" },
664
664
  seedream: { color: "#14B8A6", label: "SR", name: "Seedream" },
665
+ seedaudio: { color: "#7C3AED", label: "SA", name: "Seed Audio" },
665
666
  hunyuan: { color: "#F59E0B", label: "HY", name: "Hunyuan" },
666
667
  pika: { color: "#FF6B9D", label: "PK", name: "Pika" },
667
668
  runway: { color: "#00D4AA", label: "RW", name: "Runway" },
@@ -1006,7 +1007,7 @@ var passthroughPayload = (paramConfig) => (ctx) => {
1006
1007
  return payload;
1007
1008
  };
1008
1009
  function defineModels(provider, configs) {
1009
- const MODELS37 = [];
1010
+ const MODELS38 = [];
1010
1011
  for (const c of configs) {
1011
1012
  const prov = c.provider ?? provider;
1012
1013
  const resolvedPayload = c.buildPayload ?? passthroughPayload(c.paramConfig);
@@ -1041,19 +1042,19 @@ function defineModels(provider, configs) {
1041
1042
  if (c.constraints !== void 0) model.constraints = c.constraints;
1042
1043
  const contract = createModelContract(model);
1043
1044
  model.outputSchema = c.outputSchema ?? contract.output;
1044
- MODELS37.push(model);
1045
+ MODELS38.push(model);
1045
1046
  }
1046
- return { MODELS: MODELS37 };
1047
+ return { MODELS: MODELS38 };
1047
1048
  }
1048
- function registerPayloads(MODELS37, payloads) {
1049
+ function registerPayloads(MODELS38, payloads) {
1049
1050
  for (const [id, builder] of Object.entries(payloads)) {
1050
- const model = MODELS37.find((m) => m.id === id);
1051
+ const model = MODELS38.find((m) => m.id === id);
1051
1052
  if (model) model.buildPayload = builder;
1052
1053
  }
1053
1054
  }
1054
- function registerEditPayloads(MODELS37, payloads) {
1055
+ function registerEditPayloads(MODELS38, payloads) {
1055
1056
  for (const [id, builder] of Object.entries(payloads)) {
1056
- const model = MODELS37.find((m) => m.id === id);
1057
+ const model = MODELS38.find((m) => m.id === id);
1057
1058
  if (model) model.buildEditPayload = builder;
1058
1059
  }
1059
1060
  }
@@ -4078,39 +4079,6 @@ var { MODELS: MODELS14 } = defineModels("seedream", [
4078
4079
  }
4079
4080
  ]);
4080
4081
 
4081
- // src/vendors/catalog/reve.ts
4082
- var REVE_AR = ["16:9", "9:16", "1:1", "4:3", "3:4", "3:2", "2:3"];
4083
- var buildRevePayload = (ctx) => {
4084
- const hasImages = ctx.imageUrls && ctx.imageUrls.length > 0;
4085
- return {
4086
- prompt: ctx.prompt,
4087
- num_images: ctx.count ?? 1,
4088
- ...ctx.aspectRatio ? { aspect_ratio: ctx.aspectRatio } : {},
4089
- ...hasImages ? { image_url: ctx.imageUrls[0] } : {}
4090
- };
4091
- };
4092
- var { MODELS: MODELS15 } = defineModels("reve", [
4093
- {
4094
- id: "reve",
4095
- name: "Reve",
4096
- addedAt: "2026-02-06",
4097
- workflow: "reve/text-to-image",
4098
- editWorkflow: "reve/edit",
4099
- buildPayload: buildRevePayload,
4100
- estimatedTime: 20,
4101
- mode: "image",
4102
- inputType: "t2i",
4103
- description: "Stylized 1K images with optional reference input.",
4104
- features: [feat("Image Input", "input"), feat("1K", "resolution")],
4105
- paramConfig: {
4106
- ...params.prompt(),
4107
- ...params.aspectRatio(REVE_AR),
4108
- ...params.count(),
4109
- ...params.imageInput(1, "Source Image")
4110
- }
4111
- }
4112
- ]);
4113
-
4114
4082
  // src/core/voices.ts
4115
4083
  var DEFAULT_VOICE_ID = "JBFqnCBsd6RMkjVDRZzb";
4116
4084
  var ELEVENLABS_VOICES = [
@@ -4276,7 +4244,7 @@ var ELEVENLABS_VOICES = [
4276
4244
  }
4277
4245
  ];
4278
4246
  function getVoiceById(id, extra) {
4279
- return [...ELEVENLABS_VOICES, ...OPENAI_VOICES, ...GEMINI_VOICES, ...GROK_VOICES, ...extra ?? []].find((v) => v.id === id);
4247
+ return [...ELEVENLABS_VOICES, ...OPENAI_VOICES, ...GEMINI_VOICES, ...GROK_VOICES, ...SEEDAUDIO_VOICES, ...extra ?? []].find((v) => v.id === id);
4280
4248
  }
4281
4249
  var OPENAI_DEFAULT_VOICE_ID = "alloy";
4282
4250
  var OPENAI_VOICES = [
@@ -4438,6 +4406,309 @@ var ASYNC_VOICES = [
4438
4406
  { id: "db21e50c-9c85-4177-9bb2-9bf177890e44", name: "Abel", description: "Male voice with an authoritative tone, calm delivery, and clear articulation, perfect for informative and educational content. His subtle emphasis on key points enhances understanding, creating a focused and engaging experience for the listener while maintaining a professional presence.", tags: ["Male", "American (US)", "Informative/Educational"], provider: "async" },
4439
4407
  { id: "d7114790-534e-4007-b80d-6d176230553c", name: "Nellie", description: "Bold British-accented female voice with a slightly sharp, newscasting style. This voice delivers with clarity and confidence, ideal for news, reports, and formal announcements, ensuring a strong, professional presence while maintaining a sharp and impactful delivery.", tags: ["Female", "British (UK)", "Newscasting", "Informative/Educational"], provider: "async" }
4440
4408
  ];
4409
+ var SEEDAUDIO_DEFAULT_VOICE_ID = "en_male_tim_uranus_bigtts";
4410
+ var SEEDAUDIO_VOICES = [
4411
+ { id: "zh_female_vv_uranus_bigtts", name: "Vivi", description: "A youthful and vibrant female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4412
+ { id: "zh_female_xiaohe_uranus_bigtts", name: "Mindy", description: "A gentle, soft-spoken, and slightly mature female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4413
+ { id: "en_female_stokie_uranus_bigtts", name: "Stokie", description: "A trendy, casual, and expressive young female voice.", tags: ["Female", "English"], provider: "seedaudio" },
4414
+ { id: "en_female_dacey_uranus_bigtts", name: "Dacey", description: "A warm, empathetic, and highly engaging female voice.", tags: ["Female", "English"], provider: "seedaudio" },
4415
+ { id: "en_male_tim_uranus_bigtts", name: "Tim", description: "A clear, versatile, and friendly mid-range male voice.", tags: ["Male", "English"], provider: "seedaudio" },
4416
+ { id: "zh_male_m191_uranus_bigtts", name: "Kian", description: "A steady, clear, and versatile mid-range male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4417
+ { id: "zh_male_taocheng_uranus_bigtts", name: "Cedric", description: "A dynamic, spirited, and energetic young male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4418
+ { id: "zh_male_sophie_uranus_bigtts", name: "Sophie", description: "A smooth, modern, and soft-spoken young voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4419
+ { id: "zh_female_yingyujiaoxue_uranus_bigtts", name: "Jean", description: "A clear, authoritative yet encouraging female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4420
+ { id: "zh_male_dayi_uranus_bigtts", name: "Magnus", description: "A mature, resonant, and slightly dramatic male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4421
+ { id: "zh_female_mizai_uranus_bigtts", name: "Mabel", description: "A youthful, playful voice with a kid vibe.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4422
+ { id: "zh_female_jitangnv_uranus_bigtts", name: "Nadia", description: "A mature, soothing, and deeply emotional female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4423
+ { id: "zh_female_meilinvyou_uranus_bigtts", name: "Opal", description: "A sweet, intimate, and affectionate young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4424
+ { id: "zh_female_liuchangnv_uranus_bigtts", name: "Pearl", description: "A clear, steady, and highly articulate female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4425
+ { id: "zh_male_ruyayichen_uranus_bigtts", name: "Quentin", description: "A refined, gentle, and elegant young male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4426
+ { id: "zh_female_cancan_uranus_bigtts", name: "Corinne", description: "A young, vivid and energetic female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4427
+ { id: "zh_female_tianmeixiaoyuan_uranus_bigtts", name: "Esther", description: "A fresh, innocent, and youthful female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4428
+ { id: "zh_female_tianmeitaozi_uranus_bigtts", name: "Freya", description: "A soft, bright, and incredibly sweet young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4429
+ { id: "zh_female_shuangkuaisisi_uranus_bigtts", name: "Gigi", description: "A crisp, fast-paced, and confident young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4430
+ { id: "zh_female_peiqi_uranus_bigtts", name: "Holly", description: "A childlike, innocent little girl's voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4431
+ { id: "zh_female_xiaoxue_uranus_bigtts", name: "Lyla", description: "A pure, steady, and crystal-clear young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4432
+ { id: "zh_female_yuanqi_uranus_bigtts", name: "Daisy", description: "An energetic, cheerful, and optimistic young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4433
+ { id: "zh_female_kefunvsheng_uranus_bigtts", name: "Tracy", description: "A polished, professional, and courteous female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4434
+ { id: "zh_male_shaonianzixin_uranus_bigtts", name: "Jess", description: "A bright, confident, and energetic teenage male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4435
+ { id: "zh_female_linjianvhai_uranus_bigtts", name: "Pinky", description: "A warm, friendly, and approachable young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4436
+ { id: "zh_female_kiwi_uranus_bigtts", name: "Sweety", description: "A bright, cheerful, and modern young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4437
+ { id: "zh_female_sajiaoxuemei_uranus_bigtts", name: "Sandy", description: "A very young, sweet, and playful female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4438
+ { id: "de_male_seven_uranus_bigtts", name: "Sven", description: "A steady, clear, and confident male voice.", tags: ["Male", "German"], provider: "seedaudio" },
4439
+ { id: "jp_female_minimi_uranus_bigtts", name: "Minimi", description: "A high-pitched, sweet, 'kawaii' young female voice.", tags: ["Female", "Japanese"], provider: "seedaudio" },
4440
+ { id: "fr_male_usseau_uranus_bigtts", name: "Usseau", description: "A sophisticated, crisp, and articulate male voice.", tags: ["Male", "French"], provider: "seedaudio" },
4441
+ { id: "es_male_felipe_uranus_bigtts", name: "Felipe", description: "An energetic, upbeat, and charismatic young male voice.", tags: ["Male", "Spanish (MX)"], provider: "seedaudio" },
4442
+ { id: "id_male_han_uranus_bigtts", name: "Han", description: "A modern, smooth, and friendly young adult male voice.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
4443
+ { id: "pt_male_martins_uranus_bigtts", name: "Martins", description: "A charismatic, warm, and expressive male voice.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
4444
+ { id: "it_male_enzo_uranus_bigtts", name: "Enzo", description: "An authentic, charismatic, and warm Italian male voice.", tags: ["Male", "Italian"], provider: "seedaudio" },
4445
+ { id: "kr_male_shane_uranus_bigtts", name: "Jihoon", description: "A polished, modern, and smooth Korean male voice.", tags: ["Male", "Korean"], provider: "seedaudio" },
4446
+ { id: "zh_male_liufei_uranus_bigtts", name: "Felix", description: "A clear and energetic voice.", tags: ["Male", "Chinese"], provider: "seedaudio" },
4447
+ { id: "zh_female_qingxinnvsheng_uranus_bigtts", name: "Celeste", description: "A fresh and clear female voice.", tags: ["Female", "Chinese"], provider: "seedaudio" },
4448
+ { id: "zh_male_sunwukong_uranus_bigtts", name: "Monkey King", description: "A Monkey King character voice.", tags: ["Male", "Chinese", "Character"], provider: "seedaudio" },
4449
+ { id: "en_male_adam-imitation_uranus_bigtts", name: "Rowan", description: "An easygoing, natural young man with a cool, aloof edge.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4450
+ { id: "en_male_alberto_uranus_bigtts", name: "Alberto", description: "A gentle, approachable man with a low, soothing tone.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4451
+ { id: "en_male_alex_uranus_bigtts", name: "Alex", description: "An objective, composed young man with a warm, clear voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4452
+ { id: "en_female_allison_uranus_bigtts", name: "Allison", description: "An upbeat, enthusiastic college-aged woman, full of energy.", tags: ["Female", "English (US)", "Dubbing"], provider: "seedaudio" },
4453
+ { id: "en_female_authoritative-british_uranus_bigtts", name: "Charlotte", description: "A bright, crisp older sister with tension and drive.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4454
+ { id: "en_female_authoritative-informative_uranus_bigtts", name: "Margaret", description: "A gentle, sincere big sister with a soft, unhurried tone.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4455
+ { id: "en_male_bill-jones_uranus_bigtts", name: "Jones", description: "A humorous uncle with a thick Southern American accent.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4456
+ { id: "en_male_bill_jones_corey_uranus_bigtts", name: "Bill", description: "A steady, self-assured male professional with composure.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4457
+ { id: "en_male_brad_pitt_p1_uranus_bigtts", name: "Brad Pitt", description: "A laid-back man with a low, husky, relaxed voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4458
+ { id: "en_female_brittney_uranus_bigtts", name: "Brittney", description: "A warm, intelligent older sister with a tender heart.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4459
+ { id: "en_female_brittney_pimintel_uranus_bigtts", name: "Zoe", description: "A bright, spirited young girl bursting with energy.", tags: ["Female", "English (US)", "Audiobook"], provider: "seedaudio" },
4460
+ { id: "en_male_bruce_uranus_bigtts", name: "Adrian", description: "A composed, level-headed gentleman with rational restraint.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4461
+ { id: "en_male_chandler_p1_uranus_bigtts", name: "Leo", description: "A theatrical man with dramatic intonation and expressiveness.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4462
+ { id: "en_male_cowboy-bob_uranus_bigtts", name: "Bob", description: "A mature man with a deep, resonant, slightly raspy voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4463
+ { id: "en_male_cowboy_john_b_uranus_bigtts", name: "John", description: "An energetic, flamboyant uncle with a Southern accent.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4464
+ { id: "en_male_david_uranus_bigtts", name: "David", description: "A middle-aged man with a deep, weighty, unhurried voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4465
+ { id: "en_male_deep-voice_uranus_bigtts", name: "Orion", description: "A solid, textured voice with a slow pace and drama.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4466
+ { id: "en_male_diyuwenrounan_uranus_bigtts", name: "Julian", description: "A refined, gentle, sincere man with an easygoing manner.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
4467
+ { id: "en_male_evil-guy-oxley_uranus_bigtts", name: "Harrison", description: "A rigorous, professional heavyweight with commanding presence.", tags: ["Male", "English (US)", "Dubbing"], provider: "seedaudio" },
4468
+ { id: "en_male_excited-male-voice_uranus_bigtts", name: "Jasper", description: "A passionate young male voice with sweeping intonation.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4469
+ { id: "en_male_father-christmas_uranus_bigtts", name: "Alfred", description: "An elder with a deep, resonant voice and clear articulation.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4470
+ { id: "en_female_female_tutor_ms-jenny_uranus_bigtts", name: "Holly", description: "An enthusiastic, energetic female host with a vivid style.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4471
+ { id: "en_male_fernando-martinez_uranus_bigtts", name: "Felix", description: "A cheerful, lively male voice, contagious in emotion.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4472
+ { id: "en_male_godfather_uranus_bigtts", name: "Godfather", description: "A mature man with sincere emotion and a gentle, unhurried tone.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
4473
+ { id: "en_male_gollum_uranus_bigtts", name: "Gollum", description: "A wacky, over-the-top voice skilled at playful characters.", tags: ["Male", "English (US)", "RolePlay"], provider: "seedaudio" },
4474
+ { id: "en_male_hades_uranus_bigtts", name: "Beau", description: "A free-spirited mature man with a relaxed, easygoing tone.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4475
+ { id: "en_female_hayley_uranus_bigtts", name: "Hayley", description: "A lively female voice with strong emotional tension.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4476
+ { id: "en_male_jamie_uranus_bigtts", name: "Jamie", description: "A hearty, sincere, witty male voice full of energy.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4477
+ { id: "en_female_jane_uranus_bigtts", name: "Jane", description: "An energetic young girl with vivid, expressive emotion.", tags: ["Female", "English (US)", "Dubbing"], provider: "seedaudio" },
4478
+ { id: "en_female_jenny_uranus_bigtts", name: "Jenny", description: "A cheerful, warm, and talkative personality.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4479
+ { id: "en_male_jidongchuanjiaoshi_uranus_bigtts", name: "Blaze", description: "An immersive, passionate performance with fervent intonation.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4480
+ { id: "en_male_jimmy_uranus_bigtts", name: "Jimmy", description: "A sunny young man, vivid and engaging at sharing stories.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4481
+ { id: "en_female_joanne_uranus_bigtts", name: "Joanne", description: "A crisp, lively young female voice with a relaxed feel.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4482
+ { id: "en_male_joker_uranus_bigtts", name: "Joker", description: "A middle-aged voice with a slow pace and warm, magnetic tone.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4483
+ { id: "en_male_josh_uranus_bigtts", name: "Josh", description: "A clear, bright, cheerful, energetic young man.", tags: ["Male", "English (US)", "Dubbing"], provider: "seedaudio" },
4484
+ { id: "en_male_josh_coery_uranus_bigtts", name: "Josiah", description: "A businesslike young man with a deep, dignified voice.", tags: ["Male", "English (US)", "Education"], provider: "seedaudio" },
4485
+ { id: "en_male_kevin_uranus_bigtts", name: "Kevin", description: "A warm, magnetic middle-aged voice with fluent delivery.", tags: ["Male", "English (US)", "Education"], provider: "seedaudio" },
4486
+ { id: "en_male_knightley_uranus_bigtts", name: "Knightley", description: "A deep, magnetic middle-aged male voice with a steady manner.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
4487
+ { id: "en_female_lana_del_rey_kelley_d_p1_uranus_bigtts", name: "Lynn", description: "A soft, slightly husky young female voice.", tags: ["Female", "English (US)", "RolePlay"], provider: "seedaudio" },
4488
+ { id: "en_female_lana_del_rey_parky_s_p1_uranus_bigtts", name: "Ivy", description: "A gentle, soft female voice with a warm, natural tone.", tags: ["Female", "English (US)", "CustomerService"], provider: "seedaudio" },
4489
+ { id: "en_male_marcus_uranus_bigtts", name: "Marcus", description: "A mellow, deep mature male voice skilled at storytelling.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4490
+ { id: "en_female_mel_uranus_bigtts", name: "Mel", description: "A lively, dynamic female voice with vivid ups and downs.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4491
+ { id: "en_male_michael_uranus_bigtts", name: "Hank", description: "A laid-back man with a deep, magnetic, easygoing voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4492
+ { id: "en_male_michael-mouse_uranus_bigtts", name: "Chip", description: "A cartoonish, high-pitched, exaggerated comical voice.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4493
+ { id: "en_male_michael_kevin_uranus_bigtts", name: "Michael Kevin", description: "A professional narrator\u2014gentle, bright, and persuasive.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4494
+ { id: "en_male_motivational-coach_uranus_bigtts", name: "Rory", description: "An energetic college-aged man, full of emotion and dynamic.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
4495
+ { id: "en_female_myra_uranus_bigtts", name: "Myra", description: "A sweet, lively young-girl voice that tells stories gently.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4496
+ { id: "en_female_myra_cmb_uranus_bigtts", name: "Sunny", description: "A crisp, lively young female voice full of enthusiasm.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4497
+ { id: "en_female_nadia_uranus_bigtts", name: "Blair", description: "A clean, clear young female voice with a gentle way of speaking.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4498
+ { id: "en_female_natasha_uranus_bigtts", name: "Natasha", description: "A bright, vivid, warm and approachable conversational voice.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4499
+ { id: "en_female_pleasant-female_uranus_bigtts", name: "Elaine", description: "A gentle, lovely young lady with heartfelt warmth.", tags: ["Female", "English (US)", "Audiobook"], provider: "seedaudio" },
4500
+ { id: "en_female_rachel_p1_uranus_bigtts", name: "Rachel", description: "A bright, clear young female voice with strong dramatic flair.", tags: ["Female", "English (US)", "Entertainment"], provider: "seedaudio" },
4501
+ { id: "en_male_ronald_uranus_bigtts", name: "Ronald", description: "A British gentleman with a deep, resonant, dignified voice.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
4502
+ { id: "en_male_russell_uranus_bigtts", name: "Russell", description: "A warm, bright, sincere American boyfriend voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4503
+ { id: "en_female_scarlet_p1_uranus_bigtts", name: "Scarlet", description: "A gentle, deeply affectionate older sister.", tags: ["Female", "English (US)", "CustomerService"], provider: "seedaudio" },
4504
+ { id: "en_female_sharron_uranus_bigtts", name: "Sharron", description: "A young lady with a soft, slightly husky, easygoing voice.", tags: ["Female", "English (US)", "Entertainment"], provider: "seedaudio" },
4505
+ { id: "en_male_simba_p1_uranus_bigtts", name: "Simba", description: "A bright yet husky young male voice with strong expressiveness.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4506
+ { id: "en_female_skye_uranus_bigtts", name: "Skye", description: "A clear, candid older sister who speaks from the heart.", tags: ["Female", "English (US)"], provider: "seedaudio" },
4507
+ { id: "en_male_tom_hiddleston_p1_uranus_bigtts", name: "Tom", description: "A deep, reserved uncle with a narrative reciting style.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4508
+ { id: "en_male_valentino_uranus_bigtts", name: "Valentino", description: "A sunny, cheerful young man full of warmth and energy.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4509
+ { id: "en_male_valentino_corey_uranus_bigtts", name: "Clark", description: "A mature, dignified uncle with a steady narration style.", tags: ["Male", "English (US)", "Dubbing"], provider: "seedaudio" },
4510
+ { id: "en_female_wenrouzhishijieshuonv_uranus_bigtts", name: "Megan", description: "A gentle, fun older sister sharing knowledge in a relaxed way.", tags: ["Female", "English (US)", "CustomerService"], provider: "seedaudio" },
4511
+ { id: "en_female_xinwenjieshuonv_uranus_bigtts", name: "Kayla", description: "An enthusiastic, outgoing female student full of expressiveness.", tags: ["Female", "English (US)", "RolePlay"], provider: "seedaudio" },
4512
+ { id: "en_male_yangguangjieshuonan_uranus_bigtts", name: "Dylan", description: "A witty, humorous uncle with a vivid narrative style.", tags: ["Male", "English (US)"], provider: "seedaudio" },
4513
+ { id: "en_female_zendaya_p1_uranus_bigtts", name: "Zendaya", description: "An easygoing, approachable older sister full of energy.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
4514
+ { id: "ja_female_bv024_uranus_bigtts", name: "Bonnie", description: "A gentle, soft, warm female college student.", tags: ["Female", "Japanese"], provider: "seedaudio" },
4515
+ { id: "ja_female_bv520_uranus_bigtts", name: "Poppy", description: "An energetic young woman with an anime-dubbing style.", tags: ["Female", "Japanese", "Dubbing"], provider: "seedaudio" },
4516
+ { id: "ja_female_bv521_uranus_bigtts", name: "Aoi", description: "A sweet, lively young woman with strong performance appeal.", tags: ["Female", "Japanese", "Entertainment"], provider: "seedaudio" },
4517
+ { id: "ja_female_bv522_uranus_bigtts", name: "Hana", description: "A professional, dignified young woman with a broadcast tone.", tags: ["Female", "Japanese"], provider: "seedaudio" },
4518
+ { id: "ja_female_bv523_uranus_bigtts", name: "Lily", description: "An innocent, carefree little girl full of childlike charm.", tags: ["Female", "Japanese", "Entertainment"], provider: "seedaudio" },
4519
+ { id: "ja_male_bv524_uranus_bigtts", name: "Ken", description: "A capable, professional young man with a calm, restrained tone.", tags: ["Male", "Japanese"], provider: "seedaudio" },
4520
+ { id: "ja_female_minimi_uranus_bigtts", name: "Minimi", description: "A vibrant, hearty young woman with an outgoing personality.", tags: ["Female", "Japanese"], provider: "seedaudio" },
4521
+ { id: "ja_female_shirou_uranus_bigtts", name: "Shirou", description: "A spirited, straightforward young woman with anime style.", tags: ["Female", "Japanese", "Dubbing"], provider: "seedaudio" },
4522
+ { id: "de_female_bv081_uranus_bigtts", name: "Stella", description: "An objective, composed, and professional young female voice.", tags: ["Female", "German", "Education"], provider: "seedaudio" },
4523
+ { id: "de_male_sven_uranus_bigtts", name: "Sven", description: "A middle-aged man with a deep, magnetic, slightly raspy voice.", tags: ["Male", "German"], provider: "seedaudio" },
4524
+ { id: "es_female_bv084_uranus_bigtts", name: "Gracie", description: "A rational, capable woman with clear, organized narration.", tags: ["Female", "Spanish"], provider: "seedaudio" },
4525
+ { id: "es_male_dani_uranus_bigtts", name: "Dani", description: "An enthusiastic, talkative uncle with a charming style.", tags: ["Male", "Spanish", "Audiobook"], provider: "seedaudio" },
4526
+ { id: "es_male_guillem_uranus_bigtts", name: "Guillem", description: "An easygoing, cheerful, approachable young man.", tags: ["Male", "Spanish", "Audiobook"], provider: "seedaudio" },
4527
+ { id: "es_female_ht_mx_f6_uranus_bigtts", name: "Marisol", description: "A lively, enthusiastic girl-next-door full of energy.", tags: ["Female", "Spanish"], provider: "seedaudio" },
4528
+ { id: "mx_female_bv065_uranus_bigtts", name: "Irene", description: "A calm, objective, efficient, well-organized young woman.", tags: ["Female", "Spanish (MX)", "Education"], provider: "seedaudio" },
4529
+ { id: "mx_male_bv165dialogue_uranus_bigtts", name: "Diego", description: "A charming young man with a magnetic, vivid dialogue style.", tags: ["Male", "Spanish (MX)", "Audiobook"], provider: "seedaudio" },
4530
+ { id: "mx_male_bv165narrator_uranus_bigtts", name: "Marcos", description: "A steady, mature man with a deep, magnetic, professional tone.", tags: ["Male", "Spanish (MX)", "Audiobook"], provider: "seedaudio" },
4531
+ { id: "mx_female_bv166dialogue_uranus_bigtts", name: "Lucy", description: "A playful, cheerful, lovely young woman with vivid emotion.", tags: ["Female", "Spanish (MX)"], provider: "seedaudio" },
4532
+ { id: "mx_female_bv166emotion_uranus_bigtts", name: "Rosa", description: "A young woman with intense emotion and dramatic tension.", tags: ["Female", "Spanish (MX)"], provider: "seedaudio" },
4533
+ { id: "mx_female_bv166narrator_uranus_bigtts", name: "Freya", description: "A distinctive young woman skilled at vivid storytelling.", tags: ["Female", "Spanish (MX)", "Audiobook"], provider: "seedaudio" },
4534
+ { id: "mx_male_felipe_uranus_bigtts", name: "Felipe", description: "An enthusiastic, sharp-witted young man building suspense.", tags: ["Male", "Spanish (MX)"], provider: "seedaudio" },
4535
+ { id: "mx_male_ht_mx_m012_uranus_bigtts", name: "Derek", description: "An objective, restrained young man with a professional style.", tags: ["Male", "Spanish (MX)", "Education"], provider: "seedaudio" },
4536
+ { id: "mx_female_leslie_uranus_bigtts", name: "Leslie", description: "An approachable, gentle young woman with a soft pace.", tags: ["Female", "Spanish (MX)"], provider: "seedaudio" },
4537
+ { id: "mx_male_marcelo_uranus_bigtts", name: "Marcelo", description: "A gentle, refined, steady, dignified young man.", tags: ["Male", "Spanish (MX)"], provider: "seedaudio" },
4538
+ { id: "fr_female_fr_bv078_uranus_bigtts", name: "Simone", description: "A steady, professional, even-tempered auntie.", tags: ["Female", "French", "Dubbing"], provider: "seedaudio" },
4539
+ { id: "fr_female_fr_f47_uranus_bigtts", name: "Camille", description: "A professional, capable older sister with a calm style.", tags: ["Female", "French", "CustomerService"], provider: "seedaudio" },
4540
+ { id: "fr_male_fr_m29_uranus_bigtts", name: "Maurice", description: "A mature, steady uncle with a resonant, dignified voice.", tags: ["Male", "French", "Dubbing"], provider: "seedaudio" },
4541
+ { id: "id_male_bv160_uranus_bigtts", name: "Rocco", description: "An impassioned young man with intensely dramatic delivery.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
4542
+ { id: "id_male_bv160dialogue_uranus_bigtts", name: "Jude", description: "A young man with a dramatic, emotional performance style.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
4543
+ { id: "id_male_bv160narration_uranus_bigtts", name: "Hugo", description: "A rational, steady young man skilled at narrative storytelling.", tags: ["Male", "Indonesian", "Audiobook"], provider: "seedaudio" },
4544
+ { id: "id_female_bv161_uranus_bigtts", name: "Clara", description: "A gentle, even-tempered young woman with a bright, soft voice.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
4545
+ { id: "id_female_bv161dialogue_uranus_bigtts", name: "Sylvia", description: "A young woman with shifting emotions and film-dialogue atmosphere.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
4546
+ { id: "id_female_bv161narration_uranus_bigtts", name: "Celeste", description: "A sweet, lively female lead with emotionally rich narration.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
4547
+ { id: "id_female_bv164_uranus_bigtts", name: "Crew", description: "A blend of diverse voices for vivid multi-person dialogue.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
4548
+ { id: "id_male_bv164dialogue_uranus_bigtts", name: "Elian", description: "A gentle, refined young man with a dramatic performance style.", tags: ["Male", "Indonesian", "Dubbing"], provider: "seedaudio" },
4549
+ { id: "id_male_bv164narration_uranus_bigtts", name: "Ronan", description: "A professional, steady, calm mature uncle.", tags: ["Male", "Indonesian", "Audiobook"], provider: "seedaudio" },
4550
+ { id: "id_female_f20_uranus_bigtts", name: "Chloe", description: "An energetic, lively young woman with an elegant air.", tags: ["Female", "Indonesian", "Dubbing"], provider: "seedaudio" },
4551
+ { id: "id_male_m08_uranus_bigtts", name: "Kyle", description: "A rational, steady young man with a professional narration style.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
4552
+ { id: "id_female_phulia_uranus_bigtts", name: "Phulia", description: "A lively, cheerful young woman full of emotion and tension.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
4553
+ { id: "pt_male_bv172_uranus_bigtts", name: "Sam", description: "A two-person dialogue with contrasting fast and slow pacing.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
4554
+ { id: "pt_male_bv172dialogue_uranus_bigtts", name: "Walter", description: "A resonant, husky middle-aged uncle with a film-dialogue feel.", tags: ["Male", "Portuguese (BR)", "Dubbing"], provider: "seedaudio" },
4555
+ { id: "pt_male_bv172emotion_uranus_bigtts", name: "Vincent", description: "A middle-aged voice with intense emotion and dramatic flair.", tags: ["Male", "Portuguese (BR)", "Education"], provider: "seedaudio" },
4556
+ { id: "pt_male_bv172narrator_uranus_bigtts", name: "Miles", description: "A rational, calm, rigorous, professional male narrator.", tags: ["Male", "Portuguese (BR)", "Audiobook"], provider: "seedaudio" },
4557
+ { id: "pt_female_bv173_uranus_bigtts", name: "Diana", description: "A professional, composed, sharp, capable female narrator.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
4558
+ { id: "pt_female_bv173dialogue_uranus_bigtts", name: "Elena", description: "An elegant, mature idol-drama female lead.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
4559
+ { id: "pt_female_bv173emotion_uranus_bigtts", name: "Lola", description: "An enthusiastic performer full of emotion and expressive tension.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
4560
+ { id: "pt_female_bv173narrator_uranus_bigtts", name: "Emma", description: "A sharp, capable, calm, commanding female narrator.", tags: ["Female", "Portuguese (BR)", "Dubbing"], provider: "seedaudio" },
4561
+ { id: "pt_female_bv530_uranus_bigtts", name: "Sofia", description: "A gentle, soft, approachable, lively young woman.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
4562
+ { id: "pt_male_bv531_uranus_bigtts", name: "Arthur", description: "A rational, objective, steady, dependable middle-aged voice.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
4563
+ { id: "pt_female_mari_uranus_bigtts", name: "Mari", description: "A cheerful young woman with a hearty, gracious manner.", tags: ["Female", "Portuguese (BR)", "Education"], provider: "seedaudio" },
4564
+ { id: "pt_male_rael_uranus_bigtts", name: "Rael", description: "A fresh, crisp, energetic, sunny young man.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
4565
+ { id: "ar_female_dina_uranus_bigtts", name: "Dina", description: "A warm, lively Egyptian woman versed in local culture.", tags: ["Female", "Arabic"], provider: "seedaudio" },
4566
+ { id: "ar_female_fatma_uranus_bigtts", name: "Fatma", description: "A young woman with a gentle, tender voice for soft monologues.", tags: ["Female", "Arabic", "Entertainment"], provider: "seedaudio" },
4567
+ { id: "ar_male_youssef_uranus_bigtts", name: "Youssef", description: "A calm, easygoing middle-aged man with a conversational manner.", tags: ["Male", "Arabic"], provider: "seedaudio" },
4568
+ { id: "tl_female_annika_uranus_bigtts", name: "Annika", description: "An approachable young woman with an everyday-conversation quality.", tags: ["Female", "Filipino"], provider: "seedaudio" },
4569
+ { id: "tl_male_ed_uranus_bigtts", name: "Ed", description: "An approachable, easygoing middle-aged male voice.", tags: ["Male", "Filipino"], provider: "seedaudio" },
4570
+ { id: "tl_female_hervie_uranus_bigtts", name: "Hervie", description: "A professional, confident, engaging entertainment-news anchor.", tags: ["Female", "Filipino", "Audiobook"], provider: "seedaudio" },
4571
+ { id: "ko_male_bv545_uranus_bigtts", name: "Jay", description: "A hearty young man with a true-to-life performance style.", tags: ["Male", "Korean"], provider: "seedaudio" },
4572
+ { id: "ko_female_bv546_uranus_bigtts", name: "Momo", description: "A candid, lively young woman with an anime-drama style.", tags: ["Female", "Korean", "Dubbing"], provider: "seedaudio" },
4573
+ { id: "ko_male_m03_uranus_bigtts", name: "Minho", description: "A standard, professional Korean narrator with a magnetic voice.", tags: ["Male", "Korean"], provider: "seedaudio" },
4574
+ { id: "ko_male_shane_uranus_bigtts", name: "Shane", description: "A steady, refined, persuasive middle-aged uncle.", tags: ["Male", "Korean"], provider: "seedaudio" },
4575
+ { id: "ms_male_ham_uranus_bigtts", name: "Ham", description: "A steady, easygoing uncle skilled at analysis and explanation.", tags: ["Male", "Malay"], provider: "seedaudio" },
4576
+ { id: "ms_male_naim_uranus_bigtts", name: "Naim", description: "A gentle, refined, calm, dependable middle-aged uncle.", tags: ["Male", "Malay"], provider: "seedaudio" },
4577
+ { id: "ru_female_af07_uranus_bigtts", name: "Amelia", description: "A gentle, approachable, understanding, graceful young woman.", tags: ["Female", "Russian", "Audiobook"], provider: "seedaudio" },
4578
+ { id: "ru_female_irinae_uranus_bigtts", name: "Irinae", description: "An enthusiastic young woman with rich, expressive emotion.", tags: ["Female", "Russian", "Audiobook"], provider: "seedaudio" },
4579
+ { id: "ru_male_pavel_uranus_bigtts", name: "Pavel", description: "A middle-aged voice with a natural, comfortable narrative tone.", tags: ["Male", "Russian"], provider: "seedaudio" },
4580
+ { id: "ru_female_sophie_uranus_bigtts", name: "Ksenia", description: "A young female voice full of energy and warmth.", tags: ["Female", "Russian"], provider: "seedaudio" },
4581
+ { id: "ru_male_vlad_uranus_bigtts", name: "Silas", description: "A soft-spoken, gentle, calm, even-tempered young man.", tags: ["Male", "Russian", "Entertainment"], provider: "seedaudio" },
4582
+ { id: "th_female_bv568_angry_uranus_bigtts", name: "Valeria", description: "A domineering female lead with highly expressive emotion.", tags: ["Female", "Thai", "Education"], provider: "seedaudio" },
4583
+ { id: "th_female_bv568_fear_uranus_bigtts", name: "Iris", description: "An anxious, fearful, emotionally fragile young woman.", tags: ["Female", "Thai", "Audiobook"], provider: "seedaudio" },
4584
+ { id: "th_female_bv568_happy_uranus_bigtts", name: "Zara", description: "A young woman full of emotion with dramatic/animation dubbing.", tags: ["Female", "Thai"], provider: "seedaudio" },
4585
+ { id: "th_female_bv568_hate_uranus_bigtts", name: "Valentina", description: "A female lead with strong dramatic tension and expressive emotion.", tags: ["Female", "Thai"], provider: "seedaudio" },
4586
+ { id: "th_female_bv568_neutral_uranus_bigtts", name: "Mildred", description: "A calm, even-tempered young woman with balanced, neutral emotion.", tags: ["Female", "Thai"], provider: "seedaudio" },
4587
+ { id: "th_female_bv568_sad_uranus_bigtts", name: "Lydia", description: "A gentle, melancholic young woman with a strong narrative sense.", tags: ["Female", "Thai", "Dubbing"], provider: "seedaudio" },
4588
+ { id: "th_female_bv568_suprise_uranus_bigtts", name: "Phoebe", description: "A lively, vivid-minded young woman with a playful air.", tags: ["Female", "Thai", "Audiobook"], provider: "seedaudio" },
4589
+ { id: "vi_female_hong_uranus_bigtts", name: "Hong", description: "A straightforward young woman with frank emotional expression.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
4590
+ { id: "vi_female_ling_uranus_bigtts", name: "Ling", description: "A tender, kind, earnest, dependable young woman.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
4591
+ { id: "vi_female_linh_uranus_bigtts", name: "Linh", description: "A straightforward, candid young woman, crisp and decisive.", tags: ["Female", "Vietnamese", "Dubbing"], provider: "seedaudio" },
4592
+ { id: "vi_female_partner_uranus_bigtts", name: "Partner", description: "A young woman with intense, full emotion and youthful vitality.", tags: ["Female", "Vietnamese", "Dubbing"], provider: "seedaudio" },
4593
+ { id: "vi_female_ruan_uranus_bigtts", name: "Ruan", description: "A steady, clear-minded, dignified, poised young woman.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
4594
+ { id: "vi_female_wu_uranus_bigtts", name: "Wu", description: "A straightforward, outgoing young woman with a rational mindset.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
4595
+ { id: "vi_male_wumg_uranus_bigtts", name: "Wumg", description: "A modest, patient, rigorous, meticulous young man.", tags: ["Male", "Vietnamese"], provider: "seedaudio" }
4596
+ ];
4597
+
4598
+ // src/vendors/catalog/seedaudio.ts
4599
+ var REF_MUTEX_REASON = "A named voice and audio/image references cannot be combined.";
4600
+ var { MODELS: MODELS15 } = defineModels("seedaudio", [
4601
+ {
4602
+ id: "seed-audio-1.0",
4603
+ name: "Seed Audio",
4604
+ addedAt: "2026-07-27",
4605
+ workflow: "bytedance/text-to-speech",
4606
+ estimatedTime: 15,
4607
+ mode: "audio",
4608
+ inputType: "tts",
4609
+ description: "Synthesize natural speech from text \u2014 pick a named voice or clone one from a reference audio.",
4610
+ features: [feat("Voice Cloning", "characteristic"), feat("Reference Audio", "audio")],
4611
+ paramConfig: {
4612
+ ...params.prompt({ maxLength: 3e3 }),
4613
+ // Voice: a named BytePlus voice (default), OR clone from up to 3 reference
4614
+ // audios, OR one image reference. The three are mutually exclusive; the
4615
+ // payload builder prioritizes an uploaded reference over the named voice.
4616
+ ...params.voiceId(SEEDAUDIO_VOICES, SEEDAUDIO_DEFAULT_VOICE_ID),
4617
+ ...params.audioInputs(3, "Reference Audios"),
4618
+ ...params.imageInput(1, "Reference Image", false),
4619
+ // Output audio configuration (nested under `audio_config` at the wire).
4620
+ ...p.enum("format", ["wav", "mp3", "pcm", "ogg_opus"], "wav", { label: "Format" }),
4621
+ ...p.enum("sampleRate", [8e3, 16e3, 24e3, 32e3, 44100, 48e3], 44100, { label: "Sample Rate" }),
4622
+ ...p.range("speechRate", -50, 100, 0, { label: "Speech Rate" }),
4623
+ ...p.range("loudnessRate", -50, 100, 0, { label: "Loudness" }),
4624
+ ...p.range("pitchRate", -12, 12, 0, { label: "Pitch" }),
4625
+ ...p.boolean("aigcWatermark", false, "Watermark")
4626
+ },
4627
+ // Backend rejects mixing reference kinds. Trigger the mutex off the uploads
4628
+ // (voiceId always has a default, so it can't be a trigger) — an uploaded
4629
+ // reference greys out the voice picker and the other upload slot.
4630
+ constraints: [
4631
+ { when: { imageUrls: { exists: true } }, then: {
4632
+ voiceId: { disabled: true, reason: REF_MUTEX_REASON },
4633
+ audioUrls: { disabled: true, reason: REF_MUTEX_REASON }
4634
+ } },
4635
+ { when: { audioUrls: { exists: true } }, then: {
4636
+ voiceId: { disabled: true, reason: REF_MUTEX_REASON },
4637
+ imageUrls: { disabled: true, reason: REF_MUTEX_REASON }
4638
+ } }
4639
+ ]
4640
+ }
4641
+ ]);
4642
+
4643
+ // src/vendors/catalog/seedaudio.payloads.ts
4644
+ var assembleReferences = (input) => {
4645
+ const imageUrl = input.imageUrls?.[0];
4646
+ if (imageUrl) {
4647
+ return [{ image_url: imageUrl }];
4648
+ }
4649
+ if (input.audioUrls?.length) {
4650
+ return input.audioUrls.map((audioUrl) => ({ audio_url: audioUrl }));
4651
+ }
4652
+ return [{ speaker: input.voiceId ?? SEEDAUDIO_DEFAULT_VOICE_ID }];
4653
+ };
4654
+ var buildSeedAudioPayload = (input) => {
4655
+ const references = assembleReferences(input);
4656
+ return {
4657
+ model: "seed-audio-1.0",
4658
+ text_prompt: input.prompt,
4659
+ // Apply the paramConfig defaults explicitly — a custom builder (unlike the
4660
+ // pass-through one) doesn't get them for free, and the advertised defaults
4661
+ // must reach the wire (e.g. sampleRate 44100, else the backend picks a
4662
+ // format-dependent default that differs from what the UI showed).
4663
+ audio_config: {
4664
+ format: input.format ?? "wav",
4665
+ sample_rate: input.sampleRate ?? 44100,
4666
+ speech_rate: input.speechRate ?? 0,
4667
+ loudness_rate: input.loudnessRate ?? 0,
4668
+ pitch_rate: input.pitchRate ?? 0
4669
+ },
4670
+ // Send the watermark flag explicitly (default false) rather than omitting it
4671
+ // when false, so the SDK setting is honored instead of the backend default.
4672
+ watermark: { aigc_watermark: input.aigcWatermark ?? false },
4673
+ ...references ? { references } : {}
4674
+ };
4675
+ };
4676
+ registerPayloads(MODELS15, {
4677
+ "seed-audio-1.0": buildSeedAudioPayload
4678
+ });
4679
+
4680
+ // src/vendors/catalog/reve.ts
4681
+ var REVE_AR = ["16:9", "9:16", "1:1", "4:3", "3:4", "3:2", "2:3"];
4682
+ var buildRevePayload = (ctx) => {
4683
+ const hasImages = ctx.imageUrls && ctx.imageUrls.length > 0;
4684
+ return {
4685
+ prompt: ctx.prompt,
4686
+ num_images: ctx.count ?? 1,
4687
+ ...ctx.aspectRatio ? { aspect_ratio: ctx.aspectRatio } : {},
4688
+ ...hasImages ? { image_url: ctx.imageUrls[0] } : {}
4689
+ };
4690
+ };
4691
+ var { MODELS: MODELS16 } = defineModels("reve", [
4692
+ {
4693
+ id: "reve",
4694
+ name: "Reve",
4695
+ addedAt: "2026-02-06",
4696
+ workflow: "reve/text-to-image",
4697
+ editWorkflow: "reve/edit",
4698
+ buildPayload: buildRevePayload,
4699
+ estimatedTime: 20,
4700
+ mode: "image",
4701
+ inputType: "t2i",
4702
+ description: "Stylized 1K images with optional reference input.",
4703
+ features: [feat("Image Input", "input"), feat("1K", "resolution")],
4704
+ paramConfig: {
4705
+ ...params.prompt(),
4706
+ ...params.aspectRatio(REVE_AR),
4707
+ ...params.count(),
4708
+ ...params.imageInput(1, "Source Image")
4709
+ }
4710
+ }
4711
+ ]);
4441
4712
 
4442
4713
  // src/vendors/catalog/grok.ts
4443
4714
  var buildGrokT2VPayload = (ctx) => ({
@@ -4509,7 +4780,7 @@ var GROK_DURATIONS = [3, 5, 6, 8, 10, 12, 15];
4509
4780
  var GROK_VIDEO_RESOLUTIONS = ["480p", "720p"];
4510
4781
  var GROK_VIDEO_RESOLUTIONS_15 = ["480p", "720p", "1080p"];
4511
4782
  var GROK_IMAGE_RESOLUTIONS = ["1k", "2k"];
4512
- var { MODELS: MODELS16 } = defineModels("grok", [
4783
+ var { MODELS: MODELS17 } = defineModels("grok", [
4513
4784
  // ── Video ─────────────────────────────────────────
4514
4785
  {
4515
4786
  id: "grok-imagine-video",
@@ -4690,7 +4961,7 @@ var buildPikaFramesPayload = (ctx) => ({
4690
4961
  var PIKA_DURATIONS = [5, 10];
4691
4962
  var PIKA_AR = ["16:9", "9:16", "1:1", "4:5", "5:4", "3:2", "2:3"];
4692
4963
  var PIKA_RESOLUTIONS = ["720p", "1080p"];
4693
- var { MODELS: MODELS17 } = defineModels("pika", [
4964
+ var { MODELS: MODELS18 } = defineModels("pika", [
4694
4965
  {
4695
4966
  id: "pika-2.2",
4696
4967
  name: "Pika",
@@ -4815,7 +5086,7 @@ var veoLiteParamConfig = {
4815
5086
  var veoLiteConstraints = [
4816
5087
  { when: { resolution: { is: "1080p" } }, then: { duration: { allowed: [8], reason: "1080p supports 8s only" } } }
4817
5088
  ];
4818
- var { MODELS: MODELS18 } = defineModels("google", [
5089
+ var { MODELS: MODELS19 } = defineModels("google", [
4819
5090
  {
4820
5091
  id: "veo-3.1",
4821
5092
  name: "Veo 3.1",
@@ -4983,7 +5254,7 @@ var buildRunwayGen3aTurboPayload = (ctx) => ({
4983
5254
  ratio: RUNWAY_GEN3A_RATIO_MAP[ctx.aspectRatio ?? "16:9"] ?? "1280:768",
4984
5255
  duration: ctx.duration ?? 5
4985
5256
  });
4986
- var { MODELS: MODELS19 } = defineModels("runway", [
5257
+ var { MODELS: MODELS20 } = defineModels("runway", [
4987
5258
  {
4988
5259
  id: "runway-avatar-video",
4989
5260
  name: "Runway Avatar",
@@ -5160,7 +5431,7 @@ var fluxKontextBase = {
5160
5431
  mode: "image",
5161
5432
  inputType: "t2i"
5162
5433
  };
5163
- var { MODELS: MODELS20 } = defineModels("flux", [
5434
+ var { MODELS: MODELS21 } = defineModels("flux", [
5164
5435
  {
5165
5436
  ...fluxV2Base,
5166
5437
  id: "flux-2-pro",
@@ -5326,7 +5597,7 @@ var buildFlux3VideoPayload = (input) => {
5326
5597
  ...input.version ? { version: input.version } : {}
5327
5598
  };
5328
5599
  };
5329
- registerPayloads(MODELS20, {
5600
+ registerPayloads(MODELS21, {
5330
5601
  "flux-3-video": buildFlux3VideoPayload
5331
5602
  });
5332
5603
 
@@ -5408,7 +5679,7 @@ var thinkingBudgetParam = {
5408
5679
  descriptor: { kind: "range", min: 128, max: 24576, step: 128, default: 128 }
5409
5680
  }
5410
5681
  };
5411
- var { MODELS: MODELS21 } = defineModels("google", [
5682
+ var { MODELS: MODELS22 } = defineModels("google", [
5412
5683
  // ── Image ─────────────────────────────────────────────────────────
5413
5684
  {
5414
5685
  id: "gemini-3.1-flash-image",
@@ -5669,7 +5940,7 @@ var ttsParamConfig = {
5669
5940
  ...params.prompt({ maxLength: 4096 }),
5670
5941
  ...params.voiceId(OPENAI_VOICES, OPENAI_DEFAULT_VOICE_ID)
5671
5942
  };
5672
- var { MODELS: MODELS22 } = defineModels("openai", [
5943
+ var { MODELS: MODELS23 } = defineModels("openai", [
5673
5944
  // ── Image ─────────────────────────────────────────
5674
5945
  {
5675
5946
  id: "gpt-image-2",
@@ -5821,7 +6092,7 @@ var ttsParamConfig2 = (promptMaxLength) => ({
5821
6092
  ...params.prompt({ maxLength: promptMaxLength }),
5822
6093
  ...params.voiceId(ELEVENLABS_VOICES, DEFAULT_VOICE_ID)
5823
6094
  });
5824
- var { MODELS: MODELS23 } = defineModels("elevenlabs", [
6095
+ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
5825
6096
  // ── TTS ───────────────────────────────────────────────────────────
5826
6097
  {
5827
6098
  id: "eleven-v3",
@@ -6023,7 +6294,7 @@ var buildElevenLabsMusicPayload = (input) => ({
6023
6294
  model_id: "music_v2",
6024
6295
  force_instrumental: input.isInstrumental ?? false
6025
6296
  });
6026
- registerPayloads(MODELS23, {
6297
+ registerPayloads(MODELS24, {
6027
6298
  "elevenlabs-music-v2": buildElevenLabsMusicPayload
6028
6299
  });
6029
6300
 
@@ -6045,7 +6316,7 @@ var buildHeyGenVideoAvatarPayload = (ctx) => ({
6045
6316
  var dynamicVoiceConfig = {
6046
6317
  ...params.voiceId([], "", { required: true })
6047
6318
  };
6048
- var { MODELS: MODELS24 } = defineModels("heygen", [
6319
+ var { MODELS: MODELS25 } = defineModels("heygen", [
6049
6320
  // ── Photo Avatar (i2v) ────────────────────────────────────────────
6050
6321
  {
6051
6322
  id: "heygen-talking-photo",
@@ -6117,7 +6388,7 @@ var buildMinimaxMusicPayload = (ctx) => ({
6117
6388
  ...ctx.isInstrumental != null ? { is_instrumental: ctx.isInstrumental } : {},
6118
6389
  ...ctx.outputFormat ? { output_format: ctx.outputFormat } : { output_format: "url" }
6119
6390
  });
6120
- var { MODELS: MODELS25 } = defineModels("minimax", [
6391
+ var { MODELS: MODELS26 } = defineModels("minimax", [
6121
6392
  {
6122
6393
  id: "minimax-02-hd",
6123
6394
  name: "MiniMax 02 HD",
@@ -6198,7 +6469,7 @@ var buildIdeogramV4GeneratePayload = (ctx) => ({
6198
6469
  ...ctx.renderingSpeed ? { rendering_speed: ctx.renderingSpeed } : {},
6199
6470
  ...ctx.enableCopyrightDetection ? { enable_copyright_detection: true } : {}
6200
6471
  });
6201
- var { MODELS: MODELS26 } = defineModels("ideogram", [
6472
+ var { MODELS: MODELS27 } = defineModels("ideogram", [
6202
6473
  {
6203
6474
  id: "ideogram-v4",
6204
6475
  name: "Ideogram 4.0",
@@ -6318,7 +6589,7 @@ var imagenParams = {
6318
6589
  ...params.enhancePrompt(),
6319
6590
  ...params.negativePrompt()
6320
6591
  };
6321
- var { MODELS: MODELS27 } = defineModels("google", [
6592
+ var { MODELS: MODELS28 } = defineModels("google", [
6322
6593
  {
6323
6594
  id: "imagen-4.0",
6324
6595
  name: "Imagen 4.0",
@@ -6375,7 +6646,7 @@ var buildImagenPayload = (modelId) => (
6375
6646
  ...input.negativePrompt ? { negativePrompt: input.negativePrompt } : {}
6376
6647
  })
6377
6648
  );
6378
- registerPayloads(MODELS27, {
6649
+ registerPayloads(MODELS28, {
6379
6650
  "imagen-4.0": buildImagenPayload("imagen-4.0-generate-001"),
6380
6651
  "imagen-4.0-ultra": buildImagenPayload("imagen-4.0-ultra-generate-001"),
6381
6652
  "imagen-4.0-fast": buildImagenPayload("imagen-4.0-fast-generate-001")
@@ -6444,7 +6715,7 @@ var qwenV1Params3 = {
6444
6715
  ...qwenV1Params,
6445
6716
  ...p.enum("promptExtendMode", ["direct", "agent"], "direct")
6446
6717
  };
6447
- var { MODELS: MODELS28 } = defineModels("qwen", [
6718
+ var { MODELS: MODELS29 } = defineModels("qwen", [
6448
6719
  {
6449
6720
  id: "qwen",
6450
6721
  name: "Qwen",
@@ -6592,7 +6863,7 @@ var buildRecraftExploreSimilarPayload = (ctx) => ({
6592
6863
  similarity: ctx.similarity ?? 3,
6593
6864
  ...ctx.aspectRatio ? { size: ctx.aspectRatio } : {}
6594
6865
  });
6595
- var { MODELS: MODELS29 } = defineModels("recraft", [
6866
+ var { MODELS: MODELS30 } = defineModels("recraft", [
6596
6867
  // ── V4.1 family (raster only — vector variants exist in API but not exposed here) ─
6597
6868
  {
6598
6869
  id: "recraftv4_1",
@@ -7058,7 +7329,7 @@ var TOPAZ_VIDEO_MODEL_OPTIONS = [
7058
7329
  "Starlight Fast 1",
7059
7330
  "Starlight Fast 2"
7060
7331
  ];
7061
- var { MODELS: MODELS30 } = defineModels("topaz", [
7332
+ var { MODELS: MODELS31 } = defineModels("topaz", [
7062
7333
  {
7063
7334
  id: "topaz-upscale-image",
7064
7335
  name: "Topaz Image Upscale",
@@ -7109,7 +7380,7 @@ var buildTopazVideoPayload = (input) => ({
7109
7380
  upscale_factor: 2,
7110
7381
  H264_output: false
7111
7382
  });
7112
- registerPayloads(MODELS30, {
7383
+ registerPayloads(MODELS31, {
7113
7384
  "topaz-upscale-image": buildTopazImagePayload,
7114
7385
  "topaz-upscale-video": buildTopazVideoPayload
7115
7386
  });
@@ -7195,7 +7466,7 @@ var buildPcpSanaSprintPayload = (ctx) => {
7195
7466
  height: h
7196
7467
  };
7197
7468
  };
7198
- var { MODELS: MODELS31 } = defineModels("picsart", [
7469
+ var { MODELS: MODELS32 } = defineModels("picsart", [
7199
7470
  {
7200
7471
  id: "picsart-change-bg",
7201
7472
  name: "Picsart Change Background",
@@ -7351,7 +7622,7 @@ var buildLyria3Payload = (apiModelId) => (ctx) => ({
7351
7622
  ...ctx.imageUrls?.length === 1 ? { image: imagePart(ctx.imageUrls[0]) } : {},
7352
7623
  ...(ctx.imageUrls?.length ?? 0) > 1 ? { images: ctx.imageUrls.slice(0, 10).map(imagePart) } : {}
7353
7624
  });
7354
- var { MODELS: MODELS32 } = defineModels("google", [
7625
+ var { MODELS: MODELS33 } = defineModels("google", [
7355
7626
  {
7356
7627
  id: "lyria-3-clip",
7357
7628
  addedAt: "2026-03-26",
@@ -7474,7 +7745,7 @@ var buildHH11R2VPayload = (ctx) => {
7474
7745
  var HH_AR = ["16:9", "9:16", "1:1", "4:3", "3:4"];
7475
7746
  var HH_RES = ["720P", "1080P"];
7476
7747
  var HH_DURATIONS = [5, 10, 15];
7477
- var { MODELS: MODELS33 } = defineModels("happyhorse", [
7748
+ var { MODELS: MODELS34 } = defineModels("happyhorse", [
7478
7749
  {
7479
7750
  id: "happyhorse-1.0-t2v",
7480
7751
  name: "Happy Horse 1.0",
@@ -7619,7 +7890,7 @@ var baseFeatures = [
7619
7890
  feat("Up to 1080p", "resolution"),
7620
7891
  feat("5-15 sec", "duration")
7621
7892
  ];
7622
- var { MODELS: MODELS34 } = defineModels("pixverse", [
7893
+ var { MODELS: MODELS35 } = defineModels("pixverse", [
7623
7894
  // ── V6 ─────────────────────────────────────────────────────────────
7624
7895
  {
7625
7896
  id: "pixverse-v6",
@@ -7737,7 +8008,7 @@ var buildReferenceToVideoPayload = (model) => (input) => ({
7737
8008
  aspect_ratio: input.aspectRatio ?? "16:9",
7738
8009
  image_references: (input.imageUrls ?? []).map((url) => ({ url }))
7739
8010
  });
7740
- registerPayloads(MODELS34, {
8011
+ registerPayloads(MODELS35, {
7741
8012
  "pixverse-v6": buildTextToVideoPayload("v6"),
7742
8013
  "pixverse-v6-image": buildImageToVideoPayload("v6"),
7743
8014
  "pixverse-v6-fusion": buildReferenceToVideoPayload("v6"),
@@ -7747,7 +8018,7 @@ registerPayloads(MODELS34, {
7747
8018
  });
7748
8019
 
7749
8020
  // src/vendors/catalog/async-ai.ts
7750
- var { MODELS: MODELS35 } = defineModels("async", [
8021
+ var { MODELS: MODELS36 } = defineModels("async", [
7751
8022
  {
7752
8023
  id: "async-flash-v1",
7753
8024
  name: "Async Flash v1.0",
@@ -7787,7 +8058,7 @@ var buildAsyncTtsPayload = (input) => {
7787
8058
  }
7788
8059
  };
7789
8060
  };
7790
- registerPayloads(MODELS35, { "async-flash-v1": buildAsyncTtsPayload });
8061
+ registerPayloads(MODELS36, { "async-flash-v1": buildAsyncTtsPayload });
7791
8062
 
7792
8063
  // src/vendors/catalog/llm.ts
7793
8064
  var ADDED = "2026-06-16";
@@ -7909,7 +8180,7 @@ var { MODELS: GEMINI_LLM } = defineModels("google", [
7909
8180
  }
7910
8181
  }
7911
8182
  ]);
7912
- var MODELS36 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM];
8183
+ var MODELS37 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM];
7913
8184
 
7914
8185
  // src/vendors/catalog/llm.payloads.ts
7915
8186
  var CLAUDE_MAX_TOKENS = 8192;
@@ -7960,7 +8231,7 @@ var buildGeminiPayload = (modelId) => (input) => {
7960
8231
  ...level ? { generationConfig: { thinkingConfig: { thinkingLevel: level } } } : {}
7961
8232
  };
7962
8233
  };
7963
- registerPayloads(MODELS36, {
8234
+ registerPayloads(MODELS37, {
7964
8235
  "claude-opus-4-8": buildClaudePayload("claude-opus-4-8"),
7965
8236
  "claude-sonnet-4-6": buildClaudePayload("claude-sonnet-4-6"),
7966
8237
  "claude-haiku-4-5": buildClaudePayload("claude-haiku-4-5"),
@@ -8001,15 +8272,16 @@ var ALL_MODELS = [
8001
8272
  ...MODELS25,
8002
8273
  ...MODELS26,
8003
8274
  ...MODELS27,
8004
- ...MODELS32,
8005
8275
  ...MODELS28,
8276
+ ...MODELS33,
8006
8277
  ...MODELS29,
8007
8278
  ...MODELS30,
8008
8279
  ...MODELS31,
8009
- ...MODELS33,
8280
+ ...MODELS32,
8010
8281
  ...MODELS34,
8011
8282
  ...MODELS35,
8012
- ...MODELS36
8283
+ ...MODELS36,
8284
+ ...MODELS37
8013
8285
  ];
8014
8286
  var getModelsByMode = (mode, includeDisabled = false) => ALL_MODELS.filter((m) => m.mode === mode && (includeDisabled || isVisibleForReleases(m)));
8015
8287
 
@@ -8281,6 +8553,10 @@ function resolveModel(id) {
8281
8553
  }
8282
8554
 
8283
8555
  // src/client/transport.ts
8556
+ var GATEWAY_HEADERS = {
8557
+ "platform": "api",
8558
+ "X-Touchpoint": "sdk"
8559
+ };
8284
8560
  function resolveFetch(config) {
8285
8561
  if (config.fetch) return config.fetch;
8286
8562
  if (config.apiKey) {
@@ -8288,6 +8564,9 @@ function resolveFetch(config) {
8288
8564
  return (url, init) => {
8289
8565
  const headers = new Headers(init?.headers);
8290
8566
  headers.set("Authorization", `Bearer ${token}`);
8567
+ for (const [name, value] of Object.entries(GATEWAY_HEADERS)) {
8568
+ if (!headers.has(name)) headers.set(name, value);
8569
+ }
8291
8570
  return globalThis.fetch(url, { ...init, headers });
8292
8571
  };
8293
8572
  }
@@ -10058,6 +10337,7 @@ var RunwayGen3aTurbo = "runway-gen3a-turbo";
10058
10337
  var RunwayGen4Aleph = "runway-gen4-aleph";
10059
10338
  var RunwayGen4Ref = "runway-gen4-ref";
10060
10339
  var RunwayGen45 = "runway-gen4.5";
10340
+ var SeedAudio10 = "seed-audio-1.0";
10061
10341
  var Seedance15Pro = "seedance-1.5-pro";
10062
10342
  var Seedance20 = "seedance-2.0";
10063
10343
  var Seedance20Fast = "seedance-2.0-fast";
@@ -10251,6 +10531,7 @@ var Models = {
10251
10531
  RunwayGen4Aleph,
10252
10532
  RunwayGen4Ref,
10253
10533
  RunwayGen45,
10534
+ SeedAudio10,
10254
10535
  Seedance15Pro,
10255
10536
  Seedance20,
10256
10537
  Seedance20Fast,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "3.23.0",
3
+ "version": "3.24.1",
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",