makefx 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/makefx.mjs +29 -11
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -61,4 +61,4 @@ IDs, or runs. Retired commands and aliases are not redirected.
61
61
 
62
62
  Run `makefx --help` or `makefx <noun> --help` for current options.
63
63
 
64
- Version: 1.6.2
64
+ Version: 1.6.3
package/makefx.mjs CHANGED
@@ -4438,7 +4438,7 @@ require_websocket_server();
4438
4438
  var wrapper_default = import_websocket.default;
4439
4439
  //#endregion
4440
4440
  //#region src/cli/version.ts
4441
- var CLI_VERSION = "1.6.2+1c90176554ef";
4441
+ var CLI_VERSION = "1.6.3+203ed3ea216e";
4442
4442
  var CLI_VERSION_HEADER = "X-MakeFX-CLI-Version";
4443
4443
  function cliVersionHeaders() {
4444
4444
  return {
@@ -5780,6 +5780,18 @@ Usage:
5780
5780
  `);
5781
5781
  }
5782
5782
  //#endregion
5783
+ //#region src/shared/audioGenerationOptions.ts
5784
+ var DEFAULT_ELEVENLABS_SPEECH_MODEL_ID = "eleven_v3";
5785
+ /**
5786
+ * Keep the provider-native ElevenLabs ID canonical everywhere after an input
5787
+ * boundary. The hyphenated MakeFX slug is accepted only for migration.
5788
+ */
5789
+ function normalizeElevenLabsSpeechModelId(model) {
5790
+ const normalized = model?.trim();
5791
+ if (!normalized) return void 0;
5792
+ return normalized === "eleven-v3" ? DEFAULT_ELEVENLABS_SPEECH_MODEL_ID : normalized;
5793
+ }
5794
+ //#endregion
5783
5795
  //#region src/backend/utils/audio-metadata.ts
5784
5796
  function readWavDurationMs(bytes) {
5785
5797
  if (bytes.byteLength < 12) return void 0;
@@ -6870,8 +6882,9 @@ function getAudioModeFromType(type) {
6870
6882
  }
6871
6883
  function validateAudioModelOption(value, mode) {
6872
6884
  if (!value) return;
6873
- const supported = mode === "music" ? ["eleven-music", "lyria-3"] : mode === "sfx" ? ["eleven-sfx"] : mode === "speech" || mode === "dialogue" ? ["eleven-v3"] : [];
6874
- if (!supported.includes(value)) throw new Error(`Unsupported ${mode ?? "audio"} model: ${value}. Expected ${supported.join(" or ")}`);
6885
+ const normalized = mode === "speech" || mode === "dialogue" ? normalizeElevenLabsSpeechModelId(value) : value;
6886
+ const supported = mode === "music" ? ["eleven-music", "lyria-3"] : mode === "sfx" ? ["eleven-sfx"] : mode === "speech" || mode === "dialogue" ? [DEFAULT_ELEVENLABS_SPEECH_MODEL_ID] : [];
6887
+ if (!normalized || !supported.includes(normalized)) throw new Error(`Unsupported ${mode ?? "audio"} model: ${value}. Expected ${supported.join(" or ")}`);
6875
6888
  }
6876
6889
  function parseMusicProviderOption(parsed, mediaKind, assetType) {
6877
6890
  const value = parsed.options.model;
@@ -7434,9 +7447,12 @@ function normalizeCliOption(value) {
7434
7447
  if (value === void 0 || value === "true") return void 0;
7435
7448
  return value.trim() || void 0;
7436
7449
  }
7437
- function parseAudioGenerationOptions(_parsed, mediaKind) {
7450
+ function parseAudioGenerationOptions(parsed, mediaKind) {
7438
7451
  if (mediaKind !== "audio") return {};
7439
- return {};
7452
+ const mode = getAudioModeFromType(parsed.options.type);
7453
+ if (mode !== "speech" && mode !== "dialogue") return {};
7454
+ const model = normalizeElevenLabsSpeechModelId(parsed.options.model);
7455
+ return model ? { model } : {};
7440
7456
  }
7441
7457
  function parseImageGenerationOptions(parsed, mediaKind) {
7442
7458
  if (mediaKind !== "image") return {};
@@ -7637,6 +7653,7 @@ function parseWaitSeconds$1(value) {
7637
7653
  function buildRegenerationBody(mediaKind, parsed, referenceVariantIds, audioMode, sourceRecipe) {
7638
7654
  const prompt = parsed.positionals[1] ?? parsed.options.prompt;
7639
7655
  const model = parsed.options.model;
7656
+ const audioModel = mediaKind === "audio" && (audioMode === "speech" || audioMode === "dialogue") ? normalizeElevenLabsSpeechModelId(model) : void 0;
7640
7657
  const params = {};
7641
7658
  let duration;
7642
7659
  let modelProvider;
@@ -7657,7 +7674,7 @@ function buildRegenerationBody(mediaKind, parsed, referenceVariantIds, audioMode
7657
7674
  if (parsed.options["no-audio"] === "true") params.generateAudio = false;
7658
7675
  } else {
7659
7676
  if (!audioMode) throw new Error("Audio regeneration mode is required");
7660
- validateAudioModel(audioMode, model);
7677
+ validateAudioModel(audioMode, audioModel ?? model);
7661
7678
  if (parsed.options.voice) params.voiceId = parsed.options.voice;
7662
7679
  if (parsed.options["dialogue-voices"]) params.dialogueVoiceIds = splitList(parsed.options["dialogue-voices"]);
7663
7680
  if (audioMode === "music" && model) params.musicProvider = model === "lyria-3" ? "lyria" : "elevenlabs";
@@ -7666,6 +7683,7 @@ function buildRegenerationBody(mediaKind, parsed, referenceVariantIds, audioMode
7666
7683
  ...prompt ? { prompt } : {},
7667
7684
  ...model && mediaKind === "image" ? { model } : {},
7668
7685
  ...model && mediaKind === "video" ? { model: resolveVideoRegenerationModel(model, parsed, sourceRecipe) } : {},
7686
+ ...audioModel ? { model: audioModel } : {},
7669
7687
  ...modelProvider ? { modelProvider } : {},
7670
7688
  ...referenceVariantIds !== void 0 ? { referenceVariantIds } : {},
7671
7689
  ...Object.keys(params).length > 0 ? { params } : {},
@@ -7707,7 +7725,7 @@ function parseStoredRecipe$2(recipe) {
7707
7725
  }
7708
7726
  function validateAudioModel(mode, model) {
7709
7727
  if (!model) return;
7710
- const supported = mode === "music" ? ["eleven-music", "lyria-3"] : mode === "sfx" ? ["eleven-sfx"] : ["eleven-v3"];
7728
+ const supported = mode === "music" ? ["eleven-music", "lyria-3"] : mode === "sfx" ? ["eleven-sfx"] : [DEFAULT_ELEVENLABS_SPEECH_MODEL_ID];
7711
7729
  if (!supported.includes(model)) throw new Error(`Unsupported ${mode} model: ${model}. Expected ${supported.join(" or ")}`);
7712
7730
  }
7713
7731
  function parseReferences(mediaKind, options) {
@@ -11496,10 +11514,10 @@ Seedance mode is inferred: first/last frame selects frame mode, image/video/audi
11496
11514
  makefx audio voices [--json]
11497
11515
  makefx audio align <variant-ref> "transcript" [--space <id>] [--json]
11498
11516
  makefx audio align <variant-ref> --input transcript.txt [--space <id>] [--json]
11499
- makefx audio speech generate "text" --voice <voice-id> --name <name> -o <file>
11500
- makefx audio speech regenerate <variant-ref> ["text"] [--voice <voice-id>] [--no-activate] [--wait]
11501
- makefx audio dialogue generate --input <file> --dialogue-voices <id,id> --name <name> -o <file>
11502
- makefx audio dialogue regenerate <variant-ref> ["script"] [--dialogue-voices <id,id>] [--no-activate] [--wait]
11517
+ makefx audio speech generate "text" [--model eleven_v3] --voice <voice-id> --name <name> -o <file>
11518
+ makefx audio speech regenerate <variant-ref> ["text"] [--model eleven_v3] [--voice <voice-id>] [--no-activate] [--wait]
11519
+ makefx audio dialogue generate --input <file> [--model eleven_v3] --dialogue-voices <id,id> --name <name> -o <file>
11520
+ makefx audio dialogue regenerate <variant-ref> ["script"] [--model eleven_v3] [--dialogue-voices <id,id>] [--no-activate] [--wait]
11503
11521
  makefx audio music generate "prompt" --model eleven-music|lyria-3 --name <name> -o <file>
11504
11522
  makefx audio music regenerate <variant-ref> ["prompt"] [--model eleven-music|lyria-3] [--no-activate] [--wait]
11505
11523
  makefx audio sfx generate "prompt" --name <name> -o <file>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makefx",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "Command-line interface for AI-assisted game asset production with Make Effects.",
5
5
  "license": "MIT",
6
6
  "type": "module",