vidspotai-shared 1.0.69-dev.0 → 1.0.69
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 +6 -63
- package/lib/globals/aiModels/enums.d.ts.map +1 -1
- package/lib/globals/aiModels/enums.js +9 -78
- package/lib/globals/aiModels/index.d.ts +30 -2
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +35 -7
- package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/bytedance.js +0 -19
- package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/google.js +2 -150
- package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/kling.js +37 -280
- package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/minimax.js +11 -76
- package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/openai.js +6 -90
- package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/pixverse.js +29 -111
- package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/runway.js +2 -64
- package/lib/globals/aiModels/types.d.ts +1 -20
- package/lib/globals/aiModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.d.ts +0 -2
- package/lib/globals/ttsModels/index.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.js +1 -9
- 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 +4 -39
- package/lib/globals/ttsModels/voices.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.js +26 -273
- package/lib/globals/types.d.ts +1 -59
- package/lib/globals/types.d.ts.map +1 -1
- package/lib/globals/types.js +2 -81
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -1
- package/lib/models/index.d.ts +0 -6
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/index.js +0 -6
- package/lib/models/user.model.d.ts +1 -12
- package/lib/models/user.model.d.ts.map +1 -1
- package/lib/models/video.model.d.ts +8 -120
- package/lib/models/video.model.d.ts.map +1 -1
- package/lib/models/video.model.js +0 -10
- package/lib/services/aiGen/aiGenFactory.service.d.ts +1 -21
- package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
- package/lib/services/aiGen/aiGenFactory.service.js +21 -84
- package/lib/services/aiGen/helpers.d.ts.map +1 -1
- package/lib/services/aiGen/helpers.js +0 -10
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +3 -14
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
- package/lib/services/aiGen/providers/alibaba/alibaba.js +22 -155
- package/lib/services/aiGen/providers/azure/azure.service.d.ts +14 -0
- package/lib/services/aiGen/providers/azure/azure.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/azure/azure.service.js +108 -0
- package/lib/services/aiGen/providers/azure/index.d.ts +2 -0
- package/lib/services/aiGen/providers/azure/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/{pexels → azure}/index.js +1 -1
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts +4 -22
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/baseAiGenProvider.service.js +0 -32
- package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/bytedance/bytedance.service.js +25 -13
- package/lib/services/aiGen/providers/google/google.service.d.ts +2 -11
- package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/google/google.service.js +28 -245
- package/lib/services/aiGen/providers/index.d.ts +0 -3
- package/lib/services/aiGen/providers/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/index.js +0 -3
- package/lib/services/aiGen/providers/kling/index.d.ts +0 -1
- package/lib/services/aiGen/providers/kling/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/index.js +0 -1
- package/lib/services/aiGen/providers/kling/kling.service.d.ts +1 -12
- package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/kling.service.js +26 -357
- package/lib/services/aiGen/providers/kling/types.d.ts +0 -105
- package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +2 -15
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.js +5 -128
- package/lib/services/aiGen/providers/minimax/types.d.ts +1 -10
- package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.d.ts +2 -8
- package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.js +7 -184
- package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/pixverse/pixverse.service.js +2 -125
- package/lib/services/aiGen/providers/runway/runway.service.d.ts +2 -12
- package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/runway/runway.service.js +21 -224
- package/lib/services/aiGen/providers/types.d.ts +6 -263
- package/lib/services/aiGen/providers/types.d.ts.map +1 -1
- package/lib/services/analytics.service.js +4 -2
- package/lib/services/bullmq.service.d.ts +1 -6
- package/lib/services/bullmq.service.d.ts.map +1 -1
- package/lib/services/bullmq.service.js +14 -62
- package/lib/services/credit.service.d.ts.map +1 -1
- package/lib/services/credit.service.js +7 -45
- package/lib/services/firestore.service.d.ts +0 -17
- package/lib/services/firestore.service.d.ts.map +1 -1
- package/lib/services/firestore.service.js +0 -30
- package/lib/services/gcp/index.d.ts +0 -1
- package/lib/services/gcp/index.d.ts.map +1 -1
- package/lib/services/gcp/index.js +0 -1
- package/lib/services/index.d.ts +0 -13
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +0 -13
- package/lib/services/redis.service.d.ts +0 -9
- package/lib/services/redis.service.d.ts.map +1 -1
- package/lib/services/redis.service.js +11 -20
- package/lib/services/tts/index.d.ts +0 -2
- package/lib/services/tts/index.d.ts.map +1 -1
- package/lib/services/tts/index.js +0 -2
- package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
- package/lib/services/tts/providers/elevenlabs.service.js +24 -91
- package/lib/services/tts/ttsFactory.service.d.ts.map +1 -1
- package/lib/services/tts/ttsFactory.service.js +0 -6
- package/lib/services/tts/types.d.ts +0 -33
- package/lib/services/tts/types.d.ts.map +1 -1
- package/lib/utils/errors.d.ts +0 -8
- package/lib/utils/errors.d.ts.map +1 -1
- package/lib/utils/errors.js +0 -8
- package/lib/utils/helpers.d.ts +0 -13
- package/lib/utils/helpers.d.ts.map +1 -1
- package/lib/utils/helpers.js +11 -48
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +1 -37
- package/package.json +1 -5
- package/lib/globals/aiModels/providers/alibaba.d.ts +0 -4
- package/lib/globals/aiModels/providers/alibaba.d.ts.map +0 -1
- package/lib/globals/aiModels/providers/alibaba.js +0 -194
- package/lib/globals/aiModels/providers/elevenlabs.d.ts +0 -14
- package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +0 -1
- package/lib/globals/aiModels/providers/elevenlabs.js +0 -29
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +0 -36
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +0 -1
- package/lib/globals/aiModels/providers/pixverseTemplates.js +0 -42
- package/lib/globals/aiModels/tierHelpers.d.ts +0 -33
- package/lib/globals/aiModels/tierHelpers.d.ts.map +0 -1
- package/lib/globals/aiModels/tierHelpers.js +0 -109
- package/lib/globals/ttsModels/providers/minimax.d.ts +0 -8
- package/lib/globals/ttsModels/providers/minimax.d.ts.map +0 -1
- package/lib/globals/ttsModels/providers/minimax.js +0 -18
- package/lib/globals/ttsModels/providers/openai.d.ts +0 -12
- package/lib/globals/ttsModels/providers/openai.d.ts.map +0 -1
- package/lib/globals/ttsModels/providers/openai.js +0 -22
- package/lib/models/agent.model.d.ts +0 -357
- package/lib/models/agent.model.d.ts.map +0 -1
- package/lib/models/agent.model.js +0 -21
- package/lib/models/cachedAsset.model.d.ts +0 -18
- package/lib/models/cachedAsset.model.d.ts.map +0 -1
- package/lib/models/cachedAsset.model.js +0 -2
- package/lib/models/cachedRawAsset.model.d.ts +0 -20
- package/lib/models/cachedRawAsset.model.d.ts.map +0 -1
- package/lib/models/cachedRawAsset.model.js +0 -2
- package/lib/models/image.model.d.ts +0 -47
- package/lib/models/image.model.d.ts.map +0 -1
- package/lib/models/image.model.js +0 -2
- package/lib/models/notification.model.d.ts +0 -25
- package/lib/models/notification.model.d.ts.map +0 -1
- package/lib/models/notification.model.js +0 -2
- package/lib/models/ref.model.d.ts +0 -80
- package/lib/models/ref.model.d.ts.map +0 -1
- package/lib/models/ref.model.js +0 -13
- package/lib/models/share.model.d.ts +0 -29
- package/lib/models/share.model.d.ts.map +0 -1
- package/lib/models/share.model.js +0 -2
- package/lib/schemas/agentPersona.schema.d.ts +0 -10
- package/lib/schemas/agentPersona.schema.d.ts.map +0 -1
- package/lib/schemas/agentPersona.schema.js +0 -11
- package/lib/schemas/agentRunJob.schema.d.ts +0 -105
- package/lib/schemas/agentRunJob.schema.d.ts.map +0 -1
- package/lib/schemas/agentRunJob.schema.js +0 -88
- package/lib/schemas/brandKit.schema.d.ts +0 -113
- package/lib/schemas/brandKit.schema.d.ts.map +0 -1
- package/lib/schemas/brandKit.schema.js +0 -46
- package/lib/schemas/brief.schema.d.ts +0 -263
- package/lib/schemas/brief.schema.d.ts.map +0 -1
- package/lib/schemas/brief.schema.js +0 -157
- package/lib/schemas/index.d.ts +0 -7
- package/lib/schemas/index.d.ts.map +0 -1
- package/lib/schemas/index.js +0 -22
- package/lib/schemas/project.schema.d.ts +0 -1025
- package/lib/schemas/project.schema.d.ts.map +0 -1
- package/lib/schemas/project.schema.js +0 -256
- package/lib/schemas/videoPlan.schema.d.ts +0 -590
- package/lib/schemas/videoPlan.schema.d.ts.map +0 -1
- package/lib/schemas/videoPlan.schema.js +0 -412
- package/lib/services/agent/beatSnap.d.ts +0 -10
- package/lib/services/agent/beatSnap.d.ts.map +0 -1
- package/lib/services/agent/beatSnap.js +0 -128
- package/lib/services/agent/bibleBuilder.d.ts +0 -43
- package/lib/services/agent/bibleBuilder.d.ts.map +0 -1
- package/lib/services/agent/bibleBuilder.js +0 -102
- package/lib/services/agent/bibleImageVision.d.ts +0 -45
- package/lib/services/agent/bibleImageVision.d.ts.map +0 -1
- package/lib/services/agent/bibleImageVision.js +0 -169
- package/lib/services/agent/chatAgent.d.ts +0 -79
- package/lib/services/agent/chatAgent.d.ts.map +0 -1
- package/lib/services/agent/chatAgent.js +0 -136
- package/lib/services/agent/costPreflight.d.ts +0 -61
- package/lib/services/agent/costPreflight.d.ts.map +0 -1
- package/lib/services/agent/costPreflight.js +0 -143
- package/lib/services/agent/critic.d.ts +0 -103
- package/lib/services/agent/critic.d.ts.map +0 -1
- package/lib/services/agent/critic.js +0 -139
- package/lib/services/agent/editClassifier.d.ts +0 -262
- package/lib/services/agent/editClassifier.d.ts.map +0 -1
- package/lib/services/agent/editClassifier.js +0 -186
- package/lib/services/agent/eval/index.d.ts +0 -5
- package/lib/services/agent/eval/index.d.ts.map +0 -1
- package/lib/services/agent/eval/index.js +0 -20
- package/lib/services/agent/eval/judge.d.ts +0 -14
- package/lib/services/agent/eval/judge.d.ts.map +0 -1
- package/lib/services/agent/eval/judge.js +0 -96
- package/lib/services/agent/eval/recorder.d.ts +0 -28
- package/lib/services/agent/eval/recorder.d.ts.map +0 -1
- package/lib/services/agent/eval/recorder.js +0 -100
- package/lib/services/agent/eval/seedBriefs.d.ts +0 -16
- package/lib/services/agent/eval/seedBriefs.d.ts.map +0 -1
- package/lib/services/agent/eval/seedBriefs.js +0 -1188
- package/lib/services/agent/eval/types.d.ts +0 -230
- package/lib/services/agent/eval/types.d.ts.map +0 -1
- package/lib/services/agent/eval/types.js +0 -73
- package/lib/services/agent/executor.d.ts +0 -141
- package/lib/services/agent/executor.d.ts.map +0 -1
- package/lib/services/agent/executor.js +0 -561
- package/lib/services/agent/globalActions.d.ts +0 -49
- package/lib/services/agent/globalActions.d.ts.map +0 -1
- package/lib/services/agent/globalActions.js +0 -328
- package/lib/services/agent/index.d.ts +0 -38
- package/lib/services/agent/index.d.ts.map +0 -1
- package/lib/services/agent/index.js +0 -53
- package/lib/services/agent/llmCaller.d.ts +0 -144
- package/lib/services/agent/llmCaller.d.ts.map +0 -1
- package/lib/services/agent/llmCaller.js +0 -16
- package/lib/services/agent/llmCallerAnthropic.d.ts +0 -90
- package/lib/services/agent/llmCallerAnthropic.d.ts.map +0 -1
- package/lib/services/agent/llmCallerAnthropic.js +0 -255
- package/lib/services/agent/llmCallerGateway.d.ts +0 -61
- package/lib/services/agent/llmCallerGateway.d.ts.map +0 -1
- package/lib/services/agent/llmCallerGateway.js +0 -360
- package/lib/services/agent/llmCallerRegistry.d.ts +0 -6
- package/lib/services/agent/llmCallerRegistry.d.ts.map +0 -1
- package/lib/services/agent/llmCallerRegistry.js +0 -39
- package/lib/services/agent/modelQualityNotes.d.ts +0 -100
- package/lib/services/agent/modelQualityNotes.d.ts.map +0 -1
- package/lib/services/agent/modelQualityNotes.js +0 -248
- package/lib/services/agent/modelRouter.d.ts +0 -41
- package/lib/services/agent/modelRouter.d.ts.map +0 -1
- package/lib/services/agent/modelRouter.js +0 -65
- package/lib/services/agent/musicSelect.d.ts +0 -23
- package/lib/services/agent/musicSelect.d.ts.map +0 -1
- package/lib/services/agent/musicSelect.js +0 -109
- package/lib/services/agent/overlayRenderer.d.ts +0 -67
- package/lib/services/agent/overlayRenderer.d.ts.map +0 -1
- package/lib/services/agent/overlayRenderer.js +0 -253
- package/lib/services/agent/perSceneCritic.d.ts +0 -90
- package/lib/services/agent/perSceneCritic.d.ts.map +0 -1
- package/lib/services/agent/perSceneCritic.js +0 -125
- package/lib/services/agent/personas.d.ts +0 -78
- package/lib/services/agent/personas.d.ts.map +0 -1
- package/lib/services/agent/personas.js +0 -177
- package/lib/services/agent/planDiff.d.ts +0 -76
- package/lib/services/agent/planDiff.d.ts.map +0 -1
- package/lib/services/agent/planDiff.js +0 -182
- package/lib/services/agent/planMutations.d.ts +0 -46
- package/lib/services/agent/planMutations.d.ts.map +0 -1
- package/lib/services/agent/planMutations.js +0 -120
- package/lib/services/agent/planner/Planner.d.ts +0 -107
- package/lib/services/agent/planner/Planner.d.ts.map +0 -1
- package/lib/services/agent/planner/Planner.js +0 -591
- package/lib/services/agent/planner/overlaySanity.d.ts +0 -7
- package/lib/services/agent/planner/overlaySanity.d.ts.map +0 -1
- package/lib/services/agent/planner/overlaySanity.js +0 -86
- package/lib/services/agent/planner/promptSections.d.ts +0 -25
- package/lib/services/agent/planner/promptSections.d.ts.map +0 -1
- package/lib/services/agent/planner/promptSections.js +0 -174
- package/lib/services/agent/planner/repair.d.ts +0 -16
- package/lib/services/agent/planner/repair.d.ts.map +0 -1
- package/lib/services/agent/planner/repair.js +0 -51
- package/lib/services/agent/planner/structuralRules.d.ts +0 -10
- package/lib/services/agent/planner/structuralRules.d.ts.map +0 -1
- package/lib/services/agent/planner/structuralRules.js +0 -111
- package/lib/services/agent/planner/validators.d.ts +0 -65
- package/lib/services/agent/planner/validators.d.ts.map +0 -1
- package/lib/services/agent/planner/validators.js +0 -284
- package/lib/services/agent/planner.d.ts +0 -3
- package/lib/services/agent/planner.d.ts.map +0 -1
- package/lib/services/agent/planner.js +0 -14
- package/lib/services/agent/providerFallback/chains.d.ts +0 -100
- package/lib/services/agent/providerFallback/chains.d.ts.map +0 -1
- package/lib/services/agent/providerFallback/chains.js +0 -198
- package/lib/services/agent/providerFallback/classifier.d.ts +0 -36
- package/lib/services/agent/providerFallback/classifier.d.ts.map +0 -1
- package/lib/services/agent/providerFallback/classifier.js +0 -103
- package/lib/services/agent/providerFallback/index.d.ts +0 -4
- package/lib/services/agent/providerFallback/index.d.ts.map +0 -1
- package/lib/services/agent/providerFallback/index.js +0 -19
- package/lib/services/agent/providerFallback/withFallback.d.ts +0 -60
- package/lib/services/agent/providerFallback/withFallback.d.ts.map +0 -1
- package/lib/services/agent/providerFallback/withFallback.js +0 -93
- package/lib/services/agent/providerTaskCache.d.ts +0 -50
- package/lib/services/agent/providerTaskCache.d.ts.map +0 -1
- package/lib/services/agent/providerTaskCache.js +0 -98
- package/lib/services/agent/qualityGate.d.ts +0 -82
- package/lib/services/agent/qualityGate.d.ts.map +0 -1
- package/lib/services/agent/qualityGate.js +0 -232
- package/lib/services/agent/referenceImageRenderer.d.ts +0 -37
- package/lib/services/agent/referenceImageRenderer.d.ts.map +0 -1
- package/lib/services/agent/referenceImageRenderer.js +0 -92
- package/lib/services/agent/regenCore.d.ts +0 -60
- package/lib/services/agent/regenCore.d.ts.map +0 -1
- package/lib/services/agent/regenCore.js +0 -487
- package/lib/services/agent/runHelpers.d.ts +0 -44
- package/lib/services/agent/runHelpers.d.ts.map +0 -1
- package/lib/services/agent/runHelpers.js +0 -196
- package/lib/services/agent/sceneLayoutVision.d.ts +0 -90
- package/lib/services/agent/sceneLayoutVision.d.ts.map +0 -1
- package/lib/services/agent/sceneLayoutVision.js +0 -212
- package/lib/services/agent/stitchedVideoCritic.d.ts +0 -136
- package/lib/services/agent/stitchedVideoCritic.d.ts.map +0 -1
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts +0 -26
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts.map +0 -1
- package/lib/services/agent/stitchedVideoCritic.gemini.js +0 -198
- package/lib/services/agent/stitchedVideoCritic.js +0 -162
- package/lib/services/agent/taskPoller.d.ts +0 -65
- package/lib/services/agent/taskPoller.d.ts.map +0 -1
- package/lib/services/agent/taskPoller.js +0 -176
- package/lib/services/agent/textOverlayStyles.d.ts +0 -60
- package/lib/services/agent/textOverlayStyles.d.ts.map +0 -1
- package/lib/services/agent/textOverlayStyles.js +0 -174
- package/lib/services/agent/toolRegistry.d.ts +0 -73
- package/lib/services/agent/toolRegistry.d.ts.map +0 -1
- package/lib/services/agent/toolRegistry.js +0 -95
- package/lib/services/agent/tools/analyzeReference.tool.d.ts +0 -36
- package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/analyzeReference.tool.js +0 -44
- package/lib/services/agent/tools/animateImage.tool.d.ts +0 -24
- package/lib/services/agent/tools/animateImage.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/animateImage.tool.js +0 -115
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +0 -32
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +0 -135
- package/lib/services/agent/tools/composeScene.tool.d.ts +0 -978
- package/lib/services/agent/tools/composeScene.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/composeScene.tool.js +0 -90
- package/lib/services/agent/tools/estimateCost.tool.d.ts +0 -352
- package/lib/services/agent/tools/estimateCost.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/estimateCost.tool.js +0 -62
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +0 -32
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/generateAvatarVideo.tool.js +0 -143
- package/lib/services/agent/tools/generateCaptions.tool.d.ts +0 -42
- package/lib/services/agent/tools/generateCaptions.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/generateCaptions.tool.js +0 -196
- package/lib/services/agent/tools/generateImage.tool.d.ts +0 -74
- package/lib/services/agent/tools/generateImage.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/generateImage.tool.js +0 -206
- package/lib/services/agent/tools/generateVideo.tool.d.ts +0 -31
- package/lib/services/agent/tools/generateVideo.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/generateVideo.tool.js +0 -153
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts +0 -44
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/generateVoiceover.tool.js +0 -206
- package/lib/services/agent/tools/index.d.ts +0 -20
- package/lib/services/agent/tools/index.d.ts.map +0 -1
- package/lib/services/agent/tools/index.js +0 -35
- package/lib/services/agent/tools/planVideo.tool.d.ts +0 -343
- package/lib/services/agent/tools/planVideo.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/planVideo.tool.js +0 -46
- package/lib/services/agent/tools/render.tool.d.ts +0 -367
- package/lib/services/agent/tools/render.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/render.tool.js +0 -48
- package/lib/services/agent/tools/searchMusic.tool.d.ts +0 -49
- package/lib/services/agent/tools/searchMusic.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/searchMusic.tool.js +0 -74
- package/lib/services/agent/tools/searchStock.tool.d.ts +0 -41
- package/lib/services/agent/tools/searchStock.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/searchStock.tool.js +0 -314
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +0 -59
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +0 -1
- package/lib/services/agent/tools/searchUserLibrary.tool.js +0 -58
- package/lib/services/agent/ttsDuration.d.ts +0 -29
- package/lib/services/agent/ttsDuration.d.ts.map +0 -1
- package/lib/services/agent/ttsDuration.js +0 -60
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +0 -31
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +0 -1
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +0 -2
- package/lib/services/aiGen/canonicalAdapters/index.d.ts +0 -3
- package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +0 -1
- package/lib/services/aiGen/canonicalAdapters/index.js +0 -18
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +0 -23
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +0 -1
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +0 -12
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +0 -18
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +0 -102
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts +0 -15
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/fal/falImage.service.js +0 -141
- package/lib/services/aiGen/providers/fal/index.d.ts +0 -2
- package/lib/services/aiGen/providers/fal/index.d.ts.map +0 -1
- package/lib/services/aiGen/providers/fal/index.js +0 -17
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +0 -4
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +0 -1
- package/lib/services/aiGen/providers/kling/cameraAdapter.js +0 -53
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts +0 -21
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/kling/klingImage.service.js +0 -208
- package/lib/services/aiGen/providers/pexels/index.d.ts +0 -2
- package/lib/services/aiGen/providers/pexels/index.d.ts.map +0 -1
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +0 -11
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/pexels/pexels.service.js +0 -150
- package/lib/services/aiGen/providers/pixabay/index.d.ts +0 -2
- package/lib/services/aiGen/providers/pixabay/index.d.ts.map +0 -1
- package/lib/services/aiGen/providers/pixabay/index.js +0 -17
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts +0 -12
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/pixabay/pixabay.service.js +0 -156
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +0 -3
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +0 -1
- package/lib/services/aiGen/providers/runway/cameraAdapter.js +0 -46
- package/lib/services/aiGen/providers/unsplash/index.d.ts +0 -2
- package/lib/services/aiGen/providers/unsplash/index.d.ts.map +0 -1
- package/lib/services/aiGen/providers/unsplash/index.js +0 -17
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts +0 -16
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/unsplash/unsplash.service.js +0 -131
- package/lib/services/apiUsageCounter.service.d.ts +0 -20
- package/lib/services/apiUsageCounter.service.d.ts.map +0 -1
- package/lib/services/apiUsageCounter.service.js +0 -84
- package/lib/services/asr/assemblyai.service.d.ts +0 -72
- package/lib/services/asr/assemblyai.service.d.ts.map +0 -1
- package/lib/services/asr/assemblyai.service.js +0 -89
- package/lib/services/asr/index.d.ts +0 -3
- package/lib/services/asr/index.d.ts.map +0 -1
- package/lib/services/asr/index.js +0 -18
- package/lib/services/asr/whisper.service.d.ts +0 -18
- package/lib/services/asr/whisper.service.d.ts.map +0 -1
- package/lib/services/asr/whisper.service.js +0 -151
- package/lib/services/assetCache.service.d.ts +0 -54
- package/lib/services/assetCache.service.d.ts.map +0 -1
- package/lib/services/assetCache.service.js +0 -109
- package/lib/services/audioAnalysis/index.d.ts +0 -2
- package/lib/services/audioAnalysis/index.d.ts.map +0 -1
- package/lib/services/audioAnalysis/index.js +0 -17
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts +0 -50
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +0 -1
- package/lib/services/audioAnalysis/onsetDetection.service.js +0 -140
- package/lib/services/credits/pricing.d.ts +0 -58
- package/lib/services/credits/pricing.d.ts.map +0 -1
- package/lib/services/credits/pricing.js +0 -111
- package/lib/services/editor/designToProject.d.ts +0 -75
- package/lib/services/editor/designToProject.d.ts.map +0 -1
- package/lib/services/editor/designToProject.js +0 -295
- package/lib/services/editor/planToProject.d.ts +0 -84
- package/lib/services/editor/planToProject.d.ts.map +0 -1
- package/lib/services/editor/planToProject.js +0 -395
- package/lib/services/editor/projectToDesign.d.ts +0 -4
- package/lib/services/editor/projectToDesign.d.ts.map +0 -1
- package/lib/services/editor/projectToDesign.js +0 -186
- package/lib/services/gcp/uploadAudioBuffer.d.ts +0 -13
- package/lib/services/gcp/uploadAudioBuffer.d.ts.map +0 -1
- package/lib/services/gcp/uploadAudioBuffer.js +0 -28
- package/lib/services/musicGen/index.d.ts +0 -6
- package/lib/services/musicGen/index.d.ts.map +0 -1
- package/lib/services/musicGen/index.js +0 -26
- package/lib/services/musicGen/musicSearchFactory.service.d.ts +0 -14
- package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +0 -1
- package/lib/services/musicGen/musicSearchFactory.service.js +0 -59
- package/lib/services/musicGen/providers/curated.service.d.ts +0 -24
- package/lib/services/musicGen/providers/curated.service.d.ts.map +0 -1
- package/lib/services/musicGen/providers/curated.service.js +0 -173
- package/lib/services/musicGen/providers/jamendo.service.d.ts +0 -8
- package/lib/services/musicGen/providers/jamendo.service.d.ts.map +0 -1
- package/lib/services/musicGen/providers/jamendo.service.js +0 -113
- package/lib/services/musicGen/providers/mubert.service.d.ts +0 -10
- package/lib/services/musicGen/providers/mubert.service.d.ts.map +0 -1
- package/lib/services/musicGen/providers/mubert.service.js +0 -128
- package/lib/services/musicGen/types.d.ts +0 -46
- package/lib/services/musicGen/types.d.ts.map +0 -1
- package/lib/services/musicGen/types.js +0 -10
- package/lib/services/notification.service.d.ts +0 -22
- package/lib/services/notification.service.d.ts.map +0 -1
- package/lib/services/notification.service.js +0 -76
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts +0 -78
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts.map +0 -1
- package/lib/services/rateLimiter/distributedRateLimiter.service.js +0 -269
- package/lib/services/rateLimiter/index.d.ts +0 -2
- package/lib/services/rateLimiter/index.d.ts.map +0 -1
- package/lib/services/rateLimiter/index.js +0 -17
- package/lib/services/redisOptions.d.ts +0 -22
- package/lib/services/redisOptions.d.ts.map +0 -1
- package/lib/services/redisOptions.js +0 -51
- package/lib/services/tts/providers/minimax.service.d.ts +0 -14
- package/lib/services/tts/providers/minimax.service.d.ts.map +0 -1
- package/lib/services/tts/providers/minimax.service.js +0 -78
- package/lib/services/tts/providers/openai.service.d.ts +0 -14
- package/lib/services/tts/providers/openai.service.d.ts.map +0 -1
- package/lib/services/tts/providers/openai.service.js +0 -73
|
@@ -56,7 +56,10 @@ 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
|
-
|
|
59
|
+
// Minimax-side rate limit. Not strictly "user input" but treated as
|
|
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 };
|
|
60
63
|
case 1004:
|
|
61
64
|
return { message: "Authorization failed for the video generation service. Please contact support.", isUserInput: false };
|
|
62
65
|
default:
|
|
@@ -173,20 +176,6 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
173
176
|
resolution: params.resolution || "512P",
|
|
174
177
|
duration: params.duration || 6,
|
|
175
178
|
};
|
|
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
|
-
}
|
|
190
179
|
const response = await this.request("/v1/video_generation", "POST", requestBody);
|
|
191
180
|
logger_1.logger.info("Minimax video generation task response", {
|
|
192
181
|
taskId: response.task_id,
|
|
@@ -260,120 +249,8 @@ class MinimaxService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
|
|
|
260
249
|
// rest status are pending forms
|
|
261
250
|
return { status: types_1.EVideoSceneStatus.PENDING };
|
|
262
251
|
}
|
|
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, }) {
|
|
252
|
+
getCreditUsed({ modelKey, resolution = "512P", duration = 6, multiClip = false, }) {
|
|
366
253
|
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
|
-
}
|
|
377
254
|
const cost = modelConfig.cost?.fixed ??
|
|
378
255
|
modelConfig.cost?.table?.[resolution]?.[duration];
|
|
379
256
|
if (cost === undefined || cost === null) {
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
export type MinimaxModelName = "MiniMax-Hailuo-
|
|
2
|
-
export interface MinimaxSubjectReference {
|
|
3
|
-
type: "character";
|
|
4
|
-
image: string[];
|
|
5
|
-
}
|
|
1
|
+
export type MinimaxModelName = "MiniMax-Hailuo-02" | "T2V-01-Director" | "T2V-01";
|
|
6
2
|
export interface MinimaxVideoGenerateRequest {
|
|
7
3
|
model: MinimaxModelName;
|
|
8
4
|
first_frame_image?: string;
|
|
9
5
|
prompt: string;
|
|
10
6
|
resolution?: string;
|
|
11
7
|
duration?: number;
|
|
12
|
-
aspect_ratio?: string;
|
|
13
|
-
prompt_optimizer?: boolean;
|
|
14
|
-
fast_pretreatment?: boolean;
|
|
15
|
-
callback_url?: string;
|
|
16
|
-
subject_reference?: MinimaxSubjectReference[];
|
|
17
8
|
}
|
|
18
9
|
export interface MinimaxTaskResponse {
|
|
19
10
|
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,
|
|
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;CACnB;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,
|
|
2
|
+
import { CreditUsageParams, 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,12 +7,6 @@ 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
|
-
|
|
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;
|
|
10
|
+
getCreditUsed({ modelKey, resolution, duration, multiClip, }: CreditUsageParams): number;
|
|
17
11
|
}
|
|
18
12
|
//# 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":"AAeA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,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;IAoB3B,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,aAAa,CAAC,EACZ,QAAQ,EACR,UAAuB,EACvB,QAAY,EACZ,SAAiB,GAClB,EAAE,iBAAiB,GAAG,MAAM;CAS9B"}
|
|
@@ -1,47 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// openai.service.ts
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
36
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
7
|
exports.OpenaiService = void 0;
|
|
38
|
-
const openai_1 =
|
|
8
|
+
const openai_1 = __importDefault(require("openai"));
|
|
39
9
|
const aiModels_1 = require("../../../../globals/aiModels");
|
|
40
10
|
const types_1 = require("../../../../globals/types");
|
|
41
11
|
const firebase_1 = require("../../../../libs/firebase");
|
|
42
12
|
const utils_1 = require("../../../../utils");
|
|
43
13
|
const logger_1 = require("../../../../utils/logger");
|
|
44
|
-
const errors_1 = require("../../../../utils/errors");
|
|
45
14
|
const helpers_1 = require("../../helpers");
|
|
46
15
|
const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
|
|
47
16
|
class OpenaiService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
|
|
@@ -53,27 +22,12 @@ class OpenaiService extends baseAiGenProvider_service_1.BaseAiGenProviderService
|
|
|
53
22
|
async generateVideo(params) {
|
|
54
23
|
(0, helpers_1.validateParams)(params);
|
|
55
24
|
const modelId = aiModels_1.aiModelConfigs[params.modelKey]?.modelId || "sora-2";
|
|
56
|
-
const
|
|
25
|
+
const job = await this.client.videos.create({
|
|
57
26
|
prompt: params.prompt || "",
|
|
58
27
|
model: modelId,
|
|
59
28
|
seconds: params.duration?.toString() || "4",
|
|
60
29
|
size: params.dimensions || "720x1280",
|
|
61
|
-
};
|
|
62
|
-
// First-frame image-to-video. The Sora API requires the reference image
|
|
63
|
-
// dimensions to match `size`; the caller is responsible for that.
|
|
64
|
-
// Note: openai SDK v6.3.0 does NOT yet expose extensions / characters /
|
|
65
|
-
// edits endpoints — those exist in the REST API but are not surfaced here.
|
|
66
|
-
if (params.inputImageUrl) {
|
|
67
|
-
const resp = await fetch(params.inputImageUrl);
|
|
68
|
-
// fetch() does not throw on 4xx/5xx — surface the HTTP error so we
|
|
69
|
-
// don't ship an HTML error page to Sora as if it were image bytes.
|
|
70
|
-
if (!resp.ok) {
|
|
71
|
-
throw new errors_1.UserFacingError(`Input image could not be downloaded (HTTP ${resp.status}). The image URL may have expired or been deleted.`);
|
|
72
|
-
}
|
|
73
|
-
const filename = (params.inputImageUrl.split("?")[0] ?? "reference").split("/").pop() || "reference.png";
|
|
74
|
-
request.input_reference = await (0, openai_1.toFile)(resp, filename);
|
|
75
|
-
}
|
|
76
|
-
const job = await this.client.videos.create(request);
|
|
30
|
+
});
|
|
77
31
|
if (job.status === "failed") {
|
|
78
32
|
throw new Error(`OpenAI video generation failed: ${JSON.stringify(job.error)}`);
|
|
79
33
|
}
|
|
@@ -149,139 +103,8 @@ class OpenaiService extends baseAiGenProvider_service_1.BaseAiGenProviderService
|
|
|
149
103
|
text,
|
|
150
104
|
};
|
|
151
105
|
}
|
|
152
|
-
|
|
153
|
-
* Synchronous image generation. Routes to /v1/images/generations for T2I or
|
|
154
|
-
* /v1/images/edits when input images are present (edits accepts up to 16
|
|
155
|
-
* reference images and an optional pixel mask).
|
|
156
|
-
*/
|
|
157
|
-
async generateImage(params) {
|
|
158
|
-
const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
|
|
159
|
-
const modelId = modelConfig?.modelId;
|
|
160
|
-
if (!modelId)
|
|
161
|
-
throw new Error(`Unknown image modelKey: ${params.modelKey}`);
|
|
162
|
-
const refs = [
|
|
163
|
-
...(params.inputImageUrl ? [params.inputImageUrl] : []),
|
|
164
|
-
...(params.inputImageUrls ?? []),
|
|
165
|
-
].slice(0, 16);
|
|
166
|
-
const isEdit = refs.length > 0;
|
|
167
|
-
// gpt-image-1 only accepts `size` (no aspectRatio knob). When the agent
|
|
168
|
-
// sends aspectRatio but no explicit dimensions, default to the matching
|
|
169
|
-
// canonical size; otherwise it silently produces a 1024×1024 square even
|
|
170
|
-
// for 9:16 / 16:9 projects.
|
|
171
|
-
const size = params.dimensions ??
|
|
172
|
-
(params.aspectRatio
|
|
173
|
-
? params.aspectRatio === "9:16" || params.aspectRatio === "3:4" || params.aspectRatio === "4:5"
|
|
174
|
-
? "1024x1536"
|
|
175
|
-
: params.aspectRatio === "16:9" || params.aspectRatio === "4:3"
|
|
176
|
-
? "1536x1024"
|
|
177
|
-
: "1024x1024"
|
|
178
|
-
: undefined);
|
|
179
|
-
// Cast at assignment site — we never pass `stream: true`, so the
|
|
180
|
-
// non-streaming overload always applies; TS can't narrow the union
|
|
181
|
-
// automatically from the absence of a field.
|
|
182
|
-
let resp;
|
|
183
|
-
if (isEdit) {
|
|
184
|
-
const images = await Promise.all(refs.map(async (url) => {
|
|
185
|
-
const r = await fetch(url);
|
|
186
|
-
if (!r.ok) {
|
|
187
|
-
logger_1.logger.error("openai: ref fetch failed", {
|
|
188
|
-
url,
|
|
189
|
-
status: r.status,
|
|
190
|
-
statusText: r.statusText,
|
|
191
|
-
});
|
|
192
|
-
throw new Error(`openai ref fetch ${r.status}`);
|
|
193
|
-
}
|
|
194
|
-
const name = (url.split("?")[0] ?? "ref").split("/").pop() || "ref.png";
|
|
195
|
-
return (0, openai_1.toFile)(r, name);
|
|
196
|
-
}));
|
|
197
|
-
const mask = params.maskImageUrl
|
|
198
|
-
? await (async () => {
|
|
199
|
-
const r = await fetch(params.maskImageUrl);
|
|
200
|
-
if (!r.ok) {
|
|
201
|
-
logger_1.logger.error("openai: mask fetch failed", {
|
|
202
|
-
url: params.maskImageUrl,
|
|
203
|
-
status: r.status,
|
|
204
|
-
statusText: r.statusText,
|
|
205
|
-
});
|
|
206
|
-
throw new Error(`openai mask fetch ${r.status}`);
|
|
207
|
-
}
|
|
208
|
-
return (0, openai_1.toFile)(r, "mask.png");
|
|
209
|
-
})()
|
|
210
|
-
: undefined;
|
|
211
|
-
resp = (await this.client.images.edit({
|
|
212
|
-
model: modelId,
|
|
213
|
-
prompt: params.prompt,
|
|
214
|
-
image: images.length === 1 ? images[0] : images,
|
|
215
|
-
...(mask ? { mask } : {}),
|
|
216
|
-
...(params.numImages ? { n: params.numImages } : {}),
|
|
217
|
-
...(size ? { size: size } : {}),
|
|
218
|
-
...(params.quality ? { quality: params.quality } : {}),
|
|
219
|
-
...(params.background ? { background: params.background } : {}),
|
|
220
|
-
...(params.outputFormat ? { output_format: params.outputFormat } : {}),
|
|
221
|
-
}));
|
|
222
|
-
if (!resp?.data?.length) {
|
|
223
|
-
logger_1.logger.error("openai: images endpoint returned no data", {
|
|
224
|
-
endpoint: "edit",
|
|
225
|
-
responseKeys: resp ? Object.keys(resp) : null,
|
|
226
|
-
});
|
|
227
|
-
throw new Error("openai images: empty data[]");
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
resp = (await this.client.images.generate({
|
|
232
|
-
model: modelId,
|
|
233
|
-
prompt: params.prompt,
|
|
234
|
-
...(params.numImages ? { n: params.numImages } : {}),
|
|
235
|
-
...(size ? { size: size } : {}),
|
|
236
|
-
...(params.quality ? { quality: params.quality } : {}),
|
|
237
|
-
...(params.background ? { background: params.background } : {}),
|
|
238
|
-
...(params.outputFormat ? { output_format: params.outputFormat } : {}),
|
|
239
|
-
}));
|
|
240
|
-
if (!resp?.data?.length) {
|
|
241
|
-
logger_1.logger.error("openai: images endpoint returned no data", {
|
|
242
|
-
endpoint: "generate",
|
|
243
|
-
responseKeys: resp ? Object.keys(resp) : null,
|
|
244
|
-
});
|
|
245
|
-
throw new Error("openai images: empty data[]");
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
const data = resp.data ?? [];
|
|
249
|
-
const bucket = (0, firebase_1.getBucket)();
|
|
250
|
-
const ts = Date.now();
|
|
251
|
-
const ext = params.outputFormat ?? "png";
|
|
252
|
-
const urls = [];
|
|
253
|
-
for (let i = 0; i < data.length; i++) {
|
|
254
|
-
const item = data[i];
|
|
255
|
-
const b64 = item?.b64_json;
|
|
256
|
-
const remoteUrl = item?.url;
|
|
257
|
-
let bytes;
|
|
258
|
-
if (b64)
|
|
259
|
-
bytes = Buffer.from(b64, "base64");
|
|
260
|
-
else if (remoteUrl)
|
|
261
|
-
bytes = Buffer.from(await (await fetch(remoteUrl)).arrayBuffer());
|
|
262
|
-
else
|
|
263
|
-
continue;
|
|
264
|
-
const path = `images/openai/${ts}-${Math.random().toString(36).slice(2, 8)}-${i}.${ext}`;
|
|
265
|
-
const file = bucket.file(path);
|
|
266
|
-
await file.save(bytes, { contentType: `image/${ext}` });
|
|
267
|
-
const [signed] = await file.getSignedUrl({ action: "read", expires: "03-09-2491" });
|
|
268
|
-
urls.push(signed);
|
|
269
|
-
}
|
|
270
|
-
if (!urls.length)
|
|
271
|
-
throw new Error("OpenAI image API returned no decodable images");
|
|
272
|
-
return {
|
|
273
|
-
imageUrl: urls[0],
|
|
274
|
-
imageUrls: urls.length > 1 ? urls : undefined,
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
getCreditUsed({ modelKey, resolution = "720x1280", duration = 5, multiClip = false, numImages = 1, quality, }) {
|
|
106
|
+
getCreditUsed({ modelKey, resolution = "720x1280", duration = 5, multiClip = false, }) {
|
|
278
107
|
const modelConfig = aiModels_1.aiModelConfigs[modelKey];
|
|
279
|
-
// Image-gen — fixed per-image cost; quality scales gpt-image price (low=0.5×,
|
|
280
|
-
// medium=1×, high=4×, auto≈medium).
|
|
281
|
-
if (modelConfig?.cost?.fixed !== undefined) {
|
|
282
|
-
const qualityMultiplier = quality === "high" ? 4 : quality === "low" ? 0.5 : 1;
|
|
283
|
-
return (0, utils_1.getCreditsFromCost)(modelConfig.cost.fixed * Math.max(1, numImages) * qualityMultiplier, !multiClip);
|
|
284
|
-
}
|
|
285
108
|
const cost = modelConfig?.cost?.table?.[resolution]?.[duration];
|
|
286
109
|
if (cost === undefined || cost === null) {
|
|
287
110
|
logger_1.logger.warn(`OpenAI getCreditUsed: no cost entry for modelKey="${modelKey}" resolution="${resolution}" duration=${duration} — returning fallback`, { modelKey, resolution, duration });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AASlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAKpE,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AASlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAKpE,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqE3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmGjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CA+CjD"}
|
|
@@ -26,96 +26,6 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
|
|
|
26
26
|
const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
|
|
27
27
|
const modelId = modelConfig.modelId;
|
|
28
28
|
const traceId = crypto_1.default.randomUUID();
|
|
29
|
-
// Extend a previously-generated PixVerse video. Takes the prior video_id;
|
|
30
|
-
// returns a new task whose status is polled via the same /result/{id} endpoint.
|
|
31
|
-
if (params.endpoint === "extend") {
|
|
32
|
-
if (!params.sourceTaskId) {
|
|
33
|
-
throw new Error("sourceTaskId (prior PixVerse video_id) is required for video extension");
|
|
34
|
-
}
|
|
35
|
-
const extendBody = {
|
|
36
|
-
video_id: Number(params.sourceTaskId),
|
|
37
|
-
model: modelId,
|
|
38
|
-
quality: params.resolution,
|
|
39
|
-
};
|
|
40
|
-
if (params.prompt)
|
|
41
|
-
extendBody.prompt = params.prompt;
|
|
42
|
-
if (params.negativePrompt)
|
|
43
|
-
extendBody.negative_prompt = params.negativePrompt;
|
|
44
|
-
if (params.seed !== undefined)
|
|
45
|
-
extendBody.seed = params.seed;
|
|
46
|
-
const resp = await fetch(`${this.baseUrl}/extend/generate`, {
|
|
47
|
-
method: "POST",
|
|
48
|
-
headers: {
|
|
49
|
-
"Content-Type": "application/json",
|
|
50
|
-
"API-KEY": process.env.PIXVERSE_API_KEY,
|
|
51
|
-
"Ai-trace-id": traceId,
|
|
52
|
-
},
|
|
53
|
-
body: JSON.stringify(extendBody),
|
|
54
|
-
});
|
|
55
|
-
if (!resp.ok) {
|
|
56
|
-
const errText = await resp.text();
|
|
57
|
-
throw new Error(`PixVerse extendVideo failed (${resp.status}): ${errText}`);
|
|
58
|
-
}
|
|
59
|
-
const data = await resp.json();
|
|
60
|
-
if (data.ErrCode !== 0) {
|
|
61
|
-
throw new Error(`PixVerse API error: ${data.ErrMsg || "Unknown error"}`);
|
|
62
|
-
}
|
|
63
|
-
const videoId = data?.Resp?.video_id;
|
|
64
|
-
if (!videoId)
|
|
65
|
-
throw new Error("PixVerse extend did not return video_id");
|
|
66
|
-
return { task: String(videoId), status: types_1.EVideoSceneStatus.TRIGGERED };
|
|
67
|
-
}
|
|
68
|
-
// Pixverse "Effects" — POST /video/template/generate. Requires both a numeric
|
|
69
|
-
// template_id (resolved upstream from a slug via PIXVERSE_TEMPLATES_BY_SLUG) and
|
|
70
|
-
// a customer_img_url. Most templates ignore prompt; some accept a style hint.
|
|
71
|
-
if (params.endpoint === "effect") {
|
|
72
|
-
if (!params.templateId) {
|
|
73
|
-
throw new Error("templateId is required for Pixverse effect generation");
|
|
74
|
-
}
|
|
75
|
-
if (!params.inputImageUrl) {
|
|
76
|
-
throw new Error("inputImageUrl is required for Pixverse effect generation");
|
|
77
|
-
}
|
|
78
|
-
const templateIdNum = Number(params.templateId);
|
|
79
|
-
if (!Number.isFinite(templateIdNum)) {
|
|
80
|
-
throw new Error(`templateId must be a numeric Pixverse template id (got "${params.templateId}")`);
|
|
81
|
-
}
|
|
82
|
-
const effectBody = {
|
|
83
|
-
template_id: templateIdNum,
|
|
84
|
-
customer_img_url: params.inputImageUrl,
|
|
85
|
-
model: modelId,
|
|
86
|
-
quality: params.resolution,
|
|
87
|
-
duration: params.duration,
|
|
88
|
-
};
|
|
89
|
-
if (params.prompt)
|
|
90
|
-
effectBody.prompt = params.prompt;
|
|
91
|
-
if (params.seed !== undefined)
|
|
92
|
-
effectBody.seed = params.seed;
|
|
93
|
-
if (params.watermark !== undefined)
|
|
94
|
-
effectBody.water_mark = !params.watermark;
|
|
95
|
-
if (params.motionMode)
|
|
96
|
-
effectBody.motion_mode = params.motionMode;
|
|
97
|
-
const resp = await fetch(`${this.baseUrl}/template/generate`, {
|
|
98
|
-
method: "POST",
|
|
99
|
-
headers: {
|
|
100
|
-
"Content-Type": "application/json",
|
|
101
|
-
"API-KEY": process.env.PIXVERSE_API_KEY,
|
|
102
|
-
"Ai-trace-id": traceId,
|
|
103
|
-
},
|
|
104
|
-
body: JSON.stringify(effectBody),
|
|
105
|
-
});
|
|
106
|
-
if (!resp.ok) {
|
|
107
|
-
const errText = await resp.text();
|
|
108
|
-
throw new Error(`PixVerse effect generation failed (${resp.status}): ${errText}`);
|
|
109
|
-
}
|
|
110
|
-
const data = await resp.json();
|
|
111
|
-
if (data.ErrCode !== 0) {
|
|
112
|
-
throw new Error(`PixVerse API error: ${data.ErrMsg || "Unknown error"}`);
|
|
113
|
-
}
|
|
114
|
-
const videoId = data?.Resp?.video_id;
|
|
115
|
-
if (!videoId)
|
|
116
|
-
throw new Error("PixVerse effect did not return video_id");
|
|
117
|
-
return { task: String(videoId), status: types_1.EVideoSceneStatus.TRIGGERED };
|
|
118
|
-
}
|
|
119
29
|
const body = {
|
|
120
30
|
aspect_ratio: params.aspectRatio,
|
|
121
31
|
duration: params.duration,
|
|
@@ -135,37 +45,7 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
|
|
|
135
45
|
if (params.multiClip !== undefined) {
|
|
136
46
|
body.generate_multi_clip_switch = Boolean(params.multiClip);
|
|
137
47
|
}
|
|
138
|
-
|
|
139
|
-
body.seed = params.seed;
|
|
140
|
-
if (params.motionMode)
|
|
141
|
-
body.motion_mode = params.motionMode;
|
|
142
|
-
if (params.watermark !== undefined)
|
|
143
|
-
body.water_mark = !params.watermark; // API field is "remove watermark"
|
|
144
|
-
if (params.style)
|
|
145
|
-
body.style = params.style;
|
|
146
|
-
if (params.templateId)
|
|
147
|
-
body.template_id = params.templateId;
|
|
148
|
-
if (params.thinkingType)
|
|
149
|
-
body.thinking_type = params.thinkingType;
|
|
150
|
-
if (params.soundEffect) {
|
|
151
|
-
body.sound_effect_switch = params.soundEffect.switch;
|
|
152
|
-
if (params.soundEffect.content)
|
|
153
|
-
body.sound_effect_content = params.soundEffect.content;
|
|
154
|
-
}
|
|
155
|
-
if (params.lipSync) {
|
|
156
|
-
body.lip_sync_switch = params.lipSync.switch;
|
|
157
|
-
if (params.lipSync.ttsContent)
|
|
158
|
-
body.lip_sync_tts_content = params.lipSync.ttsContent;
|
|
159
|
-
if (params.lipSync.ttsSpeakerId)
|
|
160
|
-
body.lip_sync_tts_speaker_id = params.lipSync.ttsSpeakerId;
|
|
161
|
-
}
|
|
162
|
-
// I2V switches endpoint and adds the image reference.
|
|
163
|
-
const isImageToVideo = !!params.inputImageUrl;
|
|
164
|
-
if (isImageToVideo) {
|
|
165
|
-
body.image_url = params.inputImageUrl;
|
|
166
|
-
}
|
|
167
|
-
const endpoint = isImageToVideo ? `${this.baseUrl}/image/generate` : `${this.baseUrl}/text/generate`;
|
|
168
|
-
const resp = await fetch(endpoint, {
|
|
48
|
+
const resp = await fetch(`${this.baseUrl}/text/generate`, {
|
|
169
49
|
method: "POST",
|
|
170
50
|
headers: {
|
|
171
51
|
"Content-Type": "application/json",
|
|
@@ -300,10 +180,7 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
|
|
|
300
180
|
return (0, helpers_2.getCreditsFromCost)(cost, !multiClip);
|
|
301
181
|
}
|
|
302
182
|
catch (err) {
|
|
303
|
-
logger_1.logger.error(`PixVerse credit calculation failed`,
|
|
304
|
-
params,
|
|
305
|
-
err: err instanceof Error ? err.stack ?? err.message : String(err),
|
|
306
|
-
});
|
|
183
|
+
logger_1.logger.error(`PixVerse credit calculation failed`, err);
|
|
307
184
|
return 10;
|
|
308
185
|
}
|
|
309
186
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
|
|
2
|
-
import { CreditUsageParams,
|
|
2
|
+
import { CreditUsageParams, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
3
3
|
export declare class RunwayService extends BaseAiGenProviderService {
|
|
4
4
|
private readonly baseUrl;
|
|
5
5
|
private readonly apiKey;
|
|
@@ -7,16 +7,6 @@ export declare class RunwayService extends BaseAiGenProviderService {
|
|
|
7
7
|
private request;
|
|
8
8
|
generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
|
|
9
9
|
checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
|
|
10
|
-
getCreditUsed({ modelKey, duration, multiClip
|
|
11
|
-
/**
|
|
12
|
-
* Runway Gen-4 Image (text-to-image). Async — POST returns a task id,
|
|
13
|
-
* we poll /tasks/{id} until SUCCEEDED, then rehost the time-limited URL
|
|
14
|
-
* into our GCS bucket so the asset persists.
|
|
15
|
-
*
|
|
16
|
-
* UI passes aspectRatio as `"1:1" | "16:9" | "9:16" | "4:3" | "3:4"`;
|
|
17
|
-
* Runway requires concrete pixel ratios (`"1920:1080"` etc.) per the
|
|
18
|
-
* Gen-4 Image spec.
|
|
19
|
-
*/
|
|
20
|
-
generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
|
|
10
|
+
getCreditUsed({ modelKey, duration, multiClip }: CreditUsageParams): number;
|
|
21
11
|
}
|
|
22
12
|
//# sourceMappingURL=runway.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/runway/runway.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"runway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/runway/runway.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAGlB,qBAAa,aAAc,SAAQ,wBAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;YAUlB,OAAO;IAgCf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqD3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4DjD,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAY,EAAE,SAAiB,EAAE,EAAE,iBAAiB,GAAG,MAAM;CASxF"}
|