vidspotai-shared 1.0.124 → 1.0.126

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 (153) hide show
  1. package/lib/globals/aiModels/enums.d.ts +38 -0
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +49 -1
  4. package/lib/globals/aiModels/index.d.ts.map +1 -1
  5. package/lib/globals/aiModels/index.js +2 -0
  6. package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -1
  7. package/lib/globals/aiModels/providers/alibaba.js +460 -53
  8. package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
  9. package/lib/globals/aiModels/providers/bytedance.js +221 -39
  10. package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
  11. package/lib/globals/aiModels/providers/google.js +178 -32
  12. package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
  13. package/lib/globals/aiModels/providers/kling.js +86 -12
  14. package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
  15. package/lib/globals/aiModels/providers/minimax.js +77 -0
  16. package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
  17. package/lib/globals/aiModels/providers/openai.js +12 -0
  18. package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
  19. package/lib/globals/aiModels/providers/pixverse.js +101 -28
  20. package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
  21. package/lib/globals/aiModels/providers/runway.js +450 -24
  22. package/lib/globals/aiModels/providers/xai.d.ts +4 -0
  23. package/lib/globals/aiModels/providers/xai.d.ts.map +1 -0
  24. package/lib/globals/aiModels/providers/xai.js +72 -0
  25. package/lib/globals/aiModels/tierHelpers.d.ts +10 -0
  26. package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -1
  27. package/lib/globals/aiModels/tierHelpers.js +48 -7
  28. package/lib/globals/aiModels/types.d.ts +21 -0
  29. package/lib/globals/aiModels/types.d.ts.map +1 -1
  30. package/lib/models/image.model.d.ts +24 -0
  31. package/lib/models/image.model.d.ts.map +1 -1
  32. package/lib/models/image.model.js +12 -0
  33. package/lib/models/index.d.ts +1 -0
  34. package/lib/models/index.d.ts.map +1 -1
  35. package/lib/models/index.js +1 -0
  36. package/lib/models/klingElement.model.d.ts +52 -0
  37. package/lib/models/klingElement.model.d.ts.map +1 -0
  38. package/lib/models/klingElement.model.js +24 -0
  39. package/lib/models/user.model.d.ts +7 -1
  40. package/lib/models/user.model.d.ts.map +1 -1
  41. package/lib/models/video.model.d.ts +11 -0
  42. package/lib/models/video.model.d.ts.map +1 -1
  43. package/lib/schemas/videoPlan.schema.d.ts +88 -0
  44. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  45. package/lib/schemas/videoPlan.schema.js +27 -1
  46. package/lib/services/agent/executor/visual.d.ts.map +1 -1
  47. package/lib/services/agent/executor/visual.js +40 -2
  48. package/lib/services/agent/mentionedRefs.d.ts.map +1 -1
  49. package/lib/services/agent/mentionedRefs.js +4 -1
  50. package/lib/services/agent/planner/structuralRules.d.ts.map +1 -1
  51. package/lib/services/agent/planner/structuralRules.js +8 -3
  52. package/lib/services/agent/poster/posterAgent.schema.d.ts +3 -3
  53. package/lib/services/agent/providerFallback/chains.d.ts +25 -0
  54. package/lib/services/agent/providerFallback/chains.d.ts.map +1 -1
  55. package/lib/services/agent/providerFallback/chains.js +59 -5
  56. package/lib/services/agent/repair/strategies/llmRepair.strategy.d.ts.map +1 -1
  57. package/lib/services/agent/repair/strategies/llmRepair.strategy.js +2 -0
  58. package/lib/services/agent/tools/animateImage.tool.d.ts +31 -0
  59. package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -1
  60. package/lib/services/agent/tools/animateImage.tool.js +10 -3
  61. package/lib/services/agent/tools/generateImage.tool.d.ts +8 -4
  62. package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -1
  63. package/lib/services/agent/tools/generateImage.tool.js +24 -7
  64. package/lib/services/agent/tools/generateVideo.tool.d.ts +32 -0
  65. package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -1
  66. package/lib/services/agent/tools/generateVideo.tool.js +37 -9
  67. package/lib/services/agent/tools/planVideo.tool.d.ts +19 -0
  68. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  69. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  70. package/lib/services/aiGen/aiGenFactory.service.js +40 -0
  71. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +6 -3
  72. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -1
  73. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +35 -0
  74. package/lib/services/aiGen/canonicalAdapters/cameraDirection.d.ts +36 -0
  75. package/lib/services/aiGen/canonicalAdapters/cameraDirection.d.ts.map +1 -0
  76. package/lib/services/aiGen/canonicalAdapters/cameraDirection.js +168 -0
  77. package/lib/services/aiGen/canonicalAdapters/index.d.ts +1 -0
  78. package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -1
  79. package/lib/services/aiGen/canonicalAdapters/index.js +1 -0
  80. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +3 -2
  81. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -1
  82. package/lib/services/aiGen/helpers.d.ts +40 -0
  83. package/lib/services/aiGen/helpers.d.ts.map +1 -1
  84. package/lib/services/aiGen/helpers.js +48 -2
  85. package/lib/services/aiGen/index.d.ts +1 -0
  86. package/lib/services/aiGen/index.d.ts.map +1 -1
  87. package/lib/services/aiGen/index.js +3 -0
  88. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +13 -1
  89. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
  90. package/lib/services/aiGen/providers/alibaba/alibaba.js +313 -33
  91. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts +29 -1
  92. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  93. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +371 -54
  94. package/lib/services/aiGen/providers/google/google.service.d.ts +16 -0
  95. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  96. package/lib/services/aiGen/providers/google/google.service.js +372 -116
  97. package/lib/services/aiGen/providers/google/googleKeyPool.d.ts +6 -0
  98. package/lib/services/aiGen/providers/google/googleKeyPool.d.ts.map +1 -1
  99. package/lib/services/aiGen/providers/google/googleKeyPool.js +8 -0
  100. package/lib/services/aiGen/providers/kling/kling.service.d.ts +17 -1
  101. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  102. package/lib/services/aiGen/providers/kling/kling.service.js +59 -3
  103. package/lib/services/aiGen/providers/kling/klingCredits.d.ts +1 -1
  104. package/lib/services/aiGen/providers/kling/klingCredits.d.ts.map +1 -1
  105. package/lib/services/aiGen/providers/kling/klingCredits.js +19 -1
  106. package/lib/services/aiGen/providers/kling/klingRequests.d.ts +37 -7
  107. package/lib/services/aiGen/providers/kling/klingRequests.d.ts.map +1 -1
  108. package/lib/services/aiGen/providers/kling/klingRequests.js +191 -13
  109. package/lib/services/aiGen/providers/kling/types.d.ts +78 -0
  110. package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
  111. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +11 -2
  112. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
  113. package/lib/services/aiGen/providers/minimax/minimax.service.js +168 -2
  114. package/lib/services/aiGen/providers/minimax/types.d.ts +63 -0
  115. package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
  116. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts +12 -0
  117. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  118. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +131 -17
  119. package/lib/services/aiGen/providers/runway/hostedModels.d.ts +84 -0
  120. package/lib/services/aiGen/providers/runway/hostedModels.d.ts.map +1 -0
  121. package/lib/services/aiGen/providers/runway/hostedModels.js +266 -0
  122. package/lib/services/aiGen/providers/runway/index.d.ts +1 -0
  123. package/lib/services/aiGen/providers/runway/index.d.ts.map +1 -1
  124. package/lib/services/aiGen/providers/runway/index.js +1 -0
  125. package/lib/services/aiGen/providers/runway/runway.service.d.ts +1 -1
  126. package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
  127. package/lib/services/aiGen/providers/runway/runway.service.js +118 -21
  128. package/lib/services/aiGen/providers/runway/types.d.ts +18 -3
  129. package/lib/services/aiGen/providers/runway/types.d.ts.map +1 -1
  130. package/lib/services/aiGen/providers/runway/types.js +31 -3
  131. package/lib/services/aiGen/providers/types.d.ts +55 -0
  132. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  133. package/lib/services/aiGen/providers/xai/xai.service.d.ts +19 -0
  134. package/lib/services/aiGen/providers/xai/xai.service.d.ts.map +1 -0
  135. package/lib/services/aiGen/providers/xai/xai.service.js +205 -0
  136. package/lib/services/firestore.service.d.ts +4 -0
  137. package/lib/services/firestore.service.d.ts.map +1 -1
  138. package/lib/services/firestore.service.js +5 -0
  139. package/lib/services/index.d.ts +2 -0
  140. package/lib/services/index.d.ts.map +1 -1
  141. package/lib/services/index.js +2 -0
  142. package/lib/services/klingElements/klingElementLibrary.service.d.ts +37 -0
  143. package/lib/services/klingElements/klingElementLibrary.service.d.ts.map +1 -0
  144. package/lib/services/klingElements/klingElementLibrary.service.js +179 -0
  145. package/lib/services/trialGuard/index.d.ts +2 -0
  146. package/lib/services/trialGuard/index.d.ts.map +1 -0
  147. package/lib/services/trialGuard/index.js +17 -0
  148. package/lib/services/trialGuard/trialSignals.d.ts +88 -0
  149. package/lib/services/trialGuard/trialSignals.d.ts.map +1 -0
  150. package/lib/services/trialGuard/trialSignals.js +160 -0
  151. package/lib/utils/helpers.d.ts.map +1 -1
  152. package/lib/utils/helpers.js +5 -1
  153. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,16 @@ export declare class MinimaxService extends BaseAiGenProviderService {
11
11
  constructor();
12
12
  private request;
13
13
  generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
14
- checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
14
+ checkVideoStatus({ task, modelKey, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
15
+ /**
16
+ * H3 family (video generation V2). One multimodal `content[]`: the prompt,
17
+ * then either first/last-frame images (image-to-video) or reference
18
+ * images / videos / audio (reference-to-video) — MiniMax rejects the two
19
+ * mixed, so when any reference is present the first frame joins the
20
+ * reference images and a last frame is dropped (same rule as Seedance omni).
21
+ */
22
+ private generateVideoV2;
23
+ private checkVideoStatusV2;
15
24
  /**
16
25
  * MiniMax image-01. Sync — returns image URLs directly from /v1/image_generation.
17
26
  * Supports up to 1 subject_reference[type=character] for character consistency
@@ -25,6 +34,6 @@ export declare class MinimaxService extends BaseAiGenProviderService {
25
34
  * { model, prompt, lyrics?, refer_voice?, audio_setting: { sample_rate, bitrate, format } }
26
35
  */
27
36
  generateMusic(params: MusicGenerationParams): Promise<MusicGenerationResult>;
28
- getCreditUsed({ modelKey, resolution, duration, multiClip, numImages, creditFloor, }: CreditUsageParams): number;
37
+ getCreditUsed({ modelKey, resolution, duration, multiClip, numImages, numInputImages, hasInputVideo, inputVideoDurationSec, creditFloor, }: CreditUsageParams): number;
29
38
  }
30
39
  //# sourceMappingURL=minimax.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"minimax.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/minimax/minimax.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAUlB;;;GAGG;AAGH,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AAuHpE,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;YAUlB,OAAO;IAuDf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAgE3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwEjD;;;;OAIG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqDjC;;;;;OAKG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA2CjC,aAAa,CAAC,EACZ,QAAQ,EACR,UAAmB,EACnB,QAAY,EACZ,SAAiB,EACjB,SAAa,EACb,WAAW,GACZ,EAAE,iBAAiB,GAAG,MAAM;CAgC9B"}
1
+ {"version":3,"file":"minimax.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/minimax/minimax.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAclB;;;GAGG;AAGH,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AAsJpE,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;YAUlB,OAAO;IAuDf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAiE3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4EjD;;;;;;OAMG;YACW,eAAe;YAgFf,kBAAkB;IAwChC;;;;OAIG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqDjC;;;;;OAKG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA2CjC,aAAa,CAAC,EACZ,QAAQ,EACR,UAAmB,EACnB,QAAY,EACZ,SAAiB,EACjB,SAAa,EACb,cAAkB,EAClB,aAAqB,EACrB,qBAAqB,EACrB,WAAW,GACZ,EAAE,iBAAiB,GAAG,MAAM;CAoD9B"}
@@ -128,6 +128,37 @@ function isMinimaxTransientError(err) {
128
128
  }
129
129
  return false;
130
130
  }
131
+ /** H3 family → video generation V2 endpoints. */
132
+ function isMinimaxV2Model(modelId) {
133
+ return modelId.startsWith("MiniMax-H3");
134
+ }
135
+ /** Reference mode takes at most 12 files across images, videos and audio. */
136
+ const MINIMAX_V2_MAX_REFERENCE_FILES = 12;
137
+ /**
138
+ * V2 errors come back as a real HTTP status with an OpenAI-style body whose
139
+ * message ends in the internal code, e.g. "... (2013)". request() folds that
140
+ * into its Error message; pull the code out and reuse the V1 classifier.
141
+ */
142
+ function toMinimaxV2Error(err, op) {
143
+ const raw = err instanceof Error ? err.message : String(err);
144
+ const match = raw.match(/^Minimax API Error: (\d{3})[^—]*— (.*)$/s);
145
+ if (!match)
146
+ return err instanceof Error ? err : new Error(raw);
147
+ const status = Number(match[1]);
148
+ let body = {};
149
+ try {
150
+ body = JSON.parse(match[2]);
151
+ }
152
+ catch {
153
+ /* non-JSON body */
154
+ }
155
+ const message = body.error?.message ?? match[2];
156
+ const code = Number(message.match(/\((\d+)\)\s*$/)?.[1] ?? 0);
157
+ const cls = classifyMinimaxError(code, message.replace(/\s*\(\d+\)\s*$/, ""));
158
+ if (cls.isUserInput)
159
+ return new errors_1.UserFacingError(cls.message, cls.code);
160
+ return new Error(`Minimax v2 ${op} failed (${status}${code ? `, code ${code}` : ""}): ${message}`);
161
+ }
131
162
  class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
132
163
  constructor() {
133
164
  super();
@@ -186,6 +217,8 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
186
217
  if (!modelId) {
187
218
  throw new Error(`Unknown modelKey: ${params.modelKey}`);
188
219
  }
220
+ if (isMinimaxV2Model(modelId))
221
+ return this.generateVideoV2(params, modelId);
189
222
  const requestBody = {
190
223
  model: modelId,
191
224
  prompt: params.prompt,
@@ -230,7 +263,11 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
230
263
  }
231
264
  return { task: response.task_id, status: types_1.EVideoSceneStatus.TRIGGERED };
232
265
  }
233
- async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
266
+ async checkVideoStatus({ task, modelKey, outputFilename, outputFilePath = "videos", }) {
267
+ const modelId = aiModels_1.aiModelConfigs[modelKey]?.modelId;
268
+ if (modelId && isMinimaxV2Model(modelId)) {
269
+ return this.checkVideoStatusV2(`${task}`, outputFilename, outputFilePath);
270
+ }
234
271
  const result = await this.request(`/v1/query/video_generation`, "GET", undefined, { task_id: `${task}` });
235
272
  if (result.status === "Fail") {
236
273
  return {
@@ -276,6 +313,118 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
276
313
  // rest status are pending forms
277
314
  return { status: types_1.EVideoSceneStatus.PENDING };
278
315
  }
316
+ /**
317
+ * H3 family (video generation V2). One multimodal `content[]`: the prompt,
318
+ * then either first/last-frame images (image-to-video) or reference
319
+ * images / videos / audio (reference-to-video) — MiniMax rejects the two
320
+ * mixed, so when any reference is present the first frame joins the
321
+ * reference images and a last frame is dropped (same rule as Seedance omni).
322
+ */
323
+ async generateVideoV2(params, modelId) {
324
+ const fields = aiModels_1.aiModelConfigs[params.modelKey].fields;
325
+ const cap = (items, field) => items.slice(0, fields[field]?.max ?? 0);
326
+ const refVideos = cap([...(params.inputVideoUrl ? [params.inputVideoUrl] : []), ...(params.referenceVideoUrls ?? [])], "referenceVideoUrls");
327
+ const refAudios = cap(params.referenceAudioUrls ?? [], "referenceAudioUrls");
328
+ const refImagesIn = params.referenceImageUrls ?? [];
329
+ const referenceMode = refVideos.length + refAudios.length + refImagesIn.length > 0;
330
+ const content = [{ type: "text", text: params.prompt }];
331
+ if (referenceMode) {
332
+ if (params.lastFrameImageUrl) {
333
+ logger_1.logger.warn("minimax h3: last frame dropped — can't combine with reference inputs", {
334
+ modelKey: params.modelKey,
335
+ });
336
+ }
337
+ const refImages = cap([...(params.inputImageUrl ? [params.inputImageUrl] : []), ...refImagesIn], "referenceImageUrls");
338
+ // Mixed reference input is capped at 12 files; images give way first.
339
+ const imageRoom = Math.max(0, MINIMAX_V2_MAX_REFERENCE_FILES - refVideos.length - refAudios.length);
340
+ if (refImages.length > imageRoom) {
341
+ logger_1.logger.warn("minimax h3: reference images capped by the 12-file limit", {
342
+ modelKey: params.modelKey,
343
+ given: refImages.length,
344
+ kept: imageRoom,
345
+ });
346
+ }
347
+ for (const url of refImages.slice(0, imageRoom)) {
348
+ content.push({ type: "image_url", image_url: { url }, role: "reference_image" });
349
+ }
350
+ for (const url of refVideos)
351
+ content.push({ type: "video_url", video_url: { url }, role: "reference_video" });
352
+ for (const url of refAudios)
353
+ content.push({ type: "audio_url", audio_url: { url }, role: "reference_audio" });
354
+ }
355
+ else {
356
+ if (params.inputImageUrl) {
357
+ content.push({ type: "image_url", image_url: { url: params.inputImageUrl }, role: "first_frame" });
358
+ }
359
+ if (params.lastFrameImageUrl) {
360
+ content.push({ type: "image_url", image_url: { url: params.lastFrameImageUrl }, role: "last_frame" });
361
+ }
362
+ }
363
+ const body = {
364
+ model: modelId,
365
+ content,
366
+ resolution: params.resolution ?? String(fields.resolution?.default ?? "768P"),
367
+ duration: params.duration ?? Number(fields.duration?.default ?? 5),
368
+ };
369
+ const isFrameMode = !referenceMode && content.length > 1;
370
+ // T2V requires a concrete ratio; frame mode always follows the image
371
+ // (omitted = adaptive); reference mode takes one if we have it.
372
+ if (!isFrameMode) {
373
+ const ratio = params.aspectRatio ?? (referenceMode ? undefined : "16:9");
374
+ if (ratio)
375
+ body.ratio = ratio;
376
+ }
377
+ if (params.promptOptimizer === false && "promptOptimizer" in fields) {
378
+ body.extra = { prompt_expansion_mode: "disabled" };
379
+ }
380
+ if (params.callbackUrl)
381
+ body.callback_url = params.callbackUrl;
382
+ let response;
383
+ try {
384
+ response = await this.request("/v2/video_generation", "POST", body);
385
+ }
386
+ catch (err) {
387
+ throw toMinimaxV2Error(err, "video_generation");
388
+ }
389
+ if (!response.task_id) {
390
+ throw new Error(`Minimax v2 video_generation returned no task_id: ${JSON.stringify(response)}`);
391
+ }
392
+ logger_1.logger.info("Minimax v2 video task created", { taskId: response.task_id, model: modelId });
393
+ return { task: response.task_id, status: types_1.EVideoSceneStatus.TRIGGERED };
394
+ }
395
+ async checkVideoStatusV2(taskId, outputFilename, outputFilePath) {
396
+ let task;
397
+ try {
398
+ ({ task } = await this.request(`/v2/query/video_generation/${encodeURIComponent(taskId)}`, "GET"));
399
+ }
400
+ catch (err) {
401
+ throw toMinimaxV2Error(err, "query");
402
+ }
403
+ if (!task)
404
+ return { status: types_1.EVideoSceneStatus.PENDING };
405
+ if (task.status === "failed" || task.status === "cancelled") {
406
+ const code = Number(task.error?.code ?? 0);
407
+ return {
408
+ status: types_1.EVideoSceneStatus.FAILED,
409
+ errorMessage: minimaxStatusToUserMessage(code, task.error?.message ?? task.status),
410
+ };
411
+ }
412
+ if (task.status !== "succeeded")
413
+ return { status: types_1.EVideoSceneStatus.PENDING };
414
+ const url = task.content?.url;
415
+ if (!url) {
416
+ return { status: types_1.EVideoSceneStatus.FAILED, errorMessage: "MiniMax task succeeded without a video URL" };
417
+ }
418
+ // Output URLs are time-limited — copy the file now.
419
+ const videoResp = await axios_1.default.get(url, { responseType: "arraybuffer", timeout: 180000 });
420
+ if (videoResp.status !== 200) {
421
+ return { status: types_1.EVideoSceneStatus.FAILED, errorMessage: `Failed to download video: ${videoResp.status}` };
422
+ }
423
+ const filePath = `${outputFilePath}/${outputFilename}.mp4`;
424
+ // mediaStorage: GCS write + best-effort R2 mirror (zero-egress delivery).
425
+ const videoUrl = await storage_1.mediaStorage.put(filePath, Buffer.from(videoResp.data), "video/mp4");
426
+ return { videoUrl, status: types_1.EVideoSceneStatus.COMPLETED };
427
+ }
279
428
  /**
280
429
  * MiniMax image-01. Sync — returns image URLs directly from /v1/image_generation.
281
430
  * Supports up to 1 subject_reference[type=character] for character consistency
@@ -372,7 +521,7 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
372
521
  providerRequestId: resp.trace_id,
373
522
  };
374
523
  }
375
- getCreditUsed({ modelKey, resolution = "512P", duration = 6, multiClip = false, numImages = 1, creditFloor, }) {
524
+ getCreditUsed({ modelKey, resolution = "512P", duration = 6, multiClip = false, numImages = 1, numInputImages = 0, hasInputVideo = false, inputVideoDurationSec, creditFloor, }) {
376
525
  const modelConfig = aiModels_1.aiModelConfigs[modelKey];
377
526
  // Music-gen / image-gen — flat fixed price (music-1.5 ~$0.05, image-01 ~$0.01 × n).
378
527
  if (modelConfig?.cost?.fixed !== undefined &&
@@ -384,6 +533,23 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
384
533
  modelConfig.type?.some((t) => t.endsWith("-to-image"))) {
385
534
  return (0, helpers_2.getCreditsFromCost)(modelConfig.cost.fixed * Math.max(1, numImages), !multiClip, creditFloor);
386
535
  }
536
+ // H3 family — per second by output resolution, plus reference video
537
+ // seconds and reference images beyond the free allowance.
538
+ const perSecond = modelConfig.cost?.perSecondByResolution;
539
+ if (perSecond) {
540
+ const res = (resolution && resolution.toUpperCase() in perSecond
541
+ ? resolution.toUpperCase()
542
+ : String(modelConfig.fields.resolution?.default ?? ""));
543
+ const rate = perSecond[res];
544
+ if (rate !== undefined) {
545
+ const seconds = duration ?? Number(modelConfig.fields.duration?.default ?? 5);
546
+ const videoInRate = modelConfig.cost?.inputVideoPerSecond?.[res] ?? 0;
547
+ const videoIn = hasInputVideo ? videoInRate * (inputVideoDurationSec ?? 0) : 0;
548
+ const extraImages = Math.max(0, numInputImages - (modelConfig.cost?.freeInputImages ?? 0));
549
+ const imagesIn = extraImages * (modelConfig.cost?.perExtraInputImage ?? 0);
550
+ return (0, helpers_2.getCreditsFromCost)(rate * seconds + videoIn + imagesIn, !multiClip);
551
+ }
552
+ }
387
553
  const cost = modelConfig.cost?.fixed ??
388
554
  modelConfig.cost?.table?.[resolution]?.[duration];
389
555
  if (cost === undefined || cost === null) {
@@ -33,4 +33,67 @@ export interface MinimaxVideoGenerateResponse {
33
33
  status_msg: string;
34
34
  };
35
35
  }
36
+ export type MinimaxV2ContentItem = {
37
+ type: "text";
38
+ text: string;
39
+ } | {
40
+ type: "image_url";
41
+ image_url: {
42
+ url: string;
43
+ };
44
+ role: "first_frame" | "last_frame" | "reference_image";
45
+ } | {
46
+ type: "video_url";
47
+ video_url: {
48
+ url: string;
49
+ };
50
+ role: "reference_video";
51
+ } | {
52
+ type: "audio_url";
53
+ audio_url: {
54
+ url: string;
55
+ };
56
+ role: "reference_audio";
57
+ };
58
+ export interface MinimaxV2VideoRequest {
59
+ model: string;
60
+ content: MinimaxV2ContentItem[];
61
+ resolution: string;
62
+ duration: number;
63
+ ratio?: string;
64
+ extra?: {
65
+ prompt_expansion_mode: "disabled" | "balanced" | "quality";
66
+ };
67
+ callback_url?: string;
68
+ }
69
+ export interface MinimaxV2VideoTask {
70
+ id: string;
71
+ model?: string;
72
+ status: "queued" | "running" | "succeeded" | "failed" | "cancelled";
73
+ error?: {
74
+ code?: string;
75
+ message?: string;
76
+ };
77
+ content?: {
78
+ url?: string;
79
+ };
80
+ resolution?: string;
81
+ duration?: number;
82
+ ratio?: string;
83
+ usage?: {
84
+ output_seconds?: number;
85
+ input_seconds?: number;
86
+ input_image_count?: number;
87
+ };
88
+ }
89
+ /** OpenAI-style error body the V2 endpoints return with a real HTTP status. */
90
+ export interface MinimaxV2ErrorBody {
91
+ type?: "error";
92
+ error?: {
93
+ type?: string;
94
+ message?: string;
95
+ http_code?: string;
96
+ };
97
+ request_id?: string;
98
+ }
36
99
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/minimax/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,iBAAiB,GACjB,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,gBAAgB,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QACT,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACzD,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/minimax/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,iBAAiB,GACjB,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,gBAAgB,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QACT,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACzD,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAID,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,aAAa,GAAG,YAAY,GAAG,iBAAiB,CAAA;CAAE,GACzG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE/E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,qBAAqB,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA;KAAE,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACpE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzF;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -10,6 +10,18 @@ export declare class PixVerseService extends BaseAiGenProviderService {
10
10
  * multipart boundary itself when the body is a FormData.
11
11
  */
12
12
  private uploadImage;
13
+ /**
14
+ * Uploads a video or audio file by URL (POST /openapi/v2/media/upload,
15
+ * multipart `file_url`) and returns its integer `media_id`. Used by lip sync;
16
+ * the same id feeds extend / sound-effect / restyle per PixVerse's docs.
17
+ */
18
+ private uploadMedia;
19
+ /**
20
+ * Lip sync — POST /video/lip_sync/generate. Video: `source_video_id` (a
21
+ * prior PixVerse video_id) or `video_media_id` (uploaded). Speech:
22
+ * `audio_media_id` or TTS speaker + content — never both, per the API.
23
+ */
24
+ private generateLipSync;
13
25
  generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
14
26
  checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
15
27
  getCreditUsed(params: CreditUsageParams): number;
@@ -1 +1 @@
1
- {"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAgGlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAK1E;;;;;;OAMG;YACW,WAAW;IAkDnB,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAyL3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyHjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAkDjD"}
1
+ {"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAgGlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAK1E;;;;;;OAMG;YACW,WAAW;IA+CzB;;;;OAIG;YACW,WAAW;IA0CzB;;;;OAIG;YACW,eAAe;IA6CvB,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAsN3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyHjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAwDjD"}
@@ -134,6 +134,86 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
134
134
  },
135
135
  });
136
136
  }
137
+ /**
138
+ * Uploads a video or audio file by URL (POST /openapi/v2/media/upload,
139
+ * multipart `file_url`) and returns its integer `media_id`. Used by lip sync;
140
+ * the same id feeds extend / sound-effect / restyle per PixVerse's docs.
141
+ */
142
+ async uploadMedia(mediaUrl, traceId) {
143
+ const form = new FormData();
144
+ form.append("file_url", (0, storage_1.toCdnUrl)(mediaUrl, { visibility: "private" }));
145
+ return (0, transientRetry_1.withTransientRetry)("pixverse:uploadMedia", async () => {
146
+ const resp = await fetch(`https://app-api.pixverse.ai/openapi/v2/media/upload`, {
147
+ method: "POST",
148
+ headers: {
149
+ "API-KEY": process.env.PIXVERSE_API_KEY,
150
+ "Ai-trace-id": traceId,
151
+ },
152
+ body: form,
153
+ });
154
+ if (!resp.ok) {
155
+ const errText = await resp.text();
156
+ throw classifyPixVerseHttpError(resp.status, errText, "uploadMedia");
157
+ }
158
+ const data = await resp.json();
159
+ if (data.ErrCode !== undefined && data.ErrCode !== 0) {
160
+ throw classifyPixVerseApiError(data.ErrCode, data.ErrMsg ?? "", "uploadMedia");
161
+ }
162
+ const mediaId = data?.Resp?.media_id;
163
+ if (mediaId === undefined || mediaId === null) {
164
+ throw new Error("PixVerse media upload did not return media_id");
165
+ }
166
+ return Number(mediaId);
167
+ }, {
168
+ onRetry: ({ attempt, maxAttempts, backoffMs, err }) => {
169
+ logger_1.logger.warn(`PixVerse uploadMedia transient error — retrying`, {
170
+ attempt,
171
+ maxAttempts,
172
+ backoffMs,
173
+ message: err.message,
174
+ });
175
+ },
176
+ });
177
+ }
178
+ /**
179
+ * Lip sync — POST /video/lip_sync/generate. Video: `source_video_id` (a
180
+ * prior PixVerse video_id) or `video_media_id` (uploaded). Speech:
181
+ * `audio_media_id` or TTS speaker + content — never both, per the API.
182
+ */
183
+ async generateLipSync(params, traceId) {
184
+ const ttsContent = params.lipSync?.ttsContent?.trim();
185
+ if (!params.sourceTaskId && !params.inputVideoUrl) {
186
+ throw new errors_1.UserFacingError("Lip sync needs a video: upload one, or pick a previous PixVerse generation.", errors_1.USER_FACING_ERROR_CODES.CAPABILITY_MISMATCH);
187
+ }
188
+ if (!params.inputAudioUrl && !ttsContent) {
189
+ throw new errors_1.UserFacingError("Lip sync needs speech: upload a voice clip or type the line to speak.", errors_1.USER_FACING_ERROR_CODES.CAPABILITY_MISMATCH);
190
+ }
191
+ const body = {};
192
+ if (params.sourceTaskId)
193
+ body.source_video_id = Number(params.sourceTaskId);
194
+ else
195
+ body.video_media_id = await this.uploadMedia(params.inputVideoUrl, traceId);
196
+ if (params.inputAudioUrl) {
197
+ body.audio_media_id = await this.uploadMedia(params.inputAudioUrl, traceId);
198
+ }
199
+ else {
200
+ body.lip_sync_tts_speaker_id = params.lipSync?.ttsSpeakerId || "auto";
201
+ body.lip_sync_tts_content = ttsContent;
202
+ }
203
+ const data = await pixverseFetch(`${this.baseUrl}/lip_sync/generate`, {
204
+ method: "POST",
205
+ headers: {
206
+ "Content-Type": "application/json",
207
+ "API-KEY": process.env.PIXVERSE_API_KEY,
208
+ "Ai-trace-id": traceId,
209
+ },
210
+ body: JSON.stringify(body),
211
+ }, "lipSync");
212
+ const videoId = data?.Resp?.video_id;
213
+ if (!videoId)
214
+ throw new Error("PixVerse lip sync did not return video_id");
215
+ return { task: String(videoId), status: types_1.EVideoSceneStatus.TRIGGERED };
216
+ }
137
217
  // =========================================================
138
218
  // GENERATE VIDEO
139
219
  // =========================================================
@@ -142,6 +222,8 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
142
222
  const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
143
223
  const modelId = modelConfig.modelId;
144
224
  const traceId = crypto_1.default.randomUUID();
225
+ if (modelId === "lipsync")
226
+ return this.generateLipSync(params, traceId);
145
227
  // Extend a previously-generated PixVerse video. Takes the prior video_id;
146
228
  // returns a new task whose status is polled via the same /result/{id} endpoint.
147
229
  if (params.endpoint === "extend") {
@@ -223,44 +305,54 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
223
305
  throw new Error("PixVerse effect did not return video_id");
224
306
  return { task: String(videoId), status: types_1.EVideoSceneStatus.TRIGGERED };
225
307
  }
308
+ const isImageToVideo = !!params.inputImageUrl;
226
309
  const body = {
227
- aspect_ratio: params.aspectRatio,
228
310
  duration: params.duration,
229
311
  model: modelId,
230
312
  prompt: params.prompt,
231
313
  quality: params.resolution,
232
314
  };
315
+ // aspect_ratio is a t2v field; i2v takes the source image's shape.
316
+ if (!isImageToVideo)
317
+ body.aspect_ratio = params.aspectRatio;
318
+ // Only send switches the model's config declares — the API reference
319
+ // scopes each to specific versions (audio v5.5+, multi-clip v5.5/v6,
320
+ // sound effect + lip sync v5 and below; C1 documents none of the legacy
321
+ // negative_prompt / motion_mode / style / template / thinking knobs).
322
+ const declared = modelConfig.fields;
233
323
  // Optional negative prompt
234
- if (params.negativePrompt) {
324
+ if (params.negativePrompt && "negative_prompt" in declared) {
235
325
  body.negative_prompt = params.negativePrompt;
236
326
  }
237
- // Optional audio support (v5.5 / v5.6)
238
- if (params.audio !== undefined) {
327
+ // Optional audio support (v5.5 / v5.6 / v6 / c1)
328
+ if (params.audio !== undefined && "audio" in declared) {
239
329
  body.generate_audio_switch = Boolean(params.audio);
240
330
  }
241
- // Multi clip (v5.5 only)
242
- if (params.multiClip !== undefined) {
331
+ // Multi clip (v5.5 / v6 — C1 does multi-shot from the prompt)
332
+ if (params.multiClip !== undefined && "multiClip" in declared) {
243
333
  body.generate_multi_clip_switch = Boolean(params.multiClip);
244
334
  }
245
335
  if (params.seed !== undefined)
246
336
  body.seed = params.seed;
247
- if (params.motionMode)
337
+ if (params.motionMode && "motionMode" in declared)
248
338
  body.motion_mode = params.motionMode;
249
- if (params.watermark !== undefined)
339
+ if (params.watermark !== undefined && "watermark" in declared)
250
340
  body.water_mark = !params.watermark; // API field is "remove watermark"
251
- if (params.style)
341
+ if (params.style && "style" in declared)
252
342
  body.style = params.style;
253
- if (params.templateId)
343
+ if (params.templateId && "templateId" in declared)
254
344
  body.template_id = params.templateId;
255
- if (params.thinkingType)
345
+ if (params.thinkingType && "thinkingType" in declared)
256
346
  body.thinking_type = params.thinkingType;
257
- if (params.soundEffect) {
347
+ if (params.soundEffect && "soundEffect" in declared) {
258
348
  body.sound_effect_switch = params.soundEffect.switch;
259
349
  if (params.soundEffect.content)
260
350
  body.sound_effect_content = params.soundEffect.content;
261
351
  }
262
- if (params.lipSync) {
263
- body.lip_sync_switch = params.lipSync.switch;
352
+ if (params.lipSync && "lipSync" in declared) {
353
+ // REMOVED FOR v2 — kept for reference: undocumented field name.
354
+ // body.lip_sync_switch = params.lipSync.switch;
355
+ body.lip_sync_tts_switch = params.lipSync.switch;
264
356
  if (params.lipSync.ttsContent)
265
357
  body.lip_sync_tts_content = params.lipSync.ttsContent;
266
358
  if (params.lipSync.ttsSpeakerId)
@@ -274,8 +366,21 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
274
366
  // img_id or api_gen_img_ids must be provided." So we upload first, then
275
367
  // pass the returned img_id. (Distinct from the /template/generate "effect"
276
368
  // path above, which DOES take a customer_img_url directly.)
277
- const isImageToVideo = !!params.inputImageUrl;
278
- if (isImageToVideo) {
369
+ // First + last frame → /transition/generate (all versions, incl. v6/c1):
370
+ // same body minus aspect_ratio / img_id, plus first_frame_img +
371
+ // last_frame_img upload ids; polled via the same /result/{id}.
372
+ const isTransition = isImageToVideo && !!params.lastFrameImageUrl && "lastFrameImageUrl" in declared;
373
+ if (isTransition) {
374
+ const [first, last] = await Promise.all([
375
+ this.uploadImage(params.inputImageUrl, traceId),
376
+ this.uploadImage(params.lastFrameImageUrl, traceId),
377
+ ]);
378
+ body.first_frame_img = first;
379
+ body.last_frame_img = last;
380
+ // Multi-clip is t2v/i2v only (v6 parameter table).
381
+ delete body.generate_multi_clip_switch;
382
+ }
383
+ else if (isImageToVideo) {
279
384
  body.img_id = await this.uploadImage(params.inputImageUrl, traceId);
280
385
  }
281
386
  // I2V path is `/img/generate` — NOT `/image/generate`, which returns a bare
@@ -284,7 +389,11 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
284
389
  // This affected ALL PixVerse image-to-video models; it surfaced in prod as
285
390
  // "pixverse-v6 404" only because v6 sits low in the I2V fallback chain and
286
391
  // was the model selected when the rare fallback fired.
287
- const endpoint = isImageToVideo ? `${this.baseUrl}/img/generate` : `${this.baseUrl}/text/generate`;
392
+ const endpoint = isTransition
393
+ ? `${this.baseUrl}/transition/generate`
394
+ : isImageToVideo
395
+ ? `${this.baseUrl}/img/generate`
396
+ : `${this.baseUrl}/text/generate`;
288
397
  const data = await pixverseFetch(endpoint, {
289
398
  method: "POST",
290
399
  headers: {
@@ -400,6 +509,11 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
400
509
  // =========================================================
401
510
  getCreditUsed(params) {
402
511
  const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
512
+ // Flat per-second tools (lip sync): priced on the spoken length.
513
+ if (typeof modelConfig?.cost?.perSecond === "number") {
514
+ const seconds = params.duration ?? Number(modelConfig.fields.duration?.default ?? 5);
515
+ return (0, helpers_2.getCreditsFromCost)(modelConfig.cost.perSecond * seconds, !params.multiClip);
516
+ }
403
517
  if (!params.resolution || !params.duration) {
404
518
  logger_1.logger.warn(`Missing resolution/duration for PixVerse credit calculation`);
405
519
  return 10;