@henjicc/ai-sdk 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (694) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +580 -577
  3. package/dist/capabilities/speech-recognition/bailian/module.js +12 -13
  4. package/dist/capabilities/speech-recognition/bailian/parse.js +9 -2
  5. package/dist/capabilities/speech-recognition/bailian/presets.d.ts +9 -1
  6. package/dist/capabilities/speech-recognition/bailian/presets.js +7 -2
  7. package/dist/capabilities/speech-recognition/bailian/realtime/presets.d.ts +2 -1
  8. package/dist/capabilities/speech-recognition/bailian/realtime/presets.js +2 -0
  9. package/dist/capabilities/speech-recognition/bailian/upload.js +11 -58
  10. package/dist/capabilities/speech-recognition/index.d.ts +5 -0
  11. package/dist/capabilities/speech-recognition/siliconflow/presets.d.ts +2 -3
  12. package/dist/capabilities/speech-recognition/siliconflow/presets.js +0 -2
  13. package/dist/capabilities/translation/bailian/types.d.ts +3 -0
  14. package/dist/capabilities/translation/bailian/types.js +6 -4
  15. package/dist/catalog/apimart/flux-3-image.model.d.ts +3 -0
  16. package/dist/catalog/apimart/flux-3-image.model.js +62 -0
  17. package/dist/catalog/apimart/flux-3-video.model.d.ts +3 -0
  18. package/dist/catalog/apimart/flux-3-video.model.js +120 -0
  19. package/dist/catalog/apimart/gemini-omni-1.2-flash.model.d.ts +3 -0
  20. package/dist/catalog/apimart/gemini-omni-1.2-flash.model.js +175 -0
  21. package/dist/catalog/apimart/gemini-omni-flash.model.js +27 -23
  22. package/dist/catalog/apimart/gpt-image-2.5.model.js +1 -1
  23. package/dist/catalog/apimart/gpt-image-2.6.model.d.ts +3 -0
  24. package/dist/catalog/apimart/gpt-image-2.6.model.js +103 -0
  25. package/dist/catalog/apimart/gpt-image-2.model.js +1 -1
  26. package/dist/catalog/apimart/grok-imagine-2.0.model.js +1 -1
  27. package/dist/catalog/apimart/grok-imagine-video-1.5.model.d.ts +3 -0
  28. package/dist/catalog/apimart/grok-imagine-video-1.5.model.js +85 -0
  29. package/dist/catalog/apimart/happyhorse-1.1.model.d.ts +3 -0
  30. package/dist/catalog/apimart/happyhorse-1.1.model.js +78 -0
  31. package/dist/catalog/apimart/kling-3.0-omni.model.js +12 -2
  32. package/dist/catalog/apimart/kling-3.0-turbo.model.js +5 -2
  33. package/dist/catalog/apimart/kling-3.0.model.js +1 -1
  34. package/dist/catalog/apimart/kling-4.0.model.d.ts +3 -0
  35. package/dist/catalog/apimart/kling-4.0.model.js +149 -0
  36. package/dist/catalog/apimart/midjourney-video.model.js +31 -32
  37. package/dist/catalog/apimart/midjourney.model.js +11 -1
  38. package/dist/catalog/apimart/minimax-h3-max.model.d.ts +3 -0
  39. package/dist/catalog/apimart/minimax-h3-max.model.js +101 -0
  40. package/dist/catalog/apimart/minimax-h3.model.js +8 -3
  41. package/dist/catalog/apimart/nano-banana-2-lite.model.js +1 -1
  42. package/dist/catalog/apimart/nano-banana-2.1.model.d.ts +2 -0
  43. package/dist/catalog/apimart/nano-banana-2.1.model.js +49 -0
  44. package/dist/catalog/apimart/nano-banana-2.model.js +1 -1
  45. package/dist/catalog/apimart/nano-banana-pro.model.js +1 -1
  46. package/dist/catalog/apimart/qwen-image-3.0.model.js +1 -1
  47. package/dist/catalog/apimart/seedance-2.0-fast.model.js +1 -1
  48. package/dist/catalog/apimart/seedance-2.0-mini.model.js +4 -4
  49. package/dist/catalog/apimart/seedance-2.0.model.js +1 -1
  50. package/dist/catalog/apimart/seedance-2.5.model.js +27 -5
  51. package/dist/catalog/apimart/seedream-5.0-flash.model.d.ts +3 -0
  52. package/dist/catalog/apimart/seedream-5.0-flash.model.js +52 -0
  53. package/dist/catalog/apimart/seedream-5.0-lite.model.js +4 -4
  54. package/dist/catalog/apimart/seedream-5.0-pro.model.js +1 -1
  55. package/dist/catalog/apimart/veo-3.1.model.d.ts +3 -0
  56. package/dist/catalog/apimart/veo-3.1.model.js +132 -0
  57. package/dist/catalog/apimart/wan-2.7-image.model.d.ts +3 -0
  58. package/dist/catalog/apimart/wan-2.7-image.model.js +80 -0
  59. package/dist/catalog/apimart/wan-3.0.model.d.ts +3 -0
  60. package/dist/catalog/apimart/wan-3.0.model.js +101 -0
  61. package/dist/catalog/apimart/z-image-turbo.model.js +1 -1
  62. package/dist/catalog/audio/tts-common.d.ts +2 -1
  63. package/dist/catalog/audio/tts-common.js +5 -1
  64. package/dist/catalog/bailian/cosyvoice-v3.5.model.js +1 -1
  65. package/dist/catalog/bailian/minimax-h3.model.d.ts +3 -0
  66. package/dist/catalog/bailian/minimax-h3.model.js +95 -0
  67. package/dist/catalog/bailian/minimax-speech-2.8.model.js +1 -1
  68. package/dist/catalog/bailian/qwen-audio-3.1-tts-flash.model.js +14 -3
  69. package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.d.ts +2 -0
  70. package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.js +44 -0
  71. package/dist/catalog/bailian/qwen-image-3.0.model.js +1 -1
  72. package/dist/catalog/bailian/wan-3.0.model.d.ts +3 -0
  73. package/dist/catalog/bailian/wan-3.0.model.js +104 -0
  74. package/dist/catalog/bailian/z-image-turbo.model.js +1 -1
  75. package/dist/catalog/consumer-contract.d.ts +16 -1
  76. package/dist/catalog/consumer-contract.js +31 -0
  77. package/dist/catalog/continuation.d.ts +20 -0
  78. package/dist/catalog/continuation.js +41 -0
  79. package/dist/catalog/fal/bria-creative-upscale.model.js +1 -1
  80. package/dist/catalog/fal/eleven-v3-tts.model.js +1 -1
  81. package/dist/catalog/fal/eleven-v4-tts.model.d.ts +2 -0
  82. package/dist/catalog/fal/eleven-v4-tts.model.js +38 -0
  83. package/dist/catalog/fal/flux-3-video.model.d.ts +2 -0
  84. package/dist/catalog/fal/flux-3-video.model.js +187 -0
  85. package/dist/catalog/fal/flux-3.model.d.ts +2 -0
  86. package/dist/catalog/fal/flux-3.model.js +69 -0
  87. package/dist/catalog/fal/gemini-omni-1.2-flash.model.d.ts +2 -0
  88. package/dist/catalog/fal/gemini-omni-1.2-flash.model.js +129 -0
  89. package/dist/catalog/fal/gemini-omni-flash.model.js +1 -1
  90. package/dist/catalog/fal/gpt-image-2.5.model.js +1 -1
  91. package/dist/catalog/fal/gpt-image-2.6.model.d.ts +2 -0
  92. package/dist/catalog/fal/gpt-image-2.6.model.js +97 -0
  93. package/dist/catalog/fal/gpt-image-2.model.js +1 -1
  94. package/dist/catalog/fal/grok-imagine-2.0.model.js +1 -1
  95. package/dist/catalog/fal/grok-imagine-video-1.5.model.d.ts +2 -0
  96. package/dist/catalog/fal/grok-imagine-video-1.5.model.js +121 -0
  97. package/dist/catalog/fal/hailuo-02.model.js +8 -4
  98. package/dist/catalog/fal/hailuo-2.3.model.js +1 -1
  99. package/dist/catalog/fal/ic-light-v2.model.js +1 -1
  100. package/dist/catalog/fal/ideogram-upscale.model.js +1 -1
  101. package/dist/catalog/fal/kling-3.0-omni.model.js +1 -1
  102. package/dist/catalog/fal/kling-3.0-turbo.model.js +5 -2
  103. package/dist/catalog/fal/kling-3.0.model.js +4 -1
  104. package/dist/catalog/fal/kling-4.0-flash.model.d.ts +2 -0
  105. package/dist/catalog/fal/kling-4.0-flash.model.js +132 -0
  106. package/dist/catalog/fal/kling-4.0.model.d.ts +2 -0
  107. package/dist/catalog/fal/kling-4.0.model.js +169 -0
  108. package/dist/catalog/fal/kling-image-o1.model.js +1 -1
  109. package/dist/catalog/fal/kling-video-o1.model.js +18 -7
  110. package/dist/catalog/fal/kling-video-v2.6-pro.model.js +3 -2
  111. package/dist/catalog/fal/ltx-2.3.model.d.ts +2 -0
  112. package/dist/catalog/fal/ltx-2.3.model.js +223 -0
  113. package/dist/catalog/fal/ltx-2.model.js +2 -1
  114. package/dist/catalog/fal/minimax-h3-max.model.d.ts +2 -0
  115. package/dist/catalog/fal/minimax-h3-max.model.js +132 -0
  116. package/dist/catalog/fal/minimax-h3.model.js +3 -4
  117. package/dist/catalog/fal/minimax-speech-2.8.model.js +1 -1
  118. package/dist/catalog/fal/nano-banana-2.1.model.d.ts +2 -0
  119. package/dist/catalog/fal/nano-banana-2.1.model.js +68 -0
  120. package/dist/catalog/fal/nano-banana-2.model.js +1 -1
  121. package/dist/catalog/fal/nano-banana-pro.model.js +1 -1
  122. package/dist/catalog/fal/nano-banana.model.js +1 -1
  123. package/dist/catalog/fal/pixverse-v5.5.model.js +9 -4
  124. package/dist/catalog/fal/qwen-image-3.0.model.js +2 -2
  125. package/dist/catalog/fal/qwen3-tts-1.7b.model.js +4 -3
  126. package/dist/catalog/fal/seedance-2.0-fast.model.js +1 -1
  127. package/dist/catalog/fal/seedance-2.0-mini.model.js +1 -1
  128. package/dist/catalog/fal/seedance-2.0.model.js +1 -1
  129. package/dist/catalog/fal/seedance-2.5.model.js +5 -2
  130. package/dist/catalog/fal/seedance.model.js +3 -2
  131. package/dist/catalog/fal/seedream-5.0-lite.model.js +1 -1
  132. package/dist/catalog/fal/seedream-5.0-pro.model.js +1 -1
  133. package/dist/catalog/fal/seedream-v4.5.model.js +1 -1
  134. package/dist/catalog/fal/seedream-v4.model.js +1 -1
  135. package/dist/catalog/fal/seedvr2-image-upscale.model.js +1 -1
  136. package/dist/catalog/fal/topaz-image-upscale.model.js +1 -1
  137. package/dist/catalog/fal/topaz-transparent-upscale.model.js +1 -1
  138. package/dist/catalog/fal/utils/klingV4.d.ts +17 -0
  139. package/dist/catalog/fal/utils/klingV4.js +33 -0
  140. package/dist/catalog/fal/veo-3.1.model.js +5 -2
  141. package/dist/catalog/fal/vidu-q2.model.js +20 -8
  142. package/dist/catalog/fal/wan-2.5-preview.model.js +4 -1
  143. package/dist/catalog/fal/wan-3.0.model.d.ts +2 -0
  144. package/dist/catalog/fal/wan-3.0.model.js +135 -0
  145. package/dist/catalog/fal/z-image-turbo.model.js +10 -9
  146. package/dist/catalog/grsai/gpt-image-2.5.model.js +13 -31
  147. package/dist/catalog/grsai/gpt-image-2.6.model.d.ts +2 -0
  148. package/dist/catalog/grsai/gpt-image-2.6.model.js +37 -0
  149. package/dist/catalog/grsai/gpt-image-2.model.js +5 -2
  150. package/dist/catalog/grsai/nano-banana-2-lite.model.js +1 -1
  151. package/dist/catalog/grsai/nano-banana-2.1.model.d.ts +2 -0
  152. package/dist/catalog/grsai/nano-banana-2.1.model.js +29 -0
  153. package/dist/catalog/grsai/nano-banana-2.model.js +1 -1
  154. package/dist/catalog/grsai/nano-banana-pro.model.js +1 -1
  155. package/dist/catalog/grsai/wan-3.0.model.d.ts +2 -0
  156. package/dist/catalog/grsai/wan-3.0.model.js +78 -0
  157. package/dist/catalog/index.d.ts +1 -0
  158. package/dist/catalog/index.js +205 -124
  159. package/dist/catalog/kie/eleven-v3-dialogue.model.js +1 -1
  160. package/dist/catalog/kie/flux-3-klein.model.d.ts +2 -0
  161. package/dist/catalog/kie/flux-3-klein.model.js +58 -0
  162. package/dist/catalog/kie/gemini-3.1-flash-tts.model.js +7 -4
  163. package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.d.ts +2 -0
  164. package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.js +11 -0
  165. package/dist/catalog/kie/gemini-3.8-flash-tts.model.d.ts +2 -0
  166. package/dist/catalog/kie/gemini-3.8-flash-tts.model.js +11 -0
  167. package/dist/catalog/kie/gemini-omni-video.model.js +3 -4
  168. package/dist/catalog/kie/gemini38Tts.d.ts +3 -0
  169. package/dist/catalog/kie/gemini38Tts.js +40 -0
  170. package/dist/catalog/kie/gpt-image-2.5.model.js +1 -1
  171. package/dist/catalog/kie/gpt-image-2.6.model.d.ts +2 -0
  172. package/dist/catalog/kie/gpt-image-2.6.model.js +87 -0
  173. package/dist/catalog/kie/gpt-image-2.model.js +8 -12
  174. package/dist/catalog/kie/grok-imagine-2.0.model.js +1 -1
  175. package/dist/catalog/kie/grok-imagine-video-1.5.model.d.ts +2 -0
  176. package/dist/catalog/kie/grok-imagine-video-1.5.model.js +52 -0
  177. package/dist/catalog/kie/grok-imagine-video.model.js +7 -3
  178. package/dist/catalog/kie/grok-imagine.model.js +4 -2
  179. package/dist/catalog/kie/hailuo-02.model.js +6 -4
  180. package/dist/catalog/kie/hailuo-2-3.model.js +1 -1
  181. package/dist/catalog/kie/happyhorse-1.1.model.js +5 -2
  182. package/dist/catalog/kie/kling-3.0-omni.model.js +51 -23
  183. package/dist/catalog/kie/kling-3.0-turbo.model.js +1 -1
  184. package/dist/catalog/kie/kling-3.0.model.js +1 -8
  185. package/dist/catalog/kie/kling-4.0-flash.model.d.ts +2 -0
  186. package/dist/catalog/kie/kling-4.0-flash.model.js +16 -0
  187. package/dist/catalog/kie/kling-4.0.model.d.ts +2 -0
  188. package/dist/catalog/kie/kling-4.0.model.js +17 -0
  189. package/dist/catalog/kie/kling-v2-6.model.js +1 -1
  190. package/dist/catalog/kie/kling40.d.ts +21 -0
  191. package/dist/catalog/kie/kling40.js +129 -0
  192. package/dist/catalog/kie/minimax-h3.model.js +16 -21
  193. package/dist/catalog/kie/nano-banana-2-lite.model.js +1 -1
  194. package/dist/catalog/kie/nano-banana-2.1.model.d.ts +2 -0
  195. package/dist/catalog/kie/nano-banana-2.1.model.js +34 -0
  196. package/dist/catalog/kie/nano-banana-2.model.js +2 -2
  197. package/dist/catalog/kie/nano-banana-pro.model.js +1 -1
  198. package/dist/catalog/kie/qwen-image-3.0.model.js +2 -10
  199. package/dist/catalog/kie/seedance-1.5-pro.model.js +2 -1
  200. package/dist/catalog/kie/seedance-2.0-fast.model.js +5 -1
  201. package/dist/catalog/kie/seedance-2.0-mini.model.js +5 -1
  202. package/dist/catalog/kie/seedance-2.0.model.js +5 -1
  203. package/dist/catalog/kie/seedance-2.5.model.js +10 -20
  204. package/dist/catalog/kie/seedance-v1.model.js +8 -4
  205. package/dist/catalog/kie/seedream-4.0.model.js +1 -1
  206. package/dist/catalog/kie/seedream-4.5.model.js +1 -1
  207. package/dist/catalog/kie/seedream-5.0-lite.model.js +1 -1
  208. package/dist/catalog/kie/seedream-5.0-pro.model.js +1 -1
  209. package/dist/catalog/kie/wan-3.0-prime.model.d.ts +2 -0
  210. package/dist/catalog/kie/wan-3.0-prime.model.js +15 -0
  211. package/dist/catalog/kie/wan-3.0.model.d.ts +2 -0
  212. package/dist/catalog/kie/wan-3.0.model.js +15 -0
  213. package/dist/catalog/kie/wan30.d.ts +10 -0
  214. package/dist/catalog/kie/wan30.js +78 -0
  215. package/dist/catalog/kie/z-image.model.js +1 -1
  216. package/dist/catalog/modelscope/flux-1-krea-dev.model.js +4 -2
  217. package/dist/catalog/modelscope/majicmix-realistic.model.js +3 -2
  218. package/dist/catalog/modelscope/modelscope-custom.model.js +3 -2
  219. package/dist/catalog/modelscope/qwen-image-2512.model.d.ts +5 -0
  220. package/dist/catalog/modelscope/{qwen-image.model.js → qwen-image-2512.model.js} +11 -8
  221. package/dist/catalog/modelscope/qwen-image-edit-2511.model.d.ts +5 -0
  222. package/dist/catalog/modelscope/{qwen-image-edit-2509.model.js → qwen-image-edit-2511.model.js} +9 -7
  223. package/dist/catalog/modelscope/sdxl-14-ckpt.model.js +3 -2
  224. package/dist/catalog/modelscope/utils.js +2 -2
  225. package/dist/catalog/modelscope/z-image-turbo.model.js +3 -2
  226. package/dist/catalog/ppio/kling-3.0.model.js +4 -1
  227. package/dist/catalog/ppio/minimax-speech.model.js +2 -1
  228. package/dist/catalog/shared/mediaPresence.d.ts +8 -1
  229. package/dist/catalog/shared/mediaPresence.js +21 -1
  230. package/dist/catalog/shared/nanoBanana21.d.ts +11 -0
  231. package/dist/catalog/shared/nanoBanana21.js +30 -0
  232. package/dist/catalog/shared/shotList.d.ts +31 -0
  233. package/dist/catalog/shared/shotList.js +48 -0
  234. package/dist/catalog/shared/subjectElements.d.ts +36 -0
  235. package/dist/catalog/shared/subjectElements.js +93 -0
  236. package/dist/catalog/siliconflow/moss-ttsd-0.5.model.js +1 -1
  237. package/dist/catalog/validate.js +14 -1
  238. package/dist/catalog/volcengine/seedance-2.0-fast.model.d.ts +2 -0
  239. package/dist/catalog/volcengine/seedance-2.0-fast.model.js +11 -0
  240. package/dist/catalog/volcengine/seedance-2.0-mini.model.d.ts +2 -0
  241. package/dist/catalog/volcengine/seedance-2.0-mini.model.js +11 -0
  242. package/dist/catalog/volcengine/seedance-2.0.model.d.ts +2 -0
  243. package/dist/catalog/volcengine/seedance-2.0.model.js +11 -0
  244. package/dist/catalog/volcengine/seedance-2.5.model.d.ts +2 -0
  245. package/dist/catalog/volcengine/seedance-2.5.model.js +11 -0
  246. package/dist/catalog/volcengine/seedance.d.ts +17 -0
  247. package/dist/catalog/volcengine/seedance.js +192 -0
  248. package/dist/catalog/volcengine/seedream-5.0-lite.model.js +2 -1
  249. package/dist/catalog/volcengine/seedream-5.0.js +1 -1
  250. package/dist/catalog/volcengine-speech/seed-icl-2.0.model.js +2 -2
  251. package/dist/catalog/volcengine-speech/seed-tts-2.0.model.js +2 -2
  252. package/dist/discovery/index.js +13 -6
  253. package/dist/index.d.ts +3 -0
  254. package/dist/index.js +2 -0
  255. package/dist/llm/bigmodel/preset.js +2 -1
  256. package/dist/llm/bigmodel/profiles.js +0 -6
  257. package/dist/llm/chat.d.ts +8 -0
  258. package/dist/llm/chat.js +18 -2
  259. package/dist/llm/chatTypes.d.ts +6 -0
  260. package/dist/llm/defaults.d.ts +2 -2
  261. package/dist/llm/defaults.js +3 -3
  262. package/dist/llm/groq/preset.js +18 -2
  263. package/dist/llm/modelCatalog.d.ts +9 -2
  264. package/dist/llm/modelCatalog.js +17 -4
  265. package/dist/llm/modelCatalogEntries.d.ts +2 -0
  266. package/dist/llm/modelCatalogEntries.js +197 -42
  267. package/dist/llm/providerPresets.d.ts +3 -0
  268. package/dist/llm/providerPresets.js +145 -32
  269. package/dist/llm/providerReasoningRequest.js +28 -11
  270. package/dist/llm/siliconflow/index.js +1 -1
  271. package/dist/llm/siliconflow/preset.js +30 -0
  272. package/dist/llm/types.d.ts +6 -0
  273. package/dist/packs/models/{ppio/wan-2.5-preview.d.ts → apimart/flux-3-image.d.ts} +1 -1
  274. package/dist/packs/models/apimart/flux-3-image.js +7 -0
  275. package/dist/packs/models/apimart/flux-3-video.d.ts +6 -0
  276. package/dist/packs/models/apimart/flux-3-video.js +7 -0
  277. package/dist/packs/models/apimart/gemini-omni-1.2-flash.d.ts +6 -0
  278. package/dist/packs/models/apimart/gemini-omni-1.2-flash.js +7 -0
  279. package/dist/packs/models/{modelscope/qwen-image.d.ts → apimart/gpt-image-2.6.d.ts} +1 -1
  280. package/dist/packs/models/apimart/gpt-image-2.6.js +7 -0
  281. package/dist/packs/models/apimart/grok-imagine-video-1.5.d.ts +6 -0
  282. package/dist/packs/models/apimart/grok-imagine-video-1.5.js +7 -0
  283. package/dist/packs/models/apimart/happyhorse-1.1.d.ts +6 -0
  284. package/dist/packs/models/apimart/happyhorse-1.1.js +7 -0
  285. package/dist/packs/models/apimart/kling-4.0.d.ts +6 -0
  286. package/dist/packs/models/apimart/kling-4.0.js +7 -0
  287. package/dist/packs/models/apimart/minimax-h3-max.d.ts +6 -0
  288. package/dist/packs/models/apimart/minimax-h3-max.js +7 -0
  289. package/dist/packs/models/{ppio/minimax-hailuo-2.3.d.ts → apimart/nano-banana-2.1.d.ts} +1 -1
  290. package/dist/packs/models/{ppio/minimax-hailuo-2.3.js → apimart/nano-banana-2.1.js} +4 -4
  291. package/dist/packs/models/apimart/seedream-5.0-flash.d.ts +6 -0
  292. package/dist/packs/models/apimart/seedream-5.0-flash.js +7 -0
  293. package/dist/packs/models/apimart/veo-3.1.d.ts +6 -0
  294. package/dist/packs/models/apimart/veo-3.1.js +7 -0
  295. package/dist/packs/models/apimart/wan-2.7-image.d.ts +6 -0
  296. package/dist/packs/models/apimart/wan-2.7-image.js +7 -0
  297. package/dist/packs/models/apimart/wan-3.0.d.ts +6 -0
  298. package/dist/packs/models/apimart/wan-3.0.js +7 -0
  299. package/dist/packs/models/bailian/cosyvoice-v3.5.js +1 -1
  300. package/dist/packs/models/bailian/minimax-h3.d.ts +6 -0
  301. package/dist/packs/models/bailian/minimax-h3.js +7 -0
  302. package/dist/packs/models/bailian/minimax-speech-2.8.js +1 -1
  303. package/dist/packs/models/bailian/qwen-audio-3.1-tts-flash.js +1 -1
  304. package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.d.ts +6 -0
  305. package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.js +7 -0
  306. package/dist/packs/models/bailian/qwen-image-3.0.js +1 -1
  307. package/dist/packs/models/bailian/wan-3.0.d.ts +6 -0
  308. package/dist/packs/models/bailian/wan-3.0.js +7 -0
  309. package/dist/packs/models/bailian/z-image-turbo.js +1 -1
  310. package/dist/packs/models/fal/eleven-v4-tts.d.ts +6 -0
  311. package/dist/packs/models/{ppio/wan-2.5-preview.js → fal/eleven-v4-tts.js} +4 -4
  312. package/dist/packs/models/fal/flux-3-video.d.ts +6 -0
  313. package/dist/packs/models/fal/flux-3-video.js +7 -0
  314. package/dist/packs/models/{ppio/wan-2.6.d.ts → fal/flux-3.d.ts} +1 -1
  315. package/dist/packs/models/{ppio/wan-2.6.js → fal/flux-3.js} +4 -4
  316. package/dist/packs/models/fal/gemini-omni-1.2-flash.d.ts +6 -0
  317. package/dist/packs/models/fal/gemini-omni-1.2-flash.js +7 -0
  318. package/dist/packs/models/fal/gpt-image-2.6.d.ts +6 -0
  319. package/dist/packs/models/fal/gpt-image-2.6.js +7 -0
  320. package/dist/packs/models/fal/grok-imagine-video-1.5.d.ts +6 -0
  321. package/dist/packs/models/fal/grok-imagine-video-1.5.js +7 -0
  322. package/dist/packs/models/fal/kling-4.0-flash.d.ts +6 -0
  323. package/dist/packs/models/fal/kling-4.0-flash.js +7 -0
  324. package/dist/packs/models/fal/kling-4.0.d.ts +6 -0
  325. package/dist/packs/models/{ppio/wan-2.7.js → fal/kling-4.0.js} +4 -4
  326. package/dist/packs/models/{ppio/wan-2.7.d.ts → fal/ltx-2.3.d.ts} +1 -1
  327. package/dist/packs/models/fal/ltx-2.3.js +7 -0
  328. package/dist/packs/models/fal/minimax-h3-max.d.ts +6 -0
  329. package/dist/packs/models/fal/minimax-h3-max.js +7 -0
  330. package/dist/packs/models/fal/nano-banana-2.1.d.ts +6 -0
  331. package/dist/packs/models/fal/nano-banana-2.1.js +7 -0
  332. package/dist/packs/models/fal/wan-3.0.d.ts +6 -0
  333. package/dist/packs/models/fal/wan-3.0.js +7 -0
  334. package/dist/packs/models/grsai/gpt-image-2.6.d.ts +6 -0
  335. package/dist/packs/models/grsai/gpt-image-2.6.js +7 -0
  336. package/dist/packs/models/grsai/nano-banana-2.1.d.ts +6 -0
  337. package/dist/packs/models/grsai/nano-banana-2.1.js +7 -0
  338. package/dist/packs/models/grsai/wan-3.0.d.ts +6 -0
  339. package/dist/packs/models/grsai/wan-3.0.js +7 -0
  340. package/dist/packs/models/kie/flux-3-klein.d.ts +6 -0
  341. package/dist/packs/models/kie/flux-3-klein.js +7 -0
  342. package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.d.ts +6 -0
  343. package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.js +7 -0
  344. package/dist/packs/models/kie/{eleven-turbo-2.5-tts.d.ts → gemini-3.8-flash-tts.d.ts} +1 -1
  345. package/dist/packs/models/kie/{eleven-turbo-2.5-tts.js → gemini-3.8-flash-tts.js} +1 -1
  346. package/dist/packs/models/kie/gpt-image-2.6.d.ts +6 -0
  347. package/dist/packs/models/kie/gpt-image-2.6.js +7 -0
  348. package/dist/packs/models/kie/grok-imagine-video-1.5.d.ts +6 -0
  349. package/dist/packs/models/kie/grok-imagine-video-1.5.js +7 -0
  350. package/dist/packs/models/kie/kling-4.0-flash.d.ts +6 -0
  351. package/dist/packs/models/kie/kling-4.0-flash.js +7 -0
  352. package/dist/packs/models/kie/kling-4.0.d.ts +6 -0
  353. package/dist/packs/models/kie/kling-4.0.js +7 -0
  354. package/dist/packs/models/kie/nano-banana-2.1.d.ts +6 -0
  355. package/dist/packs/models/kie/nano-banana-2.1.js +7 -0
  356. package/dist/packs/models/kie/wan-3.0-prime.d.ts +6 -0
  357. package/dist/packs/models/kie/wan-3.0-prime.js +7 -0
  358. package/dist/packs/models/kie/wan-3.0.d.ts +6 -0
  359. package/dist/packs/models/kie/wan-3.0.js +7 -0
  360. package/dist/packs/models/modelscope/flux-1-krea-dev.js +1 -1
  361. package/dist/packs/models/modelscope/majicmix-realistic.js +1 -1
  362. package/dist/packs/models/modelscope/modelscope-custom.js +1 -1
  363. package/dist/packs/models/modelscope/qwen-image-2512.d.ts +6 -0
  364. package/dist/packs/models/modelscope/{qwen-image.js → qwen-image-2512.js} +2 -2
  365. package/dist/packs/models/modelscope/{qwen-image-edit-2509.d.ts → qwen-image-edit-2511.d.ts} +1 -1
  366. package/dist/packs/models/modelscope/{qwen-image-edit-2509.js → qwen-image-edit-2511.js} +2 -2
  367. package/dist/packs/models/modelscope/sdxl-14-ckpt.js +1 -1
  368. package/dist/packs/models/modelscope/z-image-turbo.js +1 -1
  369. package/dist/packs/models/volcengine/seedance-2.0-fast.d.ts +6 -0
  370. package/dist/packs/models/volcengine/seedance-2.0-fast.js +7 -0
  371. package/dist/packs/models/volcengine/seedance-2.0-mini.d.ts +6 -0
  372. package/dist/packs/models/volcengine/seedance-2.0-mini.js +7 -0
  373. package/dist/packs/models/volcengine/seedance-2.0.d.ts +6 -0
  374. package/dist/packs/models/volcengine/seedance-2.0.js +7 -0
  375. package/dist/packs/models/volcengine/seedance-2.5.d.ts +6 -0
  376. package/dist/packs/models/volcengine/seedance-2.5.js +7 -0
  377. package/dist/packs/models/volcengine/seedream-5.0-flash.js +1 -1
  378. package/dist/packs/models/volcengine/seedream-5.0-lite.js +1 -1
  379. package/dist/packs/models/volcengine/seedream-5.0-pro.js +1 -1
  380. package/dist/packs/provider-adapters/bailian.js +1 -1
  381. package/dist/packs/provider-adapters/modelscope.js +1 -1
  382. package/dist/packs/provider-adapters/volcengine.js +1 -1
  383. package/dist/packs/provider-packs/apimart.d.ts +1 -1
  384. package/dist/packs/provider-packs/apimart.js +35 -22
  385. package/dist/packs/provider-packs/bailian.d.ts +1 -1
  386. package/dist/packs/provider-packs/bailian.js +8 -5
  387. package/dist/packs/provider-packs/fal.d.ts +1 -1
  388. package/dist/packs/provider-packs/fal.js +52 -40
  389. package/dist/packs/provider-packs/grsai.d.ts +1 -1
  390. package/dist/packs/provider-packs/grsai.js +8 -5
  391. package/dist/packs/provider-packs/kie.d.ts +1 -1
  392. package/dist/packs/provider-packs/kie.js +41 -32
  393. package/dist/packs/provider-packs/modelscope.js +2 -2
  394. package/dist/packs/provider-packs/ppio.d.ts +1 -1
  395. package/dist/packs/provider-packs/ppio.js +2 -6
  396. package/dist/packs/provider-packs/volcengine.d.ts +1 -1
  397. package/dist/packs/provider-packs/volcengine.js +8 -4
  398. package/dist/pricing/index.d.ts +1 -0
  399. package/dist/pricing/index.js +1 -0
  400. package/dist/pricing/mediaContext.d.ts +6 -1
  401. package/dist/pricing/mediaContext.js +12 -5
  402. package/dist/pricing/tokenPricing.d.ts +36 -0
  403. package/dist/pricing/tokenPricing.js +26 -0
  404. package/dist/providers/bailian.d.ts +1 -1
  405. package/dist/providers/bailian.js +71 -4
  406. package/dist/providers/fal.js +11 -1
  407. package/dist/providers/helpers.d.ts +1 -1
  408. package/dist/providers/helpers.js +17 -5
  409. package/dist/providers/kie.js +16 -5
  410. package/dist/providers/metadata.js +2 -2
  411. package/dist/providers/openai-speech.d.ts +6 -0
  412. package/dist/providers/openai-speech.js +31 -0
  413. package/dist/providers/providerAccessErrors.d.ts +3 -0
  414. package/dist/providers/providerAccessErrors.js +73 -0
  415. package/dist/providers/siliconflow.js +2 -27
  416. package/dist/providers/volcengine-speech.js +22 -5
  417. package/dist/providers/volcengine-voice-clone.js +13 -4
  418. package/dist/providers/volcengine.d.ts +1 -1
  419. package/dist/providers/volcengine.js +89 -11
  420. package/dist/runtime/retry.js +3 -0
  421. package/dist/tool-packs/fal-erase/models/bria-eraser.model.js +1 -1
  422. package/dist/tool-packs/fal-erase/models/finegrain-eraser.model.js +1 -1
  423. package/dist/tool-packs/fal-erase/models/flux-pro-erase.model.js +1 -1
  424. package/dist/tool-packs/fal-image-utilities/models/control-light.model.js +1 -1
  425. package/dist/tool-packs/fal-image-utilities/models/outpaint.model.js +1 -1
  426. package/dist/tool-packs/fal-image-utilities/models/photo-restoration.model.js +1 -1
  427. package/dist/tool-packs/fal-image-utilities/models/pixelcut-background-removal.model.js +1 -1
  428. package/dist/tool-packs/fal-image-utilities/models/product-photography.model.js +1 -1
  429. package/dist/tool-packs/fal-image-utilities/models/relighting.model.js +1 -1
  430. package/dist/tool-packs/fal-multi-angle/models/flux-2-multiple-angles.model.js +1 -1
  431. package/dist/tool-packs/fal-multi-angle/models/perspective-change.model.js +1 -1
  432. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.js +1 -1
  433. package/dist/types/model.d.ts +68 -12
  434. package/dist/types/model.js +3 -0
  435. package/dist/types/modelTags.d.ts +142 -0
  436. package/dist/types/modelTags.js +44 -0
  437. package/dist/types/speechTimings.d.ts +15 -0
  438. package/dist/types/speechTimings.js +1 -0
  439. package/dist/upload/apimart-upload.d.ts +1 -1
  440. package/dist/upload/apimart-upload.js +37 -15
  441. package/dist/upload/bailian-oss-upload.d.ts +32 -0
  442. package/dist/upload/bailian-oss-upload.js +74 -0
  443. package/dist/upload/{fal-legacy.js → fal-host-fetch.js} +2 -2
  444. package/dist/upload/fal-transport.d.ts +6 -0
  445. package/dist/upload/fal-transport.js +2 -1
  446. package/dist/upload/index.d.ts +2 -2
  447. package/dist/upload/index.js +4 -7
  448. package/dist/upload/kie-upload.d.ts +1 -1
  449. package/dist/upload/kie-upload.js +34 -12
  450. package/dist/upload/media-fields.js +7 -2
  451. package/dist/upload/preprocess-core.d.ts +2 -0
  452. package/dist/upload/preprocess-core.js +2 -0
  453. package/dist/upload/preprocess.d.ts +1 -1
  454. package/dist/upload/preprocess.js +12 -3
  455. package/dist/upload/provider-preprocessors/apimart.d.ts +1 -1
  456. package/dist/upload/provider-preprocessors/apimart.js +13 -5
  457. package/dist/upload/provider-preprocessors/bailian.d.ts +8 -0
  458. package/dist/upload/provider-preprocessors/bailian.js +45 -0
  459. package/dist/upload/provider-preprocessors/kie.d.ts +1 -1
  460. package/dist/upload/provider-preprocessors/kie.js +26 -9
  461. package/dist/upload/provider-preprocessors/ppio.d.ts +1 -2
  462. package/dist/upload/provider-preprocessors/ppio.js +2 -29
  463. package/dist/upload/provider-preprocessors/public-host.d.ts +5 -0
  464. package/dist/upload/provider-preprocessors/public-host.js +7 -0
  465. package/dist/upload/provider-preprocessors/volcengine.d.ts +5 -0
  466. package/dist/upload/provider-preprocessors/volcengine.js +10 -0
  467. package/dist/upload/public-host-upload.d.ts +7 -0
  468. package/dist/upload/public-host-upload.js +55 -0
  469. package/dist/upload/upload-response.js +12 -7
  470. package/docs/README.md +26 -26
  471. package/docs/consumers.md +156 -148
  472. package/docs/llm-adaptation/README.md +180 -166
  473. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +108 -104
  474. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +94 -76
  475. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +89 -84
  476. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +126 -126
  477. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +238 -234
  478. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +131 -87
  479. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +112 -84
  480. package/docs/llm-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +88 -88
  481. package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
  482. package/docs/model-adaptation/Bria-/345/210/233/346/204/217/346/224/276/345/244/247/Bria-/345/210/233/346/204/217/346/224/276/345/244/247_Fal.md +31 -31
  483. package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
  484. package/docs/model-adaptation/Eleven-v4/Eleven-v4_Fal.md +49 -0
  485. package/docs/model-adaptation/FLUX-2-/345/244/232/350/247/222/345/272/246/FLUX-2-/345/244/232/350/247/222/345/272/246_Fal.md +107 -107
  486. package/docs/model-adaptation/FLUX-3/FLUX-3_APIMart.md +65 -0
  487. package/docs/model-adaptation/FLUX-3/FLUX-3_Fal.md +48 -0
  488. package/docs/model-adaptation/FLUX-3-Klein/FLUX-3-Klein_KIE.md +38 -0
  489. package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_APIMart.md +84 -0
  490. package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_Fal.md +80 -0
  491. package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
  492. package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
  493. package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +47 -47
  494. package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +45 -45
  495. package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +57 -57
  496. package/docs/model-adaptation/Fun-ASR-Realtime-2026-02-28/Fun-ASR-Realtime-2026-02-28_/347/231/276/347/202/274.md +39 -39
  497. package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +217 -213
  498. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
  499. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
  500. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +138 -137
  501. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +97 -93
  502. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -66
  503. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -55
  504. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +59 -53
  505. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -55
  506. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_APIMart.md +101 -0
  507. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Fal.md +55 -0
  508. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Grsai.md +32 -0
  509. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_KIE.md +51 -0
  510. package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
  511. package/docs/model-adaptation/Gemini-3.8-Flash-Lite-TTS/Gemini-3.8-Flash-Lite-TTS_KIE.md +22 -0
  512. package/docs/model-adaptation/Gemini-3.8-Flash-TTS/Gemini-3.8-Flash-TTS_KIE.md +38 -0
  513. package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_APIMart.md +79 -0
  514. package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_Fal.md +60 -0
  515. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +131 -125
  516. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
  517. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +132 -130
  518. package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +38 -36
  519. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
  520. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
  521. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
  522. package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_APIMart.md +68 -0
  523. package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_Fal.md +47 -0
  524. package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_KIE.md +37 -0
  525. package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +95 -93
  526. package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +58 -56
  527. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
  528. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
  529. package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_APIMart.md +66 -0
  530. package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_KIE.md +31 -27
  531. package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +99 -99
  532. package/docs/model-adaptation/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +41 -41
  533. package/docs/model-adaptation/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261_Fal.md +72 -72
  534. package/docs/model-adaptation/Image-Apps-v2-/346/211/251/345/233/276/Image-Apps-v2-/346/211/251/345/233/276_Fal.md +93 -93
  535. package/docs/model-adaptation/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215_Fal.md +86 -86
  536. package/docs/model-adaptation/Image-Apps-v2-/351/207/215/346/211/223/345/205/211/Image-Apps-v2-/351/207/215/346/211/223/345/205/211_Fal.md +84 -84
  537. package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
  538. package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +91 -89
  539. package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
  540. package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +120 -119
  541. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +130 -125
  542. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
  543. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +148 -143
  544. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +88 -85
  545. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +86 -83
  546. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
  547. package/docs/model-adaptation/Kling-4.0/Kling-4.0_APIMart.md +76 -0
  548. package/docs/model-adaptation/Kling-4.0/Kling-4.0_Fal.md +115 -0
  549. package/docs/model-adaptation/Kling-4.0/Kling-4.0_KIE.md +61 -0
  550. package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_Fal.md +55 -0
  551. package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_KIE.md +33 -0
  552. package/docs/model-adaptation/LTX-2.3/LTX-2.3_Fal.md +121 -0
  553. package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +402 -396
  554. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +237 -234
  555. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +112 -108
  556. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +118 -111
  557. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_/347/231/276/347/202/274.md +65 -0
  558. package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_APIMart.md +78 -0
  559. package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_Fal.md +62 -0
  560. package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
  561. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
  562. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
  563. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
  564. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +72 -70
  565. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
  566. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
  567. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
  568. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_APIMart.md +35 -0
  569. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Fal.md +37 -0
  570. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Grsai.md +35 -0
  571. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_KIE.md +36 -0
  572. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
  573. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
  574. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
  575. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
  576. package/docs/model-adaptation/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244_Fal.md +79 -79
  577. package/docs/model-adaptation/Qwen-Audio-3.1-TTS-Plus/Qwen-Audio-3.1-TTS-Plus_/347/231/276/347/202/274.md +59 -0
  578. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
  579. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +85 -84
  580. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
  581. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
  582. package/docs/model-adaptation/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246_Fal.md +57 -57
  583. package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +68 -68
  584. package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +40 -40
  585. package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +40 -40
  586. package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +44 -44
  587. package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +37 -37
  588. package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +45 -45
  589. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +58 -58
  590. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime-2026-02-10/Qwen3-ASR-Flash-Realtime-2026-02-10_/347/231/276/347/202/274.md +37 -37
  591. package/docs/model-adaptation/README.md +379 -338
  592. package/docs/model-adaptation/Seed-ICL-2.0/Seed-ICL-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +65 -65
  593. package/docs/model-adaptation/SeedASR-2.0-File/SeedASR-2.0-File_/347/201/253/345/261/261/345/274/225/346/223/216.md +115 -115
  594. package/docs/model-adaptation/SeedASR-2.0-Realtime/SeedASR-2.0-Realtime_/347/201/253/345/261/261/345/274/225/346/223/216.md +147 -147
  595. package/docs/model-adaptation/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +45 -45
  596. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
  597. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
  598. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +87 -86
  599. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +101 -0
  600. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
  601. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
  602. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +79 -78
  603. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
  604. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +93 -89
  605. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
  606. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +79 -78
  607. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
  608. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +217 -212
  609. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +98 -94
  610. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +94 -89
  611. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_/347/201/253/345/261/261/345/274/225/346/223/216.md +102 -0
  612. package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_APIMart.md +64 -0
  613. package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_/347/201/253/345/261/261/345/274/225/346/223/216.md +18 -18
  614. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +113 -106
  615. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
  616. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
  617. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_/347/201/253/345/261/261/345/274/225/346/223/216.md +110 -108
  618. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
  619. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
  620. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
  621. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_/347/201/253/345/261/261/345/274/225/346/223/216.md +137 -137
  622. package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +73 -73
  623. package/docs/model-adaptation/TTS-/345/244/232/344/276/233/345/272/224/345/225/206-2026-09.md +115 -69
  624. package/docs/model-adaptation/TTS-/346/227/266/351/227/264/346/210/263-2026-10.md +36 -0
  625. package/docs/model-adaptation/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +87 -87
  626. package/docs/model-adaptation/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247_Fal.md +34 -34
  627. package/docs/model-adaptation/Veo-3.1/Veo-3.1_APIMart.md +90 -0
  628. package/docs/model-adaptation/Wan-2.7-Image/Wan-2.7-Image_APIMart.md +81 -0
  629. package/docs/model-adaptation/Wan-3.0/Wan-3.0_APIMart.md +74 -0
  630. package/docs/model-adaptation/Wan-3.0/Wan-3.0_Fal.md +60 -0
  631. package/docs/model-adaptation/Wan-3.0/Wan-3.0_Grsai.md +35 -0
  632. package/docs/model-adaptation/Wan-3.0/Wan-3.0_KIE.md +38 -0
  633. package/docs/model-adaptation/Wan-3.0/Wan-3.0_/347/231/276/347/202/274.md +96 -0
  634. package/docs/model-adaptation/Wan-3.0-Prime/Wan-3.0-Prime_KIE.md +20 -0
  635. package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +80 -80
  636. package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +79 -79
  637. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
  638. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +103 -95
  639. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
  640. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
  641. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +99 -97
  642. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +240 -240
  643. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +190 -172
  644. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +136 -121
  645. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
  646. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +159 -131
  647. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/200/231/351/200/211/344/276/233/345/272/224/345/225/206/350/260/203/347/240/224-/345/233/276/347/211/207/345/267/245/345/205/267.md +151 -151
  648. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/277/253/351/200/237/351/200/202/351/205/215/344/276/233/345/272/224/345/225/206.md +65 -65
  649. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +170 -147
  650. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +191 -183
  651. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +339 -288
  652. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/241/205/345/237/272/346/265/201/345/212/250.md +180 -153
  653. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +205 -207
  654. package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +339 -339
  655. package/docs/model-adaptation//351/200/217/350/247/206/345/217/230/346/215/242//351/200/217/350/247/206/345/217/230/346/215/242_Fal.md +59 -59
  656. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
  657. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
  658. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
  659. package/docs//346/216/245/345/205/245/346/214/207/345/215/227//344/276/233/345/272/224/345/225/206/345/237/237/345/220/215.md +83 -83
  660. package/docs//346/216/245/345/205/245/346/214/207/345/215/227//351/224/231/350/257/257/345/244/204/347/220/206.md +72 -72
  661. package/examples/form-renderer/README.md +17 -17
  662. package/examples/form-renderer/cli.ts +32 -32
  663. package/examples/form-renderer/index.ts +144 -144
  664. package/examples/form-renderer/package.json +16 -16
  665. package/examples/form-renderer/tsconfig.json +14 -14
  666. package/examples/llm-chat/README.md +38 -38
  667. package/examples/llm-chat/index.ts +100 -100
  668. package/examples/llm-chat/package.json +19 -19
  669. package/examples/llm-chat/tsconfig.json +14 -14
  670. package/examples/minimal-node/README.md +31 -31
  671. package/examples/minimal-node/index.ts +138 -138
  672. package/examples/minimal-node/package.json +17 -17
  673. package/examples/minimal-node/tsconfig.json +14 -14
  674. package/package.json +259 -258
  675. package/dist/catalog/grsai/gptImage25Sizes.d.ts +0 -1
  676. package/dist/catalog/grsai/gptImage25Sizes.js +0 -76
  677. package/dist/catalog/kie/eleven-turbo-2.5-tts.model.d.ts +0 -2
  678. package/dist/catalog/kie/eleven-turbo-2.5-tts.model.js +0 -29
  679. package/dist/catalog/modelscope/qwen-image-edit-2509.model.d.ts +0 -5
  680. package/dist/catalog/modelscope/qwen-image.model.d.ts +0 -5
  681. package/dist/catalog/ppio/minimax-hailuo-2.3.model.d.ts +0 -7
  682. package/dist/catalog/ppio/minimax-hailuo-2.3.model.js +0 -114
  683. package/dist/catalog/ppio/wan-2.5-preview.model.d.ts +0 -7
  684. package/dist/catalog/ppio/wan-2.5-preview.model.js +0 -198
  685. package/dist/catalog/ppio/wan-2.6.model.d.ts +0 -7
  686. package/dist/catalog/ppio/wan-2.6.model.js +0 -206
  687. package/dist/catalog/ppio/wan-2.7.model.d.ts +0 -2
  688. package/dist/catalog/ppio/wan-2.7.model.js +0 -373
  689. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +0 -70
  690. package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +0 -76
  691. package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +0 -82
  692. package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +0 -84
  693. package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +0 -122
  694. /package/dist/upload/{fal-legacy.d.ts → fal-host-fetch.d.ts} +0 -0
@@ -0,0 +1,15 @@
1
+ import { defineModel } from '../defineModel.js';
2
+ import { wan30Definition } from './wan30.js';
3
+ export const kieWan30Model = defineModel({
4
+ meta: {
5
+ id: 'kie-wan-3.0', canonicalModelId: 'wan-3.0', seriesId: 'wan', seriesRank: 3,
6
+ provider: 'kie', type: 'video',
7
+ tags: ['text-to-video', 'image-to-video', 'start-end-frame', 'reference-mode'],
8
+ polling: { interval: 3000, maxAttempts: 400, expectedAttempts: 100 },
9
+ },
10
+ ...wan30Definition({
11
+ idPrefix: 'kieWan30', model: 'wan/3-0-video', name: 'Wan 3.0',
12
+ rates: { '480p': 0.04, '720p': 0.08, '1080p': 0.16 },
13
+ }),
14
+ });
15
+ export default kieWan30Model;
@@ -0,0 +1,10 @@
1
+ import type { ModelRuntimeDefinition } from '../../types/model.js';
2
+ /** Wan 3.0 与 Wan 3.0 Prime 请求字段完全相同,只有模型 ID 与每秒单价不同。 */
3
+ export interface Wan30Variant {
4
+ idPrefix: string;
5
+ model: string;
6
+ name: string;
7
+ /** 每秒美元价,按输出分辨率。 */
8
+ rates: Record<string, number>;
9
+ }
10
+ export declare function wan30Definition(variant: Wan30Variant): Omit<ModelRuntimeDefinition, 'meta'>;
@@ -0,0 +1,78 @@
1
+ import { resolveKieImageSources, resolveKieVideoSources } from './mediaSources.js';
2
+ const RATIOS = ['adaptive', '16:9', '4:3', '1:1', '3:4', '9:16'];
3
+ const RESOLUTIONS = ['480p', '720p', '1080p'];
4
+ function sources(value) {
5
+ return Array.isArray(value) ? value.filter((item) => typeof item === 'string' && item.trim().length > 0) : [];
6
+ }
7
+ export function wan30Definition(variant) {
8
+ const p = variant.idPrefix;
9
+ const read = (params, key) => params[`${p}${key}`];
10
+ const resolution = (params) => {
11
+ const value = String(read(params, 'Resolution') ?? '720p');
12
+ return RESOLUTIONS.includes(value) ? value : '720p';
13
+ };
14
+ const seconds = (params) => Math.min(30, Math.max(2, Number(read(params, 'Duration') ?? 5) || 5));
15
+ return {
16
+ inputLimits: {
17
+ images: { max: 2 },
18
+ videos: { max: 0 },
19
+ audios: { max: 0 },
20
+ rules: [{ when: `${p}Mode === "reference-to-video"`, images: { max: 10 }, videos: { max: 5 }, audios: { max: 5 } }],
21
+ },
22
+ params: [
23
+ { id: `${p}Mode`, type: 'dropdown', order: 1, default: 'text-image-to-video', options: [{ value: 'text-image-to-video' }, { value: 'reference-to-video' }] },
24
+ { id: `${p}AspectRatio`, type: 'dropdown', order: 2, default: 'adaptive', options: RATIOS.map(value => ({ value })) },
25
+ { id: `${p}Resolution`, type: 'dropdown', order: 3, default: '720p', options: RESOLUTIONS.map(value => ({ value })) },
26
+ { id: `${p}Duration`, type: 'dropdown', order: 4, default: '5', options: Array.from({ length: 29 }, (_, index) => ({ value: String(index + 2) })) },
27
+ { id: `${p}Audio`, type: 'switch', order: 5, default: true },
28
+ ],
29
+ endpoints: '/api/v1/jobs/createTask',
30
+ request: {
31
+ builder: (params) => {
32
+ const prompt = typeof params.prompt === 'string' ? params.prompt.trim() : '';
33
+ if (prompt.length > 20000)
34
+ throw new Error(`${variant.name} 提示词最多 20000 字符`);
35
+ const images = resolveKieImageSources(params);
36
+ const rawRatio = String(read(params, 'AspectRatio') ?? 'adaptive');
37
+ const input = {
38
+ resolution: resolution(params).toUpperCase(),
39
+ aspect_ratio: RATIOS.includes(rawRatio) ? rawRatio : 'adaptive',
40
+ duration: seconds(params),
41
+ audio: read(params, 'Audio') !== false,
42
+ };
43
+ if (prompt)
44
+ input.prompt = prompt;
45
+ if (read(params, 'Mode') === 'reference-to-video') {
46
+ const videos = resolveKieVideoSources(params);
47
+ const audios = sources(params.uploadedAudioFilePaths).length ? sources(params.uploadedAudioFilePaths) : sources(params.audios);
48
+ if (images.length > 10 || videos.length > 5 || audios.length > 5)
49
+ throw new Error(`${variant.name} 最多 10 张参考图、5 段参考视频、5 段参考音频`);
50
+ if (images.length)
51
+ input.reference_image_urls = images;
52
+ if (videos.length)
53
+ input.reference_video_urls = videos;
54
+ if (audios.length)
55
+ input.reference_audio_urls = audios;
56
+ if (!prompt && !images.length && !videos.length && !audios.length)
57
+ throw new Error(`${variant.name} 需要提示词或参考素材`);
58
+ }
59
+ else {
60
+ if (images.length > 2)
61
+ throw new Error(`${variant.name} 首尾帧最多 2 张图片`);
62
+ if (!prompt && !images.length)
63
+ throw new Error(`${variant.name} 文生视频需要提示词`);
64
+ if (images[0])
65
+ input.first_frame_url = images[0];
66
+ if (images[1])
67
+ input.last_frame_url = images[1];
68
+ }
69
+ return { model: variant.model, input };
70
+ },
71
+ },
72
+ pricing: {
73
+ currency: '$',
74
+ calculator: params => (variant.rates[resolution(params)] ?? variant.rates['720p']) * seconds(params),
75
+ description: RESOLUTIONS.map(res => `${res} $${variant.rates[res]}/秒`).join(','),
76
+ },
77
+ };
78
+ }
@@ -6,7 +6,7 @@ export const kieZImageModel = defineModel({
6
6
  canonicalModelId: 'z-image-turbo',
7
7
  provider: 'kie',
8
8
  type: 'image',
9
- tags: ['text-to-image', 'provider-kie'],
9
+ tags: ['text-to-image'],
10
10
  aliases: ['z-image-kie']
11
11
  },
12
12
  inputLimits: {
@@ -9,7 +9,8 @@ export const modelscopeFluxKreaDevModel = defineModel({
9
9
  canonicalModelId: 'flux-1-krea-dev',
10
10
  provider: 'modelscope',
11
11
  type: 'image',
12
- tags: ['text-to-image', 'english-prompt-only', 'provider-modelscope'],
12
+ tags: ['text-to-image'],
13
+ promptLanguage: 'en',
13
14
  polling: {
14
15
  interval: 3000,
15
16
  maxAttempts: 120,
@@ -35,7 +36,8 @@ export const modelscopeFluxKreaDevModel = defineModel({
35
36
  default: 1024,
36
37
  min: 64,
37
38
  max: 1024,
38
- step: 8
39
+ // 实际尺寸按 16 对齐(resolveModelscopeSize),步长与它一致。
40
+ step: 16
39
41
  },
40
42
  {
41
43
  id: 'modelscopeSteps',
@@ -9,7 +9,7 @@ export const modelscopeMajicMixRealisticModel = defineModel({
9
9
  canonicalModelId: 'majicmix-realistic',
10
10
  provider: 'modelscope',
11
11
  type: 'image',
12
- tags: ['text-to-image', 'provider-modelscope'],
12
+ tags: ['text-to-image'],
13
13
  polling: {
14
14
  interval: 3000,
15
15
  maxAttempts: 120,
@@ -35,7 +35,8 @@ export const modelscopeMajicMixRealisticModel = defineModel({
35
35
  default: 1024,
36
36
  min: 64,
37
37
  max: 2048,
38
- step: 8
38
+ // 实际尺寸按 16 对齐(resolveModelscopeSize),步长与它一致。
39
+ step: 16
39
40
  },
40
41
  {
41
42
  id: 'modelscopeSteps',
@@ -22,7 +22,7 @@ export const modelscopeCustomModel = defineModel({
22
22
  canonicalModelId: 'modelscope-custom',
23
23
  provider: 'modelscope',
24
24
  type: 'image',
25
- tags: ['text-to-image', 'image-to-image', 'provider-modelscope'],
25
+ tags: ['text-to-image', 'image-to-image'],
26
26
  polling: {
27
27
  interval: 3000,
28
28
  maxAttempts: 120,
@@ -55,7 +55,8 @@ export const modelscopeCustomModel = defineModel({
55
55
  default: 1024,
56
56
  min: 512,
57
57
  max: 2048,
58
- step: 8
58
+ // 实际尺寸按 16 对齐(resolveModelscopeSize),步长与它一致。
59
+ step: 16
59
60
  },
60
61
  {
61
62
  id: 'modelscopeSteps',
@@ -0,0 +1,5 @@
1
+ /**
2
+ * ModelScope Qwen-Image-2512 模型(运行时契约)
3
+ */
4
+ export declare const modelscopeQwenImage2512Model: import("../../index.js").ModelRuntimeDefinition;
5
+ export default modelscopeQwenImage2512Model;
@@ -1,15 +1,17 @@
1
1
  /**
2
- * ModelScope Qwen-Image 模型(运行时契约)
2
+ * ModelScope Qwen-Image-2512 模型(运行时契约)
3
3
  */
4
4
  import { defineModel } from '../defineModel.js';
5
5
  import { buildModelscopeRequest, MODELSCOPE_ASPECT_RATIO_OPTIONS, MODELSCOPE_CREATE_TASK_ENDPOINT } from './utils.js';
6
- export const modelscopeQwenImageModel = defineModel({
6
+ export const modelscopeQwenImage2512Model = defineModel({
7
7
  meta: {
8
- id: 'Qwen/Qwen-Image',
9
- canonicalModelId: 'qwen-image',
8
+ id: 'Qwen/Qwen-Image-2512',
9
+ canonicalModelId: 'qwen-image-2512',
10
+ // 2512 是 Qwen-Image 的直接后继,接口与参数相同;旧工程里的 Qwen-Image 按别名打开。
11
+ aliases: ['Qwen/Qwen-Image'],
10
12
  provider: 'modelscope',
11
13
  type: 'image',
12
- tags: ['text-to-image', 'provider-modelscope'],
14
+ tags: ['text-to-image'],
13
15
  polling: {
14
16
  interval: 3000,
15
17
  maxAttempts: 120,
@@ -35,7 +37,8 @@ export const modelscopeQwenImageModel = defineModel({
35
37
  default: 1024,
36
38
  min: 64,
37
39
  max: 1664,
38
- step: 8
40
+ // 实际尺寸按 16 对齐(resolveModelscopeSize),步长与它一致。
41
+ step: 16
39
42
  },
40
43
  {
41
44
  id: 'modelscopeSteps',
@@ -65,7 +68,7 @@ export const modelscopeQwenImageModel = defineModel({
65
68
  endpoints: MODELSCOPE_CREATE_TASK_ENDPOINT,
66
69
  request: {
67
70
  builder: (params) => buildModelscopeRequest(params, {
68
- modelId: 'Qwen/Qwen-Image',
71
+ modelId: 'Qwen/Qwen-Image-2512',
69
72
  allowGuidance: true,
70
73
  allowNegativePrompt: true,
71
74
  allowImage: false,
@@ -81,4 +84,4 @@ export const modelscopeQwenImageModel = defineModel({
81
84
  description: '2 魔粒/次(ultra 档),魔搭免费额度约 250 魔粒/天'
82
85
  }
83
86
  });
84
- export default modelscopeQwenImageModel;
87
+ export default modelscopeQwenImage2512Model;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * ModelScope Qwen-Image-Edit-2511 模型(运行时契约)
3
+ */
4
+ export declare const modelscopeQwenImageEdit2511Model: import("../../index.js").ModelRuntimeDefinition;
5
+ export default modelscopeQwenImageEdit2511Model;
@@ -1,15 +1,17 @@
1
1
  /**
2
- * ModelScope Qwen-Image-Edit-2509 模型(运行时契约)
2
+ * ModelScope Qwen-Image-Edit-2511 模型(运行时契约)
3
3
  */
4
4
  import { defineModel } from '../defineModel.js';
5
5
  import { buildModelscopeRequest, MODELSCOPE_ASPECT_RATIO_OPTIONS, MODELSCOPE_CREATE_TASK_ENDPOINT } from './utils.js';
6
- export const modelscopeQwenImageEdit2509Model = defineModel({
6
+ export const modelscopeQwenImageEdit2511Model = defineModel({
7
7
  meta: {
8
- id: 'Qwen/Qwen-Image-Edit-2509',
9
- canonicalModelId: 'qwen-image-edit-2509',
8
+ id: 'Qwen/Qwen-Image-Edit-2511',
9
+ canonicalModelId: 'qwen-image-edit-2511',
10
+ // 2511 是 2509 的直接后继,接口与参数相同;旧工程里的 2509 按别名打开。
11
+ aliases: ['Qwen/Qwen-Image-Edit-2509'],
10
12
  provider: 'modelscope',
11
13
  type: 'image',
12
- tags: ['image-to-image', 'supports-image-editing', 'supports-multi-image', 'provider-modelscope'],
14
+ tags: ['image-to-image'],
13
15
  polling: {
14
16
  interval: 3000,
15
17
  maxAttempts: 120,
@@ -64,7 +66,7 @@ export const modelscopeQwenImageEdit2509Model = defineModel({
64
66
  endpoints: MODELSCOPE_CREATE_TASK_ENDPOINT,
65
67
  request: {
66
68
  builder: (params) => buildModelscopeRequest(params, {
67
- modelId: 'Qwen/Qwen-Image-Edit-2509',
69
+ modelId: 'Qwen/Qwen-Image-Edit-2511',
68
70
  allowGuidance: false,
69
71
  allowNegativePrompt: false,
70
72
  allowImage: true,
@@ -80,4 +82,4 @@ export const modelscopeQwenImageEdit2509Model = defineModel({
80
82
  description: '2 魔粒/次(ultra 档),魔搭免费额度约 250 魔粒/天'
81
83
  }
82
84
  });
83
- export default modelscopeQwenImageEdit2509Model;
85
+ export default modelscopeQwenImageEdit2511Model;
@@ -9,7 +9,7 @@ export const modelscopeSdxl14Model = defineModel({
9
9
  canonicalModelId: 'sdxl-14-checkpoint',
10
10
  provider: 'modelscope',
11
11
  type: 'image',
12
- tags: ['text-to-image', 'provider-modelscope'],
12
+ tags: ['text-to-image'],
13
13
  polling: {
14
14
  interval: 3000,
15
15
  maxAttempts: 120,
@@ -35,7 +35,8 @@ export const modelscopeSdxl14Model = defineModel({
35
35
  default: 1024,
36
36
  min: 64,
37
37
  max: 2048,
38
- step: 8
38
+ // 实际尺寸按 16 对齐(resolveModelscopeSize),步长与它一致。
39
+ step: 16
39
40
  },
40
41
  {
41
42
  id: 'modelscopeSteps',
@@ -24,7 +24,7 @@ const BASE_SIZE_STEP = 8;
24
24
  */
25
25
  export const MODELSCOPE_DEFAULT_SIZE_BOUNDS = { min: 64, max: 2048 };
26
26
  /**
27
- * Qwen-Image-Edit-2509 专用分辨率计算(不使用基数系统,每个比例自动计算 [64, 2048] 范围内的最佳值)。
27
+ * Qwen-Image-Edit 专用分辨率计算(不使用基数系统,每个比例自动计算 [64, 2048] 范围内的最佳值)。
28
28
  * 原实现在应用侧 `src/utils/qwenResolutionCalculator.ts`,这里内联一份纯函数副本——
29
29
  * 该文件同时被 UI 组件 `UniversalResolutionSelector.tsx` 消费,SDK 不能反向依赖 `@/utils`,
30
30
  * 只搬运 `resolveModelscopeSize` 实际用到的这一个函数(不含 logger 的批量/展示层变体)。
@@ -114,7 +114,7 @@ export function resolveModelscopeSize(modelId, imageSize, baseSize, bounds = MOD
114
114
  const [w, h] = ratio.split(':').map(Number);
115
115
  if (!w || !h)
116
116
  return undefined;
117
- if (modelId === 'Qwen/Qwen-Image-Edit-2509') {
117
+ if (modelId === 'Qwen/Qwen-Image-Edit-2511') {
118
118
  const size = calculateQwenResolution(w, h);
119
119
  return `${size.width}x${size.height}`;
120
120
  }
@@ -9,7 +9,7 @@ export const modelscopeZImageTurboModel = defineModel({
9
9
  canonicalModelId: 'z-image-turbo',
10
10
  provider: 'modelscope',
11
11
  type: 'image',
12
- tags: ['text-to-image', 'provider-modelscope'],
12
+ tags: ['text-to-image'],
13
13
  polling: {
14
14
  interval: 3000,
15
15
  maxAttempts: 120,
@@ -35,7 +35,8 @@ export const modelscopeZImageTurboModel = defineModel({
35
35
  default: 1440,
36
36
  min: 512,
37
37
  max: 2048,
38
- step: 8
38
+ // 实际尺寸按 16 对齐(resolveModelscopeSize),步长与它一致。
39
+ step: 16
39
40
  },
40
41
  {
41
42
  id: 'modelscopeSteps',
@@ -8,7 +8,8 @@ export const kling30Model = defineModel({
8
8
  seriesRank: 3.0,
9
9
  provider: 'ppio',
10
10
  type: 'video',
11
- tags: ['text-to-video', 'image-to-video', 'start-end-frame', 'motion-control', 'provider-ppio'],
11
+ deprecated: '派欧云只保留大语言模型,不再提供生成模型',
12
+ tags: ['text-to-video', 'image-to-video', 'start-end-frame', 'motion-control'],
12
13
  polling: {
13
14
  interval: 3000,
14
15
  maxAttempts: 120,
@@ -19,10 +20,12 @@ export const kling30Model = defineModel({
19
20
  images: { max: 2 },
20
21
  videos: { max: 0 },
21
22
  rules: [
23
+ { imageConstraints: { minShortSidePx: 300, minAspectRatio: 0.4, maxAspectRatio: 2.5 } },
22
24
  {
23
25
  when: 'ppioKling30Mode === "motion-control"',
24
26
  images: { exact: 1 },
25
27
  videos: { exact: 1 },
28
+ imageConstraints: { minShortSidePx: 300 },
26
29
  videoConstraints: {
27
30
  maxSizeMB: 10,
28
31
  minDurationSec: 3,
@@ -11,7 +11,8 @@ export const minimaxSpeechModel = defineModel({
11
11
  canonicalModelId: 'minimax-speech-2.8',
12
12
  provider: 'ppio',
13
13
  type: 'audio',
14
- tags: ['audio', 'text-to-speech', 'voice-synthesis', 'voice-cloning', 'voice-clone', 'provider-ppio'],
14
+ deprecated: '派欧云只保留大语言模型,不再提供生成模型',
15
+ tags: ['text-to-audio', 'voice-clone'],
15
16
  polling: {
16
17
  interval: 3000,
17
18
  maxAttempts: 120,
@@ -8,11 +8,13 @@
8
8
  * 会在以上三种场景都被调用到,只查其中一个键会导致另外两个场景判断错误(典型表现:某个参数该
9
9
  * 隐藏却没隐藏、模式自动切换在画布里完全不触发、计价该按"有视频"算却按"无视频"算)。
10
10
  *
11
- * 这几个函数统一查三个键,跨 kie/ppio/fal/modelscope 各 provider 通用。
11
+ * 这几个函数统一查三个键,跨 kie/ppio/fal/modelscope 各 provider 通用。音频同理:
12
+ * uploadedAudioFilePaths / audios / uploadedAudios。
12
13
  */
13
14
  import type { JsonObject } from '../../types/runtime.js';
14
15
  export declare function resolveUploadedImageSources(params: JsonObject): string[];
15
16
  export declare function resolveUploadedVideoSources(params: JsonObject): string[];
17
+ export declare function resolveUploadedAudioSources(params: JsonObject): string[];
16
18
  export declare function countUploadedImages(params: JsonObject): number;
17
19
  export declare function countUploadedVideos(params: JsonObject): number;
18
20
  /**
@@ -20,5 +22,10 @@ export declare function countUploadedVideos(params: JsonObject): number;
20
22
  * 旧宿主只有首段时长时保留“首段 × 数量”的兼容估算,最后才使用调用方声明的单段兜底。
21
23
  */
22
24
  export declare function resolveUploadedVideoDurationSeconds(params: JsonObject, fallbackPerVideoSeconds?: number): number;
25
+ /**
26
+ * 返回所有音频输入的计费总时长。`__audioDurationSeconds` 由宿主按 pricing.mediaContext
27
+ * 用媒体探针补齐(估价与提交前的付费确认都会补);读不到时按调用方声明的单段兜底估算。
28
+ */
29
+ export declare function resolveUploadedAudioDurationSeconds(params: JsonObject, fallbackPerAudioSeconds?: number): number;
23
30
  export declare function hasUploadedImage(params: JsonObject): boolean;
24
31
  export declare function hasUploadedVideo(params: JsonObject): boolean;
@@ -8,7 +8,8 @@
8
8
  * 会在以上三种场景都被调用到,只查其中一个键会导致另外两个场景判断错误(典型表现:某个参数该
9
9
  * 隐藏却没隐藏、模式自动切换在画布里完全不触发、计价该按"有视频"算却按"无视频"算)。
10
10
  *
11
- * 这几个函数统一查三个键,跨 kie/ppio/fal/modelscope 各 provider 通用。
11
+ * 这几个函数统一查三个键,跨 kie/ppio/fal/modelscope 各 provider 通用。音频同理:
12
+ * uploadedAudioFilePaths / audios / uploadedAudios。
12
13
  */
13
14
  function cleanMediaSources(candidate) {
14
15
  if (!Array.isArray(candidate))
@@ -42,6 +43,9 @@ export function resolveUploadedImageSources(params) {
42
43
  export function resolveUploadedVideoSources(params) {
43
44
  return richestMediaSources([params.uploadedVideoFilePaths, params.videos, params.uploadedVideos]);
44
45
  }
46
+ export function resolveUploadedAudioSources(params) {
47
+ return richestMediaSources([params.uploadedAudioFilePaths, params.audios, params.uploadedAudios]);
48
+ }
45
49
  export function countUploadedImages(params) {
46
50
  return maxMediaSourceCount([params.uploadedFilePaths, params.images, params.uploadedImages]);
47
51
  }
@@ -78,6 +82,22 @@ export function resolveUploadedVideoDurationSeconds(params, fallbackPerVideoSeco
78
82
  : 0;
79
83
  return fallback * videoCount;
80
84
  }
85
+ /**
86
+ * 返回所有音频输入的计费总时长。`__audioDurationSeconds` 由宿主按 pricing.mediaContext
87
+ * 用媒体探针补齐(估价与提交前的付费确认都会补);读不到时按调用方声明的单段兜底估算。
88
+ */
89
+ export function resolveUploadedAudioDurationSeconds(params, fallbackPerAudioSeconds = 0) {
90
+ const audioCount = resolveUploadedAudioSources(params).length;
91
+ if (audioCount === 0)
92
+ return 0;
93
+ const duration = params.__audioDurationSeconds;
94
+ if (typeof duration === 'number' && Number.isFinite(duration) && duration > 0)
95
+ return duration;
96
+ const fallback = Number.isFinite(fallbackPerAudioSeconds) && fallbackPerAudioSeconds > 0
97
+ ? fallbackPerAudioSeconds
98
+ : 0;
99
+ return fallback * audioCount;
100
+ }
81
101
  export function hasUploadedImage(params) {
82
102
  return countUploadedImages(params) > 0;
83
103
  }
@@ -0,0 +1,11 @@
1
+ import type { JsonObject, JsonValue } from '../../types/runtime.js';
2
+ export declare const NANO21_RATIOS: readonly ["1:1", "2:3", "3:2", "1:4", "4:1", "3:4", "4:3", "4:5", "5:4", "1:8", "8:1", "9:16", "16:9", "21:9"];
3
+ export declare const NANO21_RESOLUTIONS: readonly ["1K", "2K", "4K"];
4
+ export declare const nano21Options: (values: readonly string[]) => {
5
+ value: string;
6
+ }[];
7
+ export declare function nano21Choice(value: JsonValue, choices: readonly string[], fallback: string): string;
8
+ export declare function nano21Count(value: JsonValue, max: number): number;
9
+ export declare function nano21Prompt(params: JsonObject, max?: number): string;
10
+ /** 智能比例使用供应商原生 auto,不自行裁剪参考图或重新猜测比例。 */
11
+ export declare function nano21Ratio(value: JsonValue): string;
@@ -0,0 +1,30 @@
1
+ export const NANO21_RATIOS = ['1:1', '2:3', '3:2', '1:4', '4:1', '3:4', '4:3', '4:5', '5:4', '1:8', '8:1', '9:16', '16:9', '21:9'];
2
+ export const NANO21_RESOLUTIONS = ['1K', '2K', '4K'];
3
+ export const nano21Options = (values) => values.map(value => ({ value }));
4
+ export function nano21Choice(value, choices, fallback) {
5
+ if (value === undefined)
6
+ return fallback;
7
+ if (typeof value !== 'string' || !choices.includes(value))
8
+ throw new Error(`Nano Banana 2.1 不支持参数值 ${String(value)}`);
9
+ return value;
10
+ }
11
+ export function nano21Count(value, max) {
12
+ if (value === undefined)
13
+ return 1;
14
+ if (typeof value !== 'number' || !Number.isInteger(value) || value < 1 || value > max) {
15
+ throw new Error(`Nano Banana 2.1 当前渠道每次支持 1–${max} 张输出图`);
16
+ }
17
+ return value;
18
+ }
19
+ export function nano21Prompt(params, max) {
20
+ if (typeof params.prompt !== 'string' || !params.prompt.trim())
21
+ throw new Error('请输入 Nano Banana 2.1 提示词');
22
+ if (max !== undefined && params.prompt.length > max)
23
+ throw new Error(`Nano Banana 2.1 提示词最多 ${max} 字符`);
24
+ return params.prompt;
25
+ }
26
+ /** 智能比例使用供应商原生 auto,不自行裁剪参考图或重新猜测比例。 */
27
+ export function nano21Ratio(value) {
28
+ const ratio = nano21Choice(value, ['smart', 'auto', ...NANO21_RATIOS], 'smart');
29
+ return ratio === 'smart' ? 'auto' : ratio;
30
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 分镜列表参数的值结构与校验:`[{ id?, prompt, duration }]`,按顺序成片,总时长等于各镜秒数之和。
3
+ * 界面(生成面板与画布节点)共用同一个 `shot-list` 面板写入这个结构,请求构建只读这里。
4
+ */
5
+ import type { JsonValue } from '../../types/runtime.js';
6
+ export interface ShotEntry {
7
+ prompt: string;
8
+ duration: number;
9
+ }
10
+ export interface ShotListLimits {
11
+ /** 单镜提示词最多字符数 */
12
+ maxPromptLength: number;
13
+ minShotSeconds: number;
14
+ maxShotSeconds: number;
15
+ /** 总时长范围,与不分镜时的时长参数一致 */
16
+ minTotalSeconds: number;
17
+ maxTotalSeconds: number;
18
+ }
19
+ /** 读出分镜;不是数组或没有镜头时返回空数组,表示没有使用分镜。 */
20
+ export declare function readShots(value: JsonValue | undefined): ShotEntry[];
21
+ /** 估价与界面汇总用:非法秒数按 0 计,结果夹在总时长范围内。 */
22
+ export declare function shotTotalSeconds(value: JsonValue | undefined, limits: Pick<ShotListLimits, 'minTotalSeconds' | 'maxTotalSeconds'>): number;
23
+ /**
24
+ * 提交前校验并转成供应商的 `multi_prompt` 结构;不合法时抛出能直接给用户看的原因。
25
+ * 平台的分镜与主提示词二选一,所以主提示词当作整体描述(人物、风格、场景)拼在每一镜前面,
26
+ * 每镜只写这一镜发生什么,不必重复交代。
27
+ */
28
+ export declare function buildShotPrompts(value: JsonValue | undefined, limits: ShotListLimits, modelName: string, sharedPrompt?: string): Array<{
29
+ prompt: string;
30
+ duration: number;
31
+ }>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * 分镜列表参数的值结构与校验:`[{ id?, prompt, duration }]`,按顺序成片,总时长等于各镜秒数之和。
3
+ * 界面(生成面板与画布节点)共用同一个 `shot-list` 面板写入这个结构,请求构建只读这里。
4
+ */
5
+ function isObject(value) {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ }
8
+ /** 读出分镜;不是数组或没有镜头时返回空数组,表示没有使用分镜。 */
9
+ export function readShots(value) {
10
+ if (!Array.isArray(value))
11
+ return [];
12
+ return value.filter(isObject).map((shot) => ({
13
+ prompt: typeof shot.prompt === 'string' ? shot.prompt.trim() : '',
14
+ duration: Math.round(Number(shot.duration)),
15
+ }));
16
+ }
17
+ /** 估价与界面汇总用:非法秒数按 0 计,结果夹在总时长范围内。 */
18
+ export function shotTotalSeconds(value, limits) {
19
+ const total = readShots(value).reduce((sum, shot) => sum + (Number.isFinite(shot.duration) && shot.duration > 0 ? shot.duration : 0), 0);
20
+ return Math.min(limits.maxTotalSeconds, Math.max(limits.minTotalSeconds, total));
21
+ }
22
+ /**
23
+ * 提交前校验并转成供应商的 `multi_prompt` 结构;不合法时抛出能直接给用户看的原因。
24
+ * 平台的分镜与主提示词二选一,所以主提示词当作整体描述(人物、风格、场景)拼在每一镜前面,
25
+ * 每镜只写这一镜发生什么,不必重复交代。
26
+ */
27
+ export function buildShotPrompts(value, limits, modelName, sharedPrompt = '') {
28
+ const shared = sharedPrompt.trim();
29
+ const shots = readShots(value).map(shot => ({ ...shot, prompt: shot.prompt && shared ? `${shared}\n${shot.prompt}` : shot.prompt }));
30
+ shots.forEach((shot, index) => {
31
+ const label = `${modelName} 第 ${index + 1} 镜`;
32
+ if (!shot.prompt)
33
+ throw new Error(`${label}的提示词不能为空`);
34
+ if (shot.prompt.length > limits.maxPromptLength) {
35
+ throw new Error(shared
36
+ ? `${label}加上主提示词后超过 ${limits.maxPromptLength} 字符,请缩短主提示词或这一镜`
37
+ : `${label}的提示词最多 ${limits.maxPromptLength} 字符`);
38
+ }
39
+ if (!Number.isInteger(shot.duration) || shot.duration < limits.minShotSeconds || shot.duration > limits.maxShotSeconds) {
40
+ throw new Error(`${label}的时长须为 ${limits.minShotSeconds}–${limits.maxShotSeconds} 秒`);
41
+ }
42
+ });
43
+ const total = shots.reduce((sum, shot) => sum + shot.duration, 0);
44
+ if (shots.length > 0 && (total < limits.minTotalSeconds || total > limits.maxTotalSeconds)) {
45
+ throw new Error(`${modelName} 分镜总时长须为 ${limits.minTotalSeconds}–${limits.maxTotalSeconds} 秒,当前 ${total} 秒`);
46
+ }
47
+ return shots.map(({ prompt, duration }) => ({ prompt, duration }));
48
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 元素(角色 / 物体主体)参数的值结构与校验,供 Kling 4.0 在 Fal 与 KIE 上共用。
3
+ *
4
+ * 值结构:`[{ id?, name?, kind: 'image' | 'video', images: string[], videos: string[], videoSeconds? }]`,
5
+ * `videoSeconds` 是上传时读到的视频时长,只用于估价,不发给平台。
6
+ * 图片元素第 1 张是正面主图、其余是其他角度;视频元素只用一段 3–8 秒单镜头视频。
7
+ * Fal 在提示词里按顺序写 `@Element1`,KIE 写元素名 `@名称`,所以名称只对 KIE 有意义。
8
+ * 媒体值是本地受管路径,由公共上传预处理按字段名(`frontal_image_url`、`image_urls`、`video_url`)上传替换。
9
+ */
10
+ import type { JsonObject, JsonValue } from '../../types/runtime.js';
11
+ export interface SubjectElementEntry {
12
+ name: string;
13
+ kind: 'image' | 'video';
14
+ images: string[];
15
+ video?: string;
16
+ videoSeconds?: number;
17
+ }
18
+ /** 两家对元素的共同上限:最多 7 个,其中视频元素最多 3 个;图片元素 2–4 张图。 */
19
+ export declare const SUBJECT_ELEMENT_LIMITS: {
20
+ readonly maxItems: 7;
21
+ readonly maxVideoItems: 3;
22
+ readonly minImages: 2;
23
+ readonly maxImages: 4;
24
+ };
25
+ export declare function readSubjectElements(value: JsonValue | undefined): SubjectElementEntry[];
26
+ /** 视频元素按视频输入计费的总秒数:用上传时读到的时长,读不到按上限计。 */
27
+ export declare function subjectElementVideoSeconds(value: JsonValue | undefined): number;
28
+ /** Fal:图片元素拆成正面主图与其他角度,视频元素只给视频;提示词按顺序引用 `@Element1`。 */
29
+ export declare function buildFalSubjectElements(value: JsonValue | undefined, modelName: string): JsonObject[];
30
+ /**
31
+ * KIE:每个元素必须有唯一名称,提示词用 `@名称` 引用。
32
+ * Flash 端点用 `type` 区分图片与视频元素,标准版没有这个字段。
33
+ */
34
+ export declare function buildKieSubjectElements(value: JsonValue | undefined, modelName: string, options: {
35
+ sendType: boolean;
36
+ }): JsonObject[];