vidspotai-shared 1.0.67 → 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 -0
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +6 -0
- 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 +73 -2
- 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 -0
- 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 -13
- 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 +127 -1
- 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
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.textServicesMap = exports.videoServicesMap = void 0;
|
|
3
|
+
exports.textServicesMap = exports.sfxServicesMap = exports.musicServicesMap = exports.imageServicesMap = exports.videoServicesMap = void 0;
|
|
4
4
|
exports.getAiGenProviderService = getAiGenProviderService;
|
|
5
|
+
const aiModels_1 = require("../../globals/aiModels");
|
|
5
6
|
const google_service_1 = require("./providers/google/google.service");
|
|
6
7
|
const kling_service_1 = require("./providers/kling/kling.service");
|
|
8
|
+
const klingImage_service_1 = require("./providers/kling/klingImage.service");
|
|
7
9
|
const minimax_service_1 = require("./providers/minimax/minimax.service");
|
|
8
10
|
const openai_service_1 = require("./providers/openai/openai.service");
|
|
9
11
|
const runway_service_1 = require("./providers/runway/runway.service");
|
|
10
|
-
|
|
11
|
-
// import { AzureService } from "./providers/azure";
|
|
12
|
+
const alibaba_1 = require("./providers/alibaba/alibaba");
|
|
12
13
|
const pixverse_service_1 = require("./providers/pixverse/pixverse.service");
|
|
13
14
|
const bytedance_service_1 = require("./providers/bytedance/bytedance.service");
|
|
15
|
+
const elevenlabs_service_1 = require("./providers/elevenlabs/elevenlabs.service");
|
|
14
16
|
exports.videoServicesMap = {
|
|
15
17
|
// --- Pixverse ---
|
|
18
|
+
"pixverse-v6": pixverse_service_1.PixVerseService,
|
|
16
19
|
"pixverse-v5.6": pixverse_service_1.PixVerseService,
|
|
17
20
|
"pixverse-v5.5": pixverse_service_1.PixVerseService,
|
|
18
21
|
"pixverse-v5": pixverse_service_1.PixVerseService,
|
|
@@ -39,31 +42,85 @@ exports.videoServicesMap = {
|
|
|
39
42
|
"kling-v2-master": kling_service_1.KlingService,
|
|
40
43
|
"kling-v2.1": kling_service_1.KlingService,
|
|
41
44
|
"kling-v2.1-master": kling_service_1.KlingService,
|
|
45
|
+
"kling-v3.0": kling_service_1.KlingService,
|
|
42
46
|
"kling-avatar": kling_service_1.KlingService,
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
"kling-video-o1": kling_service_1.KlingService,
|
|
48
|
+
"kling-v3-omni-video": kling_service_1.KlingService,
|
|
49
|
+
"kling-motion-control": kling_service_1.KlingService,
|
|
50
|
+
"kling-lip-sync": kling_service_1.KlingService,
|
|
45
51
|
// --- MiniMax ---
|
|
46
52
|
"minimax-hailuo-2.3-fast": minimax_service_1.MinimaxService,
|
|
47
53
|
"minimax-hailuo-2.3": minimax_service_1.MinimaxService,
|
|
48
54
|
"minimax-hailuo-02": minimax_service_1.MinimaxService,
|
|
49
|
-
|
|
50
|
-
// "T2V-01": MinimaxService,
|
|
51
|
-
// --- Azure ---
|
|
52
|
-
// "azure-sora": AzureService,
|
|
55
|
+
"minimax-s2v-01": minimax_service_1.MinimaxService,
|
|
53
56
|
// --- OpenAI ---
|
|
54
57
|
"openai-sora-2": openai_service_1.OpenaiService,
|
|
55
58
|
"openai-sora-2-pro": openai_service_1.OpenaiService,
|
|
56
59
|
// --- Alibaba ---
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
"alibaba-wan-2.7-i2v": alibaba_1.AlibabaService,
|
|
61
|
+
"alibaba-wan-2.6-t2v": alibaba_1.AlibabaService,
|
|
62
|
+
"alibaba-wan-2.5-t2v": alibaba_1.AlibabaService,
|
|
63
|
+
"alibaba-wan-2.2-t2v": alibaba_1.AlibabaService,
|
|
64
|
+
"alibaba-wan-2.2-s2v": alibaba_1.AlibabaService,
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Image-gen factory. Each provider service implements `generateImage()` (sync;
|
|
68
|
+
* returns a URL or base64 in a single API roundtrip — no BullMQ worker needed).
|
|
69
|
+
*
|
|
70
|
+
* Kling now has a first-party image API (api-singapore.klingai.com, same JWT auth as video):
|
|
71
|
+
* /v1/images/omni-image → kling-image-o1, kling-v3-omni → KlingImageService
|
|
72
|
+
* /v1/images/generations → kling-v2-1-image → KlingImageService
|
|
73
|
+
* The legacy kling-kolors key still routes to AlibabaService (DashScope-hosted Kolors v2).
|
|
74
|
+
*/
|
|
75
|
+
exports.imageServicesMap = {
|
|
76
|
+
// --- Google (Imagen + Nano Banana) ---
|
|
77
|
+
[aiModels_1.EImageGenModels.GOOGLE_IMAGEN_4_ULTRA]: google_service_1.GoogleService,
|
|
78
|
+
[aiModels_1.EImageGenModels.GOOGLE_IMAGEN_4]: google_service_1.GoogleService,
|
|
79
|
+
[aiModels_1.EImageGenModels.GOOGLE_IMAGEN_4_FAST]: google_service_1.GoogleService,
|
|
80
|
+
[aiModels_1.EImageGenModels.GOOGLE_NANO_BANANA_PRO]: google_service_1.GoogleService,
|
|
81
|
+
[aiModels_1.EImageGenModels.GOOGLE_NANO_BANANA]: google_service_1.GoogleService,
|
|
82
|
+
// --- OpenAI gpt-image ---
|
|
83
|
+
[aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_2]: openai_service_1.OpenaiService,
|
|
84
|
+
[aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_1_5]: openai_service_1.OpenaiService,
|
|
85
|
+
[aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_1]: openai_service_1.OpenaiService,
|
|
86
|
+
[aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_1_MINI]: openai_service_1.OpenaiService,
|
|
87
|
+
// --- ByteDance Seedream 5 (Lite only — pro/edit unreleased) ---
|
|
88
|
+
[aiModels_1.EImageGenModels.BYTEDANCE_SEEDREAM_5_LITE]: bytedance_service_1.ByteDanceService,
|
|
89
|
+
// --- Kling first-party image API (KlingImageService) ---
|
|
90
|
+
[aiModels_1.EImageGenModels.KLING_IMAGE_O1]: klingImage_service_1.KlingImageService,
|
|
91
|
+
[aiModels_1.EImageGenModels.KLING_V3_OMNI_IMAGE]: klingImage_service_1.KlingImageService,
|
|
92
|
+
[aiModels_1.EImageGenModels.KLING_V2_1_IMAGE]: klingImage_service_1.KlingImageService,
|
|
93
|
+
// --- Kling Kolors (DashScope-hosted, legacy) ---
|
|
94
|
+
[aiModels_1.EImageGenModels.KLING_KOLORS]: alibaba_1.AlibabaService,
|
|
95
|
+
// --- Alibaba Qwen-Image ---
|
|
96
|
+
[aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_2_PRO]: alibaba_1.AlibabaService,
|
|
97
|
+
[aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_2]: alibaba_1.AlibabaService,
|
|
98
|
+
[aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_EDIT_MAX]: alibaba_1.AlibabaService,
|
|
99
|
+
[aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_EDIT_PLUS]: alibaba_1.AlibabaService,
|
|
100
|
+
[aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_EDIT]: alibaba_1.AlibabaService,
|
|
101
|
+
// --- MiniMax image-01 ---
|
|
102
|
+
[aiModels_1.EImageGenModels.MINIMAX_IMAGE_01]: minimax_service_1.MinimaxService,
|
|
103
|
+
// --- RunwayML Gen-4 Image ---
|
|
104
|
+
[aiModels_1.EImageGenModels.RUNWAYML_GEN4_IMAGE]: runway_service_1.RunwayService,
|
|
105
|
+
[aiModels_1.EImageGenModels.RUNWAYML_GEN4_IMAGE_TURBO]: runway_service_1.RunwayService,
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Music-gen factory. Each provider service implements `generateMusic()` (sync —
|
|
109
|
+
* single API roundtrip, no BullMQ worker).
|
|
110
|
+
*/
|
|
111
|
+
exports.musicServicesMap = {
|
|
112
|
+
[aiModels_1.EMusicGenModels.MINIMAX_MUSIC_1_5]: minimax_service_1.MinimaxService,
|
|
113
|
+
[aiModels_1.EMusicGenModels.GOOGLE_LYRIA_2]: google_service_1.GoogleService,
|
|
114
|
+
[aiModels_1.EMusicGenModels.GOOGLE_LYRIA_3]: google_service_1.GoogleService,
|
|
115
|
+
[aiModels_1.EMusicGenModels.GOOGLE_LYRIA_3_PRO]: google_service_1.GoogleService,
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Sound-effects factory. Each provider service implements `generateSoundEffects()`
|
|
119
|
+
* (sync — single API roundtrip, no BullMQ worker).
|
|
120
|
+
*/
|
|
121
|
+
exports.sfxServicesMap = {
|
|
122
|
+
[aiModels_1.ESfxGenModels.ELEVENLABS_SOUND_EFFECTS]: elevenlabs_service_1.ElevenLabsAiGenService,
|
|
59
123
|
};
|
|
60
|
-
// export const imageServicesMap: Record<imageGenModel, BaseAiGenProviderService> = {
|
|
61
|
-
// "openai-dalle-3": DalleService,
|
|
62
|
-
// "stability-stable-diffusion": StabilityService,
|
|
63
|
-
// "midjourney-v6": MidjourneyService,
|
|
64
|
-
// "flux-1.1": StabilityService,
|
|
65
|
-
// "ideogram-1.0": MidjourneyService,
|
|
66
|
-
// };
|
|
67
124
|
exports.textServicesMap = {
|
|
68
125
|
"openai-gpt-4o-mini": openai_service_1.OpenaiService,
|
|
69
126
|
"openai-gpt-5-mini": openai_service_1.OpenaiService,
|
|
@@ -76,9 +133,15 @@ function getAiGenProviderService(modelKey) {
|
|
|
76
133
|
if (modelKey in exports.videoServicesMap) {
|
|
77
134
|
return new exports.videoServicesMap[modelKey]();
|
|
78
135
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
136
|
+
if (modelKey in exports.imageServicesMap) {
|
|
137
|
+
return new exports.imageServicesMap[modelKey]();
|
|
138
|
+
}
|
|
139
|
+
if (modelKey in exports.musicServicesMap) {
|
|
140
|
+
return new exports.musicServicesMap[modelKey]();
|
|
141
|
+
}
|
|
142
|
+
if (modelKey in exports.sfxServicesMap) {
|
|
143
|
+
return new exports.sfxServicesMap[modelKey]();
|
|
144
|
+
}
|
|
82
145
|
if (modelKey in exports.textServicesMap) {
|
|
83
146
|
return new exports.textServicesMap[modelKey]();
|
|
84
147
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical camera-control schema. Translated per-provider by adapters that
|
|
3
|
+
* live alongside each provider's service. The set is the union of camera
|
|
4
|
+
* primitives across Kling (typed presets + vector), Runway (named presets +
|
|
5
|
+
* motion intensity), MiniMax Director (in-prompt commands), Seedance (in-prompt),
|
|
6
|
+
* and Pixverse V6 (lens-control prompt vocabulary).
|
|
7
|
+
*
|
|
8
|
+
* Providers that don't expose camera control (Veo, OpenAI, Wan T2V) ignore the
|
|
9
|
+
* field with a logged warning rather than throwing.
|
|
10
|
+
*/
|
|
11
|
+
export type CameraPreset = "static" | "pan_left" | "pan_right" | "tilt_up" | "tilt_down" | "zoom_in" | "zoom_out" | "dolly_in" | "dolly_out" | "orbit_left" | "orbit_right" | "roll_left" | "roll_right" | "tracking" | "handheld" | "push_in" | "pull_out";
|
|
12
|
+
/**
|
|
13
|
+
* Six-axis vector control (mirrors Kling's `camera_control.config` shape).
|
|
14
|
+
* Each axis is in [-10, 10]. Adapters that don't support fine-grained vector
|
|
15
|
+
* control fall back to the closest preset.
|
|
16
|
+
*/
|
|
17
|
+
export interface CameraVector {
|
|
18
|
+
horizontal?: number;
|
|
19
|
+
vertical?: number;
|
|
20
|
+
pan?: number;
|
|
21
|
+
tilt?: number;
|
|
22
|
+
roll?: number;
|
|
23
|
+
zoom?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface CameraControl {
|
|
26
|
+
preset?: CameraPreset;
|
|
27
|
+
vector?: CameraVector;
|
|
28
|
+
/** 0..1 — strength of the camera move; provider-mapped. */
|
|
29
|
+
intensity?: number;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cameraControl.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cameraControl.types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/canonicalAdapters/cameraControl.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,UAAU,GACV,WAAW,GACX,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GACZ,aAAa,GACb,WAAW,GACX,YAAY,GACZ,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,CAAC;AAEf;;;;GAIG;AACH,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,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/canonicalAdapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cameraControl.types"), exports);
|
|
18
|
+
__exportStar(require("./multiShot.types"), exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical multi-shot schema. Per-provider adapters translate this into:
|
|
3
|
+
* Kling v3.0 → `multi_prompt[]` (per-shot prompts) + companion `shot_type`
|
|
4
|
+
* (v3.0 only — v2.x has no public multi-shot API)
|
|
5
|
+
* Seedance → concatenated prompt with "--- CUT ---" separators
|
|
6
|
+
* Pixverse → `generate_multi_clip_switch=true` + concatenated prompt (≤2 shots)
|
|
7
|
+
* others → throw UnsupportedCapabilityError (gated by IModelSchema.fields.multiShot)
|
|
8
|
+
*/
|
|
9
|
+
export interface Shot {
|
|
10
|
+
prompt: string;
|
|
11
|
+
/** Seconds. Sum of all shot durations should match the request `duration`. */
|
|
12
|
+
duration?: number;
|
|
13
|
+
/** Optional first-frame image for this shot (Kling supports per-shot start frames). */
|
|
14
|
+
startFrame?: string;
|
|
15
|
+
}
|
|
16
|
+
/** 1..6 shots. Providers enforce their own caps in the adapter. */
|
|
17
|
+
export type MultiShot = Shot[];
|
|
18
|
+
export declare class UnsupportedCapabilityError extends Error {
|
|
19
|
+
readonly capability: string;
|
|
20
|
+
readonly modelKey: string;
|
|
21
|
+
constructor(capability: string, modelKey: string);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=multiShot.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiShot.types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/canonicalAdapters/multiShot.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;AAE/B,qBAAa,0BAA2B,SAAQ,KAAK;aAEjC,UAAU,EAAE,MAAM;aAClB,QAAQ,EAAE,MAAM;gBADhB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;CAKnC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnsupportedCapabilityError = void 0;
|
|
4
|
+
class UnsupportedCapabilityError extends Error {
|
|
5
|
+
constructor(capability, modelKey) {
|
|
6
|
+
super(`Capability "${capability}" is not supported by model "${modelKey}".`);
|
|
7
|
+
this.capability = capability;
|
|
8
|
+
this.modelKey = modelKey;
|
|
9
|
+
this.name = "UnsupportedCapabilityError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.UnsupportedCapabilityError = UnsupportedCapabilityError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/services/aiGen/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/services/aiGen/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAqIrE"}
|
|
@@ -22,6 +22,16 @@ function validateParams(params) {
|
|
|
22
22
|
rules.allowedValues.includes(value))) === false) {
|
|
23
23
|
errors.push(`Invalid value for ${field}: "${value}". Allowed: ${rules.allowedValues.join(", ")}`);
|
|
24
24
|
}
|
|
25
|
+
// Array-length cap (declared via `max` on the field schema). Applies to
|
|
26
|
+
// URL-list fields like referenceImageUrls/inputImageUrls/referenceVideoUrls
|
|
27
|
+
// — the cap is the provider's hard limit, so we reject before paying the
|
|
28
|
+
// upstream cost.
|
|
29
|
+
if (value != null &&
|
|
30
|
+
Array.isArray(value) &&
|
|
31
|
+
typeof rules.max === "number" &&
|
|
32
|
+
value.length > rules.max) {
|
|
33
|
+
errors.push(`Too many items for ${field}: got ${value.length}, max ${rules.max}`);
|
|
34
|
+
}
|
|
25
35
|
}
|
|
26
36
|
// 2. Type-specific required fields
|
|
27
37
|
if (params.type === "image-to-video" &&
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
|
|
2
|
-
import { CreditUsageParams, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
2
|
+
import { CreditUsageParams, ImageGenerationParams, ImageGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
3
3
|
export declare class AlibabaService extends BaseAiGenProviderService {
|
|
4
4
|
private readonly baseUrl;
|
|
5
5
|
private readonly timeout;
|
|
6
6
|
constructor();
|
|
7
7
|
private request;
|
|
8
8
|
generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
|
|
9
|
-
checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
|
|
10
|
-
|
|
9
|
+
checkVideoStatus({ task, outputFilename, outputFilePath, modelKey, }: VideoStatusParams): Promise<VideoStatusResult>;
|
|
10
|
+
/**
|
|
11
|
+
* DashScope image generation. Both Kolors and Qwen-Image are async on
|
|
12
|
+
* DashScope — submit returns a task_id, then poll /tasks/{id}. Image jobs
|
|
13
|
+
* typically finish in 5–15s, well inside our HTTP timeout, so we poll
|
|
14
|
+
* inline rather than going through BullMQ.
|
|
15
|
+
*
|
|
16
|
+
* Endpoint selection:
|
|
17
|
+
* - Qwen-Image edit (modelId qwen-image-edit*): /image2image/image-synthesis
|
|
18
|
+
* - Everything else (Qwen T2I, Kolors): /text2image/image-synthesis
|
|
19
|
+
*/
|
|
20
|
+
generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
|
|
21
|
+
getCreditUsed({ modelKey, resolution, aspectRatio, duration, multiClip, numImages, }: CreditUsageParams): number;
|
|
11
22
|
}
|
|
12
23
|
//# sourceMappingURL=alibaba.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alibaba.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/alibaba/alibaba.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;
|
|
1
|
+
{"version":3,"file":"alibaba.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/alibaba/alibaba.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAiBlB,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;YASnB,OAAO;IAqBf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA0D3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,EACzB,QAAQ,GACT,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0EjD;;;;;;;;;OASG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA2FjC,aAAa,CAAC,EACZ,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAiB,EACjB,SAAa,GACd,EAAE,iBAAiB,GAAG,MAAM;CAmB9B"}
|
|
@@ -13,10 +13,18 @@ const helpers_1 = require("./helpers");
|
|
|
13
13
|
const helpers_2 = require("../../helpers");
|
|
14
14
|
const utils_1 = require("../../../../utils");
|
|
15
15
|
const logger_1 = require("../../../../utils/logger");
|
|
16
|
+
// DashScope hosts Wan endpoints under three task-typed paths. We pick at submit
|
|
17
|
+
// time based on which inputs are present (audio → s2v, image → i2v, else t2v).
|
|
18
|
+
const ALIBABA_BASE = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc";
|
|
19
|
+
const ENDPOINT_T2V = `${ALIBABA_BASE}/video-generation/video-synthesis`;
|
|
20
|
+
const ENDPOINT_I2V = `${ALIBABA_BASE}/image2video/video-synthesis`;
|
|
21
|
+
const ENDPOINT_S2V = `${ALIBABA_BASE}/sound2video/video-synthesis`;
|
|
22
|
+
// All three share the same /tasks/{task_id} status endpoint.
|
|
23
|
+
const ENDPOINT_TASK_STATUS = "https://dashscope-intl.aliyuncs.com/api/v1/tasks";
|
|
16
24
|
class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
|
|
17
25
|
constructor() {
|
|
18
26
|
super();
|
|
19
|
-
this.baseUrl =
|
|
27
|
+
this.baseUrl = ENDPOINT_T2V; // legacy default; used by getCreditUsed only
|
|
20
28
|
this.timeout = 60000; // 60 seconds
|
|
21
29
|
if (!process.env.ALIBABA_API_KEY) {
|
|
22
30
|
throw new Error("Missing ALIBABA_API_KEY in environment variables");
|
|
@@ -43,31 +51,56 @@ class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
43
51
|
const modelId = modelConfig?.modelId;
|
|
44
52
|
if (!modelId)
|
|
45
53
|
throw new Error(`Unknown modelKey: ${params.modelKey}`);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
input
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
// Endpoint selection: audio wins (S2V), then image (I2V), else T2V.
|
|
55
|
+
const isS2V = !!params.inputAudioUrl;
|
|
56
|
+
const isI2V = !isS2V && !!params.inputImageUrl;
|
|
57
|
+
const endpoint = isS2V ? ENDPOINT_S2V : isI2V ? ENDPOINT_I2V : ENDPOINT_T2V;
|
|
58
|
+
const input = {};
|
|
59
|
+
if (params.prompt)
|
|
60
|
+
input.prompt = params.prompt;
|
|
61
|
+
if (params.negativePrompt)
|
|
62
|
+
input.negative_prompt = params.negativePrompt;
|
|
63
|
+
if (isI2V) {
|
|
64
|
+
input.img_url = params.inputImageUrl;
|
|
65
|
+
// Wan 2.7 i2v supports first-last-frame interpolation
|
|
66
|
+
if (params.lastFrameImageUrl)
|
|
67
|
+
input.last_frame_url = params.lastFrameImageUrl;
|
|
68
|
+
}
|
|
69
|
+
if (isS2V) {
|
|
70
|
+
input.audio_url = params.inputAudioUrl;
|
|
71
|
+
if (params.inputImageUrl)
|
|
72
|
+
input.image_url = params.inputImageUrl;
|
|
73
|
+
}
|
|
74
|
+
const parameters = {
|
|
75
|
+
duration: params.duration || 5,
|
|
76
|
+
prompt_extend: params.promptOptimizer ?? true,
|
|
60
77
|
};
|
|
61
|
-
|
|
62
|
-
if (!
|
|
78
|
+
// T2V requires explicit size; I2V/S2V derive from inputs.
|
|
79
|
+
if (!isI2V && !isS2V) {
|
|
80
|
+
const size = (0, helpers_1.getAlibabaDimensions)(params.resolution, params.aspectRatio);
|
|
81
|
+
if (!size) {
|
|
82
|
+
throw new Error(`Invalid resolution/aspect ratio combination: ${params.resolution} ${params.aspectRatio}`);
|
|
83
|
+
}
|
|
84
|
+
parameters.size = size;
|
|
85
|
+
}
|
|
86
|
+
if (params.seed !== undefined)
|
|
87
|
+
parameters.seed = params.seed;
|
|
88
|
+
if (params.watermark !== undefined)
|
|
89
|
+
parameters.watermark = params.watermark;
|
|
90
|
+
const body = { model: modelId, input, parameters };
|
|
91
|
+
const result = await this.request(body, "POST", endpoint);
|
|
92
|
+
// DashScope returns { output: { task_id, ... } } on async submit.
|
|
93
|
+
const taskId = result?.output?.task_id || result?.request_id;
|
|
94
|
+
if (!result || !taskId) {
|
|
63
95
|
throw new Error("No response from Alibaba API");
|
|
96
|
+
}
|
|
64
97
|
return {
|
|
65
|
-
task:
|
|
98
|
+
task: taskId,
|
|
66
99
|
status: types_1.EVideoSceneStatus.TRIGGERED,
|
|
67
100
|
};
|
|
68
101
|
}
|
|
69
|
-
async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
|
|
70
|
-
const statusUrl = `${
|
|
102
|
+
async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", modelKey, }) {
|
|
103
|
+
const statusUrl = `${ENDPOINT_TASK_STATUS}/${task}`;
|
|
71
104
|
const result = await this.request(null, "GET", statusUrl);
|
|
72
105
|
if (!result) {
|
|
73
106
|
return {
|
|
@@ -106,7 +139,13 @@ class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
106
139
|
};
|
|
107
140
|
}
|
|
108
141
|
catch (downloadErr) {
|
|
109
|
-
|
|
142
|
+
logger_1.logger.error("Error downloading or saving Alibaba video", {
|
|
143
|
+
taskId: task,
|
|
144
|
+
outputFilename,
|
|
145
|
+
modelKey,
|
|
146
|
+
videoUrl,
|
|
147
|
+
err: downloadErr?.stack ?? downloadErr?.message ?? String(downloadErr),
|
|
148
|
+
});
|
|
110
149
|
return {
|
|
111
150
|
status: types_1.EVideoSceneStatus.FAILED,
|
|
112
151
|
errorMessage: "Error downloading or saving video file",
|
|
@@ -121,8 +160,102 @@ class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
121
160
|
}
|
|
122
161
|
return { status: types_1.EVideoSceneStatus.PENDING };
|
|
123
162
|
}
|
|
124
|
-
|
|
163
|
+
/**
|
|
164
|
+
* DashScope image generation. Both Kolors and Qwen-Image are async on
|
|
165
|
+
* DashScope — submit returns a task_id, then poll /tasks/{id}. Image jobs
|
|
166
|
+
* typically finish in 5–15s, well inside our HTTP timeout, so we poll
|
|
167
|
+
* inline rather than going through BullMQ.
|
|
168
|
+
*
|
|
169
|
+
* Endpoint selection:
|
|
170
|
+
* - Qwen-Image edit (modelId qwen-image-edit*): /image2image/image-synthesis
|
|
171
|
+
* - Everything else (Qwen T2I, Kolors): /text2image/image-synthesis
|
|
172
|
+
*/
|
|
173
|
+
async generateImage(params) {
|
|
174
|
+
const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
|
|
175
|
+
const modelId = modelConfig?.modelId;
|
|
176
|
+
if (!modelId)
|
|
177
|
+
throw new Error(`Unknown image modelKey: ${params.modelKey}`);
|
|
178
|
+
const isEdit = modelId.startsWith("qwen-image-edit");
|
|
179
|
+
const submitUrl = isEdit
|
|
180
|
+
? `${ALIBABA_BASE}/image2image/image-synthesis`
|
|
181
|
+
: `${ALIBABA_BASE}/text2image/image-synthesis`;
|
|
182
|
+
const input = { prompt: params.prompt };
|
|
183
|
+
if (params.negativePrompt)
|
|
184
|
+
input.negative_prompt = params.negativePrompt;
|
|
185
|
+
if (isEdit) {
|
|
186
|
+
const refs = [
|
|
187
|
+
...(params.inputImageUrl ? [params.inputImageUrl] : []),
|
|
188
|
+
...(params.inputImageUrls ?? []),
|
|
189
|
+
];
|
|
190
|
+
if (!refs.length) {
|
|
191
|
+
throw new Error("Qwen-Image edit requires at least one input image");
|
|
192
|
+
}
|
|
193
|
+
// Qwen edit accepts 1–3 refs as base_image_url.
|
|
194
|
+
input.base_image_url = refs.length === 1 ? refs[0] : refs.slice(0, 3);
|
|
195
|
+
}
|
|
196
|
+
const parameters = {
|
|
197
|
+
n: params.numImages ?? 1,
|
|
198
|
+
...(params.aspectRatio ? { size: params.aspectRatio } : {}),
|
|
199
|
+
...(params.imageSize ? { size: params.imageSize } : {}),
|
|
200
|
+
...(params.seed !== undefined ? { seed: params.seed } : {}),
|
|
201
|
+
...(params.watermark !== undefined ? { watermark: params.watermark } : {}),
|
|
202
|
+
...(params.promptOptimizer !== undefined
|
|
203
|
+
? { prompt_extend: params.promptOptimizer }
|
|
204
|
+
: { prompt_extend: true }),
|
|
205
|
+
};
|
|
206
|
+
const submit = await this.request({ model: modelId, input, parameters }, "POST", submitUrl);
|
|
207
|
+
const taskId = submit?.output?.task_id;
|
|
208
|
+
if (!taskId) {
|
|
209
|
+
throw new Error("DashScope image submit returned no task_id");
|
|
210
|
+
}
|
|
211
|
+
// Poll up to 90s, every 2s. Image jobs are quick.
|
|
212
|
+
const maxAttempts = 45;
|
|
213
|
+
const intervalMs = 2000;
|
|
214
|
+
let lastResult = null;
|
|
215
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
216
|
+
await new Promise((r) => setTimeout(r, intervalMs));
|
|
217
|
+
const poll = await this.request(null, "GET", `${ENDPOINT_TASK_STATUS}/${taskId}`);
|
|
218
|
+
const status = poll?.output?.task_status ?? poll?.status;
|
|
219
|
+
if (status === "SUCCEEDED" || status === "succeeded") {
|
|
220
|
+
lastResult = poll;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
if (status === "FAILED" || status === "failed") {
|
|
224
|
+
throw new Error(`DashScope image task failed: ${poll?.output?.message ?? "unknown"}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
if (!lastResult) {
|
|
228
|
+
throw new Error("DashScope image task timed out after 90s");
|
|
229
|
+
}
|
|
230
|
+
const results = lastResult.output?.results ?? [];
|
|
231
|
+
const remoteUrls = results.map((r) => r.url).filter((u) => !!u);
|
|
232
|
+
if (!remoteUrls.length) {
|
|
233
|
+
throw new Error("DashScope image task returned no URLs");
|
|
234
|
+
}
|
|
235
|
+
const bucket = (0, firebase_1.getBucket)();
|
|
236
|
+
const ts = Date.now();
|
|
237
|
+
const urls = [];
|
|
238
|
+
for (let i = 0; i < remoteUrls.length; i++) {
|
|
239
|
+
const remoteUrl = remoteUrls[i];
|
|
240
|
+
const bytes = Buffer.from(await (await axios_1.default.get(remoteUrl, { responseType: "arraybuffer", timeout: this.timeout })).data);
|
|
241
|
+
const path = `images/dashscope/${ts}-${Math.random().toString(36).slice(2, 8)}-${i}.png`;
|
|
242
|
+
const file = bucket.file(path);
|
|
243
|
+
await file.save(bytes, { contentType: "image/png" });
|
|
244
|
+
const [signed] = await file.getSignedUrl({ action: "read", expires: "03-09-2491" });
|
|
245
|
+
urls.push(signed);
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
imageUrl: urls[0],
|
|
249
|
+
imageUrls: urls.length > 1 ? urls : undefined,
|
|
250
|
+
providerRequestId: taskId,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
getCreditUsed({ modelKey, resolution, aspectRatio, duration, multiClip = false, numImages = 1, }) {
|
|
125
254
|
const modelConfig = aiModels_1.aiModelConfigs[modelKey];
|
|
255
|
+
// Image-gen — flat per-image cost (Kolors / Qwen-Image).
|
|
256
|
+
if (modelConfig?.cost?.fixed !== undefined) {
|
|
257
|
+
return (0, utils_1.getCreditsFromCost)(modelConfig.cost.fixed * Math.max(1, numImages), !multiClip);
|
|
258
|
+
}
|
|
126
259
|
const dimensions = (0, helpers_1.getAlibabaDimensions)(resolution, aspectRatio);
|
|
127
260
|
const cost = modelConfig.cost?.table?.[dimensions]?.[duration];
|
|
128
261
|
if (!cost) {
|
|
@@ -1,8 +1,26 @@
|
|
|
1
|
-
import { CreditUsageParams, TextGenerationParams, TextGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "./types";
|
|
1
|
+
import { CreditUsageParams, ImageGenerationParams, ImageGenerationResult, MusicGenerationParams, MusicGenerationResult, SfxGenerationParams, SfxGenerationResult, StockSearchParams, StockSearchResult, TextGenerationParams, TextGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for every AI-generation provider (video, image, text).
|
|
4
|
+
*
|
|
5
|
+
* All capability methods have default throw-implementations so providers only
|
|
6
|
+
* override what they support — a video-only provider doesn't need to stub
|
|
7
|
+
* generateImage, an image-only provider doesn't need to stub generateVideo.
|
|
8
|
+
*
|
|
9
|
+
* Callers should either know what capability they need (factory routes by
|
|
10
|
+
* model type) or guard with try/catch.
|
|
11
|
+
*/
|
|
2
12
|
export declare abstract class BaseAiGenProviderService {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
generateText
|
|
13
|
+
generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
|
|
14
|
+
checkVideoStatus(params: VideoStatusParams): Promise<VideoStatusResult>;
|
|
15
|
+
generateText(params: TextGenerationParams): Promise<TextGenerationResult>;
|
|
16
|
+
/** Synchronous image generation (text-to-image, image-to-image). */
|
|
17
|
+
generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
|
|
18
|
+
/** Synchronous music generation (text-to-music, optionally with lyrics + style reference). */
|
|
19
|
+
generateMusic(params: MusicGenerationParams): Promise<MusicGenerationResult>;
|
|
20
|
+
/** Synchronous sound-effects generation (text-to-sfx). */
|
|
21
|
+
generateSoundEffects(params: SfxGenerationParams): Promise<SfxGenerationResult>;
|
|
22
|
+
/** Stock asset search (T0 tier providers like Pexels/Pixabay). */
|
|
23
|
+
searchStock(params: StockSearchParams): Promise<StockSearchResult>;
|
|
6
24
|
getCreditUsed(params: CreditUsageParams): number;
|
|
7
25
|
}
|
|
8
26
|
//# sourceMappingURL=baseAiGenProvider.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAiGenProvider.service.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/baseAiGenProvider.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseAiGenProvider.service.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/baseAiGenProvider.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;GASG;AACH,8BAAsB,wBAAwB;IACtC,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAI3B,gBAAgB,CACpB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC;IAIvB,YAAY,CAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IAIhC,oEAAoE;IAC9D,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAIjC,8FAA8F;IACxF,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAIjC,0DAA0D;IACpD,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IAI/B,kEAAkE;IAC5D,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxE,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAGjD"}
|
|
@@ -1,10 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseAiGenProviderService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base class for every AI-generation provider (video, image, text).
|
|
6
|
+
*
|
|
7
|
+
* All capability methods have default throw-implementations so providers only
|
|
8
|
+
* override what they support — a video-only provider doesn't need to stub
|
|
9
|
+
* generateImage, an image-only provider doesn't need to stub generateVideo.
|
|
10
|
+
*
|
|
11
|
+
* Callers should either know what capability they need (factory routes by
|
|
12
|
+
* model type) or guard with try/catch.
|
|
13
|
+
*/
|
|
4
14
|
class BaseAiGenProviderService {
|
|
15
|
+
async generateVideo(params) {
|
|
16
|
+
throw new Error("generateVideo not implemented for this provider");
|
|
17
|
+
}
|
|
18
|
+
async checkVideoStatus(params) {
|
|
19
|
+
throw new Error("checkVideoStatus not implemented for this provider");
|
|
20
|
+
}
|
|
5
21
|
async generateText(params) {
|
|
6
22
|
throw new Error("generateText not implemented for this provider");
|
|
7
23
|
}
|
|
24
|
+
/** Synchronous image generation (text-to-image, image-to-image). */
|
|
25
|
+
async generateImage(params) {
|
|
26
|
+
throw new Error("generateImage not implemented for this provider");
|
|
27
|
+
}
|
|
28
|
+
/** Synchronous music generation (text-to-music, optionally with lyrics + style reference). */
|
|
29
|
+
async generateMusic(params) {
|
|
30
|
+
throw new Error("generateMusic not implemented for this provider");
|
|
31
|
+
}
|
|
32
|
+
/** Synchronous sound-effects generation (text-to-sfx). */
|
|
33
|
+
async generateSoundEffects(params) {
|
|
34
|
+
throw new Error("generateSoundEffects not implemented for this provider");
|
|
35
|
+
}
|
|
36
|
+
/** Stock asset search (T0 tier providers like Pexels/Pixabay). */
|
|
37
|
+
async searchStock(params) {
|
|
38
|
+
throw new Error("searchStock not implemented for this provider");
|
|
39
|
+
}
|
|
8
40
|
getCreditUsed(params) {
|
|
9
41
|
throw new Error("getCreditUsed not implemented for this provider");
|
|
10
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytedance.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/bytedance/bytedance.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAUlB,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsD;IAI9E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;IAIb,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"bytedance.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/bytedance/bytedance.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAUlB,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsD;IAI9E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;IAIb,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAuJ3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2HjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CA0DjD"}
|