@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.cjs
CHANGED
|
@@ -1304,303 +1304,6 @@ var VEED_SUBTITLES = {
|
|
|
1304
1304
|
}
|
|
1305
1305
|
};
|
|
1306
1306
|
|
|
1307
|
-
// src/catalog/voices-fish.ts
|
|
1308
|
-
var FISH_VOICES = [
|
|
1309
|
-
{
|
|
1310
|
-
id: "933563129e564b19a115bedd57b7406a",
|
|
1311
|
-
name: "Sarah",
|
|
1312
|
-
gender: "female",
|
|
1313
|
-
languages: ["en"],
|
|
1314
|
-
description: "An engaged speaker.",
|
|
1315
|
-
previewUrl: "https://platform.r2.fish.audio/task/4e204945670c460c86fdab57512cb308.mp3"
|
|
1316
|
-
},
|
|
1317
|
-
{
|
|
1318
|
-
id: "bf322df2096a46f18c579d0baa36f41d",
|
|
1319
|
-
name: "Adrian",
|
|
1320
|
-
gender: "male",
|
|
1321
|
-
languages: ["en"],
|
|
1322
|
-
description: "A steady and reliable narrator.",
|
|
1323
|
-
previewUrl: "https://platform.r2.fish.audio/task/d730b09f4a484316a77ecc86137e85fb.mp3"
|
|
1324
|
-
},
|
|
1325
|
-
{
|
|
1326
|
-
id: "536d3a5e000945adb7038665781a4aca",
|
|
1327
|
-
name: "Ethan",
|
|
1328
|
-
gender: "male",
|
|
1329
|
-
languages: ["en"],
|
|
1330
|
-
description: "A curious explainer.",
|
|
1331
|
-
previewUrl: "https://platform.r2.fish.audio/task/bdd677ed767744fc91f166468786264b.mp3"
|
|
1332
|
-
},
|
|
1333
|
-
{
|
|
1334
|
-
id: "b347db033a6549378b48d00acb0d06cd",
|
|
1335
|
-
name: "Selene",
|
|
1336
|
-
gender: "female",
|
|
1337
|
-
languages: ["en"],
|
|
1338
|
-
description: "A meditative female voice.",
|
|
1339
|
-
previewUrl: "https://platform.r2.fish.audio/task/fcf629b4a0b343558f461338ba1b9da4.mp3"
|
|
1340
|
-
},
|
|
1341
|
-
{
|
|
1342
|
-
id: "9a9cf47702da476aa4629e2506d4a857",
|
|
1343
|
-
name: "Hannah",
|
|
1344
|
-
gender: "female",
|
|
1345
|
-
languages: ["en"],
|
|
1346
|
-
description: "A conversation specialist.",
|
|
1347
|
-
previewUrl: "https://platform.r2.fish.audio/task/08d658835feb427db808e37060b78eb0.mp3"
|
|
1348
|
-
},
|
|
1349
|
-
{
|
|
1350
|
-
id: "79d0bd3e4e5444b18f7b6d89b5927bf1",
|
|
1351
|
-
name: "Jordan",
|
|
1352
|
-
gender: "male",
|
|
1353
|
-
languages: ["en"],
|
|
1354
|
-
description: "A motivational speaker.",
|
|
1355
|
-
previewUrl: "https://platform.r2.fish.audio/task/edecbc0bdd4c46c39eda8520a0f729ef.mp3"
|
|
1356
|
-
},
|
|
1357
|
-
{
|
|
1358
|
-
id: "e3cd384158934cc9a01029cd7d278634",
|
|
1359
|
-
name: "Laura",
|
|
1360
|
-
gender: "female",
|
|
1361
|
-
languages: ["en"],
|
|
1362
|
-
description: "A confident female narrator.",
|
|
1363
|
-
previewUrl: "https://platform.r2.fish.audio/task/e821bef995344d519caa1c93d808db23.mp3"
|
|
1364
|
-
},
|
|
1365
|
-
{
|
|
1366
|
-
id: "f3a2b90078d54a65af4b95f63bc7798e",
|
|
1367
|
-
name: "Sheila",
|
|
1368
|
-
gender: "female",
|
|
1369
|
-
accent: "american",
|
|
1370
|
-
languages: ["en"],
|
|
1371
|
-
description: "A young American English woman's voice.",
|
|
1372
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/9bb9e1a1cf3f47f38700da1c5c0a678a.mp3"
|
|
1373
|
-
},
|
|
1374
|
-
{
|
|
1375
|
-
id: "0db6e93af420470b9d9b9a886dbaa954",
|
|
1376
|
-
name: "Kai",
|
|
1377
|
-
gender: "male",
|
|
1378
|
-
languages: ["en"],
|
|
1379
|
-
description: "A friendly English man's voice for companion apps and everyday conversation.",
|
|
1380
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/13306f1172544c3ba3106d1e363feaa6.mp3"
|
|
1381
|
-
},
|
|
1382
|
-
{
|
|
1383
|
-
id: "8abfa9ebd4c24a3399b68c3cdac8c7b5",
|
|
1384
|
-
name: "Freya",
|
|
1385
|
-
gender: "female",
|
|
1386
|
-
accent: "british",
|
|
1387
|
-
languages: ["en"],
|
|
1388
|
-
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.",
|
|
1389
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/07918705a56b42daaab149f65392cea7.mp3"
|
|
1390
|
-
},
|
|
1391
|
-
{
|
|
1392
|
-
id: "2f64e528a4f2406691925ab1e0ed5b7f",
|
|
1393
|
-
name: "Ananya",
|
|
1394
|
-
gender: "female",
|
|
1395
|
-
languages: ["hi"],
|
|
1396
|
-
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",
|
|
1397
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a17a700668d8405f8316db120733145c.mp3"
|
|
1398
|
-
},
|
|
1399
|
-
{
|
|
1400
|
-
id: "cefd91a07b99468f9148e2580990082d",
|
|
1401
|
-
name: "Arjun",
|
|
1402
|
-
gender: "male",
|
|
1403
|
-
languages: ["hi"],
|
|
1404
|
-
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",
|
|
1405
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/a0c4a8eadb7841cdae8e5e68031a2dfb.mp3"
|
|
1406
|
-
},
|
|
1407
|
-
{
|
|
1408
|
-
id: "3f065d660212478a9c697fa965b4d098",
|
|
1409
|
-
name: "Carmen",
|
|
1410
|
-
gender: "female",
|
|
1411
|
-
languages: ["es"],
|
|
1412
|
-
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1413
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/3421be48b6cb4c28bf829c25188e7e74.mp3"
|
|
1414
|
-
},
|
|
1415
|
-
{
|
|
1416
|
-
id: "ec0718028a2445fb9be8e8bfb56a0150",
|
|
1417
|
-
name: "Rodrigo",
|
|
1418
|
-
gender: "male",
|
|
1419
|
-
languages: ["es"],
|
|
1420
|
-
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1421
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/5a77c32365604800ad5b4eb13c5585df.mp3"
|
|
1422
|
-
},
|
|
1423
|
-
{
|
|
1424
|
-
id: "10a3a20742114a4ea6dd441e7591850f",
|
|
1425
|
-
name: "Manon",
|
|
1426
|
-
gender: "female",
|
|
1427
|
-
languages: ["fr"],
|
|
1428
|
-
description: "Une voix claire et vive, adapt\xE9e aux assistants vocaux et au support client.",
|
|
1429
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/f7b75ee1fa524e48a8cefb003cf72952.mp3"
|
|
1430
|
-
},
|
|
1431
|
-
{
|
|
1432
|
-
id: "f69bca092b674168a8d02d61ca20943c",
|
|
1433
|
-
name: "Lucas",
|
|
1434
|
-
gender: "male",
|
|
1435
|
-
languages: ["fr"],
|
|
1436
|
-
description: "Une voix claire et assur\xE9e, adapt\xE9e aux assistants vocaux et au service client.",
|
|
1437
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/86fca3e56a014a3d8a11450854bb8311.mp3"
|
|
1438
|
-
},
|
|
1439
|
-
{
|
|
1440
|
-
id: "3937b44b604249f18b94913daef94043",
|
|
1441
|
-
name: "Lena",
|
|
1442
|
-
gender: "female",
|
|
1443
|
-
languages: ["de"],
|
|
1444
|
-
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
1445
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/8659fec80b74442dab68a7755716a401.mp3"
|
|
1446
|
-
},
|
|
1447
|
-
{
|
|
1448
|
-
id: "c1e7cc926aa5469aa966c353094d4b0b",
|
|
1449
|
-
name: "Lukas",
|
|
1450
|
-
gender: "male",
|
|
1451
|
-
languages: ["de"],
|
|
1452
|
-
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
1453
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/fb1d538126bb4fe38f8366250f6a2136.mp3"
|
|
1454
|
-
},
|
|
1455
|
-
{
|
|
1456
|
-
id: "b3c060cc41544a7da94a2c487647c902",
|
|
1457
|
-
name: "Let\xEDcia",
|
|
1458
|
-
gender: "female",
|
|
1459
|
-
accent: "brazilian",
|
|
1460
|
-
languages: ["pt"],
|
|
1461
|
-
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.",
|
|
1462
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/13c6c0d96b5c4069951f89868ee15360.mp3"
|
|
1463
|
-
},
|
|
1464
|
-
{
|
|
1465
|
-
id: "add7bcb8d3c8423bbfa152ca232aad6e",
|
|
1466
|
-
name: "Ricardo",
|
|
1467
|
-
gender: "male",
|
|
1468
|
-
accent: "brazilian",
|
|
1469
|
-
languages: ["pt"],
|
|
1470
|
-
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.",
|
|
1471
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/67475fc717ae45cbb38e647a2dd37fe1.mp3"
|
|
1472
|
-
},
|
|
1473
|
-
{
|
|
1474
|
-
id: "b2d9d8db057042688a5e318b8f405bc2",
|
|
1475
|
-
name: "Kyoko",
|
|
1476
|
-
gender: "female",
|
|
1477
|
-
languages: ["ja"],
|
|
1478
|
-
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",
|
|
1479
|
-
previewUrl: "https://platform.r2.fish.audio/task/993b3ccb52124341aff79580f1ce5a5a.mp3"
|
|
1480
|
-
},
|
|
1481
|
-
{
|
|
1482
|
-
id: "297a6fd278df47c3b9da9bfdf55ac89a",
|
|
1483
|
-
name: "Satoru",
|
|
1484
|
-
gender: "male",
|
|
1485
|
-
languages: ["ja"],
|
|
1486
|
-
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",
|
|
1487
|
-
previewUrl: "https://platform.r2.fish.audio/task/1b4712fb831f4c149eef6b0133157418.mp3"
|
|
1488
|
-
},
|
|
1489
|
-
{
|
|
1490
|
-
id: "0b14f34a13a94ed88fe6113193749bb0",
|
|
1491
|
-
name: "Fatima",
|
|
1492
|
-
gender: "female",
|
|
1493
|
-
languages: ["ar"],
|
|
1494
|
-
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.",
|
|
1495
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/93406e1b905a4c4994306e3421243390.mp3"
|
|
1496
|
-
},
|
|
1497
|
-
{
|
|
1498
|
-
id: "74c6aba5cbf94a15bbdc547ffce5cb38",
|
|
1499
|
-
name: "Yutong",
|
|
1500
|
-
gender: "female",
|
|
1501
|
-
languages: ["zh"],
|
|
1502
|
-
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",
|
|
1503
|
-
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a48320f37fe44c4699549a1afc3778e8.mp3"
|
|
1504
|
-
}
|
|
1505
|
-
];
|
|
1506
|
-
|
|
1507
|
-
// src/catalog/speech-fish.ts
|
|
1508
|
-
var FISH_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/fishaudio.png";
|
|
1509
|
-
var PER_CALL = { unit: "images" };
|
|
1510
|
-
var PER_REQUEST = { unit: "requests" };
|
|
1511
|
-
var TTS_MAX_CHARS = 1e4;
|
|
1512
|
-
function fishTts(id, label, providerModelId, description) {
|
|
1513
|
-
return {
|
|
1514
|
-
id,
|
|
1515
|
-
aliases: [],
|
|
1516
|
-
label,
|
|
1517
|
-
type: "speech",
|
|
1518
|
-
adapter: "fish",
|
|
1519
|
-
providerModelId,
|
|
1520
|
-
lifecycle: "active",
|
|
1521
|
-
exposure: [],
|
|
1522
|
-
constraints: {
|
|
1523
|
-
voices: FISH_VOICES,
|
|
1524
|
-
outputFormats: ["mp3", "wav"],
|
|
1525
|
-
supports: [],
|
|
1526
|
-
prompt: { referenceSyntax: "numbered", maxChars: TTS_MAX_CHARS }
|
|
1527
|
-
},
|
|
1528
|
-
defaults: { voice: "9a9cf47702da476aa4629e2506d4a857", outputFormat: "mp3" },
|
|
1529
|
-
usage: PER_CALL,
|
|
1530
|
-
pricingKind: "flat",
|
|
1531
|
-
display: { provider: "fishaudio", logo: FISH_LOGO, description },
|
|
1532
|
-
capabilities: { customVoices: true }
|
|
1533
|
-
};
|
|
1534
|
-
}
|
|
1535
|
-
var FISH_MODELS = [
|
|
1536
|
-
fishTts(
|
|
1537
|
-
"fish-s2.1-pro",
|
|
1538
|
-
"Fish Audio S2.1 Pro",
|
|
1539
|
-
"s2.1-pro",
|
|
1540
|
-
"Fish Audio S2.1 Pro text to speech in 83 languages, with [bracket] directions and your own cloned voices."
|
|
1541
|
-
),
|
|
1542
|
-
fishTts(
|
|
1543
|
-
"fish-s2.1-pro-free",
|
|
1544
|
-
"Fish Audio S2.1 Pro Free",
|
|
1545
|
-
"s2.1-pro-free",
|
|
1546
|
-
"Fish Audio S2.1 Pro on the free developer tier: the same voices at no cost, without latency or data-processing guarantees."
|
|
1547
|
-
),
|
|
1548
|
-
fishTts(
|
|
1549
|
-
"fish-drama-3",
|
|
1550
|
-
"Fish Audio Drama 3",
|
|
1551
|
-
"drama-3",
|
|
1552
|
-
"Fish Audio Drama 3 text to speech you direct like an actor: [directions], sounds, pauses and per-word tags."
|
|
1553
|
-
),
|
|
1554
|
-
{
|
|
1555
|
-
id: "fish-voice-clone",
|
|
1556
|
-
aliases: [],
|
|
1557
|
-
label: "Fish Audio Voice Clone",
|
|
1558
|
-
type: "voice-clone",
|
|
1559
|
-
adapter: "fish",
|
|
1560
|
-
providerModelId: "voice-clone",
|
|
1561
|
-
lifecycle: "active",
|
|
1562
|
-
exposure: [],
|
|
1563
|
-
constraints: {
|
|
1564
|
-
// POST /model takes 1-20 voice files; Fish advises 10 s or more of clean speech each.
|
|
1565
|
-
references: { audios: 20, audioFormats: ["wav", "mp3", "m4a", "opus"] },
|
|
1566
|
-
supports: []
|
|
1567
|
-
},
|
|
1568
|
-
defaults: {},
|
|
1569
|
-
usage: PER_REQUEST,
|
|
1570
|
-
pricingKind: "flat",
|
|
1571
|
-
display: {
|
|
1572
|
-
provider: "fishaudio",
|
|
1573
|
-
logo: FISH_LOGO,
|
|
1574
|
-
description: "Clone a private, reusable voice from one or more clean recordings, then speak with it on the Fish Audio speech models."
|
|
1575
|
-
},
|
|
1576
|
-
capabilities: {}
|
|
1577
|
-
},
|
|
1578
|
-
{
|
|
1579
|
-
id: "fish-voice-design-1",
|
|
1580
|
-
aliases: [],
|
|
1581
|
-
label: "Fish Audio Voice Design",
|
|
1582
|
-
type: "voice-design",
|
|
1583
|
-
adapter: "fish",
|
|
1584
|
-
providerModelId: "voice-design-1",
|
|
1585
|
-
lifecycle: "active",
|
|
1586
|
-
exposure: [],
|
|
1587
|
-
constraints: {
|
|
1588
|
-
voiceDesign: { maxCandidates: 4, previewMaxChars: 150 },
|
|
1589
|
-
supports: [],
|
|
1590
|
-
prompt: { referenceSyntax: "numbered", maxChars: 2e3 }
|
|
1591
|
-
},
|
|
1592
|
-
defaults: {},
|
|
1593
|
-
usage: PER_REQUEST,
|
|
1594
|
-
pricingKind: "flat",
|
|
1595
|
-
display: {
|
|
1596
|
-
provider: "fishaudio",
|
|
1597
|
-
logo: FISH_LOGO,
|
|
1598
|
-
description: "Describe a voice and get up to four short candidates; keep one as a cloned voice."
|
|
1599
|
-
},
|
|
1600
|
-
capabilities: {}
|
|
1601
|
-
}
|
|
1602
|
-
];
|
|
1603
|
-
|
|
1604
1307
|
// src/catalog/languages-audio.ts
|
|
1605
1308
|
var ELEVENLABS_V4_LANGUAGES = [
|
|
1606
1309
|
{ code: "af", name: "Afrikaans" },
|
|
@@ -2010,96 +1713,460 @@ var ELEVENLABS_VOICES = [
|
|
|
2010
1713
|
description: "A young adult with energy and warmth - suitable for reels and shorts.",
|
|
2011
1714
|
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/TX3LPaxmHKxFdv7VOQHJ/63148076-6363-42db-aea8-31424308b92c.mp3"
|
|
2012
1715
|
},
|
|
2013
|
-
{ id: "Charlotte", name: "Charlotte" },
|
|
1716
|
+
{ id: "Charlotte", name: "Charlotte" },
|
|
1717
|
+
{
|
|
1718
|
+
id: "Alice",
|
|
1719
|
+
name: "Alice",
|
|
1720
|
+
gender: "female",
|
|
1721
|
+
accent: "british",
|
|
1722
|
+
languages: ["en", "it", "fr", "ar", "ja", "pl", "hi"],
|
|
1723
|
+
description: "Clear and engaging, friendly woman with a British accent suitable for e-learning.",
|
|
1724
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/Xb7hH8MSUJpSbSDYk0k2/d10f7534-11f6-41fe-a012-2de1e482d336.mp3"
|
|
1725
|
+
},
|
|
1726
|
+
{
|
|
1727
|
+
id: "Matilda",
|
|
1728
|
+
name: "Matilda",
|
|
1729
|
+
gender: "female",
|
|
1730
|
+
accent: "american",
|
|
1731
|
+
languages: ["en", "it", "fr", "de", "ar", "es"],
|
|
1732
|
+
description: "A professional woman with a pleasing alto pitch. Suitable for many use cases.",
|
|
1733
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/XrExE9yKIg1WjnnlVkGX/b930e18d-6b4d-466e-bab2-0ae97c6d8535.mp3"
|
|
1734
|
+
},
|
|
1735
|
+
{
|
|
1736
|
+
id: "Will",
|
|
1737
|
+
name: "Will",
|
|
1738
|
+
gender: "male",
|
|
1739
|
+
accent: "american",
|
|
1740
|
+
languages: ["en", "fr", "de", "pt", "zh", "cs", "fil", "sk", "es", "sv"],
|
|
1741
|
+
description: "Conversational and laid back.",
|
|
1742
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/bIHbv24MWmeRgasZH58o/8caf8f3d-ad29-4980-af41-53f20c72d7a4.mp3"
|
|
1743
|
+
},
|
|
1744
|
+
{
|
|
1745
|
+
id: "Jessica",
|
|
1746
|
+
name: "Jessica",
|
|
1747
|
+
gender: "female",
|
|
1748
|
+
accent: "american",
|
|
1749
|
+
languages: ["en", "fr", "ar", "ja", "zh", "de", "cs", "hi"],
|
|
1750
|
+
description: "Young and popular, this playful American female voice is perfect for trendy content.",
|
|
1751
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/cgSgspJ2msm6clMCkdW9/56a97bf8-b69b-448f-846c-c3a11683d45a.mp3"
|
|
1752
|
+
},
|
|
1753
|
+
{
|
|
1754
|
+
id: "Eric",
|
|
1755
|
+
name: "Eric",
|
|
1756
|
+
gender: "male",
|
|
1757
|
+
accent: "american",
|
|
1758
|
+
languages: ["en", "fr", "pt", "de", "sk", "es"],
|
|
1759
|
+
description: "A smooth tenor pitch from a man in his 40s - perfect for agentic use cases.",
|
|
1760
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/cjVigY5qzO86Huf0OWal/d098fda0-6456-4030-b3d8-63aa048c9070.mp3"
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
id: "Chris",
|
|
1764
|
+
name: "Chris",
|
|
1765
|
+
gender: "male",
|
|
1766
|
+
accent: "american",
|
|
1767
|
+
languages: ["en", "fr", "ar", "pt", "sv", "hi"],
|
|
1768
|
+
description: "Natural and real, this down-to-earth voice is great across many use-cases.",
|
|
1769
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/iP95p4xoKVk53GoZ742B/3f4bde72-cc48-40dd-829f-57fbf906f4d7.mp3"
|
|
1770
|
+
},
|
|
1771
|
+
{
|
|
1772
|
+
id: "Brian",
|
|
1773
|
+
name: "Brian",
|
|
1774
|
+
gender: "male",
|
|
1775
|
+
accent: "american",
|
|
1776
|
+
languages: ["en", "ar", "zh", "pt", "de", "nl", "sk", "ro", "hi"],
|
|
1777
|
+
description: "Middle-aged man with a resonant and comforting tone. Great for narrations and advertisements.",
|
|
1778
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/nPczCjzI2devNBz1zQrb/2dd3e72c-4fd3-42f1-93ea-abc5d4e5aa1d.mp3"
|
|
1779
|
+
},
|
|
1780
|
+
{
|
|
1781
|
+
id: "Daniel",
|
|
1782
|
+
name: "Daniel",
|
|
1783
|
+
gender: "male",
|
|
1784
|
+
accent: "british",
|
|
1785
|
+
languages: ["en", "de", "tr"],
|
|
1786
|
+
description: "A strong voice perfect for delivering a professional broadcast or news story.",
|
|
1787
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/onwK4e9ZLuTAKqWW03F9/7eee0236-1a72-4b86-b303-5dcadc007ba9.mp3"
|
|
1788
|
+
},
|
|
1789
|
+
{
|
|
1790
|
+
id: "Lily",
|
|
1791
|
+
name: "Lily",
|
|
1792
|
+
gender: "female",
|
|
1793
|
+
accent: "british",
|
|
1794
|
+
languages: ["en", "it", "de", "zh", "cs", "nl", "pl"],
|
|
1795
|
+
description: "Velvety British female voice delivers news and narrations with warmth and clarity.",
|
|
1796
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/pFZP5JQG7iQjIQuC4Bku/89b68b35-b3dd-4348-a84a-a3c13a3c2b30.mp3"
|
|
1797
|
+
},
|
|
1798
|
+
{
|
|
1799
|
+
id: "Bill",
|
|
1800
|
+
name: "Bill",
|
|
1801
|
+
gender: "male",
|
|
1802
|
+
accent: "american",
|
|
1803
|
+
languages: ["en", "fr", "ar", "zh", "de", "cs"],
|
|
1804
|
+
description: "Friendly and comforting voice ready to narrate your stories.",
|
|
1805
|
+
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/pqHfZKP75CvOlQylNhV4/d782b3ff-84ba-4029-848c-acf01285524d.mp3"
|
|
1806
|
+
}
|
|
1807
|
+
];
|
|
1808
|
+
var PREMADE_ID = /\/premade\/voices\/([A-Za-z0-9]+)\//;
|
|
1809
|
+
var ELEVENLABS_DIRECT_VOICES = ELEVENLABS_VOICES.flatMap((v) => {
|
|
1810
|
+
const id = v.previewUrl ? PREMADE_ID.exec(v.previewUrl)?.[1] : void 0;
|
|
1811
|
+
return id ? [{ ...v, id }] : [];
|
|
1812
|
+
});
|
|
1813
|
+
var ELEVENLABS_DIRECT_DEFAULT_VOICE = "EXAVITQu4vr4xnSDxMaL";
|
|
1814
|
+
|
|
1815
|
+
// src/catalog/speech-elevenlabs-direct.ts
|
|
1816
|
+
var ELEVENLABS_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/elevenlabs.png";
|
|
1817
|
+
var PER_CALL = { unit: "images" };
|
|
1818
|
+
var PER_REQUEST = { unit: "requests" };
|
|
1819
|
+
var ELEVENLABS_DIRECT_MODELS = [
|
|
1820
|
+
{
|
|
1821
|
+
id: "elevenlabs-v4-direct",
|
|
1822
|
+
aliases: [],
|
|
1823
|
+
label: "ElevenLabs v4 (direct)",
|
|
1824
|
+
type: "speech",
|
|
1825
|
+
adapter: "elevenlabs",
|
|
1826
|
+
providerModelId: "eleven_v4",
|
|
1827
|
+
lifecycle: "active",
|
|
1828
|
+
exposure: [],
|
|
1829
|
+
constraints: {
|
|
1830
|
+
// Premade voices under their ElevenLabs ids (the direct API takes ids, not names).
|
|
1831
|
+
voices: ELEVENLABS_DIRECT_VOICES,
|
|
1832
|
+
languages: ELEVENLABS_V4_LANGUAGES,
|
|
1833
|
+
outputFormats: ELEVENLABS_MP3_FORMATS,
|
|
1834
|
+
supports: [],
|
|
1835
|
+
// ElevenLabs docs: 10,000 characters per request.
|
|
1836
|
+
prompt: { referenceSyntax: "numbered", maxChars: 1e4 }
|
|
1837
|
+
},
|
|
1838
|
+
defaults: { voice: ELEVENLABS_DIRECT_DEFAULT_VOICE, outputFormat: "mp3_44100_128" },
|
|
1839
|
+
usage: PER_CALL,
|
|
1840
|
+
pricingKind: "flat",
|
|
1841
|
+
display: {
|
|
1842
|
+
provider: "elevenlabs",
|
|
1843
|
+
logo: ELEVENLABS_LOGO,
|
|
1844
|
+
description: "ElevenLabs v4 text to speech with audio tags, in a premade voice or your own cloned voice; up to 10,000 characters."
|
|
1845
|
+
},
|
|
1846
|
+
capabilities: { customVoices: true }
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
id: "elevenlabs-ivc",
|
|
1850
|
+
aliases: [],
|
|
1851
|
+
label: "ElevenLabs Instant Voice Clone",
|
|
1852
|
+
type: "voice-clone",
|
|
1853
|
+
adapter: "elevenlabs",
|
|
1854
|
+
providerModelId: "ivc",
|
|
1855
|
+
lifecycle: "active",
|
|
1856
|
+
exposure: [],
|
|
1857
|
+
constraints: {
|
|
1858
|
+
// POST /v1/voices/add; ElevenLabs takes up to 25 samples and advises 1-2 minutes of
|
|
1859
|
+
// clean speech in total. Each clone uses a voice slot on our plan until deleted.
|
|
1860
|
+
references: { audios: 25, audioFormats: ["mp3", "wav", "m4a", "webm", "ogg"] },
|
|
1861
|
+
supports: []
|
|
1862
|
+
},
|
|
1863
|
+
defaults: {},
|
|
1864
|
+
usage: PER_REQUEST,
|
|
1865
|
+
pricingKind: "flat",
|
|
1866
|
+
display: {
|
|
1867
|
+
provider: "elevenlabs",
|
|
1868
|
+
logo: ELEVENLABS_LOGO,
|
|
1869
|
+
description: "Clone a private, reusable voice from one or more clean recordings, then speak with it on ElevenLabs v4 (direct)."
|
|
1870
|
+
},
|
|
1871
|
+
capabilities: {}
|
|
1872
|
+
}
|
|
1873
|
+
];
|
|
1874
|
+
|
|
1875
|
+
// src/catalog/voices-fish.ts
|
|
1876
|
+
var FISH_VOICES = [
|
|
1877
|
+
{
|
|
1878
|
+
id: "933563129e564b19a115bedd57b7406a",
|
|
1879
|
+
name: "Sarah",
|
|
1880
|
+
gender: "female",
|
|
1881
|
+
languages: ["en"],
|
|
1882
|
+
description: "An engaged speaker.",
|
|
1883
|
+
previewUrl: "https://platform.r2.fish.audio/task/4e204945670c460c86fdab57512cb308.mp3"
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
id: "bf322df2096a46f18c579d0baa36f41d",
|
|
1887
|
+
name: "Adrian",
|
|
1888
|
+
gender: "male",
|
|
1889
|
+
languages: ["en"],
|
|
1890
|
+
description: "A steady and reliable narrator.",
|
|
1891
|
+
previewUrl: "https://platform.r2.fish.audio/task/d730b09f4a484316a77ecc86137e85fb.mp3"
|
|
1892
|
+
},
|
|
1893
|
+
{
|
|
1894
|
+
id: "536d3a5e000945adb7038665781a4aca",
|
|
1895
|
+
name: "Ethan",
|
|
1896
|
+
gender: "male",
|
|
1897
|
+
languages: ["en"],
|
|
1898
|
+
description: "A curious explainer.",
|
|
1899
|
+
previewUrl: "https://platform.r2.fish.audio/task/bdd677ed767744fc91f166468786264b.mp3"
|
|
1900
|
+
},
|
|
1901
|
+
{
|
|
1902
|
+
id: "b347db033a6549378b48d00acb0d06cd",
|
|
1903
|
+
name: "Selene",
|
|
1904
|
+
gender: "female",
|
|
1905
|
+
languages: ["en"],
|
|
1906
|
+
description: "A meditative female voice.",
|
|
1907
|
+
previewUrl: "https://platform.r2.fish.audio/task/fcf629b4a0b343558f461338ba1b9da4.mp3"
|
|
1908
|
+
},
|
|
1909
|
+
{
|
|
1910
|
+
id: "9a9cf47702da476aa4629e2506d4a857",
|
|
1911
|
+
name: "Hannah",
|
|
1912
|
+
gender: "female",
|
|
1913
|
+
languages: ["en"],
|
|
1914
|
+
description: "A conversation specialist.",
|
|
1915
|
+
previewUrl: "https://platform.r2.fish.audio/task/08d658835feb427db808e37060b78eb0.mp3"
|
|
1916
|
+
},
|
|
1917
|
+
{
|
|
1918
|
+
id: "79d0bd3e4e5444b18f7b6d89b5927bf1",
|
|
1919
|
+
name: "Jordan",
|
|
1920
|
+
gender: "male",
|
|
1921
|
+
languages: ["en"],
|
|
1922
|
+
description: "A motivational speaker.",
|
|
1923
|
+
previewUrl: "https://platform.r2.fish.audio/task/edecbc0bdd4c46c39eda8520a0f729ef.mp3"
|
|
1924
|
+
},
|
|
1925
|
+
{
|
|
1926
|
+
id: "e3cd384158934cc9a01029cd7d278634",
|
|
1927
|
+
name: "Laura",
|
|
1928
|
+
gender: "female",
|
|
1929
|
+
languages: ["en"],
|
|
1930
|
+
description: "A confident female narrator.",
|
|
1931
|
+
previewUrl: "https://platform.r2.fish.audio/task/e821bef995344d519caa1c93d808db23.mp3"
|
|
1932
|
+
},
|
|
1933
|
+
{
|
|
1934
|
+
id: "f3a2b90078d54a65af4b95f63bc7798e",
|
|
1935
|
+
name: "Sheila",
|
|
1936
|
+
gender: "female",
|
|
1937
|
+
accent: "american",
|
|
1938
|
+
languages: ["en"],
|
|
1939
|
+
description: "A young American English woman's voice.",
|
|
1940
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/9bb9e1a1cf3f47f38700da1c5c0a678a.mp3"
|
|
1941
|
+
},
|
|
1942
|
+
{
|
|
1943
|
+
id: "0db6e93af420470b9d9b9a886dbaa954",
|
|
1944
|
+
name: "Kai",
|
|
1945
|
+
gender: "male",
|
|
1946
|
+
languages: ["en"],
|
|
1947
|
+
description: "A friendly English man's voice for companion apps and everyday conversation.",
|
|
1948
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/13306f1172544c3ba3106d1e363feaa6.mp3"
|
|
1949
|
+
},
|
|
1950
|
+
{
|
|
1951
|
+
id: "8abfa9ebd4c24a3399b68c3cdac8c7b5",
|
|
1952
|
+
name: "Freya",
|
|
1953
|
+
gender: "female",
|
|
1954
|
+
accent: "british",
|
|
1955
|
+
languages: ["en"],
|
|
1956
|
+
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.",
|
|
1957
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/07918705a56b42daaab149f65392cea7.mp3"
|
|
1958
|
+
},
|
|
1959
|
+
{
|
|
1960
|
+
id: "2f64e528a4f2406691925ab1e0ed5b7f",
|
|
1961
|
+
name: "Ananya",
|
|
1962
|
+
gender: "female",
|
|
1963
|
+
languages: ["hi"],
|
|
1964
|
+
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",
|
|
1965
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a17a700668d8405f8316db120733145c.mp3"
|
|
1966
|
+
},
|
|
1967
|
+
{
|
|
1968
|
+
id: "cefd91a07b99468f9148e2580990082d",
|
|
1969
|
+
name: "Arjun",
|
|
1970
|
+
gender: "male",
|
|
1971
|
+
languages: ["hi"],
|
|
1972
|
+
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",
|
|
1973
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/a0c4a8eadb7841cdae8e5e68031a2dfb.mp3"
|
|
1974
|
+
},
|
|
1975
|
+
{
|
|
1976
|
+
id: "3f065d660212478a9c697fa965b4d098",
|
|
1977
|
+
name: "Carmen",
|
|
1978
|
+
gender: "female",
|
|
1979
|
+
languages: ["es"],
|
|
1980
|
+
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1981
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/3421be48b6cb4c28bf829c25188e7e74.mp3"
|
|
1982
|
+
},
|
|
1983
|
+
{
|
|
1984
|
+
id: "ec0718028a2445fb9be8e8bfb56a0150",
|
|
1985
|
+
name: "Rodrigo",
|
|
1986
|
+
gender: "male",
|
|
1987
|
+
languages: ["es"],
|
|
1988
|
+
description: "Una voz clara y segura para asistentes de voz, atenci\xF3n al cliente y presentaciones.",
|
|
1989
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/5a77c32365604800ad5b4eb13c5585df.mp3"
|
|
1990
|
+
},
|
|
1991
|
+
{
|
|
1992
|
+
id: "10a3a20742114a4ea6dd441e7591850f",
|
|
1993
|
+
name: "Manon",
|
|
1994
|
+
gender: "female",
|
|
1995
|
+
languages: ["fr"],
|
|
1996
|
+
description: "Une voix claire et vive, adapt\xE9e aux assistants vocaux et au support client.",
|
|
1997
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/f7b75ee1fa524e48a8cefb003cf72952.mp3"
|
|
1998
|
+
},
|
|
2014
1999
|
{
|
|
2015
|
-
id: "
|
|
2016
|
-
name: "
|
|
2017
|
-
gender: "
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/Xb7hH8MSUJpSbSDYk0k2/d10f7534-11f6-41fe-a012-2de1e482d336.mp3"
|
|
2000
|
+
id: "f69bca092b674168a8d02d61ca20943c",
|
|
2001
|
+
name: "Lucas",
|
|
2002
|
+
gender: "male",
|
|
2003
|
+
languages: ["fr"],
|
|
2004
|
+
description: "Une voix claire et assur\xE9e, adapt\xE9e aux assistants vocaux et au service client.",
|
|
2005
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/86fca3e56a014a3d8a11450854bb8311.mp3"
|
|
2022
2006
|
},
|
|
2023
2007
|
{
|
|
2024
|
-
id: "
|
|
2025
|
-
name: "
|
|
2008
|
+
id: "3937b44b604249f18b94913daef94043",
|
|
2009
|
+
name: "Lena",
|
|
2026
2010
|
gender: "female",
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/XrExE9yKIg1WjnnlVkGX/b930e18d-6b4d-466e-bab2-0ae97c6d8535.mp3"
|
|
2011
|
+
languages: ["de"],
|
|
2012
|
+
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
2013
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/8659fec80b74442dab68a7755716a401.mp3"
|
|
2031
2014
|
},
|
|
2032
2015
|
{
|
|
2033
|
-
id: "
|
|
2034
|
-
name: "
|
|
2016
|
+
id: "c1e7cc926aa5469aa966c353094d4b0b",
|
|
2017
|
+
name: "Lukas",
|
|
2035
2018
|
gender: "male",
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/bIHbv24MWmeRgasZH58o/8caf8f3d-ad29-4980-af41-53f20c72d7a4.mp3"
|
|
2019
|
+
languages: ["de"],
|
|
2020
|
+
description: "Eine klare, souver\xE4ne Stimme f\xFCr Sprachassistenten, Kundenservice und Pr\xE4sentationen.",
|
|
2021
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/fb1d538126bb4fe38f8366250f6a2136.mp3"
|
|
2040
2022
|
},
|
|
2041
2023
|
{
|
|
2042
|
-
id: "
|
|
2043
|
-
name: "
|
|
2024
|
+
id: "b3c060cc41544a7da94a2c487647c902",
|
|
2025
|
+
name: "Let\xEDcia",
|
|
2044
2026
|
gender: "female",
|
|
2045
|
-
accent: "
|
|
2046
|
-
languages: ["
|
|
2047
|
-
description: "
|
|
2048
|
-
previewUrl: "https://
|
|
2027
|
+
accent: "brazilian",
|
|
2028
|
+
languages: ["pt"],
|
|
2029
|
+
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.",
|
|
2030
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/13c6c0d96b5c4069951f89868ee15360.mp3"
|
|
2049
2031
|
},
|
|
2050
2032
|
{
|
|
2051
|
-
id: "
|
|
2052
|
-
name: "
|
|
2033
|
+
id: "add7bcb8d3c8423bbfa152ca232aad6e",
|
|
2034
|
+
name: "Ricardo",
|
|
2053
2035
|
gender: "male",
|
|
2054
|
-
accent: "
|
|
2055
|
-
languages: ["
|
|
2056
|
-
description: "A
|
|
2057
|
-
previewUrl: "https://
|
|
2036
|
+
accent: "brazilian",
|
|
2037
|
+
languages: ["pt"],
|
|
2038
|
+
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.",
|
|
2039
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-10-12/67475fc717ae45cbb38e647a2dd37fe1.mp3"
|
|
2058
2040
|
},
|
|
2059
2041
|
{
|
|
2060
|
-
id: "
|
|
2061
|
-
name: "
|
|
2062
|
-
gender: "
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/iP95p4xoKVk53GoZ742B/3f4bde72-cc48-40dd-829f-57fbf906f4d7.mp3"
|
|
2042
|
+
id: "b2d9d8db057042688a5e318b8f405bc2",
|
|
2043
|
+
name: "Kyoko",
|
|
2044
|
+
gender: "female",
|
|
2045
|
+
languages: ["ja"],
|
|
2046
|
+
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",
|
|
2047
|
+
previewUrl: "https://platform.r2.fish.audio/task/993b3ccb52124341aff79580f1ce5a5a.mp3"
|
|
2067
2048
|
},
|
|
2068
2049
|
{
|
|
2069
|
-
id: "
|
|
2070
|
-
name: "
|
|
2050
|
+
id: "297a6fd278df47c3b9da9bfdf55ac89a",
|
|
2051
|
+
name: "Satoru",
|
|
2071
2052
|
gender: "male",
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/nPczCjzI2devNBz1zQrb/2dd3e72c-4fd3-42f1-93ea-abc5d4e5aa1d.mp3"
|
|
2053
|
+
languages: ["ja"],
|
|
2054
|
+
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",
|
|
2055
|
+
previewUrl: "https://platform.r2.fish.audio/task/1b4712fb831f4c149eef6b0133157418.mp3"
|
|
2076
2056
|
},
|
|
2077
2057
|
{
|
|
2078
|
-
id: "
|
|
2079
|
-
name: "
|
|
2080
|
-
gender: "
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
previewUrl: "https://storage.googleapis.com/eleven-public-prod/premade/voices/onwK4e9ZLuTAKqWW03F9/7eee0236-1a72-4b86-b303-5dcadc007ba9.mp3"
|
|
2058
|
+
id: "0b14f34a13a94ed88fe6113193749bb0",
|
|
2059
|
+
name: "Fatima",
|
|
2060
|
+
gender: "female",
|
|
2061
|
+
languages: ["ar"],
|
|
2062
|
+
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.",
|
|
2063
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-24/93406e1b905a4c4994306e3421243390.mp3"
|
|
2085
2064
|
},
|
|
2086
2065
|
{
|
|
2087
|
-
id: "
|
|
2088
|
-
name: "
|
|
2066
|
+
id: "74c6aba5cbf94a15bbdc547ffce5cb38",
|
|
2067
|
+
name: "Yutong",
|
|
2089
2068
|
gender: "female",
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2069
|
+
languages: ["zh"],
|
|
2070
|
+
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",
|
|
2071
|
+
previewUrl: "https://platform.r2.fish.audio/tasks/2026-08-25/a48320f37fe44c4699549a1afc3778e8.mp3"
|
|
2072
|
+
}
|
|
2073
|
+
];
|
|
2074
|
+
|
|
2075
|
+
// src/catalog/speech-fish.ts
|
|
2076
|
+
var FISH_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/fishaudio.png";
|
|
2077
|
+
var PER_CALL2 = { unit: "images" };
|
|
2078
|
+
var PER_REQUEST2 = { unit: "requests" };
|
|
2079
|
+
var EXPOSURE4 = ["cowork", "space_builder"];
|
|
2080
|
+
var TTS_MAX_CHARS = 1e4;
|
|
2081
|
+
function fishTts(id, label, providerModelId, description) {
|
|
2082
|
+
return {
|
|
2083
|
+
id,
|
|
2084
|
+
aliases: [],
|
|
2085
|
+
label,
|
|
2086
|
+
type: "speech",
|
|
2087
|
+
adapter: "fish",
|
|
2088
|
+
providerModelId,
|
|
2089
|
+
lifecycle: "active",
|
|
2090
|
+
exposure: EXPOSURE4,
|
|
2091
|
+
constraints: {
|
|
2092
|
+
voices: FISH_VOICES,
|
|
2093
|
+
outputFormats: ["mp3", "wav"],
|
|
2094
|
+
supports: [],
|
|
2095
|
+
prompt: { referenceSyntax: "numbered", maxChars: TTS_MAX_CHARS }
|
|
2096
|
+
},
|
|
2097
|
+
defaults: { voice: "9a9cf47702da476aa4629e2506d4a857", outputFormat: "mp3" },
|
|
2098
|
+
usage: PER_CALL2,
|
|
2099
|
+
pricingKind: "flat",
|
|
2100
|
+
display: { provider: "fishaudio", logo: FISH_LOGO, description },
|
|
2101
|
+
capabilities: { customVoices: true }
|
|
2102
|
+
};
|
|
2103
|
+
}
|
|
2104
|
+
var FISH_MODELS = [
|
|
2105
|
+
fishTts(
|
|
2106
|
+
"fish-s2.1-pro",
|
|
2107
|
+
"Fish Audio S2.1 Pro",
|
|
2108
|
+
"s2.1-pro",
|
|
2109
|
+
"Fish Audio S2.1 Pro text to speech in 83 languages, with [bracket] directions and your own cloned voices."
|
|
2110
|
+
),
|
|
2111
|
+
fishTts(
|
|
2112
|
+
"fish-s2.1-pro-free",
|
|
2113
|
+
"Fish Audio S2.1 Pro Free",
|
|
2114
|
+
"s2.1-pro-free",
|
|
2115
|
+
"Fish Audio S2.1 Pro on the free developer tier: the same voices at no cost, without latency or data-processing guarantees."
|
|
2116
|
+
),
|
|
2117
|
+
fishTts(
|
|
2118
|
+
"fish-drama-3",
|
|
2119
|
+
"Fish Audio Drama 3",
|
|
2120
|
+
"drama-3",
|
|
2121
|
+
"Fish Audio Drama 3 text to speech you direct like an actor: [directions], sounds, pauses and per-word tags."
|
|
2122
|
+
),
|
|
2123
|
+
{
|
|
2124
|
+
id: "fish-voice-clone",
|
|
2125
|
+
aliases: [],
|
|
2126
|
+
label: "Fish Audio Voice Clone",
|
|
2127
|
+
type: "voice-clone",
|
|
2128
|
+
adapter: "fish",
|
|
2129
|
+
providerModelId: "voice-clone",
|
|
2130
|
+
lifecycle: "active",
|
|
2131
|
+
exposure: EXPOSURE4,
|
|
2132
|
+
constraints: {
|
|
2133
|
+
// POST /model takes 1-20 voice files; Fish advises 10 s or more of clean speech each.
|
|
2134
|
+
references: { audios: 20, audioFormats: ["wav", "mp3", "m4a", "opus"] },
|
|
2135
|
+
supports: []
|
|
2136
|
+
},
|
|
2137
|
+
defaults: {},
|
|
2138
|
+
usage: PER_REQUEST2,
|
|
2139
|
+
pricingKind: "flat",
|
|
2140
|
+
display: {
|
|
2141
|
+
provider: "fishaudio",
|
|
2142
|
+
logo: FISH_LOGO,
|
|
2143
|
+
description: "Clone a private, reusable voice from one or more clean recordings, then speak with it on the Fish Audio speech models."
|
|
2144
|
+
},
|
|
2145
|
+
capabilities: {}
|
|
2094
2146
|
},
|
|
2095
2147
|
{
|
|
2096
|
-
id: "
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2148
|
+
id: "fish-voice-design-1",
|
|
2149
|
+
aliases: [],
|
|
2150
|
+
label: "Fish Audio Voice Design",
|
|
2151
|
+
type: "voice-design",
|
|
2152
|
+
adapter: "fish",
|
|
2153
|
+
providerModelId: "voice-design-1",
|
|
2154
|
+
lifecycle: "active",
|
|
2155
|
+
exposure: EXPOSURE4,
|
|
2156
|
+
constraints: {
|
|
2157
|
+
voiceDesign: { maxCandidates: 4, previewMaxChars: 150 },
|
|
2158
|
+
supports: [],
|
|
2159
|
+
prompt: { referenceSyntax: "numbered", maxChars: 2e3 }
|
|
2160
|
+
},
|
|
2161
|
+
defaults: {},
|
|
2162
|
+
usage: PER_REQUEST2,
|
|
2163
|
+
pricingKind: "flat",
|
|
2164
|
+
display: {
|
|
2165
|
+
provider: "fishaudio",
|
|
2166
|
+
logo: FISH_LOGO,
|
|
2167
|
+
description: "Describe a voice and get up to four short candidates; keep one as a cloned voice."
|
|
2168
|
+
},
|
|
2169
|
+
capabilities: {}
|
|
2103
2170
|
}
|
|
2104
2171
|
];
|
|
2105
2172
|
|
|
@@ -3678,12 +3745,12 @@ var MINIMAX_VOICES = [
|
|
|
3678
3745
|
];
|
|
3679
3746
|
|
|
3680
3747
|
// src/catalog/media-nodes.ts
|
|
3681
|
-
var
|
|
3748
|
+
var ELEVENLABS_LOGO2 = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/elevenlabs.png";
|
|
3682
3749
|
var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
3683
3750
|
var MINIMAX_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png";
|
|
3684
3751
|
var SYNC_LOGO = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/sync.png";
|
|
3685
|
-
var
|
|
3686
|
-
var
|
|
3752
|
+
var PER_CALL3 = { unit: "images" };
|
|
3753
|
+
var EXPOSURE5 = ["cowork", "space_builder"];
|
|
3687
3754
|
var LIPSYNC_AUDIO = { audioSeconds: { max: 30 } };
|
|
3688
3755
|
function elevenLabsTts(tts) {
|
|
3689
3756
|
return {
|
|
@@ -3694,7 +3761,7 @@ function elevenLabsTts(tts) {
|
|
|
3694
3761
|
adapter: "fal",
|
|
3695
3762
|
providerModelId: tts.providerModelId,
|
|
3696
3763
|
lifecycle: "active",
|
|
3697
|
-
exposure:
|
|
3764
|
+
exposure: EXPOSURE5,
|
|
3698
3765
|
constraints: {
|
|
3699
3766
|
voices: ELEVENLABS_VOICES,
|
|
3700
3767
|
languages: tts.languages,
|
|
@@ -3703,9 +3770,9 @@ function elevenLabsTts(tts) {
|
|
|
3703
3770
|
prompt: { referenceSyntax: "numbered", maxChars: tts.maxChars }
|
|
3704
3771
|
},
|
|
3705
3772
|
defaults: { voice: "Rachel", ...tts.formats && { outputFormat: "mp3_44100_128" } },
|
|
3706
|
-
usage:
|
|
3773
|
+
usage: PER_CALL3,
|
|
3707
3774
|
pricingKind: "flat",
|
|
3708
|
-
display: { provider: "elevenlabs", logo:
|
|
3775
|
+
display: { provider: "elevenlabs", logo: ELEVENLABS_LOGO2, description: tts.description },
|
|
3709
3776
|
capabilities: {}
|
|
3710
3777
|
};
|
|
3711
3778
|
}
|
|
@@ -3719,7 +3786,7 @@ function geminiTts(id, label, description) {
|
|
|
3719
3786
|
adapter: "fal",
|
|
3720
3787
|
providerModelId,
|
|
3721
3788
|
lifecycle: "active",
|
|
3722
|
-
exposure:
|
|
3789
|
+
exposure: EXPOSURE5,
|
|
3723
3790
|
constraints: {
|
|
3724
3791
|
voices: GEMINI_TTS_VOICES,
|
|
3725
3792
|
supports: ["style"],
|
|
@@ -3727,7 +3794,7 @@ function geminiTts(id, label, description) {
|
|
|
3727
3794
|
prompt: { referenceSyntax: "numbered", maxChars: 8192 }
|
|
3728
3795
|
},
|
|
3729
3796
|
defaults: { voice: "Kore" },
|
|
3730
|
-
usage:
|
|
3797
|
+
usage: PER_CALL3,
|
|
3731
3798
|
pricingKind: "flat",
|
|
3732
3799
|
display: { provider: "google", logo: GOOGLE_LOGO, description },
|
|
3733
3800
|
capabilities: {}
|
|
@@ -3742,7 +3809,7 @@ function syncLipsync(id, label, providerModelId, syncModel, description) {
|
|
|
3742
3809
|
adapter: "fal",
|
|
3743
3810
|
providerModelId,
|
|
3744
3811
|
lifecycle: "active",
|
|
3745
|
-
exposure:
|
|
3812
|
+
exposure: EXPOSURE5,
|
|
3746
3813
|
constraints: {
|
|
3747
3814
|
requires: ["sourceVideo", "sourceAudio"],
|
|
3748
3815
|
references: LIPSYNC_AUDIO,
|
|
@@ -3750,7 +3817,7 @@ function syncLipsync(id, label, providerModelId, syncModel, description) {
|
|
|
3750
3817
|
},
|
|
3751
3818
|
defaults: {},
|
|
3752
3819
|
...syncModel !== void 0 && { providerOptions: { fal: { model: syncModel } } },
|
|
3753
|
-
usage:
|
|
3820
|
+
usage: PER_CALL3,
|
|
3754
3821
|
pricingKind: "flat",
|
|
3755
3822
|
display: { provider: "sync", logo: SYNC_LOGO, description },
|
|
3756
3823
|
capabilities: { acceptsSourceVideo: true }
|
|
@@ -3803,7 +3870,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3803
3870
|
adapter: "fal",
|
|
3804
3871
|
providerModelId: "fal-ai/minimax/speech-2.8-hd",
|
|
3805
3872
|
lifecycle: "active",
|
|
3806
|
-
exposure:
|
|
3873
|
+
exposure: EXPOSURE5,
|
|
3807
3874
|
constraints: {
|
|
3808
3875
|
voices: MINIMAX_VOICES,
|
|
3809
3876
|
languages: MINIMAX_SPEECH_LANGUAGES,
|
|
@@ -3811,7 +3878,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3811
3878
|
prompt: { referenceSyntax: "numbered", maxChars: 1e4 }
|
|
3812
3879
|
},
|
|
3813
3880
|
defaults: { voice: "Wise_Woman" },
|
|
3814
|
-
usage:
|
|
3881
|
+
usage: PER_CALL3,
|
|
3815
3882
|
pricingKind: "flat",
|
|
3816
3883
|
display: {
|
|
3817
3884
|
provider: "minimax",
|
|
@@ -3828,7 +3895,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3828
3895
|
adapter: "fal",
|
|
3829
3896
|
providerModelId: "fal-ai/elevenlabs/voice-changer",
|
|
3830
3897
|
lifecycle: "active",
|
|
3831
|
-
exposure:
|
|
3898
|
+
exposure: EXPOSURE5,
|
|
3832
3899
|
constraints: {
|
|
3833
3900
|
requires: ["sourceAudio"],
|
|
3834
3901
|
// The flat price assumes at most a minute of speech.
|
|
@@ -3838,11 +3905,11 @@ var MEDIA_NODE_MODELS = [
|
|
|
3838
3905
|
supports: []
|
|
3839
3906
|
},
|
|
3840
3907
|
defaults: { voice: "Rachel", outputFormat: "mp3_44100_128" },
|
|
3841
|
-
usage:
|
|
3908
|
+
usage: PER_CALL3,
|
|
3842
3909
|
pricingKind: "flat",
|
|
3843
3910
|
display: {
|
|
3844
3911
|
provider: "elevenlabs",
|
|
3845
|
-
logo:
|
|
3912
|
+
logo: ELEVENLABS_LOGO2,
|
|
3846
3913
|
description: "ElevenLabs speech to speech; re-voices a recording in another voice and keeps its timing and delivery."
|
|
3847
3914
|
},
|
|
3848
3915
|
capabilities: {}
|
|
@@ -3855,7 +3922,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3855
3922
|
adapter: "fal",
|
|
3856
3923
|
providerModelId: "fal-ai/elevenlabs/dubbing",
|
|
3857
3924
|
lifecycle: "active",
|
|
3858
|
-
exposure:
|
|
3925
|
+
exposure: EXPOSURE5,
|
|
3859
3926
|
constraints: {
|
|
3860
3927
|
requiresOneOf: ["sourceVideo", "sourceAudio"],
|
|
3861
3928
|
// The flat price covers 60 s of source.
|
|
@@ -3865,11 +3932,11 @@ var MEDIA_NODE_MODELS = [
|
|
|
3865
3932
|
supports: []
|
|
3866
3933
|
},
|
|
3867
3934
|
defaults: {},
|
|
3868
|
-
usage:
|
|
3935
|
+
usage: PER_CALL3,
|
|
3869
3936
|
pricingKind: "flat",
|
|
3870
3937
|
display: {
|
|
3871
3938
|
provider: "elevenlabs",
|
|
3872
|
-
logo:
|
|
3939
|
+
logo: ELEVENLABS_LOGO2,
|
|
3873
3940
|
description: "ElevenLabs dubbing; translates the speech in a video or audio file into another language in the original voices."
|
|
3874
3941
|
},
|
|
3875
3942
|
capabilities: { acceptsSourceVideo: true }
|
|
@@ -3903,7 +3970,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3903
3970
|
adapter: "fal",
|
|
3904
3971
|
providerModelId: "veed/lipsync/v2",
|
|
3905
3972
|
lifecycle: "active",
|
|
3906
|
-
exposure:
|
|
3973
|
+
exposure: EXPOSURE5,
|
|
3907
3974
|
constraints: {
|
|
3908
3975
|
requires: ["sourceVideo", "sourceAudio"],
|
|
3909
3976
|
references: LIPSYNC_AUDIO,
|
|
@@ -3912,7 +3979,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3912
3979
|
supports: []
|
|
3913
3980
|
},
|
|
3914
3981
|
defaults: {},
|
|
3915
|
-
usage:
|
|
3982
|
+
usage: PER_CALL3,
|
|
3916
3983
|
pricingKind: "flat",
|
|
3917
3984
|
display: {
|
|
3918
3985
|
provider: "veed",
|
|
@@ -3929,7 +3996,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3929
3996
|
adapter: "fal",
|
|
3930
3997
|
providerModelId: "minimax/h3-max/lip-sync/image-to-video",
|
|
3931
3998
|
lifecycle: "active",
|
|
3932
|
-
exposure:
|
|
3999
|
+
exposure: EXPOSURE5,
|
|
3933
4000
|
constraints: {
|
|
3934
4001
|
requires: ["firstFrame", "sourceAudio"],
|
|
3935
4002
|
resolutions: ["480p", "768p", "1080p", "2k"],
|
|
@@ -3955,7 +4022,7 @@ var MEDIA_NODE_MODELS = [
|
|
|
3955
4022
|
adapter: "fal",
|
|
3956
4023
|
providerModelId: "fal-ai/elevenlabs/speech-to-text/scribe-v2",
|
|
3957
4024
|
lifecycle: "active",
|
|
3958
|
-
exposure:
|
|
4025
|
+
exposure: EXPOSURE5,
|
|
3959
4026
|
constraints: {
|
|
3960
4027
|
requires: ["sourceAudio"],
|
|
3961
4028
|
// The flat price covers 10 minutes of audio.
|
|
@@ -3964,17 +4031,18 @@ var MEDIA_NODE_MODELS = [
|
|
|
3964
4031
|
supports: []
|
|
3965
4032
|
},
|
|
3966
4033
|
defaults: {},
|
|
3967
|
-
usage:
|
|
4034
|
+
usage: PER_CALL3,
|
|
3968
4035
|
pricingKind: "flat",
|
|
3969
4036
|
display: {
|
|
3970
4037
|
provider: "elevenlabs",
|
|
3971
|
-
logo:
|
|
4038
|
+
logo: ELEVENLABS_LOGO2,
|
|
3972
4039
|
description: "ElevenLabs Scribe v2 speech to text with word timings, speaker labels and audio-event tags."
|
|
3973
4040
|
},
|
|
3974
4041
|
capabilities: {}
|
|
3975
4042
|
},
|
|
3976
4043
|
SAM_3_IMAGE,
|
|
3977
|
-
...FISH_MODELS
|
|
4044
|
+
...FISH_MODELS,
|
|
4045
|
+
...ELEVENLABS_DIRECT_MODELS
|
|
3978
4046
|
];
|
|
3979
4047
|
|
|
3980
4048
|
// src/catalog/model3d.ts
|
|
@@ -4170,7 +4238,7 @@ var MODEL3D_MODELS = [
|
|
|
4170
4238
|
|
|
4171
4239
|
// src/catalog/other.ts
|
|
4172
4240
|
var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
4173
|
-
var
|
|
4241
|
+
var ELEVENLABS_LOGO3 = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/elevenlabs.png";
|
|
4174
4242
|
var MINIMAX_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png";
|
|
4175
4243
|
var OTHER_MODELS = [
|
|
4176
4244
|
{
|
|
@@ -4335,7 +4403,7 @@ var OTHER_MODELS = [
|
|
|
4335
4403
|
pricingKind: "flat",
|
|
4336
4404
|
display: {
|
|
4337
4405
|
provider: "elevenlabs",
|
|
4338
|
-
logo:
|
|
4406
|
+
logo: ELEVENLABS_LOGO3,
|
|
4339
4407
|
description: "ElevenLabs Music v2.5 text-to-music; full songs or instrumentals from 3 seconds to 1 minute."
|
|
4340
4408
|
},
|
|
4341
4409
|
capabilities: {}
|
|
@@ -4387,7 +4455,7 @@ var OTHER_MODELS = [
|
|
|
4387
4455
|
pricingKind: "flat",
|
|
4388
4456
|
display: {
|
|
4389
4457
|
provider: "elevenlabs",
|
|
4390
|
-
logo:
|
|
4458
|
+
logo: ELEVENLABS_LOGO3,
|
|
4391
4459
|
description: "ElevenLabs Sound Effects v2; a sound effect from a text description, up to 22 seconds."
|
|
4392
4460
|
},
|
|
4393
4461
|
capabilities: {}
|
|
@@ -5569,7 +5637,7 @@ var VIDEO_FAMILY_MODELS = [
|
|
|
5569
5637
|
|
|
5570
5638
|
// src/catalog/video-luma.ts
|
|
5571
5639
|
var VIDEO_USAGE2 = { unit: "seconds" };
|
|
5572
|
-
var
|
|
5640
|
+
var EXPOSURE6 = ["cowork", "space_builder"];
|
|
5573
5641
|
var LUMA_LOGO2 = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/luma-color.png";
|
|
5574
5642
|
var RAY_RATIOS = ["9:16", "3:4", "1:1", "4:3", "16:9", "21:9"];
|
|
5575
5643
|
var RAY_RESOLUTIONS = ["360p", "720p", "1080p"];
|
|
@@ -5587,7 +5655,7 @@ var LUMA_VIDEO_MODELS = [
|
|
|
5587
5655
|
adapter: "luma",
|
|
5588
5656
|
providerModelId: "ray-3.2",
|
|
5589
5657
|
lifecycle: "active",
|
|
5590
|
-
exposure:
|
|
5658
|
+
exposure: EXPOSURE6,
|
|
5591
5659
|
constraints: {
|
|
5592
5660
|
aspectRatios: ["adaptive", ...RAY_RATIOS],
|
|
5593
5661
|
resolutions: [...RAY_RESOLUTIONS],
|
|
@@ -5619,7 +5687,7 @@ var LUMA_VIDEO_MODELS = [
|
|
|
5619
5687
|
adapter: "luma",
|
|
5620
5688
|
providerModelId: "ray-3.2",
|
|
5621
5689
|
lifecycle: "active",
|
|
5622
|
-
exposure:
|
|
5690
|
+
exposure: EXPOSURE6,
|
|
5623
5691
|
constraints: {
|
|
5624
5692
|
resolutions: [...RAY_RESOLUTIONS],
|
|
5625
5693
|
requires: ["sourceVideo"],
|
|
@@ -5652,7 +5720,7 @@ var LUMA_VIDEO_MODELS = [
|
|
|
5652
5720
|
adapter: "luma",
|
|
5653
5721
|
providerModelId: "ray-3.2",
|
|
5654
5722
|
lifecycle: "active",
|
|
5655
|
-
exposure:
|
|
5723
|
+
exposure: EXPOSURE6,
|
|
5656
5724
|
constraints: {
|
|
5657
5725
|
aspectRatios: [...RAY_RATIOS],
|
|
5658
5726
|
resolutions: [...RAY_RESOLUTIONS],
|
|
@@ -7616,7 +7684,8 @@ var ADAPTER_IDS = [
|
|
|
7616
7684
|
"higgsfield",
|
|
7617
7685
|
"xai-video",
|
|
7618
7686
|
"luma",
|
|
7619
|
-
"fish"
|
|
7687
|
+
"fish",
|
|
7688
|
+
"elevenlabs"
|
|
7620
7689
|
];
|
|
7621
7690
|
var ModelTypeSchema = import_zod3.z.enum([
|
|
7622
7691
|
"text",
|