@shop-os/modelkit 0.9.0 → 0.10.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.
- package/CHANGELOG.md +25 -0
- package/README.md +2 -1
- package/dist/catalog.cjs +464 -395
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.cts +6 -3
- package/dist/catalog.d.ts +6 -3
- package/dist/catalog.js +464 -395
- package/dist/catalog.js.map +1 -1
- package/dist/index.cjs +974 -623
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.js +973 -623
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/catalog.js
CHANGED
|
@@ -1219,303 +1219,6 @@ var VEED_SUBTITLES = {
|
|
|
1219
1219
|
}
|
|
1220
1220
|
};
|
|
1221
1221
|
|
|
1222
|
-
// src/catalog/voices-fish.ts
|
|
1223
|
-
var FISH_VOICES = [
|
|
1224
|
-
{
|
|
1225
|
-
id: "933563129e564b19a115bedd57b7406a",
|
|
1226
|
-
name: "Sarah",
|
|
1227
|
-
gender: "female",
|
|
1228
|
-
languages: ["en"],
|
|
1229
|
-
description: "An engaged speaker.",
|
|
1230
|
-
previewUrl: "https://platform.r2.fish.audio/task/4e204945670c460c86fdab57512cb308.mp3"
|
|
1231
|
-
},
|
|
1232
|
-
{
|
|
1233
|
-
id: "bf322df2096a46f18c579d0baa36f41d",
|
|
1234
|
-
name: "Adrian",
|
|
1235
|
-
gender: "male",
|
|
1236
|
-
languages: ["en"],
|
|
1237
|
-
description: "A steady and reliable narrator.",
|
|
1238
|
-
previewUrl: "https://platform.r2.fish.audio/task/d730b09f4a484316a77ecc86137e85fb.mp3"
|
|
1239
|
-
},
|
|
1240
|
-
{
|
|
1241
|
-
id: "536d3a5e000945adb7038665781a4aca",
|
|
1242
|
-
name: "Ethan",
|
|
1243
|
-
gender: "male",
|
|
1244
|
-
languages: ["en"],
|
|
1245
|
-
description: "A curious explainer.",
|
|
1246
|
-
previewUrl: "https://platform.r2.fish.audio/task/bdd677ed767744fc91f166468786264b.mp3"
|
|
1247
|
-
},
|
|
1248
|
-
{
|
|
1249
|
-
id: "b347db033a6549378b48d00acb0d06cd",
|
|
1250
|
-
name: "Selene",
|
|
1251
|
-
gender: "female",
|
|
1252
|
-
languages: ["en"],
|
|
1253
|
-
description: "A meditative female voice.",
|
|
1254
|
-
previewUrl: "https://platform.r2.fish.audio/task/fcf629b4a0b343558f461338ba1b9da4.mp3"
|
|
1255
|
-
},
|
|
1256
|
-
{
|
|
1257
|
-
id: "9a9cf47702da476aa4629e2506d4a857",
|
|
1258
|
-
name: "Hannah",
|
|
1259
|
-
gender: "female",
|
|
1260
|
-
languages: ["en"],
|
|
1261
|
-
description: "A conversation specialist.",
|
|
1262
|
-
previewUrl: "https://platform.r2.fish.audio/task/08d658835feb427db808e37060b78eb0.mp3"
|
|
1263
|
-
},
|
|
1264
|
-
{
|
|
1265
|
-
id: "79d0bd3e4e5444b18f7b6d89b5927bf1",
|
|
1266
|
-
name: "Jordan",
|
|
1267
|
-
gender: "male",
|
|
1268
|
-
languages: ["en"],
|
|
1269
|
-
description: "A motivational speaker.",
|
|
1270
|
-
previewUrl: "https://platform.r2.fish.audio/task/edecbc0bdd4c46c39eda8520a0f729ef.mp3"
|
|
1271
|
-
},
|
|
1272
|
-
{
|
|
1273
|
-
id: "e3cd384158934cc9a01029cd7d278634",
|
|
1274
|
-
name: "Laura",
|
|
1275
|
-
gender: "female",
|
|
1276
|
-
languages: ["en"],
|
|
1277
|
-
description: "A confident female narrator.",
|
|
1278
|
-
previewUrl: "https://platform.r2.fish.audio/task/e821bef995344d519caa1c93d808db23.mp3"
|
|
1279
|
-
},
|
|
1280
|
-
{
|
|
1281
|
-
id: "f3a2b90078d54a65af4b95f63bc7798e",
|
|
1282
|
-
name: "Sheila",
|
|
1283
|
-
gender: "female",
|
|
1284
|
-
accent: "american",
|
|
1285
|
-
languages: ["en"],
|
|
1286
|
-
description: "A young American English woman's voice.",
|
|
1287
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/9bb9e1a1cf3f47f38700da1c5c0a678a.mp3"
|
|
1288
|
-
},
|
|
1289
|
-
{
|
|
1290
|
-
id: "0db6e93af420470b9d9b9a886dbaa954",
|
|
1291
|
-
name: "Kai",
|
|
1292
|
-
gender: "male",
|
|
1293
|
-
languages: ["en"],
|
|
1294
|
-
description: "A friendly English man's voice for companion apps and everyday conversation.",
|
|
1295
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/13306f1172544c3ba3106d1e363feaa6.mp3"
|
|
1296
|
-
},
|
|
1297
|
-
{
|
|
1298
|
-
id: "8abfa9ebd4c24a3399b68c3cdac8c7b5",
|
|
1299
|
-
name: "Freya",
|
|
1300
|
-
gender: "female",
|
|
1301
|
-
accent: "british",
|
|
1302
|
-
languages: ["en"],
|
|
1303
|
-
description: "A natural, professional British English voice with a brisk, conversational pace. Clear and easy to follow, suited to voice assistants, customer support and everyday narration.",
|
|
1304
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/07918705a56b42daaab149f65392cea7.mp3"
|
|
1305
|
-
},
|
|
1306
|
-
{
|
|
1307
|
-
id: "2f64e528a4f2406691925ab1e0ed5b7f",
|
|
1308
|
-
name: "Ananya",
|
|
1309
|
-
gender: "female",
|
|
1310
|
-
languages: ["hi"],
|
|
1311
|
-
description: "\u0938\u093E\u092B\u093C \u0914\u0930 \u0906\u0924\u094D\u092E\u0935\u093F\u0936\u094D\u0935\u093E\u0938 \u092D\u0930\u0940 \u0906\u0935\u093E\u091C\u093C, \u091C\u094B \u0935\u0949\u0907\u0938 \u0905\u0938\u093F\u0938\u094D\u091F\u0947\u0902\u091F, \u0917\u094D\u0930\u093E\u0939\u0915 \u0938\u0947\u0935\u093E \u0914\u0930 \u092A\u094D\u0930\u0938\u094D\u0924\u0941\u0924\u093F\u092F\u094B\u0902 \u0915\u0947 \u0932\u093F\u090F \u0909\u092A\u092F\u0941\u0915\u094D\u0924 \u0939\u0948\u0964",
|
|
1312
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a17a700668d8405f8316db120733145c.mp3"
|
|
1313
|
-
},
|
|
1314
|
-
{
|
|
1315
|
-
id: "cefd91a07b99468f9148e2580990082d",
|
|
1316
|
-
name: "Arjun",
|
|
1317
|
-
gender: "male",
|
|
1318
|
-
languages: ["hi"],
|
|
1319
|
-
description: "\u0938\u093E\u092B\u093C \u0914\u0930 \u0906\u0924\u094D\u092E\u0935\u093F\u0936\u094D\u0935\u093E\u0938 \u092D\u0930\u0940 \u0906\u0935\u093E\u091C\u093C, \u091C\u094B \u0935\u0949\u0907\u0938 \u0905\u0938\u093F\u0938\u094D\u091F\u0947\u0902\u091F, \u0917\u094D\u0930\u093E\u0939\u0915 \u0938\u0947\u0935\u093E \u0914\u0930 \u092A\u094D\u0930\u0938\u094D\u0924\u0941\u0924\u093F\u092F\u094B\u0902 \u0915\u0947 \u0932\u093F\u090F \u0909\u092A\u092F\u0941\u0915\u094D\u0924 \u0939\u0948\u0964",
|
|
1320
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/a0c4a8eadb7841cdae8e5e68031a2dfb.mp3"
|
|
1321
|
-
},
|
|
1322
|
-
{
|
|
1323
|
-
id: "3f065d660212478a9c697fa965b4d098",
|
|
1324
|
-
name: "Carmen",
|
|
1325
|
-
gender: "female",
|
|
1326
|
-
languages: ["es"],
|
|
1327
|
-
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1328
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/3421be48b6cb4c28bf829c25188e7e74.mp3"
|
|
1329
|
-
},
|
|
1330
|
-
{
|
|
1331
|
-
id: "ec0718028a2445fb9be8e8bfb56a0150",
|
|
1332
|
-
name: "Rodrigo",
|
|
1333
|
-
gender: "male",
|
|
1334
|
-
languages: ["es"],
|
|
1335
|
-
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1336
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/5a77c32365604800ad5b4eb13c5585df.mp3"
|
|
1337
|
-
},
|
|
1338
|
-
{
|
|
1339
|
-
id: "10a3a20742114a4ea6dd441e7591850f",
|
|
1340
|
-
name: "Manon",
|
|
1341
|
-
gender: "female",
|
|
1342
|
-
languages: ["fr"],
|
|
1343
|
-
description: "Une voix claire et vive, adapt\xE9e aux assistants vocaux et au support client.",
|
|
1344
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/f7b75ee1fa524e48a8cefb003cf72952.mp3"
|
|
1345
|
-
},
|
|
1346
|
-
{
|
|
1347
|
-
id: "f69bca092b674168a8d02d61ca20943c",
|
|
1348
|
-
name: "Lucas",
|
|
1349
|
-
gender: "male",
|
|
1350
|
-
languages: ["fr"],
|
|
1351
|
-
description: "Une voix claire et assur\xE9e, adapt\xE9e aux assistants vocaux et au service client.",
|
|
1352
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/86fca3e56a014a3d8a11450854bb8311.mp3"
|
|
1353
|
-
},
|
|
1354
|
-
{
|
|
1355
|
-
id: "3937b44b604249f18b94913daef94043",
|
|
1356
|
-
name: "Lena",
|
|
1357
|
-
gender: "female",
|
|
1358
|
-
languages: ["de"],
|
|
1359
|
-
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
1360
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/8659fec80b74442dab68a7755716a401.mp3"
|
|
1361
|
-
},
|
|
1362
|
-
{
|
|
1363
|
-
id: "c1e7cc926aa5469aa966c353094d4b0b",
|
|
1364
|
-
name: "Lukas",
|
|
1365
|
-
gender: "male",
|
|
1366
|
-
languages: ["de"],
|
|
1367
|
-
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
1368
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/fb1d538126bb4fe38f8366250f6a2136.mp3"
|
|
1369
|
-
},
|
|
1370
|
-
{
|
|
1371
|
-
id: "b3c060cc41544a7da94a2c487647c902",
|
|
1372
|
-
name: "Let\xEDcia",
|
|
1373
|
-
gender: "female",
|
|
1374
|
-
accent: "brazilian",
|
|
1375
|
-
languages: ["pt"],
|
|
1376
|
-
description: "A Brazilian-accented Portuguese woman's voice, in her late twenties. Soft, warm, intimate. A freelance designer from Belo Horizonte who enjoys long walks in the park. Best suited to companion apps and casual everyday conversation.",
|
|
1377
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/13c6c0d96b5c4069951f89868ee15360.mp3"
|
|
1378
|
-
},
|
|
1379
|
-
{
|
|
1380
|
-
id: "add7bcb8d3c8423bbfa152ca232aad6e",
|
|
1381
|
-
name: "Ricardo",
|
|
1382
|
-
gender: "male",
|
|
1383
|
-
accent: "brazilian",
|
|
1384
|
-
languages: ["pt"],
|
|
1385
|
-
description: "A Brazilian-accented Portuguese man's voice, in his late forties. Clear, professional, monotone. A high school history teacher from Curitiba who loves classical music. Best suited to lessons, tutoring and explainer content.",
|
|
1386
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/67475fc717ae45cbb38e647a2dd37fe1.mp3"
|
|
1387
|
-
},
|
|
1388
|
-
{
|
|
1389
|
-
id: "b2d9d8db057042688a5e318b8f405bc2",
|
|
1390
|
-
name: "Kyoko",
|
|
1391
|
-
gender: "female",
|
|
1392
|
-
languages: ["ja"],
|
|
1393
|
-
description: "\u4E01\u5BE7\u3067\u843D\u3061\u7740\u3044\u305F\u8A71\u3057\u65B9\u304C\u7279\u5FB4\u306E\u5973\u6027\u306E\u58F0\u3002\u304A\u5BA2\u69D8\u5BFE\u5FDC\u3084\u60C5\u5831\u63D0\u4F9B\u306B\u6700\u9069\u3002",
|
|
1394
|
-
previewUrl: "https://platform.r2.fish.audio/task/993b3ccb52124341aff79580f1ce5a5a.mp3"
|
|
1395
|
-
},
|
|
1396
|
-
{
|
|
1397
|
-
id: "297a6fd278df47c3b9da9bfdf55ac89a",
|
|
1398
|
-
name: "Satoru",
|
|
1399
|
-
gender: "male",
|
|
1400
|
-
languages: ["ja"],
|
|
1401
|
-
description: "\u82E5\u3005\u3057\u304F\u3082\u843D\u3061\u7740\u304D\u306E\u3042\u308B\u7537\u6027\u306E\u58F0\u3002\u65E5\u5E38\u306E\u8A9E\u308A\u3084\u30EA\u30E9\u30C3\u30AF\u30B9\u3057\u305F\u30CA\u30EC\u30FC\u30B7\u30E7\u30F3\u306B\u6700\u9069\u3002",
|
|
1402
|
-
previewUrl: "https://platform.r2.fish.audio/task/1b4712fb831f4c149eef6b0133157418.mp3"
|
|
1403
|
-
},
|
|
1404
|
-
{
|
|
1405
|
-
id: "0b14f34a13a94ed88fe6113193749bb0",
|
|
1406
|
-
name: "Fatima",
|
|
1407
|
-
gender: "female",
|
|
1408
|
-
languages: ["ar"],
|
|
1409
|
-
description: "\u0635\u0648\u062A \u0648\u0627\u0636\u062D \u0648\u0648\u0627\u062B\u0642 \u064A\u0646\u0627\u0633\u0628 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u0627\u062A \u0627\u0644\u0635\u0648\u062A\u064A\u0629 \u0648\u062E\u062F\u0645\u0629 \u0627\u0644\u0639\u0645\u0644\u0627\u0621 \u0648\u0627\u0644\u0639\u0631\u0648\u0636 \u0627\u0644\u062A\u0642\u062F\u064A\u0645\u064A\u0629.",
|
|
1410
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/93406e1b905a4c4994306e3421243390.mp3"
|
|
1411
|
-
},
|
|
1412
|
-
{
|
|
1413
|
-
id: "74c6aba5cbf94a15bbdc547ffce5cb38",
|
|
1414
|
-
name: "Yutong",
|
|
1415
|
-
gender: "female",
|
|
1416
|
-
languages: ["zh"],
|
|
1417
|
-
description: "\u58F0\u97F3\u6E05\u6670\u81EA\u7136\uFF0C\u8868\u8FBE\u5229\u843D\uFF0C\u9002\u5408\u8BED\u97F3\u52A9\u624B\u3001\u5BA2\u670D\u548C\u65E5\u5E38\u64AD\u62A5\u3002",
|
|
1418
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a48320f37fe44c4699549a1afc3778e8.mp3"
|
|
1419
|
-
}
|
|
1420
|
-
];
|
|
1421
|
-
|
|
1422
|
-
// src/catalog/speech-fish.ts
|
|
1423
|
-
var FISH_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/fishaudio.png";
|
|
1424
|
-
var PER_CALL = { unit: "images" };
|
|
1425
|
-
var PER_REQUEST = { unit: "requests" };
|
|
1426
|
-
var TTS_MAX_CHARS = 1e4;
|
|
1427
|
-
function fishTts(id, label, providerModelId, description) {
|
|
1428
|
-
return {
|
|
1429
|
-
id,
|
|
1430
|
-
aliases: [],
|
|
1431
|
-
label,
|
|
1432
|
-
type: "speech",
|
|
1433
|
-
adapter: "fish",
|
|
1434
|
-
providerModelId,
|
|
1435
|
-
lifecycle: "active",
|
|
1436
|
-
exposure: [],
|
|
1437
|
-
constraints: {
|
|
1438
|
-
voices: FISH_VOICES,
|
|
1439
|
-
outputFormats: ["mp3", "wav"],
|
|
1440
|
-
supports: [],
|
|
1441
|
-
prompt: { referenceSyntax: "numbered", maxChars: TTS_MAX_CHARS }
|
|
1442
|
-
},
|
|
1443
|
-
defaults: { voice: "9a9cf47702da476aa4629e2506d4a857", outputFormat: "mp3" },
|
|
1444
|
-
usage: PER_CALL,
|
|
1445
|
-
pricingKind: "flat",
|
|
1446
|
-
display: { provider: "fishaudio", logo: FISH_LOGO, description },
|
|
1447
|
-
capabilities: { customVoices: true }
|
|
1448
|
-
};
|
|
1449
|
-
}
|
|
1450
|
-
var FISH_MODELS = [
|
|
1451
|
-
fishTts(
|
|
1452
|
-
"fish-s2.1-pro",
|
|
1453
|
-
"Fish Audio S2.1 Pro",
|
|
1454
|
-
"s2.1-pro",
|
|
1455
|
-
"Fish Audio S2.1 Pro text to speech in 83 languages, with [bracket] directions and your own cloned voices."
|
|
1456
|
-
),
|
|
1457
|
-
fishTts(
|
|
1458
|
-
"fish-s2.1-pro-free",
|
|
1459
|
-
"Fish Audio S2.1 Pro Free",
|
|
1460
|
-
"s2.1-pro-free",
|
|
1461
|
-
"Fish Audio S2.1 Pro on the free developer tier: the same voices at no cost, without latency or data-processing guarantees."
|
|
1462
|
-
),
|
|
1463
|
-
fishTts(
|
|
1464
|
-
"fish-drama-3",
|
|
1465
|
-
"Fish Audio Drama 3",
|
|
1466
|
-
"drama-3",
|
|
1467
|
-
"Fish Audio Drama 3 text to speech you direct like an actor: [directions], sounds, pauses and per-word tags."
|
|
1468
|
-
),
|
|
1469
|
-
{
|
|
1470
|
-
id: "fish-voice-clone",
|
|
1471
|
-
aliases: [],
|
|
1472
|
-
label: "Fish Audio Voice Clone",
|
|
1473
|
-
type: "voice-clone",
|
|
1474
|
-
adapter: "fish",
|
|
1475
|
-
providerModelId: "voice-clone",
|
|
1476
|
-
lifecycle: "active",
|
|
1477
|
-
exposure: [],
|
|
1478
|
-
constraints: {
|
|
1479
|
-
// POST /model takes 1-20 voice files; Fish advises 10 s or more of clean speech each.
|
|
1480
|
-
references: { audios: 20, audioFormats: ["wav", "mp3", "m4a", "opus"] },
|
|
1481
|
-
supports: []
|
|
1482
|
-
},
|
|
1483
|
-
defaults: {},
|
|
1484
|
-
usage: PER_REQUEST,
|
|
1485
|
-
pricingKind: "flat",
|
|
1486
|
-
display: {
|
|
1487
|
-
provider: "fishaudio",
|
|
1488
|
-
logo: FISH_LOGO,
|
|
1489
|
-
description: "Clone a private, reusable voice from one or more clean recordings, then speak with it on the Fish Audio speech models."
|
|
1490
|
-
},
|
|
1491
|
-
capabilities: {}
|
|
1492
|
-
},
|
|
1493
|
-
{
|
|
1494
|
-
id: "fish-voice-design-1",
|
|
1495
|
-
aliases: [],
|
|
1496
|
-
label: "Fish Audio Voice Design",
|
|
1497
|
-
type: "voice-design",
|
|
1498
|
-
adapter: "fish",
|
|
1499
|
-
providerModelId: "voice-design-1",
|
|
1500
|
-
lifecycle: "active",
|
|
1501
|
-
exposure: [],
|
|
1502
|
-
constraints: {
|
|
1503
|
-
voiceDesign: { maxCandidates: 4, previewMaxChars: 150 },
|
|
1504
|
-
supports: [],
|
|
1505
|
-
prompt: { referenceSyntax: "numbered", maxChars: 2e3 }
|
|
1506
|
-
},
|
|
1507
|
-
defaults: {},
|
|
1508
|
-
usage: PER_REQUEST,
|
|
1509
|
-
pricingKind: "flat",
|
|
1510
|
-
display: {
|
|
1511
|
-
provider: "fishaudio",
|
|
1512
|
-
logo: FISH_LOGO,
|
|
1513
|
-
description: "Describe a voice and get up to four short candidates; keep one as a cloned voice."
|
|
1514
|
-
},
|
|
1515
|
-
capabilities: {}
|
|
1516
|
-
}
|
|
1517
|
-
];
|
|
1518
|
-
|
|
1519
1222
|
// src/catalog/languages-audio.ts
|
|
1520
1223
|
var ELEVENLABS_V4_LANGUAGES = [
|
|
1521
1224
|
{ code: "af", name: "Afrikaans" },
|
|
@@ -1925,96 +1628,460 @@ var ELEVENLABS_VOICES = [
|
|
|
1925
1628
|
description: "A young adult with energy and warmth - suitable for reels and shorts.",
|
|
1926
1629
|
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/TX3LPaxmHKxFdv7VOQHJ/63148076-6363-42db-aea8-31424308b92c.mp3"
|
|
1927
1630
|
},
|
|
1928
|
-
{ id: "Charlotte", name: "Charlotte" },
|
|
1631
|
+
{ id: "Charlotte", name: "Charlotte" },
|
|
1632
|
+
{
|
|
1633
|
+
id: "Alice",
|
|
1634
|
+
name: "Alice",
|
|
1635
|
+
gender: "female",
|
|
1636
|
+
accent: "british",
|
|
1637
|
+
languages: ["en", "it", "fr", "ar", "ja", "pl", "hi"],
|
|
1638
|
+
description: "Clear and engaging, friendly woman with a British accent suitable for e-learning.",
|
|
1639
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/Xb7hH8MSUJpSbSDYk0k2/d10f7534-11f6-41fe-a012-2de1e482d336.mp3"
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
id: "Matilda",
|
|
1643
|
+
name: "Matilda",
|
|
1644
|
+
gender: "female",
|
|
1645
|
+
accent: "american",
|
|
1646
|
+
languages: ["en", "it", "fr", "de", "ar", "es"],
|
|
1647
|
+
description: "A professional woman with a pleasing alto pitch. Suitable for many use cases.",
|
|
1648
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/XrExE9yKIg1WjnnlVkGX/b930e18d-6b4d-466e-bab2-0ae97c6d8535.mp3"
|
|
1649
|
+
},
|
|
1650
|
+
{
|
|
1651
|
+
id: "Will",
|
|
1652
|
+
name: "Will",
|
|
1653
|
+
gender: "male",
|
|
1654
|
+
accent: "american",
|
|
1655
|
+
languages: ["en", "fr", "de", "pt", "zh", "cs", "fil", "sk", "es", "sv"],
|
|
1656
|
+
description: "Conversational and laid back.",
|
|
1657
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/bIHbv24MWmeRgasZH58o/8caf8f3d-ad29-4980-af41-53f20c72d7a4.mp3"
|
|
1658
|
+
},
|
|
1659
|
+
{
|
|
1660
|
+
id: "Jessica",
|
|
1661
|
+
name: "Jessica",
|
|
1662
|
+
gender: "female",
|
|
1663
|
+
accent: "american",
|
|
1664
|
+
languages: ["en", "fr", "ar", "ja", "zh", "de", "cs", "hi"],
|
|
1665
|
+
description: "Young and popular, this playful American female voice is perfect for trendy content.",
|
|
1666
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/cgSgspJ2msm6clMCkdW9/56a97bf8-b69b-448f-846c-c3a11683d45a.mp3"
|
|
1667
|
+
},
|
|
1668
|
+
{
|
|
1669
|
+
id: "Eric",
|
|
1670
|
+
name: "Eric",
|
|
1671
|
+
gender: "male",
|
|
1672
|
+
accent: "american",
|
|
1673
|
+
languages: ["en", "fr", "pt", "de", "sk", "es"],
|
|
1674
|
+
description: "A smooth tenor pitch from a man in his 40s - perfect for agentic use cases.",
|
|
1675
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/cjVigY5qzO86Huf0OWal/d098fda0-6456-4030-b3d8-63aa048c9070.mp3"
|
|
1676
|
+
},
|
|
1677
|
+
{
|
|
1678
|
+
id: "Chris",
|
|
1679
|
+
name: "Chris",
|
|
1680
|
+
gender: "male",
|
|
1681
|
+
accent: "american",
|
|
1682
|
+
languages: ["en", "fr", "ar", "pt", "sv", "hi"],
|
|
1683
|
+
description: "Natural and real, this down-to-earth voice is great across many use-cases.",
|
|
1684
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/iP95p4xoKVk53GoZ742B/3f4bde72-cc48-40dd-829f-57fbf906f4d7.mp3"
|
|
1685
|
+
},
|
|
1686
|
+
{
|
|
1687
|
+
id: "Brian",
|
|
1688
|
+
name: "Brian",
|
|
1689
|
+
gender: "male",
|
|
1690
|
+
accent: "american",
|
|
1691
|
+
languages: ["en", "ar", "zh", "pt", "de", "nl", "sk", "ro", "hi"],
|
|
1692
|
+
description: "Middle-aged man with a resonant and comforting tone. Great for narrations and advertisements.",
|
|
1693
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/nPczCjzI2devNBz1zQrb/2dd3e72c-4fd3-42f1-93ea-abc5d4e5aa1d.mp3"
|
|
1694
|
+
},
|
|
1695
|
+
{
|
|
1696
|
+
id: "Daniel",
|
|
1697
|
+
name: "Daniel",
|
|
1698
|
+
gender: "male",
|
|
1699
|
+
accent: "british",
|
|
1700
|
+
languages: ["en", "de", "tr"],
|
|
1701
|
+
description: "A strong voice perfect for delivering a professional broadcast or news story.",
|
|
1702
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/onwK4e9ZLuTAKqWW03F9/7eee0236-1a72-4b86-b303-5dcadc007ba9.mp3"
|
|
1703
|
+
},
|
|
1704
|
+
{
|
|
1705
|
+
id: "Lily",
|
|
1706
|
+
name: "Lily",
|
|
1707
|
+
gender: "female",
|
|
1708
|
+
accent: "british",
|
|
1709
|
+
languages: ["en", "it", "de", "zh", "cs", "nl", "pl"],
|
|
1710
|
+
description: "Velvety British female voice delivers news and narrations with warmth and clarity.",
|
|
1711
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/pFZP5JQG7iQjIQuC4Bku/89b68b35-b3dd-4348-a84a-a3c13a3c2b30.mp3"
|
|
1712
|
+
},
|
|
1713
|
+
{
|
|
1714
|
+
id: "Bill",
|
|
1715
|
+
name: "Bill",
|
|
1716
|
+
gender: "male",
|
|
1717
|
+
accent: "american",
|
|
1718
|
+
languages: ["en", "fr", "ar", "zh", "de", "cs"],
|
|
1719
|
+
description: "Friendly and comforting voice ready to narrate your stories.",
|
|
1720
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/pqHfZKP75CvOlQylNhV4/d782b3ff-84ba-4029-848c-acf01285524d.mp3"
|
|
1721
|
+
}
|
|
1722
|
+
];
|
|
1723
|
+
var PREMADE_ID = /\/premade\/voices\/([A-Za-z0-9]+)\//;
|
|
1724
|
+
var ELEVENLABS_DIRECT_VOICES = ELEVENLABS_VOICES.flatMap((v) => {
|
|
1725
|
+
const id = v.previewUrl ? PREMADE_ID.exec(v.previewUrl)?.[1] : void 0;
|
|
1726
|
+
return id ? [{ ...v, id }] : [];
|
|
1727
|
+
});
|
|
1728
|
+
var ELEVENLABS_DIRECT_DEFAULT_VOICE = "EXAVITQu4vr4xnSDxMaL";
|
|
1729
|
+
|
|
1730
|
+
// src/catalog/speech-elevenlabs-direct.ts
|
|
1731
|
+
var ELEVENLABS_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/elevenlabs.png";
|
|
1732
|
+
var PER_CALL = { unit: "images" };
|
|
1733
|
+
var PER_REQUEST = { unit: "requests" };
|
|
1734
|
+
var ELEVENLABS_DIRECT_MODELS = [
|
|
1735
|
+
{
|
|
1736
|
+
id: "elevenlabs-v4-direct",
|
|
1737
|
+
aliases: [],
|
|
1738
|
+
label: "ElevenLabs v4 (direct)",
|
|
1739
|
+
type: "speech",
|
|
1740
|
+
adapter: "elevenlabs",
|
|
1741
|
+
providerModelId: "eleven_v4",
|
|
1742
|
+
lifecycle: "active",
|
|
1743
|
+
exposure: [],
|
|
1744
|
+
constraints: {
|
|
1745
|
+
// Premade voices under their ElevenLabs ids (the direct API takes ids, not names).
|
|
1746
|
+
voices: ELEVENLABS_DIRECT_VOICES,
|
|
1747
|
+
languages: ELEVENLABS_V4_LANGUAGES,
|
|
1748
|
+
outputFormats: ELEVENLABS_MP3_FORMATS,
|
|
1749
|
+
supports: [],
|
|
1750
|
+
// ElevenLabs docs: 10,000 characters per request.
|
|
1751
|
+
prompt: { referenceSyntax: "numbered", maxChars: 1e4 }
|
|
1752
|
+
},
|
|
1753
|
+
defaults: { voice: ELEVENLABS_DIRECT_DEFAULT_VOICE, outputFormat: "mp3_44100_128" },
|
|
1754
|
+
usage: PER_CALL,
|
|
1755
|
+
pricingKind: "flat",
|
|
1756
|
+
display: {
|
|
1757
|
+
provider: "elevenlabs",
|
|
1758
|
+
logo: ELEVENLABS_LOGO,
|
|
1759
|
+
description: "ElevenLabs v4 text to speech with audio tags, in a premade voice or your own cloned voice; up to 10,000 characters."
|
|
1760
|
+
},
|
|
1761
|
+
capabilities: { customVoices: true }
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
id: "elevenlabs-ivc",
|
|
1765
|
+
aliases: [],
|
|
1766
|
+
label: "ElevenLabs Instant Voice Clone",
|
|
1767
|
+
type: "voice-clone",
|
|
1768
|
+
adapter: "elevenlabs",
|
|
1769
|
+
providerModelId: "ivc",
|
|
1770
|
+
lifecycle: "active",
|
|
1771
|
+
exposure: [],
|
|
1772
|
+
constraints: {
|
|
1773
|
+
// POST /v1/voices/add; ElevenLabs takes up to 25 samples and advises 1-2 minutes of
|
|
1774
|
+
// clean speech in total. Each clone uses a voice slot on our plan until deleted.
|
|
1775
|
+
references: { audios: 25, audioFormats: ["mp3", "wav", "m4a", "webm", "ogg"] },
|
|
1776
|
+
supports: []
|
|
1777
|
+
},
|
|
1778
|
+
defaults: {},
|
|
1779
|
+
usage: PER_REQUEST,
|
|
1780
|
+
pricingKind: "flat",
|
|
1781
|
+
display: {
|
|
1782
|
+
provider: "elevenlabs",
|
|
1783
|
+
logo: ELEVENLABS_LOGO,
|
|
1784
|
+
description: "Clone a private, reusable voice from one or more clean recordings, then speak with it on ElevenLabs v4 (direct)."
|
|
1785
|
+
},
|
|
1786
|
+
capabilities: {}
|
|
1787
|
+
}
|
|
1788
|
+
];
|
|
1789
|
+
|
|
1790
|
+
// src/catalog/voices-fish.ts
|
|
1791
|
+
var FISH_VOICES = [
|
|
1792
|
+
{
|
|
1793
|
+
id: "933563129e564b19a115bedd57b7406a",
|
|
1794
|
+
name: "Sarah",
|
|
1795
|
+
gender: "female",
|
|
1796
|
+
languages: ["en"],
|
|
1797
|
+
description: "An engaged speaker.",
|
|
1798
|
+
previewUrl: "https://platform.r2.fish.audio/task/4e204945670c460c86fdab57512cb308.mp3"
|
|
1799
|
+
},
|
|
1800
|
+
{
|
|
1801
|
+
id: "bf322df2096a46f18c579d0baa36f41d",
|
|
1802
|
+
name: "Adrian",
|
|
1803
|
+
gender: "male",
|
|
1804
|
+
languages: ["en"],
|
|
1805
|
+
description: "A steady and reliable narrator.",
|
|
1806
|
+
previewUrl: "https://platform.r2.fish.audio/task/d730b09f4a484316a77ecc86137e85fb.mp3"
|
|
1807
|
+
},
|
|
1808
|
+
{
|
|
1809
|
+
id: "536d3a5e000945adb7038665781a4aca",
|
|
1810
|
+
name: "Ethan",
|
|
1811
|
+
gender: "male",
|
|
1812
|
+
languages: ["en"],
|
|
1813
|
+
description: "A curious explainer.",
|
|
1814
|
+
previewUrl: "https://platform.r2.fish.audio/task/bdd677ed767744fc91f166468786264b.mp3"
|
|
1815
|
+
},
|
|
1816
|
+
{
|
|
1817
|
+
id: "b347db033a6549378b48d00acb0d06cd",
|
|
1818
|
+
name: "Selene",
|
|
1819
|
+
gender: "female",
|
|
1820
|
+
languages: ["en"],
|
|
1821
|
+
description: "A meditative female voice.",
|
|
1822
|
+
previewUrl: "https://platform.r2.fish.audio/task/fcf629b4a0b343558f461338ba1b9da4.mp3"
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
id: "9a9cf47702da476aa4629e2506d4a857",
|
|
1826
|
+
name: "Hannah",
|
|
1827
|
+
gender: "female",
|
|
1828
|
+
languages: ["en"],
|
|
1829
|
+
description: "A conversation specialist.",
|
|
1830
|
+
previewUrl: "https://platform.r2.fish.audio/task/08d658835feb427db808e37060b78eb0.mp3"
|
|
1831
|
+
},
|
|
1832
|
+
{
|
|
1833
|
+
id: "79d0bd3e4e5444b18f7b6d89b5927bf1",
|
|
1834
|
+
name: "Jordan",
|
|
1835
|
+
gender: "male",
|
|
1836
|
+
languages: ["en"],
|
|
1837
|
+
description: "A motivational speaker.",
|
|
1838
|
+
previewUrl: "https://platform.r2.fish.audio/task/edecbc0bdd4c46c39eda8520a0f729ef.mp3"
|
|
1839
|
+
},
|
|
1840
|
+
{
|
|
1841
|
+
id: "e3cd384158934cc9a01029cd7d278634",
|
|
1842
|
+
name: "Laura",
|
|
1843
|
+
gender: "female",
|
|
1844
|
+
languages: ["en"],
|
|
1845
|
+
description: "A confident female narrator.",
|
|
1846
|
+
previewUrl: "https://platform.r2.fish.audio/task/e821bef995344d519caa1c93d808db23.mp3"
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
id: "f3a2b90078d54a65af4b95f63bc7798e",
|
|
1850
|
+
name: "Sheila",
|
|
1851
|
+
gender: "female",
|
|
1852
|
+
accent: "american",
|
|
1853
|
+
languages: ["en"],
|
|
1854
|
+
description: "A young American English woman's voice.",
|
|
1855
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/9bb9e1a1cf3f47f38700da1c5c0a678a.mp3"
|
|
1856
|
+
},
|
|
1857
|
+
{
|
|
1858
|
+
id: "0db6e93af420470b9d9b9a886dbaa954",
|
|
1859
|
+
name: "Kai",
|
|
1860
|
+
gender: "male",
|
|
1861
|
+
languages: ["en"],
|
|
1862
|
+
description: "A friendly English man's voice for companion apps and everyday conversation.",
|
|
1863
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/13306f1172544c3ba3106d1e363feaa6.mp3"
|
|
1864
|
+
},
|
|
1865
|
+
{
|
|
1866
|
+
id: "8abfa9ebd4c24a3399b68c3cdac8c7b5",
|
|
1867
|
+
name: "Freya",
|
|
1868
|
+
gender: "female",
|
|
1869
|
+
accent: "british",
|
|
1870
|
+
languages: ["en"],
|
|
1871
|
+
description: "A natural, professional British English voice with a brisk, conversational pace. Clear and easy to follow, suited to voice assistants, customer support and everyday narration.",
|
|
1872
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/07918705a56b42daaab149f65392cea7.mp3"
|
|
1873
|
+
},
|
|
1874
|
+
{
|
|
1875
|
+
id: "2f64e528a4f2406691925ab1e0ed5b7f",
|
|
1876
|
+
name: "Ananya",
|
|
1877
|
+
gender: "female",
|
|
1878
|
+
languages: ["hi"],
|
|
1879
|
+
description: "\u0938\u093E\u092B\u093C \u0914\u0930 \u0906\u0924\u094D\u092E\u0935\u093F\u0936\u094D\u0935\u093E\u0938 \u092D\u0930\u0940 \u0906\u0935\u093E\u091C\u093C, \u091C\u094B \u0935\u0949\u0907\u0938 \u0905\u0938\u093F\u0938\u094D\u091F\u0947\u0902\u091F, \u0917\u094D\u0930\u093E\u0939\u0915 \u0938\u0947\u0935\u093E \u0914\u0930 \u092A\u094D\u0930\u0938\u094D\u0924\u0941\u0924\u093F\u092F\u094B\u0902 \u0915\u0947 \u0932\u093F\u090F \u0909\u092A\u092F\u0941\u0915\u094D\u0924 \u0939\u0948\u0964",
|
|
1880
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a17a700668d8405f8316db120733145c.mp3"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
id: "cefd91a07b99468f9148e2580990082d",
|
|
1884
|
+
name: "Arjun",
|
|
1885
|
+
gender: "male",
|
|
1886
|
+
languages: ["hi"],
|
|
1887
|
+
description: "\u0938\u093E\u092B\u093C \u0914\u0930 \u0906\u0924\u094D\u092E\u0935\u093F\u0936\u094D\u0935\u093E\u0938 \u092D\u0930\u0940 \u0906\u0935\u093E\u091C\u093C, \u091C\u094B \u0935\u0949\u0907\u0938 \u0905\u0938\u093F\u0938\u094D\u091F\u0947\u0902\u091F, \u0917\u094D\u0930\u093E\u0939\u0915 \u0938\u0947\u0935\u093E \u0914\u0930 \u092A\u094D\u0930\u0938\u094D\u0924\u0941\u0924\u093F\u092F\u094B\u0902 \u0915\u0947 \u0932\u093F\u090F \u0909\u092A\u092F\u0941\u0915\u094D\u0924 \u0939\u0948\u0964",
|
|
1888
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/a0c4a8eadb7841cdae8e5e68031a2dfb.mp3"
|
|
1889
|
+
},
|
|
1890
|
+
{
|
|
1891
|
+
id: "3f065d660212478a9c697fa965b4d098",
|
|
1892
|
+
name: "Carmen",
|
|
1893
|
+
gender: "female",
|
|
1894
|
+
languages: ["es"],
|
|
1895
|
+
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1896
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/3421be48b6cb4c28bf829c25188e7e74.mp3"
|
|
1897
|
+
},
|
|
1898
|
+
{
|
|
1899
|
+
id: "ec0718028a2445fb9be8e8bfb56a0150",
|
|
1900
|
+
name: "Rodrigo",
|
|
1901
|
+
gender: "male",
|
|
1902
|
+
languages: ["es"],
|
|
1903
|
+
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1904
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/5a77c32365604800ad5b4eb13c5585df.mp3"
|
|
1905
|
+
},
|
|
1906
|
+
{
|
|
1907
|
+
id: "10a3a20742114a4ea6dd441e7591850f",
|
|
1908
|
+
name: "Manon",
|
|
1909
|
+
gender: "female",
|
|
1910
|
+
languages: ["fr"],
|
|
1911
|
+
description: "Une voix claire et vive, adapt\xE9e aux assistants vocaux et au support client.",
|
|
1912
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/f7b75ee1fa524e48a8cefb003cf72952.mp3"
|
|
1913
|
+
},
|
|
1929
1914
|
{
|
|
1930
|
-
id: "
|
|
1931
|
-
name: "
|
|
1932
|
-
gender: "
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/Xb7hH8MSUJpSbSDYk0k2/d10f7534-11f6-41fe-a012-2de1e482d336.mp3"
|
|
1915
|
+
id: "f69bca092b674168a8d02d61ca20943c",
|
|
1916
|
+
name: "Lucas",
|
|
1917
|
+
gender: "male",
|
|
1918
|
+
languages: ["fr"],
|
|
1919
|
+
description: "Une voix claire et assur\xE9e, adapt\xE9e aux assistants vocaux et au service client.",
|
|
1920
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/86fca3e56a014a3d8a11450854bb8311.mp3"
|
|
1937
1921
|
},
|
|
1938
1922
|
{
|
|
1939
|
-
id: "
|
|
1940
|
-
name: "
|
|
1923
|
+
id: "3937b44b604249f18b94913daef94043",
|
|
1924
|
+
name: "Lena",
|
|
1941
1925
|
gender: "female",
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/XrExE9yKIg1WjnnlVkGX/b930e18d-6b4d-466e-bab2-0ae97c6d8535.mp3"
|
|
1926
|
+
languages: ["de"],
|
|
1927
|
+
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
1928
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/8659fec80b74442dab68a7755716a401.mp3"
|
|
1946
1929
|
},
|
|
1947
1930
|
{
|
|
1948
|
-
id: "
|
|
1949
|
-
name: "
|
|
1931
|
+
id: "c1e7cc926aa5469aa966c353094d4b0b",
|
|
1932
|
+
name: "Lukas",
|
|
1950
1933
|
gender: "male",
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/bIHbv24MWmeRgasZH58o/8caf8f3d-ad29-4980-af41-53f20c72d7a4.mp3"
|
|
1934
|
+
languages: ["de"],
|
|
1935
|
+
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
1936
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/fb1d538126bb4fe38f8366250f6a2136.mp3"
|
|
1955
1937
|
},
|
|
1956
1938
|
{
|
|
1957
|
-
id: "
|
|
1958
|
-
name: "
|
|
1939
|
+
id: "b3c060cc41544a7da94a2c487647c902",
|
|
1940
|
+
name: "Let\xEDcia",
|
|
1959
1941
|
gender: "female",
|
|
1960
|
-
accent: "
|
|
1961
|
-
languages: ["
|
|
1962
|
-
description: "
|
|
1963
|
-
previewUrl: "https://
|
|
1942
|
+
accent: "brazilian",
|
|
1943
|
+
languages: ["pt"],
|
|
1944
|
+
description: "A Brazilian-accented Portuguese woman's voice, in her late twenties. Soft, warm, intimate. A freelance designer from Belo Horizonte who enjoys long walks in the park. Best suited to companion apps and casual everyday conversation.",
|
|
1945
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/13c6c0d96b5c4069951f89868ee15360.mp3"
|
|
1964
1946
|
},
|
|
1965
1947
|
{
|
|
1966
|
-
id: "
|
|
1967
|
-
name: "
|
|
1948
|
+
id: "add7bcb8d3c8423bbfa152ca232aad6e",
|
|
1949
|
+
name: "Ricardo",
|
|
1968
1950
|
gender: "male",
|
|
1969
|
-
accent: "
|
|
1970
|
-
languages: ["
|
|
1971
|
-
description: "A
|
|
1972
|
-
previewUrl: "https://
|
|
1951
|
+
accent: "brazilian",
|
|
1952
|
+
languages: ["pt"],
|
|
1953
|
+
description: "A Brazilian-accented Portuguese man's voice, in his late forties. Clear, professional, monotone. A high school history teacher from Curitiba who loves classical music. Best suited to lessons, tutoring and explainer content.",
|
|
1954
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/67475fc717ae45cbb38e647a2dd37fe1.mp3"
|
|
1973
1955
|
},
|
|
1974
1956
|
{
|
|
1975
|
-
id: "
|
|
1976
|
-
name: "
|
|
1977
|
-
gender: "
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/iP95p4xoKVk53GoZ742B/3f4bde72-cc48-40dd-829f-57fbf906f4d7.mp3"
|
|
1957
|
+
id: "b2d9d8db057042688a5e318b8f405bc2",
|
|
1958
|
+
name: "Kyoko",
|
|
1959
|
+
gender: "female",
|
|
1960
|
+
languages: ["ja"],
|
|
1961
|
+
description: "\u4E01\u5BE7\u3067\u843D\u3061\u7740\u3044\u305F\u8A71\u3057\u65B9\u304C\u7279\u5FB4\u306E\u5973\u6027\u306E\u58F0\u3002\u304A\u5BA2\u69D8\u5BFE\u5FDC\u3084\u60C5\u5831\u63D0\u4F9B\u306B\u6700\u9069\u3002",
|
|
1962
|
+
previewUrl: "https://platform.r2.fish.audio/task/993b3ccb52124341aff79580f1ce5a5a.mp3"
|
|
1982
1963
|
},
|
|
1983
1964
|
{
|
|
1984
|
-
id: "
|
|
1985
|
-
name: "
|
|
1965
|
+
id: "297a6fd278df47c3b9da9bfdf55ac89a",
|
|
1966
|
+
name: "Satoru",
|
|
1986
1967
|
gender: "male",
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/nPczCjzI2devNBz1zQrb/2dd3e72c-4fd3-42f1-93ea-abc5d4e5aa1d.mp3"
|
|
1968
|
+
languages: ["ja"],
|
|
1969
|
+
description: "\u82E5\u3005\u3057\u304F\u3082\u843D\u3061\u7740\u304D\u306E\u3042\u308B\u7537\u6027\u306E\u58F0\u3002\u65E5\u5E38\u306E\u8A9E\u308A\u3084\u30EA\u30E9\u30C3\u30AF\u30B9\u3057\u305F\u30CA\u30EC\u30FC\u30B7\u30E7\u30F3\u306B\u6700\u9069\u3002",
|
|
1970
|
+
previewUrl: "https://platform.r2.fish.audio/task/1b4712fb831f4c149eef6b0133157418.mp3"
|
|
1991
1971
|
},
|
|
1992
1972
|
{
|
|
1993
|
-
id: "
|
|
1994
|
-
name: "
|
|
1995
|
-
gender: "
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/onwK4e9ZLuTAKqWW03F9/7eee0236-1a72-4b86-b303-5dcadc007ba9.mp3"
|
|
1973
|
+
id: "0b14f34a13a94ed88fe6113193749bb0",
|
|
1974
|
+
name: "Fatima",
|
|
1975
|
+
gender: "female",
|
|
1976
|
+
languages: ["ar"],
|
|
1977
|
+
description: "\u0635\u0648\u062A \u0648\u0627\u0636\u062D \u0648\u0648\u0627\u062B\u0642 \u064A\u0646\u0627\u0633\u0628 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u0627\u062A \u0627\u0644\u0635\u0648\u062A\u064A\u0629 \u0648\u062E\u062F\u0645\u0629 \u0627\u0644\u0639\u0645\u0644\u0627\u0621 \u0648\u0627\u0644\u0639\u0631\u0648\u0636 \u0627\u0644\u062A\u0642\u062F\u064A\u0645\u064A\u0629.",
|
|
1978
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/93406e1b905a4c4994306e3421243390.mp3"
|
|
2000
1979
|
},
|
|
2001
1980
|
{
|
|
2002
|
-
id: "
|
|
2003
|
-
name: "
|
|
1981
|
+
id: "74c6aba5cbf94a15bbdc547ffce5cb38",
|
|
1982
|
+
name: "Yutong",
|
|
2004
1983
|
gender: "female",
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
1984
|
+
languages: ["zh"],
|
|
1985
|
+
description: "\u58F0\u97F3\u6E05\u6670\u81EA\u7136\uFF0C\u8868\u8FBE\u5229\u843D\uFF0C\u9002\u5408\u8BED\u97F3\u52A9\u624B\u3001\u5BA2\u670D\u548C\u65E5\u5E38\u64AD\u62A5\u3002",
|
|
1986
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a48320f37fe44c4699549a1afc3778e8.mp3"
|
|
1987
|
+
}
|
|
1988
|
+
];
|
|
1989
|
+
|
|
1990
|
+
// src/catalog/speech-fish.ts
|
|
1991
|
+
var FISH_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/fishaudio.png";
|
|
1992
|
+
var PER_CALL2 = { unit: "images" };
|
|
1993
|
+
var PER_REQUEST2 = { unit: "requests" };
|
|
1994
|
+
var EXPOSURE4 = ["cowork", "space_builder"];
|
|
1995
|
+
var TTS_MAX_CHARS = 1e4;
|
|
1996
|
+
function fishTts(id, label, providerModelId, description) {
|
|
1997
|
+
return {
|
|
1998
|
+
id,
|
|
1999
|
+
aliases: [],
|
|
2000
|
+
label,
|
|
2001
|
+
type: "speech",
|
|
2002
|
+
adapter: "fish",
|
|
2003
|
+
providerModelId,
|
|
2004
|
+
lifecycle: "active",
|
|
2005
|
+
exposure: EXPOSURE4,
|
|
2006
|
+
constraints: {
|
|
2007
|
+
voices: FISH_VOICES,
|
|
2008
|
+
outputFormats: ["mp3", "wav"],
|
|
2009
|
+
supports: [],
|
|
2010
|
+
prompt: { referenceSyntax: "numbered", maxChars: TTS_MAX_CHARS }
|
|
2011
|
+
},
|
|
2012
|
+
defaults: { voice: "9a9cf47702da476aa4629e2506d4a857", outputFormat: "mp3" },
|
|
2013
|
+
usage: PER_CALL2,
|
|
2014
|
+
pricingKind: "flat",
|
|
2015
|
+
display: { provider: "fishaudio", logo: FISH_LOGO, description },
|
|
2016
|
+
capabilities: { customVoices: true }
|
|
2017
|
+
};
|
|
2018
|
+
}
|
|
2019
|
+
var FISH_MODELS = [
|
|
2020
|
+
fishTts(
|
|
2021
|
+
"fish-s2.1-pro",
|
|
2022
|
+
"Fish Audio S2.1 Pro",
|
|
2023
|
+
"s2.1-pro",
|
|
2024
|
+
"Fish Audio S2.1 Pro text to speech in 83 languages, with [bracket] directions and your own cloned voices."
|
|
2025
|
+
),
|
|
2026
|
+
fishTts(
|
|
2027
|
+
"fish-s2.1-pro-free",
|
|
2028
|
+
"Fish Audio S2.1 Pro Free",
|
|
2029
|
+
"s2.1-pro-free",
|
|
2030
|
+
"Fish Audio S2.1 Pro on the free developer tier: the same voices at no cost, without latency or data-processing guarantees."
|
|
2031
|
+
),
|
|
2032
|
+
fishTts(
|
|
2033
|
+
"fish-drama-3",
|
|
2034
|
+
"Fish Audio Drama 3",
|
|
2035
|
+
"drama-3",
|
|
2036
|
+
"Fish Audio Drama 3 text to speech you direct like an actor: [directions], sounds, pauses and per-word tags."
|
|
2037
|
+
),
|
|
2038
|
+
{
|
|
2039
|
+
id: "fish-voice-clone",
|
|
2040
|
+
aliases: [],
|
|
2041
|
+
label: "Fish Audio Voice Clone",
|
|
2042
|
+
type: "voice-clone",
|
|
2043
|
+
adapter: "fish",
|
|
2044
|
+
providerModelId: "voice-clone",
|
|
2045
|
+
lifecycle: "active",
|
|
2046
|
+
exposure: EXPOSURE4,
|
|
2047
|
+
constraints: {
|
|
2048
|
+
// POST /model takes 1-20 voice files; Fish advises 10 s or more of clean speech each.
|
|
2049
|
+
references: { audios: 20, audioFormats: ["wav", "mp3", "m4a", "opus"] },
|
|
2050
|
+
supports: []
|
|
2051
|
+
},
|
|
2052
|
+
defaults: {},
|
|
2053
|
+
usage: PER_REQUEST2,
|
|
2054
|
+
pricingKind: "flat",
|
|
2055
|
+
display: {
|
|
2056
|
+
provider: "fishaudio",
|
|
2057
|
+
logo: FISH_LOGO,
|
|
2058
|
+
description: "Clone a private, reusable voice from one or more clean recordings, then speak with it on the Fish Audio speech models."
|
|
2059
|
+
},
|
|
2060
|
+
capabilities: {}
|
|
2009
2061
|
},
|
|
2010
2062
|
{
|
|
2011
|
-
id: "
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2063
|
+
id: "fish-voice-design-1",
|
|
2064
|
+
aliases: [],
|
|
2065
|
+
label: "Fish Audio Voice Design",
|
|
2066
|
+
type: "voice-design",
|
|
2067
|
+
adapter: "fish",
|
|
2068
|
+
providerModelId: "voice-design-1",
|
|
2069
|
+
lifecycle: "active",
|
|
2070
|
+
exposure: EXPOSURE4,
|
|
2071
|
+
constraints: {
|
|
2072
|
+
voiceDesign: { maxCandidates: 4, previewMaxChars: 150 },
|
|
2073
|
+
supports: [],
|
|
2074
|
+
prompt: { referenceSyntax: "numbered", maxChars: 2e3 }
|
|
2075
|
+
},
|
|
2076
|
+
defaults: {},
|
|
2077
|
+
usage: PER_REQUEST2,
|
|
2078
|
+
pricingKind: "flat",
|
|
2079
|
+
display: {
|
|
2080
|
+
provider: "fishaudio",
|
|
2081
|
+
logo: FISH_LOGO,
|
|
2082
|
+
description: "Describe a voice and get up to four short candidates; keep one as a cloned voice."
|
|
2083
|
+
},
|
|
2084
|
+
capabilities: {}
|
|
2018
2085
|
}
|
|
2019
2086
|
];
|
|
2020
2087
|
|
|
@@ -3593,12 +3660,12 @@ var MINIMAX_VOICES = [
|
|
|
3593
3660
|
];
|
|
3594
3661
|
|
|
3595
3662
|
// src/catalog/media-nodes.ts
|
|
3596
|
-
var
|
|
3663
|
+
var ELEVENLABS_LOGO2 = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/elevenlabs.png";
|
|
3597
3664
|
var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
3598
3665
|
var MINIMAX_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png";
|
|
3599
3666
|
var SYNC_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/sync.png";
|
|
3600
|
-
var
|
|
3601
|
-
var
|
|
3667
|
+
var PER_CALL3 = { unit: "images" };
|
|
3668
|
+
var EXPOSURE5 = ["cowork", "space_builder"];
|
|
3602
3669
|
var LIPSYNC_AUDIO = { audioSeconds: { max: 30 } };
|
|
3603
3670
|
function elevenLabsTts(tts) {
|
|
3604
3671
|
return {
|
|
@@ -3609,7 +3676,7 @@ function elevenLabsTts(tts) {
|
|
|
3609
3676
|
adapter: "fal",
|
|
3610
3677
|
providerModelId: tts.providerModelId,
|
|
3611
3678
|
lifecycle: "active",
|
|
3612
|
-
exposure:
|
|
3679
|
+
exposure: EXPOSURE5,
|
|
3613
3680
|
constraints: {
|
|
3614
3681
|
voices: ELEVENLABS_VOICES,
|
|
3615
3682
|
languages: tts.languages,
|
|
@@ -3618,9 +3685,9 @@ function elevenLabsTts(tts) {
|
|
|
3618
3685
|
prompt: { referenceSyntax: "numbered", maxChars: tts.maxChars }
|
|
3619
3686
|
},
|
|
3620
3687
|
defaults: { voice: "Rachel", ...tts.formats && { outputFormat: "mp3_44100_128" } },
|
|
3621
|
-
usage:
|
|
3688
|
+
usage: PER_CALL3,
|
|
3622
3689
|
pricingKind: "flat",
|
|
3623
|
-
display: { provider: "elevenlabs", logo:
|
|
3690
|
+
display: { provider: "elevenlabs", logo: ELEVENLABS_LOGO2, description: tts.description },
|
|
3624
3691
|
capabilities: {}
|
|
3625
3692
|
};
|
|
3626
3693
|
}
|
|
@@ -3634,7 +3701,7 @@ function geminiTts(id, label, description) {
|
|
|
3634
3701
|
adapter: "fal",
|
|
3635
3702
|
providerModelId,
|
|
3636
3703
|
lifecycle: "active",
|
|
3637
|
-
exposure:
|
|
3704
|
+
exposure: EXPOSURE5,
|
|
3638
3705
|
constraints: {
|
|
3639
3706
|
voices: GEMINI_TTS_VOICES,
|
|
3640
3707
|
supports: ["style"],
|
|
@@ -3642,7 +3709,7 @@ function geminiTts(id, label, description) {
|
|
|
3642
3709
|
prompt: { referenceSyntax: "numbered", maxChars: 8192 }
|
|
3643
3710
|
},
|
|
3644
3711
|
defaults: { voice: "Kore" },
|
|
3645
|
-
usage:
|
|
3712
|
+
usage: PER_CALL3,
|
|
3646
3713
|
pricingKind: "flat",
|
|
3647
3714
|
display: { provider: "google", logo: GOOGLE_LOGO, description },
|
|
3648
3715
|
capabilities: {}
|
|
@@ -3657,7 +3724,7 @@ function syncLipsync(id, label, providerModelId, syncModel, description) {
|
|
|
3657
3724
|
adapter: "fal",
|
|
3658
3725
|
providerModelId,
|
|
3659
3726
|
lifecycle: "active",
|
|
3660
|
-
exposure:
|
|
3727
|
+
exposure: EXPOSURE5,
|
|
3661
3728
|
constraints: {
|
|
3662
3729
|
requires: ["sourceVideo", "sourceAudio"],
|
|
3663
3730
|
references: LIPSYNC_AUDIO,
|
|
@@ -3665,7 +3732,7 @@ function syncLipsync(id, label, providerModelId, syncModel, description) {
|
|
|
3665
3732
|
},
|
|
3666
3733
|
defaults: {},
|
|
3667
3734
|
...syncModel !== void 0 && { providerOptions: { fal: { model: syncModel } } },
|
|
3668
|
-
usage:
|
|
3735
|
+
usage: PER_CALL3,
|
|
3669
3736
|
pricingKind: "flat",
|
|
3670
3737
|
display: { provider: "sync", logo: SYNC_LOGO, description },
|
|
3671
3738
|
capabilities: { acceptsSourceVideo: true }
|
|
@@ -3718,7 +3785,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3718
3785
|
adapter: "fal",
|
|
3719
3786
|
providerModelId: "fal-ai/minimax/speech-2.8-hd",
|
|
3720
3787
|
lifecycle: "active",
|
|
3721
|
-
exposure:
|
|
3788
|
+
exposure: EXPOSURE5,
|
|
3722
3789
|
constraints: {
|
|
3723
3790
|
voices: MINIMAX_VOICES,
|
|
3724
3791
|
languages: MINIMAX_SPEECH_LANGUAGES,
|
|
@@ -3726,7 +3793,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3726
3793
|
prompt: { referenceSyntax: "numbered", maxChars: 1e4 }
|
|
3727
3794
|
},
|
|
3728
3795
|
defaults: { voice: "Wise_Woman" },
|
|
3729
|
-
usage:
|
|
3796
|
+
usage: PER_CALL3,
|
|
3730
3797
|
pricingKind: "flat",
|
|
3731
3798
|
display: {
|
|
3732
3799
|
provider: "minimax",
|
|
@@ -3743,7 +3810,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3743
3810
|
adapter: "fal",
|
|
3744
3811
|
providerModelId: "fal-ai/elevenlabs/voice-changer",
|
|
3745
3812
|
lifecycle: "active",
|
|
3746
|
-
exposure:
|
|
3813
|
+
exposure: EXPOSURE5,
|
|
3747
3814
|
constraints: {
|
|
3748
3815
|
requires: ["sourceAudio"],
|
|
3749
3816
|
// The flat price assumes at most a minute of speech.
|
|
@@ -3753,11 +3820,11 @@ var MEDIA_NODE_MODELS = [
|
|
|
3753
3820
|
supports: []
|
|
3754
3821
|
},
|
|
3755
3822
|
defaults: { voice: "Rachel", outputFormat: "mp3_44100_128" },
|
|
3756
|
-
usage:
|
|
3823
|
+
usage: PER_CALL3,
|
|
3757
3824
|
pricingKind: "flat",
|
|
3758
3825
|
display: {
|
|
3759
3826
|
provider: "elevenlabs",
|
|
3760
|
-
logo:
|
|
3827
|
+
logo: ELEVENLABS_LOGO2,
|
|
3761
3828
|
description: "ElevenLabs speech to speech; re-voices a recording in another voice and keeps its timing and delivery."
|
|
3762
3829
|
},
|
|
3763
3830
|
capabilities: {}
|
|
@@ -3770,7 +3837,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3770
3837
|
adapter: "fal",
|
|
3771
3838
|
providerModelId: "fal-ai/elevenlabs/dubbing",
|
|
3772
3839
|
lifecycle: "active",
|
|
3773
|
-
exposure:
|
|
3840
|
+
exposure: EXPOSURE5,
|
|
3774
3841
|
constraints: {
|
|
3775
3842
|
requiresOneOf: ["sourceVideo", "sourceAudio"],
|
|
3776
3843
|
// The flat price covers 60 s of source.
|
|
@@ -3780,11 +3847,11 @@ var MEDIA_NODE_MODELS = [
|
|
|
3780
3847
|
supports: []
|
|
3781
3848
|
},
|
|
3782
3849
|
defaults: {},
|
|
3783
|
-
usage:
|
|
3850
|
+
usage: PER_CALL3,
|
|
3784
3851
|
pricingKind: "flat",
|
|
3785
3852
|
display: {
|
|
3786
3853
|
provider: "elevenlabs",
|
|
3787
|
-
logo:
|
|
3854
|
+
logo: ELEVENLABS_LOGO2,
|
|
3788
3855
|
description: "ElevenLabs dubbing; translates the speech in a video or audio file into another language in the original voices."
|
|
3789
3856
|
},
|
|
3790
3857
|
capabilities: { acceptsSourceVideo: true }
|
|
@@ -3818,7 +3885,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3818
3885
|
adapter: "fal",
|
|
3819
3886
|
providerModelId: "veed/lipsync/v2",
|
|
3820
3887
|
lifecycle: "active",
|
|
3821
|
-
exposure:
|
|
3888
|
+
exposure: EXPOSURE5,
|
|
3822
3889
|
constraints: {
|
|
3823
3890
|
requires: ["sourceVideo", "sourceAudio"],
|
|
3824
3891
|
references: LIPSYNC_AUDIO,
|
|
@@ -3827,7 +3894,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3827
3894
|
supports: []
|
|
3828
3895
|
},
|
|
3829
3896
|
defaults: {},
|
|
3830
|
-
usage:
|
|
3897
|
+
usage: PER_CALL3,
|
|
3831
3898
|
pricingKind: "flat",
|
|
3832
3899
|
display: {
|
|
3833
3900
|
provider: "veed",
|
|
@@ -3844,7 +3911,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3844
3911
|
adapter: "fal",
|
|
3845
3912
|
providerModelId: "minimax/h3-max/lip-sync/image-to-video",
|
|
3846
3913
|
lifecycle: "active",
|
|
3847
|
-
exposure:
|
|
3914
|
+
exposure: EXPOSURE5,
|
|
3848
3915
|
constraints: {
|
|
3849
3916
|
requires: ["firstFrame", "sourceAudio"],
|
|
3850
3917
|
resolutions: ["480p", "768p", "1080p", "2k"],
|
|
@@ -3870,7 +3937,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3870
3937
|
adapter: "fal",
|
|
3871
3938
|
providerModelId: "fal-ai/elevenlabs/speech-to-text/scribe-v2",
|
|
3872
3939
|
lifecycle: "active",
|
|
3873
|
-
exposure:
|
|
3940
|
+
exposure: EXPOSURE5,
|
|
3874
3941
|
constraints: {
|
|
3875
3942
|
requires: ["sourceAudio"],
|
|
3876
3943
|
// The flat price covers 10 minutes of audio.
|
|
@@ -3879,17 +3946,18 @@ var MEDIA_NODE_MODELS = [
|
|
|
3879
3946
|
supports: []
|
|
3880
3947
|
},
|
|
3881
3948
|
defaults: {},
|
|
3882
|
-
usage:
|
|
3949
|
+
usage: PER_CALL3,
|
|
3883
3950
|
pricingKind: "flat",
|
|
3884
3951
|
display: {
|
|
3885
3952
|
provider: "elevenlabs",
|
|
3886
|
-
logo:
|
|
3953
|
+
logo: ELEVENLABS_LOGO2,
|
|
3887
3954
|
description: "ElevenLabs Scribe v2 speech to text with word timings, speaker labels and audio-event tags."
|
|
3888
3955
|
},
|
|
3889
3956
|
capabilities: {}
|
|
3890
3957
|
},
|
|
3891
3958
|
SAM_3_IMAGE,
|
|
3892
|
-
...FISH_MODELS
|
|
3959
|
+
...FISH_MODELS,
|
|
3960
|
+
...ELEVENLABS_DIRECT_MODELS
|
|
3893
3961
|
];
|
|
3894
3962
|
|
|
3895
3963
|
// src/catalog/model3d.ts
|
|
@@ -4085,7 +4153,7 @@ var MODEL3D_MODELS = [
|
|
|
4085
4153
|
|
|
4086
4154
|
// src/catalog/other.ts
|
|
4087
4155
|
var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
4088
|
-
var
|
|
4156
|
+
var ELEVENLABS_LOGO3 = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/elevenlabs.png";
|
|
4089
4157
|
var MINIMAX_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png";
|
|
4090
4158
|
var OTHER_MODELS = [
|
|
4091
4159
|
{
|
|
@@ -4250,7 +4318,7 @@ var OTHER_MODELS = [
|
|
|
4250
4318
|
pricingKind: "flat",
|
|
4251
4319
|
display: {
|
|
4252
4320
|
provider: "elevenlabs",
|
|
4253
|
-
logo:
|
|
4321
|
+
logo: ELEVENLABS_LOGO3,
|
|
4254
4322
|
description: "ElevenLabs Music v2.5 text-to-music; full songs or instrumentals from 3 seconds to 1 minute."
|
|
4255
4323
|
},
|
|
4256
4324
|
capabilities: {}
|
|
@@ -4302,7 +4370,7 @@ var OTHER_MODELS = [
|
|
|
4302
4370
|
pricingKind: "flat",
|
|
4303
4371
|
display: {
|
|
4304
4372
|
provider: "elevenlabs",
|
|
4305
|
-
logo:
|
|
4373
|
+
logo: ELEVENLABS_LOGO3,
|
|
4306
4374
|
description: "ElevenLabs Sound Effects v2; a sound effect from a text description, up to 22 seconds."
|
|
4307
4375
|
},
|
|
4308
4376
|
capabilities: {}
|
|
@@ -5484,7 +5552,7 @@ var VIDEO_FAMILY_MODELS = [
|
|
|
5484
5552
|
|
|
5485
5553
|
// src/catalog/video-luma.ts
|
|
5486
5554
|
var VIDEO_USAGE2 = { unit: "seconds" };
|
|
5487
|
-
var
|
|
5555
|
+
var EXPOSURE6 = ["cowork", "space_builder"];
|
|
5488
5556
|
var LUMA_LOGO2 = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/luma-color.png";
|
|
5489
5557
|
var RAY_RATIOS = ["9:16", "3:4", "1:1", "4:3", "16:9", "21:9"];
|
|
5490
5558
|
var RAY_RESOLUTIONS = ["360p", "720p", "1080p"];
|
|
@@ -5502,7 +5570,7 @@ var LUMA_VIDEO_MODELS = [
|
|
|
5502
5570
|
adapter: "luma",
|
|
5503
5571
|
providerModelId: "ray-3.2",
|
|
5504
5572
|
lifecycle: "active",
|
|
5505
|
-
exposure:
|
|
5573
|
+
exposure: EXPOSURE6,
|
|
5506
5574
|
constraints: {
|
|
5507
5575
|
aspectRatios: ["adaptive", ...RAY_RATIOS],
|
|
5508
5576
|
resolutions: [...RAY_RESOLUTIONS],
|
|
@@ -5534,7 +5602,7 @@ var LUMA_VIDEO_MODELS = [
|
|
|
5534
5602
|
adapter: "luma",
|
|
5535
5603
|
providerModelId: "ray-3.2",
|
|
5536
5604
|
lifecycle: "active",
|
|
5537
|
-
exposure:
|
|
5605
|
+
exposure: EXPOSURE6,
|
|
5538
5606
|
constraints: {
|
|
5539
5607
|
resolutions: [...RAY_RESOLUTIONS],
|
|
5540
5608
|
requires: ["sourceVideo"],
|
|
@@ -5567,7 +5635,7 @@ var LUMA_VIDEO_MODELS = [
|
|
|
5567
5635
|
adapter: "luma",
|
|
5568
5636
|
providerModelId: "ray-3.2",
|
|
5569
5637
|
lifecycle: "active",
|
|
5570
|
-
exposure:
|
|
5638
|
+
exposure: EXPOSURE6,
|
|
5571
5639
|
constraints: {
|
|
5572
5640
|
aspectRatios: [...RAY_RATIOS],
|
|
5573
5641
|
resolutions: [...RAY_RESOLUTIONS],
|
|
@@ -7531,7 +7599,8 @@ var ADAPTER_IDS = [
|
|
|
7531
7599
|
"higgsfield",
|
|
7532
7600
|
"xai-video",
|
|
7533
7601
|
"luma",
|
|
7534
|
-
"fish"
|
|
7602
|
+
"fish",
|
|
7603
|
+
"elevenlabs"
|
|
7535
7604
|
];
|
|
7536
7605
|
var ModelTypeSchema = z3.enum([
|
|
7537
7606
|
"text",
|