vidspotai-shared 1.0.124 → 1.0.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/lib/globals/aiModels/enums.d.ts +38 -0
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +49 -1
  4. package/lib/globals/aiModels/index.d.ts.map +1 -1
  5. package/lib/globals/aiModels/index.js +2 -0
  6. package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -1
  7. package/lib/globals/aiModels/providers/alibaba.js +460 -53
  8. package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
  9. package/lib/globals/aiModels/providers/bytedance.js +221 -39
  10. package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
  11. package/lib/globals/aiModels/providers/google.js +178 -32
  12. package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
  13. package/lib/globals/aiModels/providers/kling.js +86 -12
  14. package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
  15. package/lib/globals/aiModels/providers/minimax.js +77 -0
  16. package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
  17. package/lib/globals/aiModels/providers/openai.js +12 -0
  18. package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
  19. package/lib/globals/aiModels/providers/pixverse.js +101 -28
  20. package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
  21. package/lib/globals/aiModels/providers/runway.js +450 -24
  22. package/lib/globals/aiModels/providers/xai.d.ts +4 -0
  23. package/lib/globals/aiModels/providers/xai.d.ts.map +1 -0
  24. package/lib/globals/aiModels/providers/xai.js +72 -0
  25. package/lib/globals/aiModels/tierHelpers.d.ts +10 -0
  26. package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -1
  27. package/lib/globals/aiModels/tierHelpers.js +48 -7
  28. package/lib/globals/aiModels/types.d.ts +21 -0
  29. package/lib/globals/aiModels/types.d.ts.map +1 -1
  30. package/lib/models/image.model.d.ts +24 -0
  31. package/lib/models/image.model.d.ts.map +1 -1
  32. package/lib/models/image.model.js +12 -0
  33. package/lib/models/index.d.ts +1 -0
  34. package/lib/models/index.d.ts.map +1 -1
  35. package/lib/models/index.js +1 -0
  36. package/lib/models/klingElement.model.d.ts +52 -0
  37. package/lib/models/klingElement.model.d.ts.map +1 -0
  38. package/lib/models/klingElement.model.js +24 -0
  39. package/lib/models/user.model.d.ts +7 -1
  40. package/lib/models/user.model.d.ts.map +1 -1
  41. package/lib/models/video.model.d.ts +11 -0
  42. package/lib/models/video.model.d.ts.map +1 -1
  43. package/lib/schemas/videoPlan.schema.d.ts +88 -0
  44. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  45. package/lib/schemas/videoPlan.schema.js +27 -1
  46. package/lib/services/agent/executor/visual.d.ts.map +1 -1
  47. package/lib/services/agent/executor/visual.js +40 -2
  48. package/lib/services/agent/mentionedRefs.d.ts.map +1 -1
  49. package/lib/services/agent/mentionedRefs.js +4 -1
  50. package/lib/services/agent/planner/structuralRules.d.ts.map +1 -1
  51. package/lib/services/agent/planner/structuralRules.js +8 -3
  52. package/lib/services/agent/poster/posterAgent.schema.d.ts +3 -3
  53. package/lib/services/agent/providerFallback/chains.d.ts +25 -0
  54. package/lib/services/agent/providerFallback/chains.d.ts.map +1 -1
  55. package/lib/services/agent/providerFallback/chains.js +59 -5
  56. package/lib/services/agent/repair/strategies/llmRepair.strategy.d.ts.map +1 -1
  57. package/lib/services/agent/repair/strategies/llmRepair.strategy.js +2 -0
  58. package/lib/services/agent/tools/animateImage.tool.d.ts +31 -0
  59. package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -1
  60. package/lib/services/agent/tools/animateImage.tool.js +10 -3
  61. package/lib/services/agent/tools/generateImage.tool.d.ts +8 -4
  62. package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -1
  63. package/lib/services/agent/tools/generateImage.tool.js +24 -7
  64. package/lib/services/agent/tools/generateVideo.tool.d.ts +32 -0
  65. package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -1
  66. package/lib/services/agent/tools/generateVideo.tool.js +37 -9
  67. package/lib/services/agent/tools/planVideo.tool.d.ts +19 -0
  68. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  69. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  70. package/lib/services/aiGen/aiGenFactory.service.js +40 -0
  71. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +6 -3
  72. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -1
  73. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +35 -0
  74. package/lib/services/aiGen/canonicalAdapters/cameraDirection.d.ts +36 -0
  75. package/lib/services/aiGen/canonicalAdapters/cameraDirection.d.ts.map +1 -0
  76. package/lib/services/aiGen/canonicalAdapters/cameraDirection.js +168 -0
  77. package/lib/services/aiGen/canonicalAdapters/index.d.ts +1 -0
  78. package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -1
  79. package/lib/services/aiGen/canonicalAdapters/index.js +1 -0
  80. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +3 -2
  81. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -1
  82. package/lib/services/aiGen/helpers.d.ts +40 -0
  83. package/lib/services/aiGen/helpers.d.ts.map +1 -1
  84. package/lib/services/aiGen/helpers.js +48 -2
  85. package/lib/services/aiGen/index.d.ts +1 -0
  86. package/lib/services/aiGen/index.d.ts.map +1 -1
  87. package/lib/services/aiGen/index.js +3 -0
  88. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +13 -1
  89. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
  90. package/lib/services/aiGen/providers/alibaba/alibaba.js +313 -33
  91. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts +29 -1
  92. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  93. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +371 -54
  94. package/lib/services/aiGen/providers/google/google.service.d.ts +16 -0
  95. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  96. package/lib/services/aiGen/providers/google/google.service.js +372 -116
  97. package/lib/services/aiGen/providers/google/googleKeyPool.d.ts +6 -0
  98. package/lib/services/aiGen/providers/google/googleKeyPool.d.ts.map +1 -1
  99. package/lib/services/aiGen/providers/google/googleKeyPool.js +8 -0
  100. package/lib/services/aiGen/providers/kling/kling.service.d.ts +17 -1
  101. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  102. package/lib/services/aiGen/providers/kling/kling.service.js +59 -3
  103. package/lib/services/aiGen/providers/kling/klingCredits.d.ts +1 -1
  104. package/lib/services/aiGen/providers/kling/klingCredits.d.ts.map +1 -1
  105. package/lib/services/aiGen/providers/kling/klingCredits.js +19 -1
  106. package/lib/services/aiGen/providers/kling/klingRequests.d.ts +37 -7
  107. package/lib/services/aiGen/providers/kling/klingRequests.d.ts.map +1 -1
  108. package/lib/services/aiGen/providers/kling/klingRequests.js +191 -13
  109. package/lib/services/aiGen/providers/kling/types.d.ts +78 -0
  110. package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
  111. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +11 -2
  112. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
  113. package/lib/services/aiGen/providers/minimax/minimax.service.js +168 -2
  114. package/lib/services/aiGen/providers/minimax/types.d.ts +63 -0
  115. package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
  116. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts +12 -0
  117. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  118. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +131 -17
  119. package/lib/services/aiGen/providers/runway/hostedModels.d.ts +84 -0
  120. package/lib/services/aiGen/providers/runway/hostedModels.d.ts.map +1 -0
  121. package/lib/services/aiGen/providers/runway/hostedModels.js +266 -0
  122. package/lib/services/aiGen/providers/runway/index.d.ts +1 -0
  123. package/lib/services/aiGen/providers/runway/index.d.ts.map +1 -1
  124. package/lib/services/aiGen/providers/runway/index.js +1 -0
  125. package/lib/services/aiGen/providers/runway/runway.service.d.ts +1 -1
  126. package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
  127. package/lib/services/aiGen/providers/runway/runway.service.js +118 -21
  128. package/lib/services/aiGen/providers/runway/types.d.ts +18 -3
  129. package/lib/services/aiGen/providers/runway/types.d.ts.map +1 -1
  130. package/lib/services/aiGen/providers/runway/types.js +31 -3
  131. package/lib/services/aiGen/providers/types.d.ts +55 -0
  132. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  133. package/lib/services/aiGen/providers/xai/xai.service.d.ts +19 -0
  134. package/lib/services/aiGen/providers/xai/xai.service.d.ts.map +1 -0
  135. package/lib/services/aiGen/providers/xai/xai.service.js +205 -0
  136. package/lib/services/firestore.service.d.ts +4 -0
  137. package/lib/services/firestore.service.d.ts.map +1 -1
  138. package/lib/services/firestore.service.js +5 -0
  139. package/lib/services/index.d.ts +2 -0
  140. package/lib/services/index.d.ts.map +1 -1
  141. package/lib/services/index.js +2 -0
  142. package/lib/services/klingElements/klingElementLibrary.service.d.ts +37 -0
  143. package/lib/services/klingElements/klingElementLibrary.service.d.ts.map +1 -0
  144. package/lib/services/klingElements/klingElementLibrary.service.js +179 -0
  145. package/lib/services/trialGuard/index.d.ts +2 -0
  146. package/lib/services/trialGuard/index.d.ts.map +1 -0
  147. package/lib/services/trialGuard/index.js +17 -0
  148. package/lib/services/trialGuard/trialSignals.d.ts +88 -0
  149. package/lib/services/trialGuard/trialSignals.d.ts.map +1 -0
  150. package/lib/services/trialGuard/trialSignals.js +160 -0
  151. package/lib/utils/helpers.d.ts.map +1 -1
  152. package/lib/utils/helpers.js +5 -1
  153. package/package.json +2 -1
@@ -1,11 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.bytedanceConfigs = void 0;
4
+ /** Every Seedream model accepts explicit WxH, so any ratio in [1/16, 16] works. */
5
+ const SEEDREAM_ASPECTS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9"];
6
+ /** Seedream 5.0 pro/flash prompt languages (image-generation-api, `prompt`). */
7
+ const SEEDREAM_5_PRO_LANGS = [
8
+ "en", "zh-cn", "zh-tw", "ru", "ar", "fil", "th", "tr", "ko", "ms", "es", "pt",
9
+ "id", "fr", "de", "vi", "ja",
10
+ ];
4
11
  exports.bytedanceConfigs = {
12
+ // ⚠️ RETIRING: BytePlus shuts seedance-1-5-pro-251215 down after 17:00
13
+ // (UTC+8) on 2026-11-11 with no automatic migration; its recommended
14
+ // replacement is dreamina-seedance-2-0-mini-260615 (ModelArk model-
15
+ // deprecation notice, read 2026-09-29). Move every default off this key
16
+ // before then.
5
17
  "bytedance-seedance-1.5-pro": {
6
18
  modelId: "seedance-1-5-pro-251215",
7
19
  type: ["text-to-video", "image-to-video"],
8
20
  acceptedImageFormats: ["image/jpeg", "image/jpg", "image/png"],
21
+ // 1.x prompts are sanitized to ASCII + CJK, so anything else is
22
+ // translated to English upstream instead of being stripped.
23
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw"],
24
+ guidance: {
25
+ notes: "Retiring 2026-11-11 (BytePlus shutdown, no auto-migration) — prefer bytedance-seedance-2.0-mini.",
26
+ },
9
27
  fields: {
10
28
  prompt: { required: true }, // not required for image-to-video, but we can ignore that for simplicity
11
29
  aspectRatio: {
@@ -14,9 +32,11 @@ exports.bytedanceConfigs = {
14
32
  resolution: { allowedValues: ["480p", "720p", "1080p"] },
15
33
  duration: { allowedValues: [4, 5, 6, 7, 8, 9, 10, 11, 12] }, // in seconds
16
34
  audio: {},
17
- // firstFrame: {},
18
- // lastFrame: {},
19
- // referenceVideo: {},
35
+ // Capabilities per docs.byteplus.com/en/docs/ModelArk/1520757
36
+ // (2026-09-29): first+last frame (role-tagged), `seed`, `camera_fixed`.
37
+ lastFrameImageUrl: {},
38
+ seed: {},
39
+ cameraFixed: {},
20
40
  },
21
41
  requestPerMin: 600,
22
42
  concurrentRequests: 10,
@@ -33,6 +53,7 @@ exports.bytedanceConfigs = {
33
53
  modelId: "seedance-1-0-pro-fast-251015",
34
54
  type: ["text-to-video", "image-to-video"],
35
55
  acceptedImageFormats: ["image/jpeg", "image/jpg", "image/png"],
56
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw"],
36
57
  fields: {
37
58
  prompt: { required: true },
38
59
  aspectRatio: {
@@ -40,6 +61,9 @@ exports.bytedanceConfigs = {
40
61
  },
41
62
  resolution: { allowedValues: ["480p", "720p", "1080p"] },
42
63
  duration: { allowedValues: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] }, // in seconds
64
+ // First frame only — 1.0 pro fast has no last-frame role.
65
+ seed: {},
66
+ cameraFixed: {},
43
67
  },
44
68
  requestPerMin: 600,
45
69
  concurrentRequests: 10,
@@ -51,6 +75,7 @@ exports.bytedanceConfigs = {
51
75
  modelId: "seedance-1-0-pro-250528",
52
76
  type: ["text-to-video", "image-to-video"],
53
77
  acceptedImageFormats: ["image/jpeg", "image/jpg", "image/png"],
78
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw"],
54
79
  fields: {
55
80
  prompt: { required: true },
56
81
  aspectRatio: {
@@ -58,6 +83,9 @@ exports.bytedanceConfigs = {
58
83
  },
59
84
  resolution: { allowedValues: ["480p", "720p", "1080p"] },
60
85
  duration: { allowedValues: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] }, // in seconds
86
+ lastFrameImageUrl: {},
87
+ seed: {},
88
+ cameraFixed: {},
61
89
  },
62
90
  requestPerMin: 600,
63
91
  concurrentRequests: 10,
@@ -68,8 +96,7 @@ exports.bytedanceConfigs = {
68
96
  // Seedance 2.5 (Dreamina) — newest flagship. Same multimodal API surface as
69
97
  // 2.0 (text + image/video/audio refs with role tags) but: up to 30s output
70
98
  // (2.0 caps at 15s), up to 50 reference assets (30 img / 10 video / 10 audio),
71
- // audio-only input, and 11 prompt languages. Trade-off vs 2.0: output tops out
72
- // at 720p (no 1080p/4K) and it is pricier. Pricing axes are the same as 2.0 —
99
+ // audio-only input, and 11 prompt languages. Pricier than 2.0. Pricing axes are the same as 2.0 —
73
100
  // resolution × whether the request includes a video input (cost.videoInput /
74
101
  // cost.noVideoInput). Specs verified against docs.byteplus.com/en/docs/
75
102
  // ModelArk/2607688 (capability matrix) + /1544106 (pricing) on 2026-08-08.
@@ -95,39 +122,60 @@ exports.bytedanceConfigs = {
95
122
  default: 5,
96
123
  },
97
124
  audio: {},
125
+ // Frames + omni references per docs.byteplus.com/en/docs/ModelArk/1520757
126
+ // (2026-09-29). First/last frame and references are mutually exclusive;
127
+ // the service picks the scenario. No `seed` / `camera_fixed` on 2.x.
128
+ lastFrameImageUrl: {},
129
+ referenceImageUrls: { max: 30 },
130
+ referenceVideoUrls: { max: 10 },
131
+ referenceAudioUrls: { max: 10 },
98
132
  },
99
133
  requestPerMin: 180, // individual-tier; bumps to 600 for enterprise
100
134
  concurrentRequests: 3, // individual-tier; bumps to 10 for enterprise
101
135
  cost: {
102
136
  // Online-inference USD per 1K tokens (docs list per-M: 6.40 / 10.70).
137
+ // 1080p is priced (per-M 11.7 / 7.0, 2026-09-29) but not offered in
138
+ // `resolution`: 2.5 renders 1080p as 10-bit H.265/HEVC, which Firefox
139
+ // and many Windows/Android browsers can't play. Enable it only with a
140
+ // transcode to H.264 on ingest.
103
141
  videoInput: {
104
142
  "480p": 0.0064,
105
143
  "720p": 0.0064,
144
+ "1080p": 0.0070,
106
145
  },
107
146
  noVideoInput: {
108
147
  "480p": 0.0107,
109
148
  "720p": 0.0107,
149
+ "1080p": 0.0117,
110
150
  },
111
151
  },
112
152
  },
113
153
  // Seedance 2.0 (Dreamina). Multimodal: text, up to 9 image refs, 3 video refs,
114
154
  // 3 audio refs (with role tags). Pricing axes are resolution + whether the
115
155
  // request includes a video input — see cost.videoInput / cost.noVideoInput.
156
+ // 4K (10-bit) is priced (per-M 4.0 / 2.4, 2026-09-29) but not offered in
157
+ // `resolution` — same HEVC playback concern as Seedance 2.5 1080p.
116
158
  "bytedance-seedance-2.0": {
117
159
  modelId: "dreamina-seedance-2-0-260128",
118
160
  type: ["text-to-video", "image-to-video", "video-to-video"],
119
161
  acceptedImageFormats: ["image/jpeg", "image/jpg", "image/png"],
120
- // Per docs.byteplus.com/en/docs/ModelArk/1520757 — Seedance 2.0 series
121
- // supports English plus Chinese, Japanese, Korean, Spanish, French, German,
122
- // Portuguese. Other languages get rejected async with the opaque
123
- // "must contain 'style_caption' field" error → auto-translate to English.
124
- supportedPromptLanguages: ["en", "zh", "ja", "ko", "es", "fr", "de", "pt"],
162
+ // Per docs.byteplus.com/en/docs/ModelArk/1520757 (re-read 2026-09-29) —
163
+ // Seedance 2.0 series: English and Chinese plus Spanish, Indonesian,
164
+ // Portuguese, Japanese (ko/fr/de are no longer listed). Other languages
165
+ // get rejected async with the opaque "must contain 'style_caption' field"
166
+ // error → auto-translate to English. Chinese uses the codes detectLang
167
+ // emits (zh-cn / zh-tw); the old bare "zh" never matched.
168
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw", "es", "id", "pt", "ja"],
125
169
  fields: {
126
170
  prompt: { required: true },
127
171
  aspectRatio: { allowedValues: ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"] },
128
172
  resolution: { allowedValues: ["480p", "720p", "1080p"], default: "720p" },
129
173
  duration: { allowedValues: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], default: 5 },
130
174
  audio: {},
175
+ lastFrameImageUrl: {},
176
+ referenceImageUrls: { max: 9 },
177
+ referenceVideoUrls: { max: 3 },
178
+ referenceAudioUrls: { max: 3 },
131
179
  },
132
180
  requestPerMin: 180, // individual-tier; bumps to 600 for enterprise
133
181
  concurrentRequests: 3, // individual-tier; bumps to 10 for enterprise
@@ -136,11 +184,13 @@ exports.bytedanceConfigs = {
136
184
  "480p": 0.0043,
137
185
  "720p": 0.0043,
138
186
  "1080p": 0.0047,
187
+ "4k": 0.0024,
139
188
  },
140
189
  noVideoInput: {
141
190
  "480p": 0.0070,
142
191
  "720p": 0.0070,
143
192
  "1080p": 0.0077,
193
+ "4k": 0.0040,
144
194
  },
145
195
  },
146
196
  },
@@ -150,29 +200,34 @@ exports.bytedanceConfigs = {
150
200
  type: ["text-to-video", "image-to-video", "video-to-video"],
151
201
  acceptedImageFormats: ["image/jpeg", "image/jpg", "image/png"],
152
202
  // Same language set as Seedance 2.0 (shared Dreamina pipeline).
153
- supportedPromptLanguages: ["en", "zh", "ja", "ko", "es", "fr", "de", "pt"],
203
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw", "es", "id", "pt", "ja"],
154
204
  fields: {
155
205
  prompt: { required: true },
156
206
  aspectRatio: { allowedValues: ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"] },
157
207
  resolution: { allowedValues: ["480p", "720p"], default: "720p" },
158
208
  duration: { allowedValues: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], default: 5 },
159
209
  audio: {},
210
+ lastFrameImageUrl: {},
211
+ referenceImageUrls: { max: 9 },
212
+ referenceVideoUrls: { max: 3 },
213
+ referenceAudioUrls: { max: 3 },
160
214
  },
161
215
  requestPerMin: 180,
162
216
  concurrentRequests: 3,
163
217
  cost: {
164
- // ⏳ PROMO PRICING (Byteplus limited-time discount, 2026-08-07 14:00 →
165
- // 2026-09-07 14:00 UTC+8): 2.0 Fast is billed at 75% of list, so we
166
- // pass the same discount through to users. List per-1K = videoInput
167
- // 0.0033 / noVideoInput 0.0056 (per-M 3.3 / 5.6). REVERT to list after
168
- // the promo window ends — see memory/project_seedance_2_0_mini_promo.
218
+ // List price (per-M 3.3 / 5.6). The BytePlus 25%-off promo (extended
219
+ // to 2026-10-07) applies to enterprise accounts only; we're on the
220
+ // individual tier (180 RPM), so we pay list and bill list.
221
+ // REMOVED FOR v2 — kept for reference (promo pass-through):
222
+ // videoInput: { "480p": 0.002475, "720p": 0.002475 }, // list × 0.75
223
+ // noVideoInput: { "480p": 0.0042, "720p": 0.0042 },
169
224
  videoInput: {
170
- "480p": 0.002475, // list 0.0033 × 0.75
171
- "720p": 0.002475,
225
+ "480p": 0.0033,
226
+ "720p": 0.0033,
172
227
  },
173
228
  noVideoInput: {
174
- "480p": 0.0042, // list 0.0056 × 0.75
175
- "720p": 0.0042,
229
+ "480p": 0.0056,
230
+ "720p": 0.0056,
176
231
  },
177
232
  },
178
233
  },
@@ -185,49 +240,176 @@ exports.bytedanceConfigs = {
185
240
  type: ["text-to-video", "image-to-video", "video-to-video"],
186
241
  acceptedImageFormats: ["image/jpeg", "image/jpg", "image/png"],
187
242
  // Same language set as the rest of the Seedance 2.0 series (shared Dreamina pipeline).
188
- supportedPromptLanguages: ["en", "zh", "ja", "ko", "es", "fr", "de", "pt"],
243
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw", "es", "id", "pt", "ja"],
189
244
  fields: {
190
245
  prompt: { required: true },
191
246
  aspectRatio: { allowedValues: ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"] },
192
247
  resolution: { allowedValues: ["480p", "720p"], default: "720p" },
193
248
  duration: { allowedValues: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], default: 5 },
194
249
  audio: {},
250
+ lastFrameImageUrl: {},
251
+ referenceImageUrls: { max: 9 },
252
+ referenceVideoUrls: { max: 3 },
253
+ referenceAudioUrls: { max: 3 },
195
254
  },
196
255
  requestPerMin: 180,
197
256
  concurrentRequests: 3,
198
257
  cost: {
199
- // ⏳ PROMO PRICING (same window as 2.0 Fast above): 2.0 Mini is billed at
200
- // 40% of list, passed through to users. List per-1K = videoInput
201
- // 0.0021 / noVideoInput 0.0035 (per-M 2.1 / 3.5). At 720p/16:9 that is
202
- // ~$0.03/sec — the advertised promo rate. REVERT to list after the
203
- // promo window — see memory/project_seedance_2_0_mini_promo.
258
+ // List price (per-M 2.1 / 3.5). The BytePlus 60%-off promo (extended
259
+ // to 2026-10-07) is enterprise-only — see 2.0 Fast above.
260
+ // REMOVED FOR v2 — kept for reference (promo pass-through):
261
+ // videoInput: { "480p": 0.00084, "720p": 0.00084 }, // list × 0.40
262
+ // noVideoInput: { "480p": 0.0014, "720p": 0.0014 },
204
263
  videoInput: {
205
- "480p": 0.00084, // list 0.0021 × 0.40
206
- "720p": 0.00084,
264
+ "480p": 0.0021,
265
+ "720p": 0.0021,
207
266
  },
208
267
  noVideoInput: {
209
- "480p": 0.0014, // list 0.0035 × 0.40
210
- "720p": 0.0014,
268
+ "480p": 0.0035,
269
+ "720p": 0.0035,
211
270
  },
212
271
  },
213
272
  },
214
273
  // ───────────────────────────────────────────────────────────────────────
215
- // Seedream 5 image models (Byteplus ARK).
274
+ // Seedream image models (BytePlus ModelArk, POST /api/v3/images/generations).
275
+ // Source: docs.byteplus.com/en/docs/ModelArk/image-generation-api + pricing
276
+ // (1544106), read 2026-09-29. All take `size` either as a tier ("2K") or as
277
+ // explicit WxH; we always send WxH computed from aspectRatio × imageSize tier
278
+ // so the shape is exact. No `seed` parameter exists on any Seedream 4/5 model.
279
+ // Refs: 5.0 pro/flash ≤10, 5.0 lite / 4.5 / 4.0 ≤14. Output: one request per
280
+ // image by default, so numImages is exact. Opt-in modes (see
281
+ // ByteDanceService.generateImage): `imageSet` (5.0 lite / 4.x,
282
+ // sequential_image_generation), `layerDecomposition` (5.0 pro/flash, base +
283
+ // ≤16 layers), `promptMode: fast` (5.0 pro). Not wired: streaming (our image
284
+ // jobs are async anyway) and web search.
216
285
  // ───────────────────────────────────────────────────────────────────────
217
- // Only Seedream 5 Lite is publicly available (2026-05-16). Seedream 5 Pro
218
- // and 5 Edit are unreleased — re-add them only when an SKU appears on the
219
- // Byteplus international price sheet. Until then, planners route to
220
- // seedream-4-pro for higher-quality needs.
286
+ "bytedance-seedream-5-pro": {
287
+ modelId: "dola-seedream-5-0-pro-260628",
288
+ type: ["text-to-image", "image-to-image"],
289
+ tier: "T1",
290
+ supportedPromptLanguages: SEEDREAM_5_PRO_LANGS,
291
+ fields: {
292
+ prompt: { required: true },
293
+ aspectRatio: { allowedValues: SEEDREAM_ASPECTS },
294
+ // 1K and 1.5K bill the same ($0.045); 2K is the >2.61MP tier ($0.09).
295
+ imageSize: { allowedValues: ["1K", "1.5K", "2K"], default: "2K" },
296
+ inputImageUrl: {},
297
+ inputImageUrls: { max: 10 },
298
+ numImages: { default: 1 },
299
+ // `fast`: lower latency, slightly lower quality (5.0 pro only).
300
+ promptMode: { allowedValues: ["standard", "fast"], default: "standard" },
301
+ // One input image → base + up to 16 transparent PNG layers.
302
+ layerDecomposition: {},
303
+ outputFormat: { allowedValues: ["jpeg", "png"], default: "jpeg" },
304
+ // transparent: i2i only, exactly one input image that has alpha; png out.
305
+ background: { allowedValues: ["opaque", "transparent"], default: "opaque" },
306
+ },
307
+ cost: {
308
+ perImageSize: { "1K": 0.045, "1.5K": 0.045, "2K": 0.09 },
309
+ fixed: 0.09, // fallback when imageSize isn't supplied (default tier 2K)
310
+ // First input image free, then $0.003 each.
311
+ perExtraInputImage: 0.003,
312
+ },
313
+ guidance: {
314
+ quality: 5,
315
+ speed: 3,
316
+ bestFor: "Top-quality Seedream: interactive edits (point/box/arrow in the prompt), multi-ref composites up to 10, transparent-background cutouts, multilingual prompts.",
317
+ notes: "2K costs 2× 1.5K. No image sets. Layer decomposition bills per output (base + layers).",
318
+ },
319
+ },
320
+ "bytedance-seedream-5-flash": {
321
+ modelId: "dola-seedream-5-0-flash-260915",
322
+ type: ["text-to-image", "image-to-image"],
323
+ tier: "T1",
324
+ supportedPromptLanguages: SEEDREAM_5_PRO_LANGS,
325
+ fields: {
326
+ prompt: { required: true },
327
+ aspectRatio: { allowedValues: SEEDREAM_ASPECTS },
328
+ imageSize: { allowedValues: ["1K", "1.5K", "2K"], default: "2K" },
329
+ inputImageUrl: {},
330
+ inputImageUrls: { max: 10 },
331
+ numImages: { default: 1 },
332
+ // One input image → base + up to 16 transparent PNG layers.
333
+ layerDecomposition: {},
334
+ outputFormat: { allowedValues: ["jpeg", "png"], default: "jpeg" },
335
+ background: { allowedValues: ["opaque", "transparent"], default: "opaque" },
336
+ },
337
+ cost: { fixed: 0.018 }, // flat at every tier; input images free
338
+ guidance: {
339
+ quality: 4,
340
+ speed: 5,
341
+ bestFor: "Cheapest Seedream ($0.018): fast drafts, bulk b-roll stills, edits with up to 10 refs.",
342
+ },
343
+ },
221
344
  "bytedance-seedream-5-lite": {
222
345
  modelId: "seedream-5-0-lite-260128",
223
- type: ["text-to-image"],
346
+ type: ["text-to-image", "image-to-image"],
224
347
  tier: "T1",
348
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw"],
225
349
  fields: {
226
350
  prompt: { required: true },
227
- aspectRatio: { allowedValues: ["1:1", "16:9", "9:16", "4:3", "3:4"] },
351
+ aspectRatio: { allowedValues: SEEDREAM_ASPECTS },
352
+ imageSize: { allowedValues: ["2K", "3K", "4K"], default: "2K" },
353
+ inputImageUrl: {},
354
+ inputImageUrls: { max: 14 },
228
355
  numImages: { default: 1 },
229
- seed: {},
356
+ // One request → a set of related images (≤ numImages, model picks the count).
357
+ imageSet: {},
358
+ outputFormat: { allowedValues: ["jpeg", "png"], default: "jpeg" },
359
+ // REMOVED FOR v2 — kept for reference: Seedream has no seed parameter.
360
+ // seed: {},
361
+ },
362
+ cost: { fixed: 0.035 }, // flat at every tier
363
+ guidance: {
364
+ quality: 4,
365
+ speed: 4,
366
+ bestFor: "High-res (up to 4K) Seedream at a flat $0.035; up to 14 refs.",
367
+ notes: "Prompts: English/Chinese only (others are translated upstream).",
368
+ },
369
+ },
370
+ "bytedance-seedream-4.5": {
371
+ modelId: "seedream-4-5-251128",
372
+ type: ["text-to-image", "image-to-image"],
373
+ tier: "T1",
374
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw"],
375
+ fields: {
376
+ prompt: { required: true },
377
+ aspectRatio: { allowedValues: SEEDREAM_ASPECTS },
378
+ imageSize: { allowedValues: ["2K", "4K"], default: "2K" },
379
+ inputImageUrl: {},
380
+ inputImageUrls: { max: 14 },
381
+ numImages: { default: 1 },
382
+ // One request → a set of related images (≤ numImages, model picks the count).
383
+ imageSet: {},
384
+ },
385
+ cost: { fixed: 0.04 },
386
+ guidance: {
387
+ quality: 4,
388
+ speed: 3,
389
+ bestFor: "Seedream 4.5 — 2K/4K stills with up to 14 refs.",
390
+ notes: "Superseded by 5.0 lite (cheaper, same ref cap).",
391
+ },
392
+ },
393
+ "bytedance-seedream-4.0": {
394
+ modelId: "seedream-4-0-250828",
395
+ type: ["text-to-image", "image-to-image"],
396
+ tier: "T1",
397
+ supportedPromptLanguages: ["en", "zh-cn", "zh-tw"],
398
+ fields: {
399
+ prompt: { required: true },
400
+ aspectRatio: { allowedValues: SEEDREAM_ASPECTS },
401
+ imageSize: { allowedValues: ["1K", "2K", "4K"], default: "2K" },
402
+ inputImageUrl: {},
403
+ inputImageUrls: { max: 14 },
404
+ numImages: { default: 1 },
405
+ // One request → a set of related images (≤ numImages, model picks the count).
406
+ imageSet: {},
407
+ },
408
+ cost: { fixed: 0.03 },
409
+ guidance: {
410
+ quality: 3,
411
+ speed: 4,
412
+ bestFor: "Cheapest 4K-capable Seedream ($0.03); the only one with a 1K tier besides 5.0 pro/flash.",
230
413
  },
231
- cost: { fixed: 0.035 },
232
414
  },
233
415
  };
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../src/globals/aiModels/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CA+ZpE,CAAC"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../src/globals/aiModels/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAmjBpE,CAAC"}