vidspotai-shared 1.0.68 → 1.0.69-dev.0
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/lib/globals/aiModels/enums.d.ts +63 -6
- package/lib/globals/aiModels/enums.d.ts.map +1 -1
- package/lib/globals/aiModels/enums.js +78 -9
- package/lib/globals/aiModels/index.d.ts +2 -30
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +7 -35
- package/lib/globals/aiModels/providers/alibaba.d.ts +4 -0
- package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/alibaba.js +194 -0
- package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/bytedance.js +19 -0
- package/lib/globals/aiModels/providers/elevenlabs.d.ts +14 -0
- package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/elevenlabs.js +29 -0
- package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/google.js +150 -2
- package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/kling.js +280 -37
- package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/minimax.js +76 -11
- package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/openai.js +90 -6
- package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/pixverse.js +111 -29
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +36 -0
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/pixverseTemplates.js +42 -0
- package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/runway.js +64 -2
- package/lib/globals/aiModels/tierHelpers.d.ts +33 -0
- package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -0
- package/lib/globals/aiModels/tierHelpers.js +109 -0
- package/lib/globals/aiModels/types.d.ts +20 -1
- package/lib/globals/aiModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.d.ts +2 -0
- package/lib/globals/ttsModels/index.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.js +9 -1
- package/lib/globals/ttsModels/providers/minimax.d.ts +8 -0
- package/lib/globals/ttsModels/providers/minimax.d.ts.map +1 -0
- package/lib/globals/ttsModels/providers/minimax.js +18 -0
- package/lib/globals/ttsModels/providers/openai.d.ts +12 -0
- package/lib/globals/ttsModels/providers/openai.d.ts.map +1 -0
- package/lib/globals/ttsModels/providers/openai.js +22 -0
- package/lib/globals/ttsModels/types.d.ts +1 -1
- package/lib/globals/ttsModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.d.ts +39 -4
- package/lib/globals/ttsModels/voices.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.js +273 -26
- package/lib/globals/types.d.ts +59 -1
- package/lib/globals/types.d.ts.map +1 -1
- package/lib/globals/types.js +81 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/models/agent.model.d.ts +357 -0
- package/lib/models/agent.model.d.ts.map +1 -0
- package/lib/models/agent.model.js +21 -0
- package/lib/models/cachedAsset.model.d.ts +18 -0
- package/lib/models/cachedAsset.model.d.ts.map +1 -0
- package/lib/models/cachedAsset.model.js +2 -0
- package/lib/models/cachedRawAsset.model.d.ts +20 -0
- package/lib/models/cachedRawAsset.model.d.ts.map +1 -0
- package/lib/models/cachedRawAsset.model.js +2 -0
- package/lib/models/image.model.d.ts +47 -0
- package/lib/models/image.model.d.ts.map +1 -0
- package/lib/models/image.model.js +2 -0
- package/lib/models/index.d.ts +6 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/index.js +6 -0
- package/lib/models/notification.model.d.ts +25 -0
- package/lib/models/notification.model.d.ts.map +1 -0
- package/lib/models/notification.model.js +2 -0
- package/lib/models/ref.model.d.ts +80 -0
- package/lib/models/ref.model.d.ts.map +1 -0
- package/lib/models/ref.model.js +13 -0
- package/lib/models/share.model.d.ts +29 -0
- package/lib/models/share.model.d.ts.map +1 -0
- package/lib/models/share.model.js +2 -0
- package/lib/models/user.model.d.ts +12 -1
- package/lib/models/user.model.d.ts.map +1 -1
- package/lib/models/video.model.d.ts +120 -8
- package/lib/models/video.model.d.ts.map +1 -1
- package/lib/models/video.model.js +10 -0
- package/lib/schemas/agentPersona.schema.d.ts +10 -0
- package/lib/schemas/agentPersona.schema.d.ts.map +1 -0
- package/lib/schemas/agentPersona.schema.js +11 -0
- package/lib/schemas/agentRunJob.schema.d.ts +105 -0
- package/lib/schemas/agentRunJob.schema.d.ts.map +1 -0
- package/lib/schemas/agentRunJob.schema.js +88 -0
- package/lib/schemas/brandKit.schema.d.ts +113 -0
- package/lib/schemas/brandKit.schema.d.ts.map +1 -0
- package/lib/schemas/brandKit.schema.js +46 -0
- package/lib/schemas/brief.schema.d.ts +263 -0
- package/lib/schemas/brief.schema.d.ts.map +1 -0
- package/lib/schemas/brief.schema.js +157 -0
- package/lib/schemas/index.d.ts +7 -0
- package/lib/schemas/index.d.ts.map +1 -0
- package/lib/schemas/index.js +22 -0
- package/lib/schemas/project.schema.d.ts +1025 -0
- package/lib/schemas/project.schema.d.ts.map +1 -0
- package/lib/schemas/project.schema.js +256 -0
- package/lib/schemas/videoPlan.schema.d.ts +590 -0
- package/lib/schemas/videoPlan.schema.d.ts.map +1 -0
- package/lib/schemas/videoPlan.schema.js +412 -0
- package/lib/services/agent/beatSnap.d.ts +10 -0
- package/lib/services/agent/beatSnap.d.ts.map +1 -0
- package/lib/services/agent/beatSnap.js +128 -0
- package/lib/services/agent/bibleBuilder.d.ts +43 -0
- package/lib/services/agent/bibleBuilder.d.ts.map +1 -0
- package/lib/services/agent/bibleBuilder.js +102 -0
- package/lib/services/agent/bibleImageVision.d.ts +45 -0
- package/lib/services/agent/bibleImageVision.d.ts.map +1 -0
- package/lib/services/agent/bibleImageVision.js +169 -0
- package/lib/services/agent/chatAgent.d.ts +79 -0
- package/lib/services/agent/chatAgent.d.ts.map +1 -0
- package/lib/services/agent/chatAgent.js +136 -0
- package/lib/services/agent/costPreflight.d.ts +61 -0
- package/lib/services/agent/costPreflight.d.ts.map +1 -0
- package/lib/services/agent/costPreflight.js +143 -0
- package/lib/services/agent/critic.d.ts +103 -0
- package/lib/services/agent/critic.d.ts.map +1 -0
- package/lib/services/agent/critic.js +139 -0
- package/lib/services/agent/editClassifier.d.ts +262 -0
- package/lib/services/agent/editClassifier.d.ts.map +1 -0
- package/lib/services/agent/editClassifier.js +186 -0
- package/lib/services/agent/eval/index.d.ts +5 -0
- package/lib/services/agent/eval/index.d.ts.map +1 -0
- package/lib/services/agent/eval/index.js +20 -0
- package/lib/services/agent/eval/judge.d.ts +14 -0
- package/lib/services/agent/eval/judge.d.ts.map +1 -0
- package/lib/services/agent/eval/judge.js +96 -0
- package/lib/services/agent/eval/recorder.d.ts +28 -0
- package/lib/services/agent/eval/recorder.d.ts.map +1 -0
- package/lib/services/agent/eval/recorder.js +100 -0
- package/lib/services/agent/eval/seedBriefs.d.ts +16 -0
- package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -0
- package/lib/services/agent/eval/seedBriefs.js +1188 -0
- package/lib/services/agent/eval/types.d.ts +230 -0
- package/lib/services/agent/eval/types.d.ts.map +1 -0
- package/lib/services/agent/eval/types.js +73 -0
- package/lib/services/agent/executor.d.ts +141 -0
- package/lib/services/agent/executor.d.ts.map +1 -0
- package/lib/services/agent/executor.js +561 -0
- package/lib/services/agent/globalActions.d.ts +49 -0
- package/lib/services/agent/globalActions.d.ts.map +1 -0
- package/lib/services/agent/globalActions.js +328 -0
- package/lib/services/agent/index.d.ts +38 -0
- package/lib/services/agent/index.d.ts.map +1 -0
- package/lib/services/agent/index.js +53 -0
- package/lib/services/agent/llmCaller.d.ts +144 -0
- package/lib/services/agent/llmCaller.d.ts.map +1 -0
- package/lib/services/agent/llmCaller.js +16 -0
- package/lib/services/agent/llmCallerAnthropic.d.ts +90 -0
- package/lib/services/agent/llmCallerAnthropic.d.ts.map +1 -0
- package/lib/services/agent/llmCallerAnthropic.js +255 -0
- package/lib/services/agent/llmCallerGateway.d.ts +61 -0
- package/lib/services/agent/llmCallerGateway.d.ts.map +1 -0
- package/lib/services/agent/llmCallerGateway.js +360 -0
- package/lib/services/agent/llmCallerRegistry.d.ts +6 -0
- package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -0
- package/lib/services/agent/llmCallerRegistry.js +39 -0
- package/lib/services/agent/modelQualityNotes.d.ts +100 -0
- package/lib/services/agent/modelQualityNotes.d.ts.map +1 -0
- package/lib/services/agent/modelQualityNotes.js +248 -0
- package/lib/services/agent/modelRouter.d.ts +41 -0
- package/lib/services/agent/modelRouter.d.ts.map +1 -0
- package/lib/services/agent/modelRouter.js +65 -0
- package/lib/services/agent/musicSelect.d.ts +23 -0
- package/lib/services/agent/musicSelect.d.ts.map +1 -0
- package/lib/services/agent/musicSelect.js +109 -0
- package/lib/services/agent/overlayRenderer.d.ts +67 -0
- package/lib/services/agent/overlayRenderer.d.ts.map +1 -0
- package/lib/services/agent/overlayRenderer.js +253 -0
- package/lib/services/agent/perSceneCritic.d.ts +90 -0
- package/lib/services/agent/perSceneCritic.d.ts.map +1 -0
- package/lib/services/agent/perSceneCritic.js +125 -0
- package/lib/services/agent/personas.d.ts +78 -0
- package/lib/services/agent/personas.d.ts.map +1 -0
- package/lib/services/agent/personas.js +177 -0
- package/lib/services/agent/planDiff.d.ts +76 -0
- package/lib/services/agent/planDiff.d.ts.map +1 -0
- package/lib/services/agent/planDiff.js +182 -0
- package/lib/services/agent/planMutations.d.ts +46 -0
- package/lib/services/agent/planMutations.d.ts.map +1 -0
- package/lib/services/agent/planMutations.js +120 -0
- package/lib/services/agent/planner/Planner.d.ts +107 -0
- package/lib/services/agent/planner/Planner.d.ts.map +1 -0
- package/lib/services/agent/planner/Planner.js +591 -0
- package/lib/services/agent/planner/overlaySanity.d.ts +7 -0
- package/lib/services/agent/planner/overlaySanity.d.ts.map +1 -0
- package/lib/services/agent/planner/overlaySanity.js +86 -0
- package/lib/services/agent/planner/promptSections.d.ts +25 -0
- package/lib/services/agent/planner/promptSections.d.ts.map +1 -0
- package/lib/services/agent/planner/promptSections.js +174 -0
- package/lib/services/agent/planner/repair.d.ts +16 -0
- package/lib/services/agent/planner/repair.d.ts.map +1 -0
- package/lib/services/agent/planner/repair.js +51 -0
- package/lib/services/agent/planner/structuralRules.d.ts +10 -0
- package/lib/services/agent/planner/structuralRules.d.ts.map +1 -0
- package/lib/services/agent/planner/structuralRules.js +111 -0
- package/lib/services/agent/planner/validators.d.ts +65 -0
- package/lib/services/agent/planner/validators.d.ts.map +1 -0
- package/lib/services/agent/planner/validators.js +284 -0
- package/lib/services/agent/planner.d.ts +3 -0
- package/lib/services/agent/planner.d.ts.map +1 -0
- package/lib/services/agent/planner.js +14 -0
- package/lib/services/agent/providerFallback/chains.d.ts +100 -0
- package/lib/services/agent/providerFallback/chains.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/chains.js +198 -0
- package/lib/services/agent/providerFallback/classifier.d.ts +36 -0
- package/lib/services/agent/providerFallback/classifier.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/classifier.js +103 -0
- package/lib/services/agent/providerFallback/index.d.ts +4 -0
- package/lib/services/agent/providerFallback/index.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/index.js +19 -0
- package/lib/services/agent/providerFallback/withFallback.d.ts +60 -0
- package/lib/services/agent/providerFallback/withFallback.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/withFallback.js +93 -0
- package/lib/services/agent/providerTaskCache.d.ts +50 -0
- package/lib/services/agent/providerTaskCache.d.ts.map +1 -0
- package/lib/services/agent/providerTaskCache.js +98 -0
- package/lib/services/agent/qualityGate.d.ts +82 -0
- package/lib/services/agent/qualityGate.d.ts.map +1 -0
- package/lib/services/agent/qualityGate.js +232 -0
- package/lib/services/agent/referenceImageRenderer.d.ts +37 -0
- package/lib/services/agent/referenceImageRenderer.d.ts.map +1 -0
- package/lib/services/agent/referenceImageRenderer.js +92 -0
- package/lib/services/agent/regenCore.d.ts +60 -0
- package/lib/services/agent/regenCore.d.ts.map +1 -0
- package/lib/services/agent/regenCore.js +487 -0
- package/lib/services/agent/runHelpers.d.ts +44 -0
- package/lib/services/agent/runHelpers.d.ts.map +1 -0
- package/lib/services/agent/runHelpers.js +196 -0
- package/lib/services/agent/sceneLayoutVision.d.ts +90 -0
- package/lib/services/agent/sceneLayoutVision.d.ts.map +1 -0
- package/lib/services/agent/sceneLayoutVision.js +212 -0
- package/lib/services/agent/stitchedVideoCritic.d.ts +136 -0
- package/lib/services/agent/stitchedVideoCritic.d.ts.map +1 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts +26 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts.map +1 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.js +198 -0
- package/lib/services/agent/stitchedVideoCritic.js +162 -0
- package/lib/services/agent/taskPoller.d.ts +65 -0
- package/lib/services/agent/taskPoller.d.ts.map +1 -0
- package/lib/services/agent/taskPoller.js +176 -0
- package/lib/services/agent/textOverlayStyles.d.ts +60 -0
- package/lib/services/agent/textOverlayStyles.d.ts.map +1 -0
- package/lib/services/agent/textOverlayStyles.js +174 -0
- package/lib/services/agent/toolRegistry.d.ts +73 -0
- package/lib/services/agent/toolRegistry.d.ts.map +1 -0
- package/lib/services/agent/toolRegistry.js +95 -0
- package/lib/services/agent/tools/analyzeReference.tool.d.ts +36 -0
- package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/analyzeReference.tool.js +44 -0
- package/lib/services/agent/tools/animateImage.tool.d.ts +24 -0
- package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/animateImage.tool.js +115 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +32 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +135 -0
- package/lib/services/agent/tools/composeScene.tool.d.ts +978 -0
- package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/composeScene.tool.js +90 -0
- package/lib/services/agent/tools/estimateCost.tool.d.ts +352 -0
- package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/estimateCost.tool.js +62 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +32 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.js +143 -0
- package/lib/services/agent/tools/generateCaptions.tool.d.ts +42 -0
- package/lib/services/agent/tools/generateCaptions.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateCaptions.tool.js +196 -0
- package/lib/services/agent/tools/generateImage.tool.d.ts +74 -0
- package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateImage.tool.js +206 -0
- package/lib/services/agent/tools/generateVideo.tool.d.ts +31 -0
- package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateVideo.tool.js +153 -0
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts +44 -0
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateVoiceover.tool.js +206 -0
- package/lib/services/agent/tools/index.d.ts +20 -0
- package/lib/services/agent/tools/index.d.ts.map +1 -0
- package/lib/services/agent/tools/index.js +35 -0
- package/lib/services/agent/tools/planVideo.tool.d.ts +343 -0
- package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/planVideo.tool.js +46 -0
- package/lib/services/agent/tools/render.tool.d.ts +367 -0
- package/lib/services/agent/tools/render.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/render.tool.js +48 -0
- package/lib/services/agent/tools/searchMusic.tool.d.ts +49 -0
- package/lib/services/agent/tools/searchMusic.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchMusic.tool.js +74 -0
- package/lib/services/agent/tools/searchStock.tool.d.ts +41 -0
- package/lib/services/agent/tools/searchStock.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchStock.tool.js +314 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +59 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.js +58 -0
- package/lib/services/agent/ttsDuration.d.ts +29 -0
- package/lib/services/agent/ttsDuration.d.ts.map +1 -0
- package/lib/services/agent/ttsDuration.js +60 -0
- package/lib/services/aiGen/aiGenFactory.service.d.ts +21 -1
- package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
- package/lib/services/aiGen/aiGenFactory.service.js +84 -21
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +31 -0
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +2 -0
- package/lib/services/aiGen/canonicalAdapters/index.d.ts +3 -0
- package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/index.js +18 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +23 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +12 -0
- package/lib/services/aiGen/helpers.d.ts.map +1 -1
- package/lib/services/aiGen/helpers.js +10 -0
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +14 -3
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
- package/lib/services/aiGen/providers/alibaba/alibaba.js +155 -22
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts +22 -4
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/baseAiGenProvider.service.js +32 -0
- package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/bytedance/bytedance.service.js +13 -19
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +18 -0
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +102 -0
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts +15 -0
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/fal/falImage.service.js +141 -0
- package/lib/services/aiGen/providers/fal/index.d.ts +2 -0
- package/lib/services/aiGen/providers/fal/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/fal/index.js +17 -0
- package/lib/services/aiGen/providers/google/google.service.d.ts +11 -2
- package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/google/google.service.js +245 -28
- package/lib/services/aiGen/providers/index.d.ts +3 -0
- package/lib/services/aiGen/providers/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/index.js +3 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +4 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +1 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.js +53 -0
- package/lib/services/aiGen/providers/kling/index.d.ts +1 -0
- package/lib/services/aiGen/providers/kling/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/index.js +1 -0
- package/lib/services/aiGen/providers/kling/kling.service.d.ts +12 -1
- package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/kling.service.js +357 -26
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts +21 -0
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/kling/klingImage.service.js +208 -0
- package/lib/services/aiGen/providers/kling/types.d.ts +105 -0
- package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +15 -2
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.js +128 -5
- package/lib/services/aiGen/providers/minimax/types.d.ts +10 -1
- package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.d.ts +8 -2
- package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.js +184 -7
- package/lib/services/aiGen/providers/pexels/index.d.ts +2 -0
- package/lib/services/aiGen/providers/pexels/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/{azure → pexels}/index.js +1 -1
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +11 -0
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pexels/pexels.service.js +150 -0
- package/lib/services/aiGen/providers/pixabay/index.d.ts +2 -0
- package/lib/services/aiGen/providers/pixabay/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pixabay/index.js +17 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts +12 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.js +156 -0
- package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/pixverse/pixverse.service.js +125 -2
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +3 -0
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +1 -0
- package/lib/services/aiGen/providers/runway/cameraAdapter.js +46 -0
- package/lib/services/aiGen/providers/runway/runway.service.d.ts +12 -2
- package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/runway/runway.service.js +224 -21
- package/lib/services/aiGen/providers/types.d.ts +263 -6
- package/lib/services/aiGen/providers/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/unsplash/index.d.ts +2 -0
- package/lib/services/aiGen/providers/unsplash/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/unsplash/index.js +17 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts +16 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.js +131 -0
- package/lib/services/analytics.service.js +2 -4
- package/lib/services/apiUsageCounter.service.d.ts +20 -0
- package/lib/services/apiUsageCounter.service.d.ts.map +1 -0
- package/lib/services/apiUsageCounter.service.js +84 -0
- package/lib/services/asr/assemblyai.service.d.ts +72 -0
- package/lib/services/asr/assemblyai.service.d.ts.map +1 -0
- package/lib/services/asr/assemblyai.service.js +89 -0
- package/lib/services/asr/index.d.ts +3 -0
- package/lib/services/asr/index.d.ts.map +1 -0
- package/lib/services/asr/index.js +18 -0
- package/lib/services/asr/whisper.service.d.ts +18 -0
- package/lib/services/asr/whisper.service.d.ts.map +1 -0
- package/lib/services/asr/whisper.service.js +151 -0
- package/lib/services/assetCache.service.d.ts +54 -0
- package/lib/services/assetCache.service.d.ts.map +1 -0
- package/lib/services/assetCache.service.js +109 -0
- package/lib/services/audioAnalysis/index.d.ts +2 -0
- package/lib/services/audioAnalysis/index.d.ts.map +1 -0
- package/lib/services/audioAnalysis/index.js +17 -0
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts +50 -0
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +1 -0
- package/lib/services/audioAnalysis/onsetDetection.service.js +140 -0
- package/lib/services/bullmq.service.d.ts +6 -1
- package/lib/services/bullmq.service.d.ts.map +1 -1
- package/lib/services/bullmq.service.js +62 -14
- package/lib/services/credit.service.d.ts.map +1 -1
- package/lib/services/credit.service.js +45 -7
- package/lib/services/credits/pricing.d.ts +58 -0
- package/lib/services/credits/pricing.d.ts.map +1 -0
- package/lib/services/credits/pricing.js +111 -0
- package/lib/services/editor/designToProject.d.ts +75 -0
- package/lib/services/editor/designToProject.d.ts.map +1 -0
- package/lib/services/editor/designToProject.js +295 -0
- package/lib/services/editor/planToProject.d.ts +84 -0
- package/lib/services/editor/planToProject.d.ts.map +1 -0
- package/lib/services/editor/planToProject.js +395 -0
- package/lib/services/editor/projectToDesign.d.ts +4 -0
- package/lib/services/editor/projectToDesign.d.ts.map +1 -0
- package/lib/services/editor/projectToDesign.js +186 -0
- package/lib/services/firestore.service.d.ts +17 -0
- package/lib/services/firestore.service.d.ts.map +1 -1
- package/lib/services/firestore.service.js +30 -0
- package/lib/services/gcp/index.d.ts +1 -0
- package/lib/services/gcp/index.d.ts.map +1 -1
- package/lib/services/gcp/index.js +1 -0
- package/lib/services/gcp/uploadAudioBuffer.d.ts +13 -0
- package/lib/services/gcp/uploadAudioBuffer.d.ts.map +1 -0
- package/lib/services/gcp/uploadAudioBuffer.js +28 -0
- package/lib/services/index.d.ts +13 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +13 -0
- package/lib/services/musicGen/index.d.ts +6 -0
- package/lib/services/musicGen/index.d.ts.map +1 -0
- package/lib/services/musicGen/index.js +26 -0
- package/lib/services/musicGen/musicSearchFactory.service.d.ts +14 -0
- package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +1 -0
- package/lib/services/musicGen/musicSearchFactory.service.js +59 -0
- package/lib/services/musicGen/providers/curated.service.d.ts +24 -0
- package/lib/services/musicGen/providers/curated.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/curated.service.js +173 -0
- package/lib/services/musicGen/providers/jamendo.service.d.ts +8 -0
- package/lib/services/musicGen/providers/jamendo.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/jamendo.service.js +113 -0
- package/lib/services/musicGen/providers/mubert.service.d.ts +10 -0
- package/lib/services/musicGen/providers/mubert.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/mubert.service.js +128 -0
- package/lib/services/musicGen/types.d.ts +46 -0
- package/lib/services/musicGen/types.d.ts.map +1 -0
- package/lib/services/musicGen/types.js +10 -0
- package/lib/services/notification.service.d.ts +22 -0
- package/lib/services/notification.service.d.ts.map +1 -0
- package/lib/services/notification.service.js +76 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts +78 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts.map +1 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.js +269 -0
- package/lib/services/rateLimiter/index.d.ts +2 -0
- package/lib/services/rateLimiter/index.d.ts.map +1 -0
- package/lib/services/rateLimiter/index.js +17 -0
- package/lib/services/redis.service.d.ts +9 -0
- package/lib/services/redis.service.d.ts.map +1 -1
- package/lib/services/redis.service.js +20 -11
- package/lib/services/redisOptions.d.ts +22 -0
- package/lib/services/redisOptions.d.ts.map +1 -0
- package/lib/services/redisOptions.js +51 -0
- package/lib/services/tts/index.d.ts +2 -0
- package/lib/services/tts/index.d.ts.map +1 -1
- package/lib/services/tts/index.js +2 -0
- package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
- package/lib/services/tts/providers/elevenlabs.service.js +91 -24
- package/lib/services/tts/providers/minimax.service.d.ts +14 -0
- package/lib/services/tts/providers/minimax.service.d.ts.map +1 -0
- package/lib/services/tts/providers/minimax.service.js +78 -0
- package/lib/services/tts/providers/openai.service.d.ts +14 -0
- package/lib/services/tts/providers/openai.service.d.ts.map +1 -0
- package/lib/services/tts/providers/openai.service.js +73 -0
- package/lib/services/tts/ttsFactory.service.d.ts.map +1 -1
- package/lib/services/tts/ttsFactory.service.js +6 -0
- package/lib/services/tts/types.d.ts +33 -0
- package/lib/services/tts/types.d.ts.map +1 -1
- package/lib/utils/errors.d.ts +8 -0
- package/lib/utils/errors.d.ts.map +1 -1
- package/lib/utils/errors.js +8 -0
- package/lib/utils/helpers.d.ts +13 -0
- package/lib/utils/helpers.d.ts.map +1 -1
- package/lib/utils/helpers.js +48 -11
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +37 -1
- package/package.json +5 -1
- package/lib/services/aiGen/providers/azure/azure.service.d.ts +0 -14
- package/lib/services/aiGen/providers/azure/azure.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/azure/azure.service.js +0 -108
- package/lib/services/aiGen/providers/azure/index.d.ts +0 -2
- package/lib/services/aiGen/providers/azure/index.d.ts.map +0 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// klingImage.service.ts
|
|
3
|
+
// Kling first-party image generation (api-singapore.klingai.com).
|
|
4
|
+
//
|
|
5
|
+
// Two endpoint families per official docs (2026-05-20):
|
|
6
|
+
// POST /v1/images/omni-image → kling-image-o1, kling-v3-omni (Omni-Image / IMAGE 3.0)
|
|
7
|
+
// POST /v1/images/generations → kling-v2-1-image (standard gen / IMAGE 2.1)
|
|
8
|
+
//
|
|
9
|
+
// Both APIs are ASYNC (task-based): submit → poll until succeed/failed → return URL(s).
|
|
10
|
+
// Polling is done inline inside generateImage() to fit the synchronous ImageGeneration
|
|
11
|
+
// interface used by the rest of the image service map.
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.KlingImageService = void 0;
|
|
17
|
+
const axios_1 = __importDefault(require("axios"));
|
|
18
|
+
const http_1 = __importDefault(require("http"));
|
|
19
|
+
const https_1 = __importDefault(require("https"));
|
|
20
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
21
|
+
const enums_1 = require("../../../../globals/aiModels/enums");
|
|
22
|
+
const aiModels_1 = require("../../../../globals/aiModels");
|
|
23
|
+
const firebase_1 = require("../../../../libs/firebase");
|
|
24
|
+
const logger_1 = require("../../../../utils/logger");
|
|
25
|
+
const helpers_1 = require("../../../../utils/helpers");
|
|
26
|
+
const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
|
|
27
|
+
// ─── Omni-image models (kling-image-o1, kling-v3-omni) ────────────────────────
|
|
28
|
+
const OMNI_IMAGE_MODELS = new Set([
|
|
29
|
+
enums_1.EImageGenModels.KLING_IMAGE_O1,
|
|
30
|
+
enums_1.EImageGenModels.KLING_V3_OMNI_IMAGE,
|
|
31
|
+
]);
|
|
32
|
+
class KlingImageService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
this.baseUrl = "https://api-singapore.klingai.com";
|
|
36
|
+
// Submit timeout is generous — Kling submission can be slow under load.
|
|
37
|
+
this.submitTimeout = 60000;
|
|
38
|
+
// Poll timeout per request (individual GET).
|
|
39
|
+
this.pollTimeout = 30000;
|
|
40
|
+
// Maximum total time to wait for an image task to complete.
|
|
41
|
+
this.maxPollMs = 120000; // 2 minutes
|
|
42
|
+
// Interval between poll attempts.
|
|
43
|
+
this.pollIntervalMs = 3000;
|
|
44
|
+
// Force IPv4 — same reason as KlingService (IPv6 black-holes on Kling CDN).
|
|
45
|
+
this.v4HttpAgent = new http_1.default.Agent({ family: 4, keepAlive: true });
|
|
46
|
+
this.v4HttpsAgent = new https_1.default.Agent({ family: 4, keepAlive: true });
|
|
47
|
+
if (!process.env.KLING_SECRET_KEY || !process.env.KLING_ACCESS_KEY) {
|
|
48
|
+
throw new Error("Missing KLING_SECRET_KEY or KLING_ACCESS_KEY in environment variables");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// ─── Auth ────────────────────────────────────────────────────────────────
|
|
52
|
+
encodeJwtToken() {
|
|
53
|
+
const payload = {
|
|
54
|
+
iss: process.env.KLING_ACCESS_KEY,
|
|
55
|
+
exp: Math.floor(Date.now() / 1000) + 1800, // +30 min
|
|
56
|
+
nbf: Math.floor(Date.now() / 1000) - 5, // -5 s clock skew
|
|
57
|
+
};
|
|
58
|
+
const options = { algorithm: "HS256", header: { alg: "HS256", typ: "JWT" } };
|
|
59
|
+
return jsonwebtoken_1.default.sign(payload, process.env.KLING_SECRET_KEY, options);
|
|
60
|
+
}
|
|
61
|
+
async request(endpoint, method, body, timeout = this.submitTimeout) {
|
|
62
|
+
const config = {
|
|
63
|
+
method,
|
|
64
|
+
url: `${this.baseUrl}${endpoint}`,
|
|
65
|
+
headers: {
|
|
66
|
+
Authorization: `Bearer ${this.encodeJwtToken()}`,
|
|
67
|
+
"Content-Type": "application/json",
|
|
68
|
+
},
|
|
69
|
+
timeout,
|
|
70
|
+
data: body,
|
|
71
|
+
httpAgent: this.v4HttpAgent,
|
|
72
|
+
httpsAgent: this.v4HttpsAgent,
|
|
73
|
+
};
|
|
74
|
+
const response = await axios_1.default.request(config);
|
|
75
|
+
if (response.status < 200 || response.status >= 300) {
|
|
76
|
+
throw new Error(`Kling image API ${response.status} ${response.statusText}: ${JSON.stringify(response.data)}`);
|
|
77
|
+
}
|
|
78
|
+
return response.data;
|
|
79
|
+
}
|
|
80
|
+
// ─── Task submission ──────────────────────────────────────────────────────
|
|
81
|
+
async submitOmniImageTask(modelId, params) {
|
|
82
|
+
const body = {
|
|
83
|
+
model_name: modelId,
|
|
84
|
+
prompt: params.prompt,
|
|
85
|
+
n: params.numImages ?? 1,
|
|
86
|
+
resolution: "1k", // default; override from params if present
|
|
87
|
+
aspect_ratio: params.aspectRatio ?? "auto",
|
|
88
|
+
};
|
|
89
|
+
// Resolution: ImageGenerationParams.imageSize maps to "1k" / "2k" / "4k".
|
|
90
|
+
if (params.imageSize) {
|
|
91
|
+
body.resolution = params.imageSize.toLowerCase();
|
|
92
|
+
}
|
|
93
|
+
// Multi-image references → image_list[].
|
|
94
|
+
const refs = [
|
|
95
|
+
...(params.inputImageUrl ? [params.inputImageUrl] : []),
|
|
96
|
+
...(params.inputImageUrls ?? []),
|
|
97
|
+
].slice(0, 10); // API cap: sum of image_list + element_list ≤ 10
|
|
98
|
+
if (refs.length) {
|
|
99
|
+
body.image_list = refs.map((url) => ({ image: url }));
|
|
100
|
+
}
|
|
101
|
+
const resp = await this.request("/v1/images/omni-image", "POST", body);
|
|
102
|
+
if (resp.code !== 0) {
|
|
103
|
+
throw new Error(`Kling omni-image submit failed (code ${resp.code}): ${resp.message}`);
|
|
104
|
+
}
|
|
105
|
+
return resp.data.task_id;
|
|
106
|
+
}
|
|
107
|
+
async submitStandardImageTask(modelId, params) {
|
|
108
|
+
const body = {
|
|
109
|
+
model_name: modelId,
|
|
110
|
+
prompt: params.prompt,
|
|
111
|
+
n: params.numImages ?? 1,
|
|
112
|
+
aspect_ratio: params.aspectRatio ?? "16:9",
|
|
113
|
+
...(params.negativePrompt ? { negative_prompt: params.negativePrompt } : {}),
|
|
114
|
+
};
|
|
115
|
+
if (params.imageSize) {
|
|
116
|
+
body.resolution = params.imageSize.toLowerCase();
|
|
117
|
+
}
|
|
118
|
+
// Single reference image (I2I).
|
|
119
|
+
if (params.inputImageUrl) {
|
|
120
|
+
body.image = params.inputImageUrl;
|
|
121
|
+
}
|
|
122
|
+
const resp = await this.request("/v1/images/generations", "POST", body);
|
|
123
|
+
if (resp.code !== 0) {
|
|
124
|
+
throw new Error(`Kling image submit failed (code ${resp.code}): ${resp.message}`);
|
|
125
|
+
}
|
|
126
|
+
return resp.data.task_id;
|
|
127
|
+
}
|
|
128
|
+
// ─── Polling ──────────────────────────────────────────────────────────────
|
|
129
|
+
async pollUntilDone(taskId, statusEndpoint) {
|
|
130
|
+
const deadline = Date.now() + this.maxPollMs;
|
|
131
|
+
while (Date.now() < deadline) {
|
|
132
|
+
await new Promise((r) => setTimeout(r, this.pollIntervalMs));
|
|
133
|
+
const resp = await this.request(`${statusEndpoint}/${taskId}`, "GET", undefined, this.pollTimeout);
|
|
134
|
+
if (resp.code !== 0) {
|
|
135
|
+
throw new Error(`Kling image status error (code ${resp.code}): ${resp.message}`);
|
|
136
|
+
}
|
|
137
|
+
const { task_status, task_status_msg } = resp.data;
|
|
138
|
+
if (task_status === "succeed")
|
|
139
|
+
return resp.data;
|
|
140
|
+
if (task_status === "failed") {
|
|
141
|
+
throw new Error(`Kling image task failed: ${task_status_msg ?? "no reason provided"}`);
|
|
142
|
+
}
|
|
143
|
+
// "submitted" | "processing" — keep polling
|
|
144
|
+
}
|
|
145
|
+
throw new Error(`Kling image task ${taskId} did not complete within ${this.maxPollMs / 1000}s`);
|
|
146
|
+
}
|
|
147
|
+
// ─── Firebase Storage upload ──────────────────────────────────────────────
|
|
148
|
+
async uploadToStorage(sourceUrl, idx) {
|
|
149
|
+
const response = await fetch(sourceUrl);
|
|
150
|
+
if (!response.ok) {
|
|
151
|
+
throw new Error(`Failed to download Kling image [${idx}]: HTTP ${response.status}`);
|
|
152
|
+
}
|
|
153
|
+
const contentType = response.headers.get("content-type") ?? "image/jpeg";
|
|
154
|
+
const ext = contentType.split("/")[1]?.split(";")[0] ?? "jpg";
|
|
155
|
+
const bytes = Buffer.from(await response.arrayBuffer());
|
|
156
|
+
const bucket = (0, firebase_1.getBucket)();
|
|
157
|
+
const path = `images/kling/${Date.now()}-${Math.random().toString(36).slice(2, 8)}-${idx}.${ext}`;
|
|
158
|
+
const file = bucket.file(path);
|
|
159
|
+
await file.save(bytes, { contentType });
|
|
160
|
+
const [signed] = await file.getSignedUrl({ action: "read", expires: "03-09-2491" });
|
|
161
|
+
return signed;
|
|
162
|
+
}
|
|
163
|
+
// ─── Public interface ──────────────────────────────────────────────────────
|
|
164
|
+
async generateImage(params) {
|
|
165
|
+
const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
|
|
166
|
+
const modelId = modelConfig?.modelId;
|
|
167
|
+
if (!modelId)
|
|
168
|
+
throw new Error(`KlingImageService: unknown modelKey "${params.modelKey}"`);
|
|
169
|
+
const isOmni = OMNI_IMAGE_MODELS.has(params.modelKey);
|
|
170
|
+
const statusEndpoint = isOmni ? "/v1/images/omni-image" : "/v1/images/generations";
|
|
171
|
+
logger_1.logger.info(`KlingImageService: submitting ${params.modelKey} (${modelId}) task`);
|
|
172
|
+
const taskId = isOmni
|
|
173
|
+
? await this.submitOmniImageTask(modelId, params)
|
|
174
|
+
: await this.submitStandardImageTask(modelId, params);
|
|
175
|
+
logger_1.logger.info(`KlingImageService: polling task ${taskId}`);
|
|
176
|
+
const result = await this.pollUntilDone(taskId, statusEndpoint);
|
|
177
|
+
// Collect image URLs from the result (single or series).
|
|
178
|
+
const rawUrls = [];
|
|
179
|
+
for (const img of result.task_result?.images ?? []) {
|
|
180
|
+
if (img.url)
|
|
181
|
+
rawUrls.push(img.url);
|
|
182
|
+
}
|
|
183
|
+
for (const img of result.task_result?.series_images ?? []) {
|
|
184
|
+
if (img.url)
|
|
185
|
+
rawUrls.push(img.url);
|
|
186
|
+
}
|
|
187
|
+
if (!rawUrls.length) {
|
|
188
|
+
throw new Error(`Kling image task ${taskId} succeeded but returned no image URLs`);
|
|
189
|
+
}
|
|
190
|
+
// Upload all images to Firebase Storage and return signed URLs.
|
|
191
|
+
const signedUrls = await Promise.all(rawUrls.map((url, i) => this.uploadToStorage(url, i)));
|
|
192
|
+
logger_1.logger.info(`KlingImageService: task ${taskId} done — ${signedUrls.length} image(s)`);
|
|
193
|
+
return {
|
|
194
|
+
imageUrl: signedUrls[0],
|
|
195
|
+
imageUrls: signedUrls.length > 1 ? signedUrls : undefined,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
getCreditUsed({ modelKey, numImages = 1, multiClip = false }) {
|
|
199
|
+
const modelConfig = aiModels_1.aiModelConfigs[modelKey];
|
|
200
|
+
const cost = modelConfig?.cost?.fixed;
|
|
201
|
+
if (cost === undefined) {
|
|
202
|
+
logger_1.logger.warn(`KlingImageService.getCreditUsed: no fixed cost for "${modelKey}" — using fallback`);
|
|
203
|
+
return (0, helpers_1.getCreditsFromCost)(0.05 * Math.max(1, numImages), !multiClip);
|
|
204
|
+
}
|
|
205
|
+
return (0, helpers_1.getCreditsFromCost)(cost * Math.max(1, numImages), !multiClip);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
exports.KlingImageService = KlingImageService;
|
|
@@ -42,6 +42,22 @@ export interface KlingVideoGenerateRequest {
|
|
|
42
42
|
duration?: KlingDuration;
|
|
43
43
|
callback_url?: string;
|
|
44
44
|
external_task_id?: string;
|
|
45
|
+
sound?: "on" | "off";
|
|
46
|
+
generate_audio?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface KlingDynamicMask {
|
|
49
|
+
mask: string;
|
|
50
|
+
trajectories: Array<{
|
|
51
|
+
x: number;
|
|
52
|
+
y: number;
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
export interface KlingImageToVideoRequest extends Omit<KlingVideoGenerateRequest, "aspect_ratio"> {
|
|
56
|
+
image: string;
|
|
57
|
+
image_tail?: string;
|
|
58
|
+
static_mask?: string;
|
|
59
|
+
dynamic_masks?: KlingDynamicMask[];
|
|
60
|
+
aspect_ratio?: KlingAspectRatio;
|
|
45
61
|
}
|
|
46
62
|
export interface KlingTaskResponse {
|
|
47
63
|
code: number;
|
|
@@ -71,6 +87,95 @@ export interface VideoResult {
|
|
|
71
87
|
watermark_url?: string;
|
|
72
88
|
duration: string;
|
|
73
89
|
}
|
|
90
|
+
export interface KlingOmniImageEntry {
|
|
91
|
+
image_url: string;
|
|
92
|
+
/** first_frame = start frame, end_frame = last frame. Omit for plain reference images. */
|
|
93
|
+
type?: "first_frame" | "end_frame";
|
|
94
|
+
}
|
|
95
|
+
export interface KlingOmniVideoEntry {
|
|
96
|
+
video_url: string;
|
|
97
|
+
/** feature = reference video, base = video to edit. Default: "base". */
|
|
98
|
+
refer_type?: "feature" | "base";
|
|
99
|
+
keep_original_sound?: "yes" | "no";
|
|
100
|
+
}
|
|
101
|
+
export interface KlingOmniMultiPromptEntry {
|
|
102
|
+
index: number;
|
|
103
|
+
prompt: string;
|
|
104
|
+
duration?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface KlingOmniVideoRequest {
|
|
107
|
+
model_name?: string;
|
|
108
|
+
prompt?: string;
|
|
109
|
+
multi_shot?: boolean;
|
|
110
|
+
shot_type?: "customize" | "intelligence";
|
|
111
|
+
multi_prompt?: KlingOmniMultiPromptEntry[];
|
|
112
|
+
image_list?: KlingOmniImageEntry[];
|
|
113
|
+
video_list?: KlingOmniVideoEntry[];
|
|
114
|
+
element_list?: Array<{
|
|
115
|
+
element_id: number | bigint;
|
|
116
|
+
}>;
|
|
117
|
+
sound?: "on" | "off";
|
|
118
|
+
mode?: string;
|
|
119
|
+
aspect_ratio?: string;
|
|
120
|
+
duration?: string;
|
|
121
|
+
watermark_info?: {
|
|
122
|
+
enabled: boolean;
|
|
123
|
+
};
|
|
124
|
+
callback_url?: string;
|
|
125
|
+
external_task_id?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface KlingMotionControlRequest {
|
|
128
|
+
model_name?: string;
|
|
129
|
+
image_url: string;
|
|
130
|
+
video_url: string;
|
|
131
|
+
prompt?: string;
|
|
132
|
+
keep_original_sound?: "yes" | "no";
|
|
133
|
+
character_orientation?: "image" | "video";
|
|
134
|
+
mode?: string;
|
|
135
|
+
callback_url?: string;
|
|
136
|
+
external_task_id?: string;
|
|
137
|
+
}
|
|
138
|
+
/** POST /v1/videos/identify-face — synchronous */
|
|
139
|
+
export interface KlingIdentifyFaceRequest {
|
|
140
|
+
video_url?: string;
|
|
141
|
+
video_id?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface KlingFaceEntry {
|
|
144
|
+
face_id: string;
|
|
145
|
+
face_image: string;
|
|
146
|
+
start_time: number;
|
|
147
|
+
end_time: number;
|
|
148
|
+
}
|
|
149
|
+
export interface KlingIdentifyFaceResponse {
|
|
150
|
+
code: number;
|
|
151
|
+
message: string;
|
|
152
|
+
request_id: string;
|
|
153
|
+
data: {
|
|
154
|
+
session_id: string;
|
|
155
|
+
final_unit_deduction?: string;
|
|
156
|
+
face_data: KlingFaceEntry[];
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/** POST /v1/videos/advanced-lip-sync — async */
|
|
160
|
+
export interface KlingFaceChoiceEntry {
|
|
161
|
+
face_id: string;
|
|
162
|
+
audio_id?: string;
|
|
163
|
+
sound_file?: string;
|
|
164
|
+
sound_insert_time: number;
|
|
165
|
+
sound_start_time: number;
|
|
166
|
+
sound_end_time: number;
|
|
167
|
+
sound_volume?: number;
|
|
168
|
+
original_audio_volume?: number;
|
|
169
|
+
}
|
|
170
|
+
export interface KlingLipSyncRequest {
|
|
171
|
+
session_id: string;
|
|
172
|
+
face_choose: KlingFaceChoiceEntry[];
|
|
173
|
+
watermark_info?: {
|
|
174
|
+
enabled: boolean;
|
|
175
|
+
};
|
|
176
|
+
callback_url?: string;
|
|
177
|
+
external_task_id?: string;
|
|
178
|
+
}
|
|
74
179
|
export interface KlingAvatarGenerateRequest {
|
|
75
180
|
image: string;
|
|
76
181
|
audio_id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/D,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
|
|
2
|
-
import { CreditUsageParams, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
2
|
+
import { CreditUsageParams, ImageGenerationParams, ImageGenerationResult, MusicGenerationParams, MusicGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* Maps Minimax base_resp status codes to user-facing error messages.
|
|
5
5
|
* Raw codes like "1026 input new_sensitive" are never shown to users.
|
|
@@ -12,6 +12,19 @@ export declare class MinimaxService extends BaseAiGenProviderService {
|
|
|
12
12
|
private request;
|
|
13
13
|
generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
|
|
14
14
|
checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* MiniMax image-01. Sync — returns image URLs directly from /v1/image_generation.
|
|
17
|
+
* Supports up to 1 subject_reference[type=character] for character consistency
|
|
18
|
+
* (uses inputImageUrl when present).
|
|
19
|
+
*/
|
|
20
|
+
generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
|
|
21
|
+
/**
|
|
22
|
+
* MiniMax music-1.5. Sync — POST /v1/music_generation returns the audio inline
|
|
23
|
+
* as a hex-encoded string (decoded to mp3 buffer, uploaded to Storage).
|
|
24
|
+
* Body shape per provider docs:
|
|
25
|
+
* { model, prompt, lyrics?, refer_voice?, audio_setting: { sample_rate, bitrate, format } }
|
|
26
|
+
*/
|
|
27
|
+
generateMusic(params: MusicGenerationParams): Promise<MusicGenerationResult>;
|
|
28
|
+
getCreditUsed({ modelKey, resolution, duration, multiClip, numImages, }: CreditUsageParams): number;
|
|
16
29
|
}
|
|
17
30
|
//# 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,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAUlB;;;GAGG;AAGH,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;
|
|
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;AAmGpE,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;IA6EjD;;;;OAIG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAuDjC;;;;;OAKG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA+CjC,aAAa,CAAC,EACZ,QAAQ,EACR,UAAmB,EACnB,QAAY,EACZ,SAAiB,EACjB,SAAa,GACd,EAAE,iBAAiB,GAAG,MAAM;CA+B9B"}
|
|
@@ -56,10 +56,7 @@ function classifyMinimaxError(code, msg) {
|
|
|
56
56
|
case 1027:
|
|
57
57
|
return { message: "Your request was declined because the generated content was flagged for sensitive material. Please adjust your prompt and try again.", code: errors_1.USER_FACING_ERROR_CODES.CONTENT_POLICY_VIOLATION, isUserInput: true };
|
|
58
58
|
case 1002:
|
|
59
|
-
|
|
60
|
-
// user-facing so the frontend shows a translated retry message AND so
|
|
61
|
-
// sceneGeneration logs it as warn (no Slack page for upstream throttle).
|
|
62
|
-
return { message: "The request was rejected due to a rate limit or quota issue. Please try again in a moment.", code: errors_1.USER_FACING_ERROR_CODES.VIDEO_PROVIDER_RATE_LIMITED, isUserInput: true };
|
|
59
|
+
return { message: "The request was rejected due to a rate limit or quota issue. Please try again in a moment.", code: errors_1.USER_FACING_ERROR_CODES.VIDEO_PROVIDER_RATE_LIMITED, isUserInput: false };
|
|
63
60
|
case 1004:
|
|
64
61
|
return { message: "Authorization failed for the video generation service. Please contact support.", isUserInput: false };
|
|
65
62
|
default:
|
|
@@ -176,6 +173,20 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
176
173
|
resolution: params.resolution || "512P",
|
|
177
174
|
duration: params.duration || 6,
|
|
178
175
|
};
|
|
176
|
+
if (params.aspectRatio)
|
|
177
|
+
requestBody.aspect_ratio = params.aspectRatio;
|
|
178
|
+
if (params.promptOptimizer !== undefined)
|
|
179
|
+
requestBody.prompt_optimizer = params.promptOptimizer;
|
|
180
|
+
if (params.fastPretreatment !== undefined)
|
|
181
|
+
requestBody.fast_pretreatment = params.fastPretreatment;
|
|
182
|
+
if (params.callbackUrl)
|
|
183
|
+
requestBody.callback_url = params.callbackUrl;
|
|
184
|
+
// S2V-01: subject_reference[] for character-driven video. Requires referenceImageUrls.
|
|
185
|
+
if (modelId === "S2V-01" && params.referenceImageUrls?.length) {
|
|
186
|
+
requestBody.subject_reference = [
|
|
187
|
+
{ type: "character", image: params.referenceImageUrls },
|
|
188
|
+
];
|
|
189
|
+
}
|
|
179
190
|
const response = await this.request("/v1/video_generation", "POST", requestBody);
|
|
180
191
|
logger_1.logger.info("Minimax video generation task response", {
|
|
181
192
|
taskId: response.task_id,
|
|
@@ -249,8 +260,120 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
249
260
|
// rest status are pending forms
|
|
250
261
|
return { status: types_1.EVideoSceneStatus.PENDING };
|
|
251
262
|
}
|
|
252
|
-
|
|
263
|
+
/**
|
|
264
|
+
* MiniMax image-01. Sync — returns image URLs directly from /v1/image_generation.
|
|
265
|
+
* Supports up to 1 subject_reference[type=character] for character consistency
|
|
266
|
+
* (uses inputImageUrl when present).
|
|
267
|
+
*/
|
|
268
|
+
async generateImage(params) {
|
|
269
|
+
const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
|
|
270
|
+
const modelId = modelConfig?.modelId;
|
|
271
|
+
if (!modelId)
|
|
272
|
+
throw new Error(`Unknown image modelKey: ${params.modelKey}`);
|
|
273
|
+
const body = {
|
|
274
|
+
model: modelId,
|
|
275
|
+
prompt: params.prompt,
|
|
276
|
+
n: params.numImages ?? 1,
|
|
277
|
+
...(params.aspectRatio ? { aspect_ratio: params.aspectRatio } : {}),
|
|
278
|
+
...(params.promptOptimizer !== undefined
|
|
279
|
+
? { prompt_optimizer: params.promptOptimizer }
|
|
280
|
+
: {}),
|
|
281
|
+
...(params.seed !== undefined ? { seed: params.seed } : {}),
|
|
282
|
+
response_format: "url",
|
|
283
|
+
};
|
|
284
|
+
const charRef = params.inputImageUrl ?? params.inputImageUrls?.[0];
|
|
285
|
+
if (charRef) {
|
|
286
|
+
body.subject_reference = [{ type: "character", image_file: charRef }];
|
|
287
|
+
}
|
|
288
|
+
const resp = await this.request("/v1/image_generation", "POST", body);
|
|
289
|
+
const baseResp = resp.base_resp;
|
|
290
|
+
if (baseResp && baseResp.status_code !== 0) {
|
|
291
|
+
throw new Error(minimaxStatusToUserMessage(baseResp.status_code, baseResp.status_msg));
|
|
292
|
+
}
|
|
293
|
+
const remoteUrls = resp.data?.image_urls ?? [];
|
|
294
|
+
if (!remoteUrls.length) {
|
|
295
|
+
throw new Error("MiniMax image API returned no image_urls");
|
|
296
|
+
}
|
|
297
|
+
const bucket = (0, firebase_1.getBucket)();
|
|
298
|
+
const ts = Date.now();
|
|
299
|
+
const urls = [];
|
|
300
|
+
for (let i = 0; i < remoteUrls.length; i++) {
|
|
301
|
+
const remoteUrl = remoteUrls[i];
|
|
302
|
+
const r = await axios_1.default.get(remoteUrl, {
|
|
303
|
+
responseType: "arraybuffer",
|
|
304
|
+
timeout: 60000,
|
|
305
|
+
});
|
|
306
|
+
const path = `images/minimax/${ts}-${Math.random().toString(36).slice(2, 8)}-${i}.png`;
|
|
307
|
+
const file = bucket.file(path);
|
|
308
|
+
await file.save(Buffer.from(r.data), { contentType: "image/png" });
|
|
309
|
+
const [signed] = await file.getSignedUrl({ action: "read", expires: "03-09-2491" });
|
|
310
|
+
urls.push(signed);
|
|
311
|
+
}
|
|
312
|
+
return {
|
|
313
|
+
imageUrl: urls[0],
|
|
314
|
+
imageUrls: urls.length > 1 ? urls : undefined,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* MiniMax music-1.5. Sync — POST /v1/music_generation returns the audio inline
|
|
319
|
+
* as a hex-encoded string (decoded to mp3 buffer, uploaded to Storage).
|
|
320
|
+
* Body shape per provider docs:
|
|
321
|
+
* { model, prompt, lyrics?, refer_voice?, audio_setting: { sample_rate, bitrate, format } }
|
|
322
|
+
*/
|
|
323
|
+
async generateMusic(params) {
|
|
324
|
+
const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
|
|
325
|
+
const modelId = modelConfig?.modelId;
|
|
326
|
+
if (!modelId)
|
|
327
|
+
throw new Error(`Unknown music modelKey: ${params.modelKey}`);
|
|
328
|
+
const body = {
|
|
329
|
+
model: modelId,
|
|
330
|
+
prompt: params.prompt,
|
|
331
|
+
...(params.lyrics ? { lyrics: params.lyrics } : {}),
|
|
332
|
+
...(params.referenceAudioUrl
|
|
333
|
+
? { refer_voice: params.referenceAudioUrl }
|
|
334
|
+
: {}),
|
|
335
|
+
audio_setting: {
|
|
336
|
+
sample_rate: params.sampleRate ?? 44100,
|
|
337
|
+
bitrate: params.bitrate ?? 256000,
|
|
338
|
+
format: "mp3",
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
const resp = await this.request("/v1/music_generation", "POST", body);
|
|
342
|
+
const baseResp = resp.base_resp;
|
|
343
|
+
if (baseResp && baseResp.status_code !== 0) {
|
|
344
|
+
throw new Error(minimaxStatusToUserMessage(baseResp.status_code, baseResp.status_msg));
|
|
345
|
+
}
|
|
346
|
+
const audioHex = resp.data?.audio;
|
|
347
|
+
if (!audioHex) {
|
|
348
|
+
throw new Error("MiniMax music API returned no audio data");
|
|
349
|
+
}
|
|
350
|
+
const buffer = Buffer.from(audioHex, "hex");
|
|
351
|
+
const path = `music/minimax/${params.outputFilename}.mp3`;
|
|
352
|
+
const file = (0, firebase_1.getBucket)().file(path);
|
|
353
|
+
await file.save(buffer, { contentType: "audio/mpeg" });
|
|
354
|
+
const [signed] = await file.getSignedUrl({
|
|
355
|
+
action: "read",
|
|
356
|
+
expires: "03-09-2491",
|
|
357
|
+
});
|
|
358
|
+
return {
|
|
359
|
+
audioUrl: signed,
|
|
360
|
+
mimeType: "audio/mpeg",
|
|
361
|
+
extension: "mp3",
|
|
362
|
+
providerRequestId: resp.trace_id,
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
getCreditUsed({ modelKey, resolution = "512P", duration = 6, multiClip = false, numImages = 1, }) {
|
|
253
366
|
const modelConfig = aiModels_1.aiModelConfigs[modelKey];
|
|
367
|
+
// Music-gen / image-gen — flat fixed price (music-1.5 ~$0.05, image-01 ~$0.01 × n).
|
|
368
|
+
if (modelConfig?.cost?.fixed !== undefined &&
|
|
369
|
+
modelConfig.type?.some((t) => t === "text-to-music")) {
|
|
370
|
+
return (0, helpers_2.getCreditsFromCost)(modelConfig.cost.fixed, !multiClip);
|
|
371
|
+
}
|
|
372
|
+
// Image-gen — flat fixed × numImages (image-01).
|
|
373
|
+
if (modelConfig?.cost?.fixed !== undefined &&
|
|
374
|
+
modelConfig.type?.some((t) => t.endsWith("-to-image"))) {
|
|
375
|
+
return (0, helpers_2.getCreditsFromCost)(modelConfig.cost.fixed * Math.max(1, numImages), !multiClip);
|
|
376
|
+
}
|
|
254
377
|
const cost = modelConfig.cost?.fixed ??
|
|
255
378
|
modelConfig.cost?.table?.[resolution]?.[duration];
|
|
256
379
|
if (cost === undefined || cost === null) {
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
export type MinimaxModelName = "MiniMax-Hailuo-02" | "T2V-01-Director" | "T2V-01";
|
|
1
|
+
export type MinimaxModelName = "MiniMax-Hailuo-2.3" | "MiniMax-Hailuo-2.3-Fast" | "MiniMax-Hailuo-02" | "T2V-01-Director" | "T2V-01" | "S2V-01";
|
|
2
|
+
export interface MinimaxSubjectReference {
|
|
3
|
+
type: "character";
|
|
4
|
+
image: string[];
|
|
5
|
+
}
|
|
2
6
|
export interface MinimaxVideoGenerateRequest {
|
|
3
7
|
model: MinimaxModelName;
|
|
4
8
|
first_frame_image?: string;
|
|
5
9
|
prompt: string;
|
|
6
10
|
resolution?: string;
|
|
7
11
|
duration?: number;
|
|
12
|
+
aspect_ratio?: string;
|
|
13
|
+
prompt_optimizer?: boolean;
|
|
14
|
+
fast_pretreatment?: boolean;
|
|
15
|
+
callback_url?: string;
|
|
16
|
+
subject_reference?: MinimaxSubjectReference[];
|
|
8
17
|
}
|
|
9
18
|
export interface MinimaxTaskResponse {
|
|
10
19
|
task_id: string;
|
|
@@ -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,mBAAmB,GACnB,iBAAiB,GACjB,QAAQ,CAAC;AAEb,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;
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
|
|
2
|
-
import { CreditUsageParams, TextGenerationParams, TextGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
2
|
+
import { CreditUsageParams, ImageGenerationParams, ImageGenerationResult, TextGenerationParams, TextGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
3
3
|
export declare class OpenaiService extends BaseAiGenProviderService {
|
|
4
4
|
private readonly apiVersion;
|
|
5
5
|
private client;
|
|
@@ -7,6 +7,12 @@ export declare class OpenaiService extends BaseAiGenProviderService {
|
|
|
7
7
|
generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
|
|
8
8
|
checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
|
|
9
9
|
generateText(params: TextGenerationParams): Promise<TextGenerationResult>;
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Synchronous image generation. Routes to /v1/images/generations for T2I or
|
|
12
|
+
* /v1/images/edits when input images are present (edits accepts up to 16
|
|
13
|
+
* reference images and an optional pixel mask).
|
|
14
|
+
*/
|
|
15
|
+
generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
|
|
16
|
+
getCreditUsed({ modelKey, resolution, duration, multiClip, numImages, quality, }: CreditUsageParams): number;
|
|
11
17
|
}
|
|
12
18
|
//# sourceMappingURL=openai.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/openai/openai.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/openai/openai.service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,qBAAa,aAAc,SAAQ,wBAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,MAAM,CAAS;;IAQjB,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAuC3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsC3C,YAAY,CAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IA2ChC;;;;OAIG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA6HjC,aAAa,CAAC,EACZ,QAAQ,EACR,UAAuB,EACvB,QAAY,EACZ,SAAiB,EACjB,SAAa,EACb,OAAO,GACR,EAAE,iBAAiB,GAAG,MAAM;CAoB9B"}
|