@runware/schemas 0.0.0-20260510231619

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 (401) hide show
  1. package/dist/response-map.json +1902 -0
  2. package/dist/schemas/requests/architectures/exactly-illustrative.json +252 -0
  3. package/dist/schemas/requests/architectures/flux-1-dev.json +1103 -0
  4. package/dist/schemas/requests/architectures/flux-1-kontext-dev.json +855 -0
  5. package/dist/schemas/requests/architectures/flux-1-schnell.json +911 -0
  6. package/dist/schemas/requests/architectures/illustrious.json +893 -0
  7. package/dist/schemas/requests/architectures/noobai.json +893 -0
  8. package/dist/schemas/requests/architectures/pony.json +893 -0
  9. package/dist/schemas/requests/architectures/sd-1-5-distilled.json +893 -0
  10. package/dist/schemas/requests/architectures/sd-1-5-hyper.json +893 -0
  11. package/dist/schemas/requests/architectures/sd-1-5-lcm.json +893 -0
  12. package/dist/schemas/requests/architectures/sd-1-5.json +893 -0
  13. package/dist/schemas/requests/architectures/sd-2-1.json +893 -0
  14. package/dist/schemas/requests/architectures/sd3.json +847 -0
  15. package/dist/schemas/requests/architectures/sdxl-distilled.json +893 -0
  16. package/dist/schemas/requests/architectures/sdxl-hyper.json +893 -0
  17. package/dist/schemas/requests/architectures/sdxl-lcm.json +893 -0
  18. package/dist/schemas/requests/architectures/sdxl-lightning.json +893 -0
  19. package/dist/schemas/requests/architectures/sdxl-turbo.json +893 -0
  20. package/dist/schemas/requests/architectures/sdxl.json +990 -0
  21. package/dist/schemas/requests/architectures/z-image-turbo.json +730 -0
  22. package/dist/schemas/requests/architectures/z-image.json +730 -0
  23. package/dist/schemas/requests/models/alibaba/alibaba-happyhorse-1-0.json +709 -0
  24. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image-2-0-pro.json +257 -0
  25. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image-2-0.json +257 -0
  26. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image-2512.json +740 -0
  27. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image-edit-plus.json +571 -0
  28. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image-edit.json +572 -0
  29. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image-layered.json +571 -0
  30. package/dist/schemas/requests/models/alibaba/alibaba-qwen-image.json +744 -0
  31. package/dist/schemas/requests/models/alibaba/alibaba-qwen2-5-vl-3b-instruct.json +136 -0
  32. package/dist/schemas/requests/models/alibaba/alibaba-qwen2-5-vl-7b-instruct.json +136 -0
  33. package/dist/schemas/requests/models/alibaba/alibaba-qwen3-5-27b.json +281 -0
  34. package/dist/schemas/requests/models/alibaba/alibaba-qwen3-5-397b.json +281 -0
  35. package/dist/schemas/requests/models/alibaba/alibaba-qwen3-tts-1-7b-base.json +815 -0
  36. package/dist/schemas/requests/models/alibaba/alibaba-qwen3-tts-1-7b-customvoice.json +759 -0
  37. package/dist/schemas/requests/models/alibaba/alibaba-qwen3-tts-1-7b-voicedesign.json +749 -0
  38. package/dist/schemas/requests/models/alibaba/alibaba-wan2-2-a14b-turbo.json +829 -0
  39. package/dist/schemas/requests/models/alibaba/alibaba-wan2-2-a14b.json +829 -0
  40. package/dist/schemas/requests/models/alibaba/alibaba-wan2-2-animate.json +848 -0
  41. package/dist/schemas/requests/models/alibaba/alibaba-wan2-5-preview-image.json +191 -0
  42. package/dist/schemas/requests/models/alibaba/alibaba-wan2-5-preview.json +568 -0
  43. package/dist/schemas/requests/models/alibaba/alibaba-wan2-6-flash.json +587 -0
  44. package/dist/schemas/requests/models/alibaba/alibaba-wan2-6-image.json +238 -0
  45. package/dist/schemas/requests/models/alibaba/alibaba-wan2-6.json +640 -0
  46. package/dist/schemas/requests/models/alibaba/alibaba-wan2-7-image-pro.json +364 -0
  47. package/dist/schemas/requests/models/alibaba/alibaba-wan2-7-image.json +340 -0
  48. package/dist/schemas/requests/models/alibaba/alibaba-wan2-7.json +685 -0
  49. package/dist/schemas/requests/models/alibaba/alibaba-z-image-turbo.json +730 -0
  50. package/dist/schemas/requests/models/alibaba/alibaba-z-image.json +730 -0
  51. package/dist/schemas/requests/models/alibaba/index.json +15134 -0
  52. package/dist/schemas/requests/models/anthropic/anthropic-claude-haiku-4-5.json +370 -0
  53. package/dist/schemas/requests/models/anthropic/anthropic-claude-opus-4-7.json +373 -0
  54. package/dist/schemas/requests/models/anthropic/anthropic-claude-sonnet-4-6.json +372 -0
  55. package/dist/schemas/requests/models/anthropic/index.json +1117 -0
  56. package/dist/schemas/requests/models/bfl/bfl-flux-1-1-pro-ultra.json +317 -0
  57. package/dist/schemas/requests/models/bfl/bfl-flux-1-1-pro.json +214 -0
  58. package/dist/schemas/requests/models/bfl/bfl-flux-1-dev.json +1103 -0
  59. package/dist/schemas/requests/models/bfl/bfl-flux-1-expand-pro.json +266 -0
  60. package/dist/schemas/requests/models/bfl/bfl-flux-1-fill-pro.json +252 -0
  61. package/dist/schemas/requests/models/bfl/bfl-flux-1-kontext-dev.json +855 -0
  62. package/dist/schemas/requests/models/bfl/bfl-flux-1-kontext-max.json +345 -0
  63. package/dist/schemas/requests/models/bfl/bfl-flux-1-kontext-pro.json +345 -0
  64. package/dist/schemas/requests/models/bfl/bfl-flux-1-schnell.json +911 -0
  65. package/dist/schemas/requests/models/bfl/bfl-flux-2-dev.json +569 -0
  66. package/dist/schemas/requests/models/bfl/bfl-flux-2-flex.json +264 -0
  67. package/dist/schemas/requests/models/bfl/bfl-flux-2-klein-4b-base.json +570 -0
  68. package/dist/schemas/requests/models/bfl/bfl-flux-2-klein-4b.json +570 -0
  69. package/dist/schemas/requests/models/bfl/bfl-flux-2-klein-9b-base.json +570 -0
  70. package/dist/schemas/requests/models/bfl/bfl-flux-2-klein-9b-kv.json +570 -0
  71. package/dist/schemas/requests/models/bfl/bfl-flux-2-klein-9b.json +570 -0
  72. package/dist/schemas/requests/models/bfl/bfl-flux-2-max.json +248 -0
  73. package/dist/schemas/requests/models/bfl/bfl-flux-2-pro.json +248 -0
  74. package/dist/schemas/requests/models/bfl/index.json +8774 -0
  75. package/dist/schemas/requests/models/bria/bria-3-2.json +569 -0
  76. package/dist/schemas/requests/models/bria/bria-fibo-edit-tools.json +401 -0
  77. package/dist/schemas/requests/models/bria/bria-fibo-edit.json +253 -0
  78. package/dist/schemas/requests/models/bria/bria-fibo-lite.json +350 -0
  79. package/dist/schemas/requests/models/bria/bria-fibo.json +358 -0
  80. package/dist/schemas/requests/models/bria/bria-image-increase-resolution.json +163 -0
  81. package/dist/schemas/requests/models/bria/bria-image-replace-background.json +264 -0
  82. package/dist/schemas/requests/models/bria/bria-rmbg-v2-0.json +153 -0
  83. package/dist/schemas/requests/models/bria/bria-video-background-removal.json +153 -0
  84. package/dist/schemas/requests/models/bria/bria-video-eraser.json +361 -0
  85. package/dist/schemas/requests/models/bria/bria-video-increase-resolution.json +129 -0
  86. package/dist/schemas/requests/models/bria/index.json +3148 -0
  87. package/dist/schemas/requests/models/bytedance/bytedance-omnihuman-1-5.json +231 -0
  88. package/dist/schemas/requests/models/bytedance/bytedance-omnihuman-1.json +191 -0
  89. package/dist/schemas/requests/models/bytedance/bytedance-seedance-1-0-pro-fast.json +513 -0
  90. package/dist/schemas/requests/models/bytedance/bytedance-seedance-1-0-pro.json +521 -0
  91. package/dist/schemas/requests/models/bytedance/bytedance-seedance-1-5-pro.json +683 -0
  92. package/dist/schemas/requests/models/bytedance/bytedance-seedance-2-0-fast.json +634 -0
  93. package/dist/schemas/requests/models/bytedance/bytedance-seedance-2-0.json +701 -0
  94. package/dist/schemas/requests/models/bytedance/bytedance-seedream-4-0.json +424 -0
  95. package/dist/schemas/requests/models/bytedance/bytedance-seedream-4-5.json +321 -0
  96. package/dist/schemas/requests/models/bytedance/bytedance-seedream-5-0-lite.json +426 -0
  97. package/dist/schemas/requests/models/bytedance/bytedance-video-upscaler.json +119 -0
  98. package/dist/schemas/requests/models/bytedance/index.json +4758 -0
  99. package/dist/schemas/requests/models/creatify/creatify-aurora-v1-fast.json +199 -0
  100. package/dist/schemas/requests/models/creatify/creatify-aurora-v1.json +199 -0
  101. package/dist/schemas/requests/models/creatify/index.json +401 -0
  102. package/dist/schemas/requests/models/elevenlabs/elevenlabs-flash-v2-5.json +833 -0
  103. package/dist/schemas/requests/models/elevenlabs/elevenlabs-flash-v2.json +802 -0
  104. package/dist/schemas/requests/models/elevenlabs/elevenlabs-monolingual-v1.json +802 -0
  105. package/dist/schemas/requests/models/elevenlabs/elevenlabs-multilingual-v1.json +810 -0
  106. package/dist/schemas/requests/models/elevenlabs/elevenlabs-multilingual-v2.json +830 -0
  107. package/dist/schemas/requests/models/elevenlabs/elevenlabs-music-v1.json +877 -0
  108. package/dist/schemas/requests/models/elevenlabs/elevenlabs-turbo-v2-5.json +833 -0
  109. package/dist/schemas/requests/models/elevenlabs/elevenlabs-turbo-v2.json +802 -0
  110. package/dist/schemas/requests/models/elevenlabs/elevenlabs-v3.json +875 -0
  111. package/dist/schemas/requests/models/elevenlabs/index.json +7460 -0
  112. package/dist/schemas/requests/models/exactly/exactly-illustrative-training.json +112 -0
  113. package/dist/schemas/requests/models/exactly/exactly-photo-bright-pulse.json +553 -0
  114. package/dist/schemas/requests/models/exactly/exactly-photo-distant-reality.json +553 -0
  115. package/dist/schemas/requests/models/exactly/exactly-photo-extreme-contrast.json +553 -0
  116. package/dist/schemas/requests/models/exactly/exactly-photo-grain-film-look.json +553 -0
  117. package/dist/schemas/requests/models/exactly/exactly-photo-journey.json +553 -0
  118. package/dist/schemas/requests/models/exactly/exactly-photo-warm-light.json +553 -0
  119. package/dist/schemas/requests/models/exactly/index.json +3428 -0
  120. package/dist/schemas/requests/models/google/google-gemini-3-1-flash-lite.json +400 -0
  121. package/dist/schemas/requests/models/google/google-gemini-3-1-flash-tts.json +1384 -0
  122. package/dist/schemas/requests/models/google/google-gemini-3-1-pro.json +398 -0
  123. package/dist/schemas/requests/models/google/google-gemini-3-flash.json +400 -0
  124. package/dist/schemas/requests/models/google/google-imagen-3-fast.json +230 -0
  125. package/dist/schemas/requests/models/google/google-imagen-3.json +230 -0
  126. package/dist/schemas/requests/models/google/google-imagen-4-fast.json +230 -0
  127. package/dist/schemas/requests/models/google/google-imagen-4-preview.json +230 -0
  128. package/dist/schemas/requests/models/google/google-imagen-4-ultra.json +230 -0
  129. package/dist/schemas/requests/models/google/google-nano-banana-2.json +983 -0
  130. package/dist/schemas/requests/models/google/google-nano-banana-pro.json +703 -0
  131. package/dist/schemas/requests/models/google/google-nano-banana.json +373 -0
  132. package/dist/schemas/requests/models/google/google-veo-2.json +428 -0
  133. package/dist/schemas/requests/models/google/google-veo-3-1-fast.json +568 -0
  134. package/dist/schemas/requests/models/google/google-veo-3-1-lite.json +509 -0
  135. package/dist/schemas/requests/models/google/google-veo-3-1.json +783 -0
  136. package/dist/schemas/requests/models/google/google-veo-3-fast.json +411 -0
  137. package/dist/schemas/requests/models/google/google-veo-3.json +454 -0
  138. package/dist/schemas/requests/models/google/index.json +8876 -0
  139. package/dist/schemas/requests/models/heygen/heygen-avatar-iv.json +3066 -0
  140. package/dist/schemas/requests/models/heygen/heygen-video-agent.json +1522 -0
  141. package/dist/schemas/requests/models/heygen/index.json +4591 -0
  142. package/dist/schemas/requests/models/hyper3d/hyper3d-rodin-gen-2.json +355 -0
  143. package/dist/schemas/requests/models/hyper3d/index.json +359 -0
  144. package/dist/schemas/requests/models/ideogram/ideogram-1-0-remix.json +473 -0
  145. package/dist/schemas/requests/models/ideogram/ideogram-1-0.json +427 -0
  146. package/dist/schemas/requests/models/ideogram/ideogram-2-0-edit.json +322 -0
  147. package/dist/schemas/requests/models/ideogram/ideogram-2-0-reframe.json +1138 -0
  148. package/dist/schemas/requests/models/ideogram/ideogram-2-0-remix.json +1219 -0
  149. package/dist/schemas/requests/models/ideogram/ideogram-2-0.json +1173 -0
  150. package/dist/schemas/requests/models/ideogram/ideogram-2a-remix.json +1148 -0
  151. package/dist/schemas/requests/models/ideogram/ideogram-2a.json +1102 -0
  152. package/dist/schemas/requests/models/ideogram/ideogram-3-0-edit.json +538 -0
  153. package/dist/schemas/requests/models/ideogram/ideogram-3-0-reframe.json +1204 -0
  154. package/dist/schemas/requests/models/ideogram/ideogram-3-0-remix.json +1325 -0
  155. package/dist/schemas/requests/models/ideogram/ideogram-3-0-replace-background.json +427 -0
  156. package/dist/schemas/requests/models/ideogram/ideogram-3-0.json +1225 -0
  157. package/dist/schemas/requests/models/ideogram/index.json +11713 -0
  158. package/dist/schemas/requests/models/imagineart/imagineart-1-5-pro.json +283 -0
  159. package/dist/schemas/requests/models/imagineart/imagineart-1-5.json +272 -0
  160. package/dist/schemas/requests/models/imagineart/imagineart-2-0.json +486 -0
  161. package/dist/schemas/requests/models/imagineart/index.json +1043 -0
  162. package/dist/schemas/requests/models/inworld/index.json +3062 -0
  163. package/dist/schemas/requests/models/inworld/inworld-tts-1-5-max.json +807 -0
  164. package/dist/schemas/requests/models/inworld/inworld-tts-1-5-mini.json +807 -0
  165. package/dist/schemas/requests/models/inworld/inworld-tts-2.json +1446 -0
  166. package/dist/schemas/requests/models/klingai/index.json +11714 -0
  167. package/dist/schemas/requests/models/klingai/klingai-1-0-pro.json +319 -0
  168. package/dist/schemas/requests/models/klingai/klingai-1-0-standard.json +319 -0
  169. package/dist/schemas/requests/models/klingai/klingai-1-5-pro.json +308 -0
  170. package/dist/schemas/requests/models/klingai/klingai-1-5-standard.json +296 -0
  171. package/dist/schemas/requests/models/klingai/klingai-1-6-pro.json +304 -0
  172. package/dist/schemas/requests/models/klingai/klingai-1-6-standard.json +311 -0
  173. package/dist/schemas/requests/models/klingai/klingai-2-0-master.json +319 -0
  174. package/dist/schemas/requests/models/klingai/klingai-2-1-master.json +311 -0
  175. package/dist/schemas/requests/models/klingai/klingai-2-1-pro.json +320 -0
  176. package/dist/schemas/requests/models/klingai/klingai-2-1-standard.json +300 -0
  177. package/dist/schemas/requests/models/klingai/klingai-2-5-turbo-pro.json +319 -0
  178. package/dist/schemas/requests/models/klingai/klingai-2-5-turbo-standard.json +251 -0
  179. package/dist/schemas/requests/models/klingai/klingai-avatar-2-0-pro.json +189 -0
  180. package/dist/schemas/requests/models/klingai/klingai-avatar-2-0-standard.json +189 -0
  181. package/dist/schemas/requests/models/klingai/klingai-image-3-0.json +443 -0
  182. package/dist/schemas/requests/models/klingai/klingai-image-o1.json +444 -0
  183. package/dist/schemas/requests/models/klingai/klingai-image-o3.json +473 -0
  184. package/dist/schemas/requests/models/klingai/klingai-lip-sync.json +210 -0
  185. package/dist/schemas/requests/models/klingai/klingai-video-2-6-pro.json +493 -0
  186. package/dist/schemas/requests/models/klingai/klingai-video-2-6-standard.json +326 -0
  187. package/dist/schemas/requests/models/klingai/klingai-video-3-0-4k.json +551 -0
  188. package/dist/schemas/requests/models/klingai/klingai-video-3-0-pro.json +765 -0
  189. package/dist/schemas/requests/models/klingai/klingai-video-3-0-standard.json +765 -0
  190. package/dist/schemas/requests/models/klingai/klingai-video-o1-pro.json +534 -0
  191. package/dist/schemas/requests/models/klingai/klingai-video-o1-standard.json +528 -0
  192. package/dist/schemas/requests/models/klingai/klingai-video-o3-4k.json +512 -0
  193. package/dist/schemas/requests/models/klingai/klingai-video-o3-pro.json +819 -0
  194. package/dist/schemas/requests/models/klingai/klingai-video-o3-standard.json +819 -0
  195. package/dist/schemas/requests/models/lightricks/index.json +2356 -0
  196. package/dist/schemas/requests/models/lightricks/lightricks-ltx-2-3-fast.json +438 -0
  197. package/dist/schemas/requests/models/lightricks/lightricks-ltx-2-3.json +517 -0
  198. package/dist/schemas/requests/models/lightricks/lightricks-ltx-2-fast.json +328 -0
  199. package/dist/schemas/requests/models/lightricks/lightricks-ltx-2-pro.json +482 -0
  200. package/dist/schemas/requests/models/lightricks/lightricks-ltx-2-retake.json +289 -0
  201. package/dist/schemas/requests/models/lightricks/lightricks-ltx-2.json +303 -0
  202. package/dist/schemas/requests/models/luma/index.json +1049 -0
  203. package/dist/schemas/requests/models/luma/luma-uni-1-max.json +523 -0
  204. package/dist/schemas/requests/models/luma/luma-uni-1.json +523 -0
  205. package/dist/schemas/requests/models/memories/index.json +241 -0
  206. package/dist/schemas/requests/models/memories/memories-video-age-detection.json +119 -0
  207. package/dist/schemas/requests/models/memories/memories-video-captioning.json +119 -0
  208. package/dist/schemas/requests/models/meshy/index.json +583 -0
  209. package/dist/schemas/requests/models/meshy/meshy-6.json +579 -0
  210. package/dist/schemas/requests/models/meta/index.json +298 -0
  211. package/dist/schemas/requests/models/meta/meta-llava-1-6-mistral-7b.json +136 -0
  212. package/dist/schemas/requests/models/meta/meta-sam-3d-objects.json +159 -0
  213. package/dist/schemas/requests/models/microsoft/index.json +326 -0
  214. package/dist/schemas/requests/models/microsoft/microsoft-trellis-2.json +322 -0
  215. package/dist/schemas/requests/models/minimax/index.json +5629 -0
  216. package/dist/schemas/requests/models/minimax/minimax-01-director.json +296 -0
  217. package/dist/schemas/requests/models/minimax/minimax-01-live.json +296 -0
  218. package/dist/schemas/requests/models/minimax/minimax-01.json +322 -0
  219. package/dist/schemas/requests/models/minimax/minimax-hailuo-02.json +345 -0
  220. package/dist/schemas/requests/models/minimax/minimax-hailuo-2-3-fast.json +383 -0
  221. package/dist/schemas/requests/models/minimax/minimax-hailuo-2-3.json +362 -0
  222. package/dist/schemas/requests/models/minimax/minimax-m2-5.json +349 -0
  223. package/dist/schemas/requests/models/minimax/minimax-m2-7-highspeed.json +291 -0
  224. package/dist/schemas/requests/models/minimax/minimax-m2-7.json +291 -0
  225. package/dist/schemas/requests/models/minimax/minimax-music-2-6.json +858 -0
  226. package/dist/schemas/requests/models/minimax/minimax-music-cover.json +730 -0
  227. package/dist/schemas/requests/models/minimax/minimax-speech-2-8.json +1113 -0
  228. package/dist/schemas/requests/models/mirelo/index.json +813 -0
  229. package/dist/schemas/requests/models/mirelo/mirelo-sfx-1-5.json +809 -0
  230. package/dist/schemas/requests/models/moonshotai/index.json +415 -0
  231. package/dist/schemas/requests/models/moonshotai/moonshotai-kimi-k2-6.json +411 -0
  232. package/dist/schemas/requests/models/openai/index.json +4198 -0
  233. package/dist/schemas/requests/models/openai/openai-clip-vit-l-14.json +136 -0
  234. package/dist/schemas/requests/models/openai/openai-dalle-2.json +214 -0
  235. package/dist/schemas/requests/models/openai/openai-dalle-3.json +252 -0
  236. package/dist/schemas/requests/models/openai/openai-gpt-5-4-mini.json +331 -0
  237. package/dist/schemas/requests/models/openai/openai-gpt-5-4-nano.json +331 -0
  238. package/dist/schemas/requests/models/openai/openai-gpt-5-4-pro.json +331 -0
  239. package/dist/schemas/requests/models/openai/openai-gpt-5-4.json +331 -0
  240. package/dist/schemas/requests/models/openai/openai-gpt-5-5.json +318 -0
  241. package/dist/schemas/requests/models/openai/openai-gpt-image-1-5.json +318 -0
  242. package/dist/schemas/requests/models/openai/openai-gpt-image-1-mini.json +318 -0
  243. package/dist/schemas/requests/models/openai/openai-gpt-image-1.json +318 -0
  244. package/dist/schemas/requests/models/openai/openai-gpt-image-2.json +267 -0
  245. package/dist/schemas/requests/models/openai/openai-sora-2-pro.json +382 -0
  246. package/dist/schemas/requests/models/openai/openai-sora-2.json +360 -0
  247. package/dist/schemas/requests/models/picsart/index.json +125 -0
  248. package/dist/schemas/requests/models/picsart/picsart-image-vectorizer.json +121 -0
  249. package/dist/schemas/requests/models/pixverse/index.json +7029 -0
  250. package/dist/schemas/requests/models/pixverse/pixverse-lipsync.json +222 -0
  251. package/dist/schemas/requests/models/pixverse/pixverse-modify.json +253 -0
  252. package/dist/schemas/requests/models/pixverse/pixverse-v3-5.json +911 -0
  253. package/dist/schemas/requests/models/pixverse/pixverse-v4-5.json +1040 -0
  254. package/dist/schemas/requests/models/pixverse/pixverse-v4.json +1040 -0
  255. package/dist/schemas/requests/models/pixverse/pixverse-v5-5.json +732 -0
  256. package/dist/schemas/requests/models/pixverse/pixverse-v5-6.json +726 -0
  257. package/dist/schemas/requests/models/pixverse/pixverse-v5-fast.json +573 -0
  258. package/dist/schemas/requests/models/pixverse/pixverse-v5.json +711 -0
  259. package/dist/schemas/requests/models/pixverse/pixverse-v6.json +826 -0
  260. package/dist/schemas/requests/models/prunaai/index.json +1628 -0
  261. package/dist/schemas/requests/models/prunaai/prunaai-p-image-edit.json +347 -0
  262. package/dist/schemas/requests/models/prunaai/prunaai-p-image-upscale.json +158 -0
  263. package/dist/schemas/requests/models/prunaai/prunaai-p-image.json +175 -0
  264. package/dist/schemas/requests/models/prunaai/prunaai-p-video-avatar.json +393 -0
  265. package/dist/schemas/requests/models/prunaai/prunaai-p-video.json +555 -0
  266. package/dist/schemas/requests/models/recraft/index.json +1583 -0
  267. package/dist/schemas/requests/models/recraft/recraft-v4-pro-vector.json +335 -0
  268. package/dist/schemas/requests/models/recraft/recraft-v4-pro.json +396 -0
  269. package/dist/schemas/requests/models/recraft/recraft-v4-vector.json +335 -0
  270. package/dist/schemas/requests/models/recraft/recraft-v4.json +396 -0
  271. package/dist/schemas/requests/models/recraft/recraft-vectorize.json +121 -0
  272. package/dist/schemas/requests/models/rundiffusion/index.json +3849 -0
  273. package/dist/schemas/requests/models/rundiffusion/rundiffusion-juggernaut-base-flux.json +1103 -0
  274. package/dist/schemas/requests/models/rundiffusion/rundiffusion-juggernaut-lightning-flux.json +911 -0
  275. package/dist/schemas/requests/models/rundiffusion/rundiffusion-juggernaut-pro-flux.json +1103 -0
  276. package/dist/schemas/requests/models/rundiffusion/rundiffusion-juggernaut-z.json +731 -0
  277. package/dist/schemas/requests/models/runware/ace-step-v1-5-base.json +1005 -0
  278. package/dist/schemas/requests/models/runware/ace-step-v1-5-turbo.json +1005 -0
  279. package/dist/schemas/requests/models/runware/birefnet-dis.json +131 -0
  280. package/dist/schemas/requests/models/runware/birefnet-general-resolution-512x512-fp16.json +131 -0
  281. package/dist/schemas/requests/models/runware/birefnet-general.json +131 -0
  282. package/dist/schemas/requests/models/runware/birefnet-hrsod-dhu.json +131 -0
  283. package/dist/schemas/requests/models/runware/birefnet-massive-tr-dis5k-tr-tes.json +131 -0
  284. package/dist/schemas/requests/models/runware/birefnet-matting.json +131 -0
  285. package/dist/schemas/requests/models/runware/birefnet-portrait.json +131 -0
  286. package/dist/schemas/requests/models/runware/birefnet-v1-base-cod.json +131 -0
  287. package/dist/schemas/requests/models/runware/birefnet-v1-base.json +131 -0
  288. package/dist/schemas/requests/models/runware/bria-rmbg-v2-0-open.json +131 -0
  289. package/dist/schemas/requests/models/runware/ccsr.json +187 -0
  290. package/dist/schemas/requests/models/runware/clarity.json +277 -0
  291. package/dist/schemas/requests/models/runware/dia-1-6b.json +742 -0
  292. package/dist/schemas/requests/models/runware/dia2-2b.json +809 -0
  293. package/dist/schemas/requests/models/runware/flux-1-dev-srpo.json +1103 -0
  294. package/dist/schemas/requests/models/runware/flux-krea.json +1103 -0
  295. package/dist/schemas/requests/models/runware/hidream-i1-dev.json +448 -0
  296. package/dist/schemas/requests/models/runware/hidream-i1-fast.json +448 -0
  297. package/dist/schemas/requests/models/runware/hidream-i1-full.json +448 -0
  298. package/dist/schemas/requests/models/runware/index.json +11773 -0
  299. package/dist/schemas/requests/models/runware/kandinsky-5-0-image-lite.json +469 -0
  300. package/dist/schemas/requests/models/runware/kandinsky-5-0-lite.json +312 -0
  301. package/dist/schemas/requests/models/runware/llama-3-1-8b-prompt-enhancer.json +81 -0
  302. package/dist/schemas/requests/models/runware/object-eraser.json +221 -0
  303. package/dist/schemas/requests/models/runware/open-age-detection.json +131 -0
  304. package/dist/schemas/requests/models/runware/ovi.json +313 -0
  305. package/dist/schemas/requests/models/runware/qwen2-5-vl-7b-age-detector.json +131 -0
  306. package/dist/schemas/requests/models/runware/real-esrgan.json +140 -0
  307. package/dist/schemas/requests/models/runware/rembg-v1-4.json +199 -0
  308. package/dist/schemas/requests/models/runware/stable-diffusion-latent-upscaler.json +184 -0
  309. package/dist/schemas/requests/models/runware/swinir.json +140 -0
  310. package/dist/schemas/requests/models/runware/twinflow-z-image-turbo.json +465 -0
  311. package/dist/schemas/requests/models/runware/vit-age-classifier.json +131 -0
  312. package/dist/schemas/requests/models/runway/index.json +1983 -0
  313. package/dist/schemas/requests/models/runway/runway-aleph.json +359 -0
  314. package/dist/schemas/requests/models/runway/runway-gen-4-5.json +394 -0
  315. package/dist/schemas/requests/models/runway/runway-gen-4-image-turbo.json +428 -0
  316. package/dist/schemas/requests/models/runway/runway-gen-4-image.json +425 -0
  317. package/dist/schemas/requests/models/runway/runway-gen-4-turbo.json +377 -0
  318. package/dist/schemas/requests/models/skywork/index.json +811 -0
  319. package/dist/schemas/requests/models/skywork/skywork-skyreels-v4.json +807 -0
  320. package/dist/schemas/requests/models/sourceful/index.json +3421 -0
  321. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-1-1-mini.json +331 -0
  322. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-1-1-pro.json +331 -0
  323. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-1-1.json +331 -0
  324. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-2-0-fast.json +454 -0
  325. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-2-0-pro.json +564 -0
  326. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-2-preview-fast.json +471 -0
  327. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-2-preview-max.json +471 -0
  328. package/dist/schemas/requests/models/sourceful/sourceful-riverflow-2-preview-standard.json +471 -0
  329. package/dist/schemas/requests/models/stabilityai/index.json +1832 -0
  330. package/dist/schemas/requests/models/stabilityai/stabilityai-stable-diffusion-3.json +843 -0
  331. package/dist/schemas/requests/models/stabilityai/stabilityai-stable-diffusion-xl-v1-0-vae-fix.json +986 -0
  332. package/dist/schemas/requests/models/sync/index.json +1506 -0
  333. package/dist/schemas/requests/models/sync/sync-3.json +534 -0
  334. package/dist/schemas/requests/models/sync/sync-lipsync-2-pro.json +334 -0
  335. package/dist/schemas/requests/models/sync/sync-lipsync-2.json +334 -0
  336. package/dist/schemas/requests/models/sync/sync-react-1.json +303 -0
  337. package/dist/schemas/requests/models/tencent/index.json +1075 -0
  338. package/dist/schemas/requests/models/tencent/tencent-hunyuan-3d-3-1-pro.json +236 -0
  339. package/dist/schemas/requests/models/tencent/tencent-hunyuan-3d-3-1-rapid.json +260 -0
  340. package/dist/schemas/requests/models/tencent/tencent-hunyuanimage-3-0.json +577 -0
  341. package/dist/schemas/requests/models/topazlabs/index.json +146 -0
  342. package/dist/schemas/requests/models/topazlabs/topazlabs-starlight-precise-2-5.json +142 -0
  343. package/dist/schemas/requests/models/tripo/index.json +481 -0
  344. package/dist/schemas/requests/models/tripo/tripo-v3-1.json +477 -0
  345. package/dist/schemas/requests/models/veed/index.json +286 -0
  346. package/dist/schemas/requests/models/veed/veed-fabric-1-0.json +282 -0
  347. package/dist/schemas/requests/models/vidu/index.json +4290 -0
  348. package/dist/schemas/requests/models/vidu/vidu-1-5.json +531 -0
  349. package/dist/schemas/requests/models/vidu/vidu-2-0.json +472 -0
  350. package/dist/schemas/requests/models/vidu/vidu-q1-classic.json +316 -0
  351. package/dist/schemas/requests/models/vidu/vidu-q1-image.json +244 -0
  352. package/dist/schemas/requests/models/vidu/vidu-q1.json +459 -0
  353. package/dist/schemas/requests/models/vidu/vidu-q2-pro.json +591 -0
  354. package/dist/schemas/requests/models/vidu/vidu-q2-turbo.json +591 -0
  355. package/dist/schemas/requests/models/vidu/vidu-q3-turbo.json +537 -0
  356. package/dist/schemas/requests/models/vidu/vidu-q3.json +553 -0
  357. package/dist/schemas/requests/models/xai/index.json +2950 -0
  358. package/dist/schemas/requests/models/xai/xai-grok-imagine-image-pro.json +563 -0
  359. package/dist/schemas/requests/models/xai/xai-grok-imagine-image-quality.json +563 -0
  360. package/dist/schemas/requests/models/xai/xai-grok-imagine-image.json +419 -0
  361. package/dist/schemas/requests/models/xai/xai-grok-imagine-video.json +670 -0
  362. package/dist/schemas/requests/models/xai/xai-tts.json +735 -0
  363. package/dist/schemas/requests/models/zai/index.json +794 -0
  364. package/dist/schemas/requests/models/zai/zai-glm-4-7.json +231 -0
  365. package/dist/schemas/requests/models/zai/zai-glm-5-1.json +326 -0
  366. package/dist/schemas/requests/models/zai/zai-glm-image.json +235 -0
  367. package/dist/schemas/requests/types/3d.json +97 -0
  368. package/dist/schemas/requests/types/audio.json +676 -0
  369. package/dist/schemas/requests/types/caption-image.json +132 -0
  370. package/dist/schemas/requests/types/caption-video.json +120 -0
  371. package/dist/schemas/requests/types/caption.json +63 -0
  372. package/dist/schemas/requests/types/image.json +152 -0
  373. package/dist/schemas/requests/types/prompt-enhance.json +82 -0
  374. package/dist/schemas/requests/types/remove-background-image.json +132 -0
  375. package/dist/schemas/requests/types/remove-background-video.json +120 -0
  376. package/dist/schemas/requests/types/remove-background.json +63 -0
  377. package/dist/schemas/requests/types/text.json +126 -0
  378. package/dist/schemas/requests/types/training.json +43 -0
  379. package/dist/schemas/requests/types/upscale-image.json +132 -0
  380. package/dist/schemas/requests/types/upscale-video.json +120 -0
  381. package/dist/schemas/requests/types/upscale.json +63 -0
  382. package/dist/schemas/requests/types/vectorize.json +91 -0
  383. package/dist/schemas/requests/types/video.json +151 -0
  384. package/dist/schemas/requests/utilities/account-management.json +33 -0
  385. package/dist/schemas/requests/utilities/authentication.json +29 -0
  386. package/dist/schemas/requests/utilities/get-response.json +24 -0
  387. package/dist/schemas/requests/utilities/get-task-details.json +24 -0
  388. package/dist/schemas/requests/utilities/image-upload.json +39 -0
  389. package/dist/schemas/requests/utilities/model-search.json +357 -0
  390. package/dist/schemas/requests/utilities/model-upload.json +407 -0
  391. package/dist/schemas/requests/utilities/ping.json +21 -0
  392. package/dist/schemas/responses/errors/error.json +49 -0
  393. package/dist/schemas/responses/utilities/account-management.json +262 -0
  394. package/dist/schemas/responses/utilities/authentication.json +23 -0
  395. package/dist/schemas/responses/utilities/get-response.json +59 -0
  396. package/dist/schemas/responses/utilities/get-task-details.json +41 -0
  397. package/dist/schemas/responses/utilities/image-upload.json +29 -0
  398. package/dist/schemas/responses/utilities/model-search.json +111 -0
  399. package/dist/schemas/responses/utilities/model-upload.json +48 -0
  400. package/dist/schemas/responses/utilities/ping.json +15 -0
  401. package/package.json +16 -0
@@ -0,0 +1,4290 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "oneOf": [
4
+ {
5
+ "type": "object",
6
+ "properties": {
7
+ "model": {
8
+ "title": "Model",
9
+ "description": "Identifier of the model to use for generation.",
10
+ "type": "string",
11
+ "const": "vidu:1@5"
12
+ },
13
+ "inputs": {
14
+ "title": "Inputs",
15
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
16
+ "type": "object",
17
+ "properties": {
18
+ "referenceImages": {
19
+ "title": "Reference Images",
20
+ "description": "List of reference images (UUID, URL, Data URI, or Base64).",
21
+ "type": "array",
22
+ "minItems": 1,
23
+ "items": {
24
+ "title": "Image",
25
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
26
+ "type": "string",
27
+ "anyOf": [
28
+ {
29
+ "format": "uuid"
30
+ },
31
+ {
32
+ "format": "uri"
33
+ },
34
+ {
35
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
36
+ },
37
+ {
38
+ "pattern": "^[a-zA-Z0-9+/=]+$"
39
+ }
40
+ ]
41
+ },
42
+ "maxItems": 1
43
+ },
44
+ "frameImages": {
45
+ "title": "Frame Images",
46
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
47
+ "type": "array",
48
+ "minItems": 1,
49
+ "items": {
50
+ "anyOf": [
51
+ {
52
+ "title": "Image",
53
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
54
+ "type": "string",
55
+ "anyOf": [
56
+ {
57
+ "format": "uuid"
58
+ },
59
+ {
60
+ "format": "uri"
61
+ },
62
+ {
63
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
64
+ },
65
+ {
66
+ "pattern": "^[a-zA-Z0-9+/=]+$"
67
+ }
68
+ ]
69
+ },
70
+ {
71
+ "type": "object",
72
+ "properties": {
73
+ "image": {
74
+ "title": "Image",
75
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
76
+ "type": "string",
77
+ "anyOf": [
78
+ {
79
+ "format": "uuid"
80
+ },
81
+ {
82
+ "format": "uri"
83
+ },
84
+ {
85
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
86
+ },
87
+ {
88
+ "pattern": "^[a-zA-Z0-9+/=]+$"
89
+ }
90
+ ]
91
+ },
92
+ "frame": {
93
+ "title": "Frame",
94
+ "description": "Target frame position for the image. Supports first and last frame.",
95
+ "oneOf": [
96
+ {
97
+ "const": "first",
98
+ "description": "First frame of the video."
99
+ },
100
+ {
101
+ "const": "last",
102
+ "description": "Last frame of the video."
103
+ },
104
+ {
105
+ "const": 0,
106
+ "description": "Frame index 0 (first frame)."
107
+ },
108
+ {
109
+ "const": -1,
110
+ "description": "Frame index -1 (last frame)."
111
+ }
112
+ ]
113
+ }
114
+ },
115
+ "required": [
116
+ "image"
117
+ ],
118
+ "additionalProperties": false
119
+ }
120
+ ]
121
+ },
122
+ "maxItems": 2
123
+ }
124
+ },
125
+ "additionalProperties": false
126
+ },
127
+ "positivePrompt": {
128
+ "title": "Positive Prompt",
129
+ "description": "Text prompt describing elements to include in the generated output.",
130
+ "type": "string",
131
+ "minLength": 2,
132
+ "maxLength": 3000
133
+ },
134
+ "width": {
135
+ "title": "Width",
136
+ "description": "Width of the generated media in pixels.",
137
+ "type": "integer"
138
+ },
139
+ "height": {
140
+ "title": "Height",
141
+ "description": "Height of the generated media in pixels.",
142
+ "type": "integer"
143
+ },
144
+ "duration": {
145
+ "title": "Duration",
146
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
147
+ "type": "number",
148
+ "enum": [
149
+ 4,
150
+ 8
151
+ ],
152
+ "default": 4
153
+ },
154
+ "seed": {
155
+ "title": "Seed",
156
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
157
+ "type": "integer",
158
+ "minimum": 0,
159
+ "maximum": 2147483647
160
+ },
161
+ "providerSettings": {
162
+ "title": "Provider Settings",
163
+ "description": "Provider-specific configuration settings.",
164
+ "type": "object",
165
+ "properties": {
166
+ "vidu": {
167
+ "title": "Vidu Settings",
168
+ "description": "Provider-specific settings for Vidu.",
169
+ "type": "object",
170
+ "properties": {
171
+ "bgm": {
172
+ "title": "BGM",
173
+ "description": "Enable background music generation.",
174
+ "type": "boolean",
175
+ "default": false
176
+ },
177
+ "movementAmplitude": {
178
+ "title": "Movement Amplitude",
179
+ "description": "Movement intensity in the generated video.",
180
+ "type": "string",
181
+ "oneOf": [
182
+ {
183
+ "const": "auto",
184
+ "description": "Automatically determines movement level based on content."
185
+ },
186
+ {
187
+ "const": "small",
188
+ "description": "Minimal movement with subtle animations."
189
+ },
190
+ {
191
+ "const": "medium",
192
+ "description": "Moderate movement with balanced dynamics."
193
+ },
194
+ {
195
+ "const": "large",
196
+ "description": "High movement with pronounced animations."
197
+ }
198
+ ],
199
+ "default": "auto"
200
+ },
201
+ "style": {
202
+ "title": "Style",
203
+ "description": "Visual style.",
204
+ "type": "string",
205
+ "oneOf": [
206
+ {
207
+ "const": "general",
208
+ "description": "Standard photorealistic style."
209
+ },
210
+ {
211
+ "const": "anime",
212
+ "description": "Anime/manga visual aesthetic."
213
+ }
214
+ ],
215
+ "default": "general"
216
+ }
217
+ },
218
+ "additionalProperties": false
219
+ }
220
+ },
221
+ "additionalProperties": false
222
+ },
223
+ "taskType": {
224
+ "title": "Task Type",
225
+ "description": "Identifier for the type of task being performed",
226
+ "type": "string",
227
+ "const": "videoInference"
228
+ },
229
+ "taskUUID": {
230
+ "title": "Task UUID",
231
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
232
+ "type": "string",
233
+ "format": "uuid"
234
+ },
235
+ "webhookURL": {
236
+ "title": "Webhook URL",
237
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
238
+ "type": "string",
239
+ "format": "uri"
240
+ },
241
+ "includeCost": {
242
+ "title": "Include Cost",
243
+ "description": "Include task cost in the response.",
244
+ "type": "boolean",
245
+ "default": false
246
+ },
247
+ "numberResults": {
248
+ "title": "Number of Results",
249
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
250
+ "type": "integer",
251
+ "minimum": 1,
252
+ "default": 1,
253
+ "maximum": 4
254
+ },
255
+ "uploadEndpoint": {
256
+ "title": "Upload Endpoint",
257
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
258
+ "type": "string",
259
+ "format": "uri"
260
+ },
261
+ "ttl": {
262
+ "title": "TTL",
263
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
264
+ "type": "integer",
265
+ "minimum": 60
266
+ },
267
+ "outputType": {
268
+ "title": "Output Type",
269
+ "description": "Video output type.",
270
+ "type": "string",
271
+ "enum": [
272
+ "URL"
273
+ ],
274
+ "default": "URL"
275
+ },
276
+ "outputFormat": {
277
+ "title": "Output Format",
278
+ "description": "File format for the generated video.",
279
+ "type": "string",
280
+ "enum": [
281
+ "MP4",
282
+ "WEBM",
283
+ "MOV"
284
+ ],
285
+ "default": "MP4"
286
+ },
287
+ "outputQuality": {
288
+ "title": "Output Quality",
289
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
290
+ "type": "integer",
291
+ "minimum": 20,
292
+ "maximum": 99,
293
+ "default": 95
294
+ },
295
+ "deliveryMethod": {
296
+ "title": "Delivery Method",
297
+ "description": "Determines how the API delivers task results.",
298
+ "type": "string",
299
+ "oneOf": [
300
+ {
301
+ "const": "async",
302
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
303
+ }
304
+ ],
305
+ "default": "async"
306
+ },
307
+ "safety": {
308
+ "type": "object",
309
+ "title": "Safety Settings",
310
+ "description": "Content safety checking configuration for video generation.",
311
+ "properties": {
312
+ "checkContent": {
313
+ "title": "Check Content",
314
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
315
+ "type": "boolean",
316
+ "default": false
317
+ },
318
+ "mode": {
319
+ "description": "Safety checking mode for video generation.",
320
+ "type": "string",
321
+ "oneOf": [
322
+ {
323
+ "const": "none",
324
+ "title": "None",
325
+ "description": "Disables checking."
326
+ },
327
+ {
328
+ "const": "fast",
329
+ "title": "Fast",
330
+ "description": "Checks key frames."
331
+ },
332
+ {
333
+ "const": "full",
334
+ "title": "Full",
335
+ "description": "Checks all frames."
336
+ }
337
+ ],
338
+ "default": "none"
339
+ }
340
+ },
341
+ "additionalProperties": false
342
+ }
343
+ },
344
+ "allOf": [
345
+ {
346
+ "dependentRequired": {
347
+ "width": [
348
+ "height"
349
+ ],
350
+ "height": [
351
+ "width"
352
+ ]
353
+ }
354
+ },
355
+ {
356
+ "oneOf": [
357
+ {
358
+ "title": "1080p (16:9)",
359
+ "properties": {
360
+ "width": {
361
+ "const": 1920
362
+ },
363
+ "height": {
364
+ "const": 1080
365
+ }
366
+ }
367
+ },
368
+ {
369
+ "title": "1080p (1:1)",
370
+ "properties": {
371
+ "width": {
372
+ "const": 1080
373
+ },
374
+ "height": {
375
+ "const": 1080
376
+ }
377
+ }
378
+ },
379
+ {
380
+ "title": "1080p (9:16)",
381
+ "properties": {
382
+ "width": {
383
+ "const": 1080
384
+ },
385
+ "height": {
386
+ "const": 1920
387
+ }
388
+ }
389
+ },
390
+ {
391
+ "title": "720p (16:9)",
392
+ "properties": {
393
+ "width": {
394
+ "const": 1280
395
+ },
396
+ "height": {
397
+ "const": 720
398
+ }
399
+ }
400
+ },
401
+ {
402
+ "title": "720p (1:1)",
403
+ "properties": {
404
+ "width": {
405
+ "const": 720
406
+ },
407
+ "height": {
408
+ "const": 720
409
+ }
410
+ }
411
+ },
412
+ {
413
+ "title": "720p (9:16)",
414
+ "properties": {
415
+ "width": {
416
+ "const": 720
417
+ },
418
+ "height": {
419
+ "const": 1280
420
+ }
421
+ }
422
+ },
423
+ {
424
+ "title": "360p (16:9)",
425
+ "properties": {
426
+ "width": {
427
+ "const": 640
428
+ },
429
+ "height": {
430
+ "const": 360
431
+ }
432
+ }
433
+ },
434
+ {
435
+ "title": "360p (1:1)",
436
+ "properties": {
437
+ "width": {
438
+ "const": 360
439
+ },
440
+ "height": {
441
+ "const": 360
442
+ }
443
+ }
444
+ },
445
+ {
446
+ "title": "360p (9:16)",
447
+ "properties": {
448
+ "width": {
449
+ "const": 360
450
+ },
451
+ "height": {
452
+ "const": 640
453
+ }
454
+ }
455
+ }
456
+ ]
457
+ },
458
+ {
459
+ "not": {
460
+ "allOf": [
461
+ {
462
+ "properties": {
463
+ "providerSettings": {
464
+ "properties": {
465
+ "vidu": {
466
+ "required": [
467
+ "style"
468
+ ]
469
+ }
470
+ }
471
+ }
472
+ },
473
+ "required": [
474
+ "providerSettings"
475
+ ]
476
+ },
477
+ {
478
+ "properties": {
479
+ "inputs": {
480
+ "anyOf": [
481
+ {
482
+ "required": [
483
+ "frameImages"
484
+ ]
485
+ },
486
+ {
487
+ "required": [
488
+ "referenceImages"
489
+ ]
490
+ }
491
+ ]
492
+ }
493
+ },
494
+ "required": [
495
+ "inputs"
496
+ ]
497
+ }
498
+ ]
499
+ }
500
+ },
501
+ {
502
+ "if": {
503
+ "properties": {
504
+ "providerSettings": {
505
+ "properties": {
506
+ "vidu": {
507
+ "required": [
508
+ "bgm"
509
+ ]
510
+ }
511
+ }
512
+ }
513
+ },
514
+ "required": [
515
+ "providerSettings"
516
+ ]
517
+ },
518
+ "then": {
519
+ "properties": {
520
+ "duration": {
521
+ "const": 4
522
+ }
523
+ }
524
+ }
525
+ }
526
+ ],
527
+ "additionalProperties": false,
528
+ "required": [
529
+ "taskType",
530
+ "taskUUID",
531
+ "model"
532
+ ]
533
+ },
534
+ {
535
+ "type": "object",
536
+ "properties": {
537
+ "model": {
538
+ "title": "Model",
539
+ "description": "Identifier of the model to use for generation.",
540
+ "type": "string",
541
+ "const": "vidu:2@0"
542
+ },
543
+ "inputs": {
544
+ "title": "Inputs",
545
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
546
+ "type": "object",
547
+ "properties": {
548
+ "referenceImages": {
549
+ "title": "Reference Images",
550
+ "description": "List of reference images (UUID, URL, Data URI, or Base64).",
551
+ "type": "array",
552
+ "minItems": 1,
553
+ "items": {
554
+ "title": "Image",
555
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
556
+ "type": "string",
557
+ "anyOf": [
558
+ {
559
+ "format": "uuid"
560
+ },
561
+ {
562
+ "format": "uri"
563
+ },
564
+ {
565
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
566
+ },
567
+ {
568
+ "pattern": "^[a-zA-Z0-9+/=]+$"
569
+ }
570
+ ]
571
+ },
572
+ "maxItems": 1
573
+ },
574
+ "frameImages": {
575
+ "title": "Frame Images",
576
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
577
+ "type": "array",
578
+ "minItems": 1,
579
+ "items": {
580
+ "anyOf": [
581
+ {
582
+ "title": "Image",
583
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
584
+ "type": "string",
585
+ "anyOf": [
586
+ {
587
+ "format": "uuid"
588
+ },
589
+ {
590
+ "format": "uri"
591
+ },
592
+ {
593
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
594
+ },
595
+ {
596
+ "pattern": "^[a-zA-Z0-9+/=]+$"
597
+ }
598
+ ]
599
+ },
600
+ {
601
+ "type": "object",
602
+ "properties": {
603
+ "image": {
604
+ "title": "Image",
605
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
606
+ "type": "string",
607
+ "anyOf": [
608
+ {
609
+ "format": "uuid"
610
+ },
611
+ {
612
+ "format": "uri"
613
+ },
614
+ {
615
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
616
+ },
617
+ {
618
+ "pattern": "^[a-zA-Z0-9+/=]+$"
619
+ }
620
+ ]
621
+ },
622
+ "frame": {
623
+ "title": "Frame",
624
+ "description": "Target frame position for the image. Supports first and last frame.",
625
+ "oneOf": [
626
+ {
627
+ "const": "first",
628
+ "description": "First frame of the video."
629
+ },
630
+ {
631
+ "const": "last",
632
+ "description": "Last frame of the video."
633
+ },
634
+ {
635
+ "const": 0,
636
+ "description": "Frame index 0 (first frame)."
637
+ },
638
+ {
639
+ "const": -1,
640
+ "description": "Frame index -1 (last frame)."
641
+ }
642
+ ]
643
+ }
644
+ },
645
+ "required": [
646
+ "image"
647
+ ],
648
+ "additionalProperties": false
649
+ }
650
+ ]
651
+ },
652
+ "maxItems": 2
653
+ }
654
+ },
655
+ "additionalProperties": false
656
+ },
657
+ "positivePrompt": {
658
+ "title": "Positive Prompt",
659
+ "description": "Text prompt describing elements to include in the generated output.",
660
+ "type": "string",
661
+ "minLength": 2,
662
+ "maxLength": 3000
663
+ },
664
+ "width": {
665
+ "title": "Width",
666
+ "description": "Width of the generated media in pixels.",
667
+ "type": "integer"
668
+ },
669
+ "height": {
670
+ "title": "Height",
671
+ "description": "Height of the generated media in pixels.",
672
+ "type": "integer"
673
+ },
674
+ "duration": {
675
+ "title": "Duration",
676
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
677
+ "type": "number",
678
+ "enum": [
679
+ 4,
680
+ 8
681
+ ],
682
+ "default": 4
683
+ },
684
+ "seed": {
685
+ "title": "Seed",
686
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
687
+ "type": "integer",
688
+ "minimum": 0,
689
+ "maximum": 2147483647
690
+ },
691
+ "providerSettings": {
692
+ "title": "Provider Settings",
693
+ "description": "Provider-specific configuration settings.",
694
+ "type": "object",
695
+ "properties": {
696
+ "vidu": {
697
+ "title": "Vidu Settings",
698
+ "description": "Provider-specific settings for Vidu.",
699
+ "type": "object",
700
+ "properties": {
701
+ "bgm": {
702
+ "title": "BGM",
703
+ "description": "Enable background music generation.",
704
+ "type": "boolean",
705
+ "default": false
706
+ },
707
+ "movementAmplitude": {
708
+ "title": "Movement Amplitude",
709
+ "description": "Movement intensity in the generated video.",
710
+ "type": "string",
711
+ "oneOf": [
712
+ {
713
+ "const": "auto",
714
+ "description": "Automatically determines movement level based on content."
715
+ },
716
+ {
717
+ "const": "small",
718
+ "description": "Minimal movement with subtle animations."
719
+ },
720
+ {
721
+ "const": "medium",
722
+ "description": "Moderate movement with balanced dynamics."
723
+ },
724
+ {
725
+ "const": "large",
726
+ "description": "High movement with pronounced animations."
727
+ }
728
+ ],
729
+ "default": "auto"
730
+ }
731
+ },
732
+ "additionalProperties": false
733
+ }
734
+ },
735
+ "additionalProperties": false
736
+ },
737
+ "taskType": {
738
+ "title": "Task Type",
739
+ "description": "Identifier for the type of task being performed",
740
+ "type": "string",
741
+ "const": "videoInference"
742
+ },
743
+ "taskUUID": {
744
+ "title": "Task UUID",
745
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
746
+ "type": "string",
747
+ "format": "uuid"
748
+ },
749
+ "webhookURL": {
750
+ "title": "Webhook URL",
751
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
752
+ "type": "string",
753
+ "format": "uri"
754
+ },
755
+ "includeCost": {
756
+ "title": "Include Cost",
757
+ "description": "Include task cost in the response.",
758
+ "type": "boolean",
759
+ "default": false
760
+ },
761
+ "numberResults": {
762
+ "title": "Number of Results",
763
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
764
+ "type": "integer",
765
+ "minimum": 1,
766
+ "default": 1,
767
+ "maximum": 4
768
+ },
769
+ "uploadEndpoint": {
770
+ "title": "Upload Endpoint",
771
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
772
+ "type": "string",
773
+ "format": "uri"
774
+ },
775
+ "ttl": {
776
+ "title": "TTL",
777
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
778
+ "type": "integer",
779
+ "minimum": 60
780
+ },
781
+ "outputType": {
782
+ "title": "Output Type",
783
+ "description": "Video output type.",
784
+ "type": "string",
785
+ "enum": [
786
+ "URL"
787
+ ],
788
+ "default": "URL"
789
+ },
790
+ "outputFormat": {
791
+ "title": "Output Format",
792
+ "description": "File format for the generated video.",
793
+ "type": "string",
794
+ "enum": [
795
+ "MP4",
796
+ "WEBM",
797
+ "MOV"
798
+ ],
799
+ "default": "MP4"
800
+ },
801
+ "outputQuality": {
802
+ "title": "Output Quality",
803
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
804
+ "type": "integer",
805
+ "minimum": 20,
806
+ "maximum": 99,
807
+ "default": 95
808
+ },
809
+ "deliveryMethod": {
810
+ "title": "Delivery Method",
811
+ "description": "Determines how the API delivers task results.",
812
+ "type": "string",
813
+ "oneOf": [
814
+ {
815
+ "const": "async",
816
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
817
+ }
818
+ ],
819
+ "default": "async"
820
+ },
821
+ "safety": {
822
+ "type": "object",
823
+ "title": "Safety Settings",
824
+ "description": "Content safety checking configuration for video generation.",
825
+ "properties": {
826
+ "checkContent": {
827
+ "title": "Check Content",
828
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
829
+ "type": "boolean",
830
+ "default": false
831
+ },
832
+ "mode": {
833
+ "description": "Safety checking mode for video generation.",
834
+ "type": "string",
835
+ "oneOf": [
836
+ {
837
+ "const": "none",
838
+ "title": "None",
839
+ "description": "Disables checking."
840
+ },
841
+ {
842
+ "const": "fast",
843
+ "title": "Fast",
844
+ "description": "Checks key frames."
845
+ },
846
+ {
847
+ "const": "full",
848
+ "title": "Full",
849
+ "description": "Checks all frames."
850
+ }
851
+ ],
852
+ "default": "none"
853
+ }
854
+ },
855
+ "additionalProperties": false
856
+ }
857
+ },
858
+ "allOf": [
859
+ {
860
+ "dependentRequired": {
861
+ "width": [
862
+ "height"
863
+ ],
864
+ "height": [
865
+ "width"
866
+ ]
867
+ }
868
+ },
869
+ {
870
+ "oneOf": [
871
+ {
872
+ "title": "1080p (16:9)",
873
+ "properties": {
874
+ "width": {
875
+ "const": 1920
876
+ },
877
+ "height": {
878
+ "const": 1080
879
+ }
880
+ }
881
+ },
882
+ {
883
+ "title": "1080p (1:1)",
884
+ "properties": {
885
+ "width": {
886
+ "const": 1080
887
+ },
888
+ "height": {
889
+ "const": 1080
890
+ }
891
+ }
892
+ },
893
+ {
894
+ "title": "1080p (9:16)",
895
+ "properties": {
896
+ "width": {
897
+ "const": 1080
898
+ },
899
+ "height": {
900
+ "const": 1920
901
+ }
902
+ }
903
+ },
904
+ {
905
+ "title": "720p (16:9)",
906
+ "properties": {
907
+ "width": {
908
+ "const": 1280
909
+ },
910
+ "height": {
911
+ "const": 720
912
+ }
913
+ }
914
+ },
915
+ {
916
+ "title": "720p (1:1)",
917
+ "properties": {
918
+ "width": {
919
+ "const": 720
920
+ },
921
+ "height": {
922
+ "const": 720
923
+ }
924
+ }
925
+ },
926
+ {
927
+ "title": "720p (9:16)",
928
+ "properties": {
929
+ "width": {
930
+ "const": 720
931
+ },
932
+ "height": {
933
+ "const": 1280
934
+ }
935
+ }
936
+ },
937
+ {
938
+ "title": "360p (16:9)",
939
+ "properties": {
940
+ "width": {
941
+ "const": 640
942
+ },
943
+ "height": {
944
+ "const": 360
945
+ }
946
+ }
947
+ },
948
+ {
949
+ "title": "360p (1:1)",
950
+ "properties": {
951
+ "width": {
952
+ "const": 360
953
+ },
954
+ "height": {
955
+ "const": 360
956
+ }
957
+ }
958
+ },
959
+ {
960
+ "title": "360p (9:16)",
961
+ "properties": {
962
+ "width": {
963
+ "const": 360
964
+ },
965
+ "height": {
966
+ "const": 640
967
+ }
968
+ }
969
+ }
970
+ ]
971
+ },
972
+ {
973
+ "if": {
974
+ "properties": {
975
+ "providerSettings": {
976
+ "properties": {
977
+ "vidu": {
978
+ "required": [
979
+ "bgm"
980
+ ]
981
+ }
982
+ }
983
+ }
984
+ },
985
+ "required": [
986
+ "providerSettings"
987
+ ]
988
+ },
989
+ "then": {
990
+ "properties": {
991
+ "duration": {
992
+ "const": 4
993
+ }
994
+ }
995
+ }
996
+ }
997
+ ],
998
+ "additionalProperties": false,
999
+ "required": [
1000
+ "taskType",
1001
+ "taskUUID",
1002
+ "model"
1003
+ ]
1004
+ },
1005
+ {
1006
+ "type": "object",
1007
+ "properties": {
1008
+ "model": {
1009
+ "title": "Model",
1010
+ "description": "Identifier of the model to use for generation.",
1011
+ "type": "string",
1012
+ "const": "vidu:4@2"
1013
+ },
1014
+ "inputs": {
1015
+ "title": "Inputs",
1016
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
1017
+ "type": "object",
1018
+ "properties": {
1019
+ "frameImages": {
1020
+ "title": "Frame Images",
1021
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
1022
+ "type": "array",
1023
+ "minItems": 1,
1024
+ "items": {
1025
+ "anyOf": [
1026
+ {
1027
+ "title": "Image",
1028
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
1029
+ "type": "string",
1030
+ "anyOf": [
1031
+ {
1032
+ "format": "uuid"
1033
+ },
1034
+ {
1035
+ "format": "uri"
1036
+ },
1037
+ {
1038
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
1039
+ },
1040
+ {
1041
+ "pattern": "^[a-zA-Z0-9+/=]+$"
1042
+ }
1043
+ ]
1044
+ },
1045
+ {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "image": {
1049
+ "title": "Image",
1050
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
1051
+ "type": "string",
1052
+ "anyOf": [
1053
+ {
1054
+ "format": "uuid"
1055
+ },
1056
+ {
1057
+ "format": "uri"
1058
+ },
1059
+ {
1060
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
1061
+ },
1062
+ {
1063
+ "pattern": "^[a-zA-Z0-9+/=]+$"
1064
+ }
1065
+ ]
1066
+ },
1067
+ "frame": {
1068
+ "title": "Frame",
1069
+ "description": "Target frame position for the image. Supports first and last frame.",
1070
+ "oneOf": [
1071
+ {
1072
+ "const": "first",
1073
+ "description": "First frame of the video."
1074
+ },
1075
+ {
1076
+ "const": "last",
1077
+ "description": "Last frame of the video."
1078
+ },
1079
+ {
1080
+ "const": 0,
1081
+ "description": "Frame index 0 (first frame)."
1082
+ },
1083
+ {
1084
+ "const": -1,
1085
+ "description": "Frame index -1 (last frame)."
1086
+ }
1087
+ ]
1088
+ }
1089
+ },
1090
+ "required": [
1091
+ "image"
1092
+ ],
1093
+ "additionalProperties": false
1094
+ }
1095
+ ]
1096
+ },
1097
+ "maxItems": 2
1098
+ }
1099
+ },
1100
+ "additionalProperties": false
1101
+ },
1102
+ "positivePrompt": {
1103
+ "title": "Positive Prompt",
1104
+ "description": "Text prompt describing elements to include in the generated output.",
1105
+ "type": "string",
1106
+ "minLength": 2,
1107
+ "maxLength": 2000
1108
+ },
1109
+ "width": {
1110
+ "title": "Width",
1111
+ "description": "Width of the generated media in pixels.",
1112
+ "type": "integer"
1113
+ },
1114
+ "height": {
1115
+ "title": "Height",
1116
+ "description": "Height of the generated media in pixels.",
1117
+ "type": "integer"
1118
+ },
1119
+ "duration": {
1120
+ "title": "Duration",
1121
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
1122
+ "type": "integer",
1123
+ "default": 5,
1124
+ "minimum": 1,
1125
+ "maximum": 16
1126
+ },
1127
+ "seed": {
1128
+ "title": "Seed",
1129
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
1130
+ "type": "integer",
1131
+ "minimum": 0,
1132
+ "maximum": 2147483647
1133
+ },
1134
+ "providerSettings": {
1135
+ "title": "Provider Settings",
1136
+ "description": "Provider-specific configuration settings.",
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "vidu": {
1140
+ "title": "Vidu Settings",
1141
+ "description": "Provider-specific settings for Vidu.",
1142
+ "type": "object",
1143
+ "properties": {
1144
+ "audio": {
1145
+ "title": "Audio",
1146
+ "description": "Enable audio generation.",
1147
+ "type": "boolean",
1148
+ "default": false
1149
+ }
1150
+ },
1151
+ "additionalProperties": false
1152
+ }
1153
+ },
1154
+ "additionalProperties": false
1155
+ },
1156
+ "taskType": {
1157
+ "title": "Task Type",
1158
+ "description": "Identifier for the type of task being performed",
1159
+ "type": "string",
1160
+ "const": "videoInference"
1161
+ },
1162
+ "taskUUID": {
1163
+ "title": "Task UUID",
1164
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
1165
+ "type": "string",
1166
+ "format": "uuid"
1167
+ },
1168
+ "webhookURL": {
1169
+ "title": "Webhook URL",
1170
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
1171
+ "type": "string",
1172
+ "format": "uri"
1173
+ },
1174
+ "includeCost": {
1175
+ "title": "Include Cost",
1176
+ "description": "Include task cost in the response.",
1177
+ "type": "boolean",
1178
+ "default": false
1179
+ },
1180
+ "numberResults": {
1181
+ "title": "Number of Results",
1182
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
1183
+ "type": "integer",
1184
+ "minimum": 1,
1185
+ "default": 1,
1186
+ "maximum": 4
1187
+ },
1188
+ "uploadEndpoint": {
1189
+ "title": "Upload Endpoint",
1190
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
1191
+ "type": "string",
1192
+ "format": "uri"
1193
+ },
1194
+ "ttl": {
1195
+ "title": "TTL",
1196
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
1197
+ "type": "integer",
1198
+ "minimum": 60
1199
+ },
1200
+ "outputType": {
1201
+ "title": "Output Type",
1202
+ "description": "Video output type.",
1203
+ "type": "string",
1204
+ "enum": [
1205
+ "URL"
1206
+ ],
1207
+ "default": "URL"
1208
+ },
1209
+ "outputFormat": {
1210
+ "title": "Output Format",
1211
+ "description": "File format for the generated video.",
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "MP4",
1215
+ "WEBM",
1216
+ "MOV"
1217
+ ],
1218
+ "default": "MP4"
1219
+ },
1220
+ "outputQuality": {
1221
+ "title": "Output Quality",
1222
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
1223
+ "type": "integer",
1224
+ "minimum": 20,
1225
+ "maximum": 99,
1226
+ "default": 95
1227
+ },
1228
+ "deliveryMethod": {
1229
+ "title": "Delivery Method",
1230
+ "description": "Determines how the API delivers task results.",
1231
+ "type": "string",
1232
+ "oneOf": [
1233
+ {
1234
+ "const": "async",
1235
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
1236
+ }
1237
+ ],
1238
+ "default": "async"
1239
+ },
1240
+ "safety": {
1241
+ "type": "object",
1242
+ "title": "Safety Settings",
1243
+ "description": "Content safety checking configuration for video generation.",
1244
+ "properties": {
1245
+ "checkContent": {
1246
+ "title": "Check Content",
1247
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
1248
+ "type": "boolean",
1249
+ "default": false
1250
+ },
1251
+ "mode": {
1252
+ "description": "Safety checking mode for video generation.",
1253
+ "type": "string",
1254
+ "oneOf": [
1255
+ {
1256
+ "const": "none",
1257
+ "title": "None",
1258
+ "description": "Disables checking."
1259
+ },
1260
+ {
1261
+ "const": "fast",
1262
+ "title": "Fast",
1263
+ "description": "Checks key frames."
1264
+ },
1265
+ {
1266
+ "const": "full",
1267
+ "title": "Full",
1268
+ "description": "Checks all frames."
1269
+ }
1270
+ ],
1271
+ "default": "none"
1272
+ }
1273
+ },
1274
+ "additionalProperties": false
1275
+ }
1276
+ },
1277
+ "required": [
1278
+ "width",
1279
+ "height",
1280
+ "taskType",
1281
+ "taskUUID",
1282
+ "model"
1283
+ ],
1284
+ "allOf": [
1285
+ {
1286
+ "dependentRequired": {
1287
+ "width": [
1288
+ "height"
1289
+ ],
1290
+ "height": [
1291
+ "width"
1292
+ ]
1293
+ }
1294
+ },
1295
+ {
1296
+ "oneOf": [
1297
+ {
1298
+ "title": "360p (16:9)",
1299
+ "properties": {
1300
+ "width": {
1301
+ "const": 640
1302
+ },
1303
+ "height": {
1304
+ "const": 352
1305
+ }
1306
+ }
1307
+ },
1308
+ {
1309
+ "title": "360p (4:3)",
1310
+ "properties": {
1311
+ "width": {
1312
+ "const": 544
1313
+ },
1314
+ "height": {
1315
+ "const": 400
1316
+ }
1317
+ }
1318
+ },
1319
+ {
1320
+ "title": "360p (1:1)",
1321
+ "properties": {
1322
+ "width": {
1323
+ "const": 480
1324
+ },
1325
+ "height": {
1326
+ "const": 480
1327
+ }
1328
+ }
1329
+ },
1330
+ {
1331
+ "title": "360p (3:4)",
1332
+ "properties": {
1333
+ "width": {
1334
+ "const": 400
1335
+ },
1336
+ "height": {
1337
+ "const": 544
1338
+ }
1339
+ }
1340
+ },
1341
+ {
1342
+ "title": "360p (9:16)",
1343
+ "properties": {
1344
+ "width": {
1345
+ "const": 352
1346
+ },
1347
+ "height": {
1348
+ "const": 640
1349
+ }
1350
+ }
1351
+ },
1352
+ {
1353
+ "title": "540p (16:9)",
1354
+ "properties": {
1355
+ "width": {
1356
+ "const": 960
1357
+ },
1358
+ "height": {
1359
+ "const": 528
1360
+ }
1361
+ }
1362
+ },
1363
+ {
1364
+ "title": "540p (4:3)",
1365
+ "properties": {
1366
+ "width": {
1367
+ "const": 816
1368
+ },
1369
+ "height": {
1370
+ "const": 608
1371
+ }
1372
+ }
1373
+ },
1374
+ {
1375
+ "title": "540p (1:1)",
1376
+ "properties": {
1377
+ "width": {
1378
+ "const": 720
1379
+ },
1380
+ "height": {
1381
+ "const": 720
1382
+ }
1383
+ }
1384
+ },
1385
+ {
1386
+ "title": "540p (3:4)",
1387
+ "properties": {
1388
+ "width": {
1389
+ "const": 608
1390
+ },
1391
+ "height": {
1392
+ "const": 816
1393
+ }
1394
+ }
1395
+ },
1396
+ {
1397
+ "title": "540p (9:16)",
1398
+ "properties": {
1399
+ "width": {
1400
+ "const": 528
1401
+ },
1402
+ "height": {
1403
+ "const": 960
1404
+ }
1405
+ }
1406
+ },
1407
+ {
1408
+ "title": "720p (16:9)",
1409
+ "properties": {
1410
+ "width": {
1411
+ "const": 1280
1412
+ },
1413
+ "height": {
1414
+ "const": 720
1415
+ }
1416
+ }
1417
+ },
1418
+ {
1419
+ "title": "720p (4:3)",
1420
+ "properties": {
1421
+ "width": {
1422
+ "const": 1104
1423
+ },
1424
+ "height": {
1425
+ "const": 816
1426
+ }
1427
+ }
1428
+ },
1429
+ {
1430
+ "title": "720p (1:1)",
1431
+ "properties": {
1432
+ "width": {
1433
+ "const": 960
1434
+ },
1435
+ "height": {
1436
+ "const": 960
1437
+ }
1438
+ }
1439
+ },
1440
+ {
1441
+ "title": "720p (3:4)",
1442
+ "properties": {
1443
+ "width": {
1444
+ "const": 816
1445
+ },
1446
+ "height": {
1447
+ "const": 1104
1448
+ }
1449
+ }
1450
+ },
1451
+ {
1452
+ "title": "720p (9:16)",
1453
+ "properties": {
1454
+ "width": {
1455
+ "const": 720
1456
+ },
1457
+ "height": {
1458
+ "const": 1280
1459
+ }
1460
+ }
1461
+ },
1462
+ {
1463
+ "title": "1080p (16:9)",
1464
+ "properties": {
1465
+ "width": {
1466
+ "const": 1920
1467
+ },
1468
+ "height": {
1469
+ "const": 1080
1470
+ }
1471
+ }
1472
+ },
1473
+ {
1474
+ "title": "1080p (4:3)",
1475
+ "properties": {
1476
+ "width": {
1477
+ "const": 1674
1478
+ },
1479
+ "height": {
1480
+ "const": 1238
1481
+ }
1482
+ }
1483
+ },
1484
+ {
1485
+ "title": "1080p (1:1)",
1486
+ "properties": {
1487
+ "width": {
1488
+ "const": 1440
1489
+ },
1490
+ "height": {
1491
+ "const": 1440
1492
+ }
1493
+ }
1494
+ },
1495
+ {
1496
+ "title": "1080p (3:4)",
1497
+ "properties": {
1498
+ "width": {
1499
+ "const": 1238
1500
+ },
1501
+ "height": {
1502
+ "const": 1674
1503
+ }
1504
+ }
1505
+ },
1506
+ {
1507
+ "title": "1080p (9:16)",
1508
+ "properties": {
1509
+ "width": {
1510
+ "const": 1080
1511
+ },
1512
+ "height": {
1513
+ "const": 1920
1514
+ }
1515
+ }
1516
+ }
1517
+ ]
1518
+ }
1519
+ ],
1520
+ "anyOf": [
1521
+ {
1522
+ "required": [
1523
+ "positivePrompt"
1524
+ ]
1525
+ },
1526
+ {
1527
+ "properties": {
1528
+ "inputs": {
1529
+ "required": [
1530
+ "frameImages"
1531
+ ]
1532
+ }
1533
+ },
1534
+ "required": [
1535
+ "inputs"
1536
+ ]
1537
+ }
1538
+ ],
1539
+ "additionalProperties": false
1540
+ },
1541
+ {
1542
+ "type": "object",
1543
+ "properties": {
1544
+ "model": {
1545
+ "title": "Model",
1546
+ "description": "Identifier of the model to use for generation.",
1547
+ "type": "string",
1548
+ "const": "vidu:1@0"
1549
+ },
1550
+ "inputs": {
1551
+ "title": "Inputs",
1552
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
1553
+ "type": "object",
1554
+ "properties": {
1555
+ "frameImages": {
1556
+ "title": "Frame Images",
1557
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
1558
+ "type": "array",
1559
+ "minItems": 1,
1560
+ "items": {
1561
+ "anyOf": [
1562
+ {
1563
+ "title": "Image",
1564
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
1565
+ "type": "string",
1566
+ "anyOf": [
1567
+ {
1568
+ "format": "uuid"
1569
+ },
1570
+ {
1571
+ "format": "uri"
1572
+ },
1573
+ {
1574
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
1575
+ },
1576
+ {
1577
+ "pattern": "^[a-zA-Z0-9+/=]+$"
1578
+ }
1579
+ ]
1580
+ },
1581
+ {
1582
+ "type": "object",
1583
+ "properties": {
1584
+ "image": {
1585
+ "title": "Image",
1586
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
1587
+ "type": "string",
1588
+ "anyOf": [
1589
+ {
1590
+ "format": "uuid"
1591
+ },
1592
+ {
1593
+ "format": "uri"
1594
+ },
1595
+ {
1596
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
1597
+ },
1598
+ {
1599
+ "pattern": "^[a-zA-Z0-9+/=]+$"
1600
+ }
1601
+ ]
1602
+ },
1603
+ "frame": {
1604
+ "title": "Frame",
1605
+ "description": "Target frame position for the image. Supports first and last frame.",
1606
+ "oneOf": [
1607
+ {
1608
+ "const": "first",
1609
+ "description": "First frame of the video."
1610
+ },
1611
+ {
1612
+ "const": "last",
1613
+ "description": "Last frame of the video."
1614
+ },
1615
+ {
1616
+ "const": 0,
1617
+ "description": "Frame index 0 (first frame)."
1618
+ },
1619
+ {
1620
+ "const": -1,
1621
+ "description": "Frame index -1 (last frame)."
1622
+ }
1623
+ ]
1624
+ }
1625
+ },
1626
+ "required": [
1627
+ "image"
1628
+ ],
1629
+ "additionalProperties": false
1630
+ }
1631
+ ]
1632
+ },
1633
+ "maxItems": 2
1634
+ }
1635
+ },
1636
+ "additionalProperties": false
1637
+ },
1638
+ "width": {
1639
+ "title": "Width",
1640
+ "description": "Width of the generated media in pixels.",
1641
+ "type": "integer"
1642
+ },
1643
+ "height": {
1644
+ "title": "Height",
1645
+ "description": "Height of the generated media in pixels.",
1646
+ "type": "integer"
1647
+ },
1648
+ "duration": {
1649
+ "title": "Duration",
1650
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
1651
+ "type": "number",
1652
+ "const": 5
1653
+ },
1654
+ "seed": {
1655
+ "title": "Seed",
1656
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
1657
+ "type": "integer",
1658
+ "minimum": 0,
1659
+ "maximum": 2147483647
1660
+ },
1661
+ "providerSettings": {
1662
+ "title": "Provider Settings",
1663
+ "description": "Provider-specific configuration settings.",
1664
+ "type": "object",
1665
+ "properties": {
1666
+ "vidu": {
1667
+ "title": "Vidu Settings",
1668
+ "description": "Provider-specific settings for Vidu.",
1669
+ "type": "object",
1670
+ "properties": {
1671
+ "movementAmplitude": {
1672
+ "title": "Movement Amplitude",
1673
+ "description": "Movement intensity in the generated video.",
1674
+ "type": "string",
1675
+ "oneOf": [
1676
+ {
1677
+ "const": "auto",
1678
+ "description": "Automatically determines movement level based on content."
1679
+ },
1680
+ {
1681
+ "const": "small",
1682
+ "description": "Minimal movement with subtle animations."
1683
+ },
1684
+ {
1685
+ "const": "medium",
1686
+ "description": "Moderate movement with balanced dynamics."
1687
+ },
1688
+ {
1689
+ "const": "large",
1690
+ "description": "High movement with pronounced animations."
1691
+ }
1692
+ ],
1693
+ "default": "auto"
1694
+ }
1695
+ },
1696
+ "additionalProperties": false
1697
+ }
1698
+ },
1699
+ "additionalProperties": false
1700
+ },
1701
+ "taskType": {
1702
+ "title": "Task Type",
1703
+ "description": "Identifier for the type of task being performed",
1704
+ "type": "string",
1705
+ "const": "videoInference"
1706
+ },
1707
+ "taskUUID": {
1708
+ "title": "Task UUID",
1709
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
1710
+ "type": "string",
1711
+ "format": "uuid"
1712
+ },
1713
+ "webhookURL": {
1714
+ "title": "Webhook URL",
1715
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
1716
+ "type": "string",
1717
+ "format": "uri"
1718
+ },
1719
+ "includeCost": {
1720
+ "title": "Include Cost",
1721
+ "description": "Include task cost in the response.",
1722
+ "type": "boolean",
1723
+ "default": false
1724
+ },
1725
+ "numberResults": {
1726
+ "title": "Number of Results",
1727
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
1728
+ "type": "integer",
1729
+ "minimum": 1,
1730
+ "default": 1,
1731
+ "maximum": 4
1732
+ },
1733
+ "uploadEndpoint": {
1734
+ "title": "Upload Endpoint",
1735
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
1736
+ "type": "string",
1737
+ "format": "uri"
1738
+ },
1739
+ "ttl": {
1740
+ "title": "TTL",
1741
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
1742
+ "type": "integer",
1743
+ "minimum": 60
1744
+ },
1745
+ "outputType": {
1746
+ "title": "Output Type",
1747
+ "description": "Video output type.",
1748
+ "type": "string",
1749
+ "enum": [
1750
+ "URL"
1751
+ ],
1752
+ "default": "URL"
1753
+ },
1754
+ "outputFormat": {
1755
+ "title": "Output Format",
1756
+ "description": "File format for the generated video.",
1757
+ "type": "string",
1758
+ "enum": [
1759
+ "MP4",
1760
+ "WEBM",
1761
+ "MOV"
1762
+ ],
1763
+ "default": "MP4"
1764
+ },
1765
+ "outputQuality": {
1766
+ "title": "Output Quality",
1767
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
1768
+ "type": "integer",
1769
+ "minimum": 20,
1770
+ "maximum": 99,
1771
+ "default": 95
1772
+ },
1773
+ "deliveryMethod": {
1774
+ "title": "Delivery Method",
1775
+ "description": "Determines how the API delivers task results.",
1776
+ "type": "string",
1777
+ "oneOf": [
1778
+ {
1779
+ "const": "async",
1780
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
1781
+ }
1782
+ ],
1783
+ "default": "async"
1784
+ },
1785
+ "safety": {
1786
+ "type": "object",
1787
+ "title": "Safety Settings",
1788
+ "description": "Content safety checking configuration for video generation.",
1789
+ "properties": {
1790
+ "checkContent": {
1791
+ "title": "Check Content",
1792
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
1793
+ "type": "boolean",
1794
+ "default": false
1795
+ },
1796
+ "mode": {
1797
+ "description": "Safety checking mode for video generation.",
1798
+ "type": "string",
1799
+ "oneOf": [
1800
+ {
1801
+ "const": "none",
1802
+ "title": "None",
1803
+ "description": "Disables checking."
1804
+ },
1805
+ {
1806
+ "const": "fast",
1807
+ "title": "Fast",
1808
+ "description": "Checks key frames."
1809
+ },
1810
+ {
1811
+ "const": "full",
1812
+ "title": "Full",
1813
+ "description": "Checks all frames."
1814
+ }
1815
+ ],
1816
+ "default": "none"
1817
+ }
1818
+ },
1819
+ "additionalProperties": false
1820
+ }
1821
+ },
1822
+ "allOf": [
1823
+ {
1824
+ "dependentRequired": {
1825
+ "width": [
1826
+ "height"
1827
+ ],
1828
+ "height": [
1829
+ "width"
1830
+ ]
1831
+ }
1832
+ },
1833
+ {
1834
+ "oneOf": [
1835
+ {
1836
+ "title": "1080p (16:9)",
1837
+ "properties": {
1838
+ "width": {
1839
+ "const": 1920
1840
+ },
1841
+ "height": {
1842
+ "const": 1080
1843
+ }
1844
+ }
1845
+ }
1846
+ ]
1847
+ }
1848
+ ],
1849
+ "additionalProperties": false,
1850
+ "required": [
1851
+ "taskType",
1852
+ "taskUUID",
1853
+ "model"
1854
+ ]
1855
+ },
1856
+ {
1857
+ "type": "object",
1858
+ "properties": {
1859
+ "model": {
1860
+ "title": "Model",
1861
+ "description": "Identifier of the model to use for generation.",
1862
+ "type": "string",
1863
+ "const": "vidu:q1@image"
1864
+ },
1865
+ "inputs": {
1866
+ "title": "Inputs",
1867
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
1868
+ "type": "object",
1869
+ "properties": {
1870
+ "referenceImages": {
1871
+ "title": "Reference Images",
1872
+ "description": "List of reference images (UUID, URL, Data URI, or Base64).",
1873
+ "type": "array",
1874
+ "minItems": 1,
1875
+ "items": {
1876
+ "title": "Image",
1877
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
1878
+ "type": "string",
1879
+ "anyOf": [
1880
+ {
1881
+ "format": "uuid"
1882
+ },
1883
+ {
1884
+ "format": "uri"
1885
+ },
1886
+ {
1887
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
1888
+ },
1889
+ {
1890
+ "pattern": "^[a-zA-Z0-9+/=]+$"
1891
+ }
1892
+ ]
1893
+ },
1894
+ "maxItems": 7
1895
+ }
1896
+ },
1897
+ "required": [
1898
+ "referenceImages"
1899
+ ],
1900
+ "additionalProperties": false
1901
+ },
1902
+ "positivePrompt": {
1903
+ "title": "Positive Prompt",
1904
+ "description": "Text prompt describing elements to include in the generated output.",
1905
+ "type": "string",
1906
+ "minLength": 1,
1907
+ "maxLength": 1500
1908
+ },
1909
+ "width": {
1910
+ "title": "Width",
1911
+ "description": "Width of the generated media in pixels.",
1912
+ "type": "integer"
1913
+ },
1914
+ "height": {
1915
+ "title": "Height",
1916
+ "description": "Height of the generated media in pixels.",
1917
+ "type": "integer"
1918
+ },
1919
+ "taskType": {
1920
+ "title": "Task Type",
1921
+ "description": "Identifier for the type of task being performed",
1922
+ "type": "string",
1923
+ "const": "imageInference"
1924
+ },
1925
+ "taskUUID": {
1926
+ "title": "Task UUID",
1927
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
1928
+ "type": "string",
1929
+ "format": "uuid"
1930
+ },
1931
+ "webhookURL": {
1932
+ "title": "Webhook URL",
1933
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
1934
+ "type": "string",
1935
+ "format": "uri"
1936
+ },
1937
+ "includeCost": {
1938
+ "title": "Include Cost",
1939
+ "description": "Include task cost in the response.",
1940
+ "type": "boolean",
1941
+ "default": false
1942
+ },
1943
+ "numberResults": {
1944
+ "title": "Number of Results",
1945
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
1946
+ "type": "integer",
1947
+ "minimum": 1,
1948
+ "default": 1,
1949
+ "maximum": 20
1950
+ },
1951
+ "uploadEndpoint": {
1952
+ "title": "Upload Endpoint",
1953
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
1954
+ "type": "string",
1955
+ "format": "uri"
1956
+ },
1957
+ "ttl": {
1958
+ "title": "TTL",
1959
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
1960
+ "type": "integer",
1961
+ "minimum": 60
1962
+ },
1963
+ "outputType": {
1964
+ "title": "Output Type",
1965
+ "description": "Image output type.",
1966
+ "type": "string",
1967
+ "enum": [
1968
+ "URL",
1969
+ "base64Data",
1970
+ "dataURI"
1971
+ ],
1972
+ "default": "URL"
1973
+ },
1974
+ "outputFormat": {
1975
+ "title": "Output Format",
1976
+ "description": "File format for the generated image.",
1977
+ "type": "string",
1978
+ "enum": [
1979
+ "JPG",
1980
+ "PNG",
1981
+ "WEBP"
1982
+ ],
1983
+ "default": "JPG"
1984
+ },
1985
+ "outputQuality": {
1986
+ "title": "Output Quality",
1987
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
1988
+ "type": "integer",
1989
+ "minimum": 20,
1990
+ "maximum": 99,
1991
+ "default": 95
1992
+ },
1993
+ "deliveryMethod": {
1994
+ "title": "Delivery Method",
1995
+ "description": "Determines how the API delivers task results.",
1996
+ "type": "string",
1997
+ "oneOf": [
1998
+ {
1999
+ "const": "sync",
2000
+ "description": "Returns complete results directly in the API response."
2001
+ },
2002
+ {
2003
+ "const": "async",
2004
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse."
2005
+ }
2006
+ ],
2007
+ "default": "sync"
2008
+ },
2009
+ "safety": {
2010
+ "type": "object",
2011
+ "title": "Safety Settings",
2012
+ "description": "Content safety checking configuration for image generation.",
2013
+ "properties": {
2014
+ "checkContent": {
2015
+ "title": "Check Content",
2016
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
2017
+ "type": "boolean",
2018
+ "default": false
2019
+ },
2020
+ "mode": {
2021
+ "description": "Safety checking mode for image generation.",
2022
+ "type": "string",
2023
+ "oneOf": [
2024
+ {
2025
+ "const": "none",
2026
+ "title": "None",
2027
+ "description": "Disables checking."
2028
+ },
2029
+ {
2030
+ "const": "fast",
2031
+ "title": "Fast",
2032
+ "description": "Performs a single check."
2033
+ }
2034
+ ],
2035
+ "default": "none"
2036
+ }
2037
+ },
2038
+ "additionalProperties": false
2039
+ }
2040
+ },
2041
+ "required": [
2042
+ "positivePrompt",
2043
+ "inputs",
2044
+ "taskType",
2045
+ "taskUUID",
2046
+ "model"
2047
+ ],
2048
+ "allOf": [
2049
+ {
2050
+ "dependentRequired": {
2051
+ "width": [
2052
+ "height"
2053
+ ],
2054
+ "height": [
2055
+ "width"
2056
+ ]
2057
+ }
2058
+ },
2059
+ {
2060
+ "oneOf": [
2061
+ {
2062
+ "title": "1080p (16:9)",
2063
+ "properties": {
2064
+ "width": {
2065
+ "const": 1920
2066
+ },
2067
+ "height": {
2068
+ "const": 1080
2069
+ }
2070
+ }
2071
+ },
2072
+ {
2073
+ "title": "1080p (1:1)",
2074
+ "properties": {
2075
+ "width": {
2076
+ "const": 1440
2077
+ },
2078
+ "height": {
2079
+ "const": 1440
2080
+ }
2081
+ }
2082
+ },
2083
+ {
2084
+ "title": "1080p (9:16)",
2085
+ "properties": {
2086
+ "width": {
2087
+ "const": 1080
2088
+ },
2089
+ "height": {
2090
+ "const": 1920
2091
+ }
2092
+ }
2093
+ }
2094
+ ]
2095
+ }
2096
+ ],
2097
+ "additionalProperties": false
2098
+ },
2099
+ {
2100
+ "type": "object",
2101
+ "properties": {
2102
+ "model": {
2103
+ "title": "Model",
2104
+ "description": "Identifier of the model to use for generation.",
2105
+ "type": "string",
2106
+ "const": "vidu:1@1"
2107
+ },
2108
+ "inputs": {
2109
+ "title": "Inputs",
2110
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
2111
+ "type": "object",
2112
+ "properties": {
2113
+ "frameImages": {
2114
+ "title": "Frame Images",
2115
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
2116
+ "type": "array",
2117
+ "minItems": 1,
2118
+ "items": {
2119
+ "anyOf": [
2120
+ {
2121
+ "title": "Image",
2122
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
2123
+ "type": "string",
2124
+ "anyOf": [
2125
+ {
2126
+ "format": "uuid"
2127
+ },
2128
+ {
2129
+ "format": "uri"
2130
+ },
2131
+ {
2132
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
2133
+ },
2134
+ {
2135
+ "pattern": "^[a-zA-Z0-9+/=]+$"
2136
+ }
2137
+ ]
2138
+ },
2139
+ {
2140
+ "type": "object",
2141
+ "properties": {
2142
+ "image": {
2143
+ "title": "Image",
2144
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
2145
+ "type": "string",
2146
+ "anyOf": [
2147
+ {
2148
+ "format": "uuid"
2149
+ },
2150
+ {
2151
+ "format": "uri"
2152
+ },
2153
+ {
2154
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
2155
+ },
2156
+ {
2157
+ "pattern": "^[a-zA-Z0-9+/=]+$"
2158
+ }
2159
+ ]
2160
+ },
2161
+ "frame": {
2162
+ "title": "Frame",
2163
+ "description": "Target frame position for the image. Supports first and last frame.",
2164
+ "oneOf": [
2165
+ {
2166
+ "const": "first",
2167
+ "description": "First frame of the video."
2168
+ },
2169
+ {
2170
+ "const": "last",
2171
+ "description": "Last frame of the video."
2172
+ },
2173
+ {
2174
+ "const": 0,
2175
+ "description": "Frame index 0 (first frame)."
2176
+ },
2177
+ {
2178
+ "const": -1,
2179
+ "description": "Frame index -1 (last frame)."
2180
+ }
2181
+ ]
2182
+ }
2183
+ },
2184
+ "required": [
2185
+ "image"
2186
+ ],
2187
+ "additionalProperties": false
2188
+ }
2189
+ ]
2190
+ },
2191
+ "maxItems": 2
2192
+ }
2193
+ },
2194
+ "additionalProperties": false
2195
+ },
2196
+ "positivePrompt": {
2197
+ "title": "Positive Prompt",
2198
+ "description": "Text prompt describing elements to include in the generated output.",
2199
+ "type": "string",
2200
+ "minLength": 2,
2201
+ "maxLength": 3000
2202
+ },
2203
+ "width": {
2204
+ "title": "Width",
2205
+ "description": "Width of the generated media in pixels.",
2206
+ "type": "integer"
2207
+ },
2208
+ "height": {
2209
+ "title": "Height",
2210
+ "description": "Height of the generated media in pixels.",
2211
+ "type": "integer"
2212
+ },
2213
+ "duration": {
2214
+ "title": "Duration",
2215
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
2216
+ "type": "number",
2217
+ "enum": [
2218
+ 4,
2219
+ 5
2220
+ ],
2221
+ "default": 5
2222
+ },
2223
+ "seed": {
2224
+ "title": "Seed",
2225
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
2226
+ "type": "integer",
2227
+ "minimum": 0,
2228
+ "maximum": 2147483647
2229
+ },
2230
+ "providerSettings": {
2231
+ "title": "Provider Settings",
2232
+ "description": "Provider-specific configuration settings.",
2233
+ "type": "object",
2234
+ "properties": {
2235
+ "vidu": {
2236
+ "title": "Vidu Settings",
2237
+ "description": "Provider-specific settings for Vidu.",
2238
+ "type": "object",
2239
+ "properties": {
2240
+ "bgm": {
2241
+ "title": "BGM",
2242
+ "description": "Enable background music generation.",
2243
+ "type": "boolean",
2244
+ "default": false
2245
+ },
2246
+ "movementAmplitude": {
2247
+ "title": "Movement Amplitude",
2248
+ "description": "Movement intensity in the generated video.",
2249
+ "type": "string",
2250
+ "oneOf": [
2251
+ {
2252
+ "const": "auto",
2253
+ "description": "Automatically determines movement level based on content."
2254
+ },
2255
+ {
2256
+ "const": "small",
2257
+ "description": "Minimal movement with subtle animations."
2258
+ },
2259
+ {
2260
+ "const": "medium",
2261
+ "description": "Moderate movement with balanced dynamics."
2262
+ },
2263
+ {
2264
+ "const": "large",
2265
+ "description": "High movement with pronounced animations."
2266
+ }
2267
+ ],
2268
+ "default": "auto"
2269
+ },
2270
+ "style": {
2271
+ "title": "Style",
2272
+ "description": "Visual style.",
2273
+ "type": "string",
2274
+ "oneOf": [
2275
+ {
2276
+ "const": "general",
2277
+ "description": "Standard photorealistic style."
2278
+ },
2279
+ {
2280
+ "const": "anime",
2281
+ "description": "Anime/manga visual aesthetic."
2282
+ }
2283
+ ],
2284
+ "default": "general"
2285
+ }
2286
+ },
2287
+ "additionalProperties": false
2288
+ }
2289
+ },
2290
+ "additionalProperties": false
2291
+ },
2292
+ "taskType": {
2293
+ "title": "Task Type",
2294
+ "description": "Identifier for the type of task being performed",
2295
+ "type": "string",
2296
+ "const": "videoInference"
2297
+ },
2298
+ "taskUUID": {
2299
+ "title": "Task UUID",
2300
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
2301
+ "type": "string",
2302
+ "format": "uuid"
2303
+ },
2304
+ "webhookURL": {
2305
+ "title": "Webhook URL",
2306
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
2307
+ "type": "string",
2308
+ "format": "uri"
2309
+ },
2310
+ "includeCost": {
2311
+ "title": "Include Cost",
2312
+ "description": "Include task cost in the response.",
2313
+ "type": "boolean",
2314
+ "default": false
2315
+ },
2316
+ "numberResults": {
2317
+ "title": "Number of Results",
2318
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
2319
+ "type": "integer",
2320
+ "minimum": 1,
2321
+ "default": 1,
2322
+ "maximum": 4
2323
+ },
2324
+ "uploadEndpoint": {
2325
+ "title": "Upload Endpoint",
2326
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
2327
+ "type": "string",
2328
+ "format": "uri"
2329
+ },
2330
+ "ttl": {
2331
+ "title": "TTL",
2332
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
2333
+ "type": "integer",
2334
+ "minimum": 60
2335
+ },
2336
+ "outputType": {
2337
+ "title": "Output Type",
2338
+ "description": "Video output type.",
2339
+ "type": "string",
2340
+ "enum": [
2341
+ "URL"
2342
+ ],
2343
+ "default": "URL"
2344
+ },
2345
+ "outputFormat": {
2346
+ "title": "Output Format",
2347
+ "description": "File format for the generated video.",
2348
+ "type": "string",
2349
+ "enum": [
2350
+ "MP4",
2351
+ "WEBM",
2352
+ "MOV"
2353
+ ],
2354
+ "default": "MP4"
2355
+ },
2356
+ "outputQuality": {
2357
+ "title": "Output Quality",
2358
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
2359
+ "type": "integer",
2360
+ "minimum": 20,
2361
+ "maximum": 99,
2362
+ "default": 95
2363
+ },
2364
+ "deliveryMethod": {
2365
+ "title": "Delivery Method",
2366
+ "description": "Determines how the API delivers task results.",
2367
+ "type": "string",
2368
+ "oneOf": [
2369
+ {
2370
+ "const": "async",
2371
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
2372
+ }
2373
+ ],
2374
+ "default": "async"
2375
+ },
2376
+ "safety": {
2377
+ "type": "object",
2378
+ "title": "Safety Settings",
2379
+ "description": "Content safety checking configuration for video generation.",
2380
+ "properties": {
2381
+ "checkContent": {
2382
+ "title": "Check Content",
2383
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
2384
+ "type": "boolean",
2385
+ "default": false
2386
+ },
2387
+ "mode": {
2388
+ "description": "Safety checking mode for video generation.",
2389
+ "type": "string",
2390
+ "oneOf": [
2391
+ {
2392
+ "const": "none",
2393
+ "title": "None",
2394
+ "description": "Disables checking."
2395
+ },
2396
+ {
2397
+ "const": "fast",
2398
+ "title": "Fast",
2399
+ "description": "Checks key frames."
2400
+ },
2401
+ {
2402
+ "const": "full",
2403
+ "title": "Full",
2404
+ "description": "Checks all frames."
2405
+ }
2406
+ ],
2407
+ "default": "none"
2408
+ }
2409
+ },
2410
+ "additionalProperties": false
2411
+ }
2412
+ },
2413
+ "allOf": [
2414
+ {
2415
+ "dependentRequired": {
2416
+ "width": [
2417
+ "height"
2418
+ ],
2419
+ "height": [
2420
+ "width"
2421
+ ]
2422
+ }
2423
+ },
2424
+ {
2425
+ "oneOf": [
2426
+ {
2427
+ "title": "1080p (16:9)",
2428
+ "properties": {
2429
+ "width": {
2430
+ "const": 1920
2431
+ },
2432
+ "height": {
2433
+ "const": 1080
2434
+ }
2435
+ }
2436
+ },
2437
+ {
2438
+ "title": "1080p (1:1)",
2439
+ "properties": {
2440
+ "width": {
2441
+ "const": 1080
2442
+ },
2443
+ "height": {
2444
+ "const": 1080
2445
+ }
2446
+ }
2447
+ },
2448
+ {
2449
+ "title": "1080p (9:16)",
2450
+ "properties": {
2451
+ "width": {
2452
+ "const": 1080
2453
+ },
2454
+ "height": {
2455
+ "const": 1920
2456
+ }
2457
+ }
2458
+ }
2459
+ ]
2460
+ },
2461
+ {
2462
+ "not": {
2463
+ "allOf": [
2464
+ {
2465
+ "properties": {
2466
+ "providerSettings": {
2467
+ "properties": {
2468
+ "vidu": {
2469
+ "required": [
2470
+ "style"
2471
+ ]
2472
+ }
2473
+ }
2474
+ }
2475
+ },
2476
+ "required": [
2477
+ "providerSettings"
2478
+ ]
2479
+ },
2480
+ {
2481
+ "properties": {
2482
+ "inputs": {
2483
+ "anyOf": [
2484
+ {
2485
+ "required": [
2486
+ "frameImages"
2487
+ ]
2488
+ }
2489
+ ]
2490
+ }
2491
+ },
2492
+ "required": [
2493
+ "inputs"
2494
+ ]
2495
+ }
2496
+ ]
2497
+ }
2498
+ },
2499
+ {
2500
+ "if": {
2501
+ "properties": {
2502
+ "providerSettings": {
2503
+ "properties": {
2504
+ "vidu": {
2505
+ "required": [
2506
+ "bgm"
2507
+ ]
2508
+ }
2509
+ }
2510
+ }
2511
+ },
2512
+ "required": [
2513
+ "providerSettings"
2514
+ ]
2515
+ },
2516
+ "then": {
2517
+ "properties": {
2518
+ "duration": {
2519
+ "const": 4
2520
+ }
2521
+ }
2522
+ }
2523
+ },
2524
+ {
2525
+ "if": {
2526
+ "properties": {
2527
+ "duration": {
2528
+ "const": 4
2529
+ }
2530
+ }
2531
+ },
2532
+ "then": {
2533
+ "properties": {
2534
+ "providerSettings": {
2535
+ "properties": {
2536
+ "vidu": {
2537
+ "required": [
2538
+ "bgm"
2539
+ ]
2540
+ }
2541
+ }
2542
+ }
2543
+ },
2544
+ "required": [
2545
+ "providerSettings"
2546
+ ]
2547
+ }
2548
+ }
2549
+ ],
2550
+ "additionalProperties": false,
2551
+ "required": [
2552
+ "taskType",
2553
+ "taskUUID",
2554
+ "model"
2555
+ ]
2556
+ },
2557
+ {
2558
+ "type": "object",
2559
+ "properties": {
2560
+ "model": {
2561
+ "title": "Model",
2562
+ "description": "Identifier of the model to use for generation.",
2563
+ "type": "string",
2564
+ "const": "vidu:3@1"
2565
+ },
2566
+ "inputs": {
2567
+ "title": "Inputs",
2568
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
2569
+ "type": "object",
2570
+ "properties": {
2571
+ "referenceImages": {
2572
+ "title": "Reference Images",
2573
+ "description": "List of reference images (UUID, URL, Data URI, or Base64).",
2574
+ "type": "array",
2575
+ "minItems": 1,
2576
+ "items": {
2577
+ "title": "Image",
2578
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
2579
+ "type": "string",
2580
+ "anyOf": [
2581
+ {
2582
+ "format": "uuid"
2583
+ },
2584
+ {
2585
+ "format": "uri"
2586
+ },
2587
+ {
2588
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
2589
+ },
2590
+ {
2591
+ "pattern": "^[a-zA-Z0-9+/=]+$"
2592
+ }
2593
+ ]
2594
+ },
2595
+ "maxItems": 7
2596
+ },
2597
+ "frameImages": {
2598
+ "title": "Frame Images",
2599
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
2600
+ "type": "array",
2601
+ "minItems": 1,
2602
+ "items": {
2603
+ "anyOf": [
2604
+ {
2605
+ "title": "Image",
2606
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
2607
+ "type": "string",
2608
+ "anyOf": [
2609
+ {
2610
+ "format": "uuid"
2611
+ },
2612
+ {
2613
+ "format": "uri"
2614
+ },
2615
+ {
2616
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
2617
+ },
2618
+ {
2619
+ "pattern": "^[a-zA-Z0-9+/=]+$"
2620
+ }
2621
+ ]
2622
+ },
2623
+ {
2624
+ "type": "object",
2625
+ "properties": {
2626
+ "image": {
2627
+ "title": "Image",
2628
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
2629
+ "type": "string",
2630
+ "anyOf": [
2631
+ {
2632
+ "format": "uuid"
2633
+ },
2634
+ {
2635
+ "format": "uri"
2636
+ },
2637
+ {
2638
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
2639
+ },
2640
+ {
2641
+ "pattern": "^[a-zA-Z0-9+/=]+$"
2642
+ }
2643
+ ]
2644
+ },
2645
+ "frame": {
2646
+ "title": "Frame",
2647
+ "description": "Target frame position for the image. Supports first and last frame.",
2648
+ "oneOf": [
2649
+ {
2650
+ "const": "first",
2651
+ "description": "First frame of the video."
2652
+ },
2653
+ {
2654
+ "const": "last",
2655
+ "description": "Last frame of the video."
2656
+ },
2657
+ {
2658
+ "const": 0,
2659
+ "description": "Frame index 0 (first frame)."
2660
+ },
2661
+ {
2662
+ "const": -1,
2663
+ "description": "Frame index -1 (last frame)."
2664
+ }
2665
+ ]
2666
+ }
2667
+ },
2668
+ "required": [
2669
+ "image"
2670
+ ],
2671
+ "additionalProperties": false
2672
+ }
2673
+ ]
2674
+ },
2675
+ "maxItems": 2
2676
+ }
2677
+ },
2678
+ "additionalProperties": false
2679
+ },
2680
+ "positivePrompt": {
2681
+ "title": "Positive Prompt",
2682
+ "description": "Text prompt describing elements to include in the generated output.",
2683
+ "type": "string",
2684
+ "minLength": 2,
2685
+ "maxLength": 3000
2686
+ },
2687
+ "width": {
2688
+ "title": "Width",
2689
+ "description": "Width of the generated media in pixels.",
2690
+ "type": "integer"
2691
+ },
2692
+ "height": {
2693
+ "title": "Height",
2694
+ "description": "Height of the generated media in pixels.",
2695
+ "type": "integer"
2696
+ },
2697
+ "duration": {
2698
+ "title": "Duration",
2699
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
2700
+ "type": "number",
2701
+ "default": 5,
2702
+ "minimum": 1,
2703
+ "maximum": 8
2704
+ },
2705
+ "seed": {
2706
+ "title": "Seed",
2707
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
2708
+ "type": "integer",
2709
+ "minimum": 0,
2710
+ "maximum": 2147483647
2711
+ },
2712
+ "providerSettings": {
2713
+ "title": "Provider Settings",
2714
+ "description": "Provider-specific configuration settings.",
2715
+ "type": "object",
2716
+ "properties": {
2717
+ "vidu": {
2718
+ "title": "Vidu Settings",
2719
+ "description": "Provider-specific settings for Vidu.",
2720
+ "type": "object",
2721
+ "properties": {
2722
+ "bgm": {
2723
+ "title": "BGM",
2724
+ "description": "Enable background music generation.",
2725
+ "type": "boolean",
2726
+ "default": false
2727
+ },
2728
+ "movementAmplitude": {
2729
+ "title": "Movement Amplitude",
2730
+ "description": "Movement intensity in the generated video.",
2731
+ "type": "string",
2732
+ "oneOf": [
2733
+ {
2734
+ "const": "auto",
2735
+ "description": "Automatically determines movement level based on content."
2736
+ },
2737
+ {
2738
+ "const": "small",
2739
+ "description": "Minimal movement with subtle animations."
2740
+ },
2741
+ {
2742
+ "const": "medium",
2743
+ "description": "Moderate movement with balanced dynamics."
2744
+ },
2745
+ {
2746
+ "const": "large",
2747
+ "description": "High movement with pronounced animations."
2748
+ }
2749
+ ],
2750
+ "default": "auto"
2751
+ }
2752
+ },
2753
+ "additionalProperties": false
2754
+ }
2755
+ },
2756
+ "additionalProperties": false
2757
+ },
2758
+ "taskType": {
2759
+ "title": "Task Type",
2760
+ "description": "Identifier for the type of task being performed",
2761
+ "type": "string",
2762
+ "const": "videoInference"
2763
+ },
2764
+ "taskUUID": {
2765
+ "title": "Task UUID",
2766
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
2767
+ "type": "string",
2768
+ "format": "uuid"
2769
+ },
2770
+ "webhookURL": {
2771
+ "title": "Webhook URL",
2772
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
2773
+ "type": "string",
2774
+ "format": "uri"
2775
+ },
2776
+ "includeCost": {
2777
+ "title": "Include Cost",
2778
+ "description": "Include task cost in the response.",
2779
+ "type": "boolean",
2780
+ "default": false
2781
+ },
2782
+ "numberResults": {
2783
+ "title": "Number of Results",
2784
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
2785
+ "type": "integer",
2786
+ "minimum": 1,
2787
+ "default": 1,
2788
+ "maximum": 4
2789
+ },
2790
+ "uploadEndpoint": {
2791
+ "title": "Upload Endpoint",
2792
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
2793
+ "type": "string",
2794
+ "format": "uri"
2795
+ },
2796
+ "ttl": {
2797
+ "title": "TTL",
2798
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
2799
+ "type": "integer",
2800
+ "minimum": 60
2801
+ },
2802
+ "outputType": {
2803
+ "title": "Output Type",
2804
+ "description": "Video output type.",
2805
+ "type": "string",
2806
+ "enum": [
2807
+ "URL"
2808
+ ],
2809
+ "default": "URL"
2810
+ },
2811
+ "outputFormat": {
2812
+ "title": "Output Format",
2813
+ "description": "File format for the generated video.",
2814
+ "type": "string",
2815
+ "enum": [
2816
+ "MP4",
2817
+ "WEBM",
2818
+ "MOV"
2819
+ ],
2820
+ "default": "MP4"
2821
+ },
2822
+ "outputQuality": {
2823
+ "title": "Output Quality",
2824
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
2825
+ "type": "integer",
2826
+ "minimum": 20,
2827
+ "maximum": 99,
2828
+ "default": 95
2829
+ },
2830
+ "deliveryMethod": {
2831
+ "title": "Delivery Method",
2832
+ "description": "Determines how the API delivers task results.",
2833
+ "type": "string",
2834
+ "oneOf": [
2835
+ {
2836
+ "const": "async",
2837
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
2838
+ }
2839
+ ],
2840
+ "default": "async"
2841
+ },
2842
+ "safety": {
2843
+ "type": "object",
2844
+ "title": "Safety Settings",
2845
+ "description": "Content safety checking configuration for video generation.",
2846
+ "properties": {
2847
+ "checkContent": {
2848
+ "title": "Check Content",
2849
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
2850
+ "type": "boolean",
2851
+ "default": false
2852
+ },
2853
+ "mode": {
2854
+ "description": "Safety checking mode for video generation.",
2855
+ "type": "string",
2856
+ "oneOf": [
2857
+ {
2858
+ "const": "none",
2859
+ "title": "None",
2860
+ "description": "Disables checking."
2861
+ },
2862
+ {
2863
+ "const": "fast",
2864
+ "title": "Fast",
2865
+ "description": "Checks key frames."
2866
+ },
2867
+ {
2868
+ "const": "full",
2869
+ "title": "Full",
2870
+ "description": "Checks all frames."
2871
+ }
2872
+ ],
2873
+ "default": "none"
2874
+ }
2875
+ },
2876
+ "additionalProperties": false
2877
+ }
2878
+ },
2879
+ "allOf": [
2880
+ {
2881
+ "dependentRequired": {
2882
+ "width": [
2883
+ "height"
2884
+ ],
2885
+ "height": [
2886
+ "width"
2887
+ ]
2888
+ }
2889
+ },
2890
+ {
2891
+ "oneOf": [
2892
+ {
2893
+ "title": "360p (16:9)",
2894
+ "properties": {
2895
+ "width": {
2896
+ "const": 640
2897
+ },
2898
+ "height": {
2899
+ "const": 352
2900
+ }
2901
+ }
2902
+ },
2903
+ {
2904
+ "title": "360p (4:3)",
2905
+ "properties": {
2906
+ "width": {
2907
+ "const": 544
2908
+ },
2909
+ "height": {
2910
+ "const": 400
2911
+ }
2912
+ }
2913
+ },
2914
+ {
2915
+ "title": "360p (1:1)",
2916
+ "properties": {
2917
+ "width": {
2918
+ "const": 480
2919
+ },
2920
+ "height": {
2921
+ "const": 480
2922
+ }
2923
+ }
2924
+ },
2925
+ {
2926
+ "title": "360p (3:4)",
2927
+ "properties": {
2928
+ "width": {
2929
+ "const": 400
2930
+ },
2931
+ "height": {
2932
+ "const": 544
2933
+ }
2934
+ }
2935
+ },
2936
+ {
2937
+ "title": "360p (9:16)",
2938
+ "properties": {
2939
+ "width": {
2940
+ "const": 352
2941
+ },
2942
+ "height": {
2943
+ "const": 640
2944
+ }
2945
+ }
2946
+ },
2947
+ {
2948
+ "title": "540p (16:9)",
2949
+ "properties": {
2950
+ "width": {
2951
+ "const": 960
2952
+ },
2953
+ "height": {
2954
+ "const": 528
2955
+ }
2956
+ }
2957
+ },
2958
+ {
2959
+ "title": "540p (4:3)",
2960
+ "properties": {
2961
+ "width": {
2962
+ "const": 816
2963
+ },
2964
+ "height": {
2965
+ "const": 608
2966
+ }
2967
+ }
2968
+ },
2969
+ {
2970
+ "title": "540p (1:1)",
2971
+ "properties": {
2972
+ "width": {
2973
+ "const": 720
2974
+ },
2975
+ "height": {
2976
+ "const": 720
2977
+ }
2978
+ }
2979
+ },
2980
+ {
2981
+ "title": "540p (3:4)",
2982
+ "properties": {
2983
+ "width": {
2984
+ "const": 608
2985
+ },
2986
+ "height": {
2987
+ "const": 816
2988
+ }
2989
+ }
2990
+ },
2991
+ {
2992
+ "title": "540p (9:16)",
2993
+ "properties": {
2994
+ "width": {
2995
+ "const": 528
2996
+ },
2997
+ "height": {
2998
+ "const": 960
2999
+ }
3000
+ }
3001
+ },
3002
+ {
3003
+ "title": "720p (16:9)",
3004
+ "properties": {
3005
+ "width": {
3006
+ "const": 1280
3007
+ },
3008
+ "height": {
3009
+ "const": 720
3010
+ }
3011
+ }
3012
+ },
3013
+ {
3014
+ "title": "720p (4:3)",
3015
+ "properties": {
3016
+ "width": {
3017
+ "const": 1104
3018
+ },
3019
+ "height": {
3020
+ "const": 816
3021
+ }
3022
+ }
3023
+ },
3024
+ {
3025
+ "title": "720p (1:1)",
3026
+ "properties": {
3027
+ "width": {
3028
+ "const": 960
3029
+ },
3030
+ "height": {
3031
+ "const": 960
3032
+ }
3033
+ }
3034
+ },
3035
+ {
3036
+ "title": "720p (3:4)",
3037
+ "properties": {
3038
+ "width": {
3039
+ "const": 816
3040
+ },
3041
+ "height": {
3042
+ "const": 1104
3043
+ }
3044
+ }
3045
+ },
3046
+ {
3047
+ "title": "720p (9:16)",
3048
+ "properties": {
3049
+ "width": {
3050
+ "const": 720
3051
+ },
3052
+ "height": {
3053
+ "const": 1280
3054
+ }
3055
+ }
3056
+ },
3057
+ {
3058
+ "title": "1080p (16:9)",
3059
+ "properties": {
3060
+ "width": {
3061
+ "const": 1920
3062
+ },
3063
+ "height": {
3064
+ "const": 1080
3065
+ }
3066
+ }
3067
+ },
3068
+ {
3069
+ "title": "1080p (4:3)",
3070
+ "properties": {
3071
+ "width": {
3072
+ "const": 1674
3073
+ },
3074
+ "height": {
3075
+ "const": 1238
3076
+ }
3077
+ }
3078
+ },
3079
+ {
3080
+ "title": "1080p (1:1)",
3081
+ "properties": {
3082
+ "width": {
3083
+ "const": 1440
3084
+ },
3085
+ "height": {
3086
+ "const": 1440
3087
+ }
3088
+ }
3089
+ },
3090
+ {
3091
+ "title": "1080p (3:4)",
3092
+ "properties": {
3093
+ "width": {
3094
+ "const": 1238
3095
+ },
3096
+ "height": {
3097
+ "const": 1674
3098
+ }
3099
+ }
3100
+ },
3101
+ {
3102
+ "title": "1080p (9:16)",
3103
+ "properties": {
3104
+ "width": {
3105
+ "const": 1080
3106
+ },
3107
+ "height": {
3108
+ "const": 1920
3109
+ }
3110
+ }
3111
+ }
3112
+ ]
3113
+ },
3114
+ {
3115
+ "if": {
3116
+ "properties": {
3117
+ "providerSettings": {
3118
+ "properties": {
3119
+ "vidu": {
3120
+ "required": [
3121
+ "bgm"
3122
+ ]
3123
+ }
3124
+ }
3125
+ }
3126
+ },
3127
+ "required": [
3128
+ "providerSettings"
3129
+ ]
3130
+ },
3131
+ "then": {
3132
+ "properties": {
3133
+ "duration": {
3134
+ "const": 4
3135
+ }
3136
+ }
3137
+ }
3138
+ }
3139
+ ],
3140
+ "additionalProperties": false,
3141
+ "required": [
3142
+ "taskType",
3143
+ "taskUUID",
3144
+ "model"
3145
+ ]
3146
+ },
3147
+ {
3148
+ "type": "object",
3149
+ "properties": {
3150
+ "model": {
3151
+ "title": "Model",
3152
+ "description": "Identifier of the model to use for generation.",
3153
+ "type": "string",
3154
+ "const": "vidu:3@2"
3155
+ },
3156
+ "inputs": {
3157
+ "title": "Inputs",
3158
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
3159
+ "type": "object",
3160
+ "properties": {
3161
+ "referenceImages": {
3162
+ "title": "Reference Images",
3163
+ "description": "List of reference images (UUID, URL, Data URI, or Base64).",
3164
+ "type": "array",
3165
+ "minItems": 1,
3166
+ "items": {
3167
+ "title": "Image",
3168
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
3169
+ "type": "string",
3170
+ "anyOf": [
3171
+ {
3172
+ "format": "uuid"
3173
+ },
3174
+ {
3175
+ "format": "uri"
3176
+ },
3177
+ {
3178
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
3179
+ },
3180
+ {
3181
+ "pattern": "^[a-zA-Z0-9+/=]+$"
3182
+ }
3183
+ ]
3184
+ },
3185
+ "maxItems": 7
3186
+ },
3187
+ "frameImages": {
3188
+ "title": "Frame Images",
3189
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
3190
+ "type": "array",
3191
+ "minItems": 1,
3192
+ "items": {
3193
+ "anyOf": [
3194
+ {
3195
+ "title": "Image",
3196
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
3197
+ "type": "string",
3198
+ "anyOf": [
3199
+ {
3200
+ "format": "uuid"
3201
+ },
3202
+ {
3203
+ "format": "uri"
3204
+ },
3205
+ {
3206
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
3207
+ },
3208
+ {
3209
+ "pattern": "^[a-zA-Z0-9+/=]+$"
3210
+ }
3211
+ ]
3212
+ },
3213
+ {
3214
+ "type": "object",
3215
+ "properties": {
3216
+ "image": {
3217
+ "title": "Image",
3218
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
3219
+ "type": "string",
3220
+ "anyOf": [
3221
+ {
3222
+ "format": "uuid"
3223
+ },
3224
+ {
3225
+ "format": "uri"
3226
+ },
3227
+ {
3228
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
3229
+ },
3230
+ {
3231
+ "pattern": "^[a-zA-Z0-9+/=]+$"
3232
+ }
3233
+ ]
3234
+ },
3235
+ "frame": {
3236
+ "title": "Frame",
3237
+ "description": "Target frame position for the image. Supports first and last frame.",
3238
+ "oneOf": [
3239
+ {
3240
+ "const": "first",
3241
+ "description": "First frame of the video."
3242
+ },
3243
+ {
3244
+ "const": "last",
3245
+ "description": "Last frame of the video."
3246
+ },
3247
+ {
3248
+ "const": 0,
3249
+ "description": "Frame index 0 (first frame)."
3250
+ },
3251
+ {
3252
+ "const": -1,
3253
+ "description": "Frame index -1 (last frame)."
3254
+ }
3255
+ ]
3256
+ }
3257
+ },
3258
+ "required": [
3259
+ "image"
3260
+ ],
3261
+ "additionalProperties": false
3262
+ }
3263
+ ]
3264
+ },
3265
+ "maxItems": 2
3266
+ }
3267
+ },
3268
+ "additionalProperties": false
3269
+ },
3270
+ "positivePrompt": {
3271
+ "title": "Positive Prompt",
3272
+ "description": "Text prompt describing elements to include in the generated output.",
3273
+ "type": "string",
3274
+ "minLength": 2,
3275
+ "maxLength": 3000
3276
+ },
3277
+ "width": {
3278
+ "title": "Width",
3279
+ "description": "Width of the generated media in pixels.",
3280
+ "type": "integer"
3281
+ },
3282
+ "height": {
3283
+ "title": "Height",
3284
+ "description": "Height of the generated media in pixels.",
3285
+ "type": "integer"
3286
+ },
3287
+ "duration": {
3288
+ "title": "Duration",
3289
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
3290
+ "type": "number",
3291
+ "default": 5,
3292
+ "minimum": 1,
3293
+ "maximum": 8
3294
+ },
3295
+ "seed": {
3296
+ "title": "Seed",
3297
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
3298
+ "type": "integer",
3299
+ "minimum": 0,
3300
+ "maximum": 2147483647
3301
+ },
3302
+ "providerSettings": {
3303
+ "title": "Provider Settings",
3304
+ "description": "Provider-specific configuration settings.",
3305
+ "type": "object",
3306
+ "properties": {
3307
+ "vidu": {
3308
+ "title": "Vidu Settings",
3309
+ "description": "Provider-specific settings for Vidu.",
3310
+ "type": "object",
3311
+ "properties": {
3312
+ "bgm": {
3313
+ "title": "BGM",
3314
+ "description": "Enable background music generation.",
3315
+ "type": "boolean",
3316
+ "default": false
3317
+ },
3318
+ "movementAmplitude": {
3319
+ "title": "Movement Amplitude",
3320
+ "description": "Movement intensity in the generated video.",
3321
+ "type": "string",
3322
+ "oneOf": [
3323
+ {
3324
+ "const": "auto",
3325
+ "description": "Automatically determines movement level based on content."
3326
+ },
3327
+ {
3328
+ "const": "small",
3329
+ "description": "Minimal movement with subtle animations."
3330
+ },
3331
+ {
3332
+ "const": "medium",
3333
+ "description": "Moderate movement with balanced dynamics."
3334
+ },
3335
+ {
3336
+ "const": "large",
3337
+ "description": "High movement with pronounced animations."
3338
+ }
3339
+ ],
3340
+ "default": "auto"
3341
+ }
3342
+ },
3343
+ "additionalProperties": false
3344
+ }
3345
+ },
3346
+ "additionalProperties": false
3347
+ },
3348
+ "taskType": {
3349
+ "title": "Task Type",
3350
+ "description": "Identifier for the type of task being performed",
3351
+ "type": "string",
3352
+ "const": "videoInference"
3353
+ },
3354
+ "taskUUID": {
3355
+ "title": "Task UUID",
3356
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
3357
+ "type": "string",
3358
+ "format": "uuid"
3359
+ },
3360
+ "webhookURL": {
3361
+ "title": "Webhook URL",
3362
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
3363
+ "type": "string",
3364
+ "format": "uri"
3365
+ },
3366
+ "includeCost": {
3367
+ "title": "Include Cost",
3368
+ "description": "Include task cost in the response.",
3369
+ "type": "boolean",
3370
+ "default": false
3371
+ },
3372
+ "numberResults": {
3373
+ "title": "Number of Results",
3374
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
3375
+ "type": "integer",
3376
+ "minimum": 1,
3377
+ "default": 1,
3378
+ "maximum": 4
3379
+ },
3380
+ "uploadEndpoint": {
3381
+ "title": "Upload Endpoint",
3382
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
3383
+ "type": "string",
3384
+ "format": "uri"
3385
+ },
3386
+ "ttl": {
3387
+ "title": "TTL",
3388
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
3389
+ "type": "integer",
3390
+ "minimum": 60
3391
+ },
3392
+ "outputType": {
3393
+ "title": "Output Type",
3394
+ "description": "Video output type.",
3395
+ "type": "string",
3396
+ "enum": [
3397
+ "URL"
3398
+ ],
3399
+ "default": "URL"
3400
+ },
3401
+ "outputFormat": {
3402
+ "title": "Output Format",
3403
+ "description": "File format for the generated video.",
3404
+ "type": "string",
3405
+ "enum": [
3406
+ "MP4",
3407
+ "WEBM",
3408
+ "MOV"
3409
+ ],
3410
+ "default": "MP4"
3411
+ },
3412
+ "outputQuality": {
3413
+ "title": "Output Quality",
3414
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
3415
+ "type": "integer",
3416
+ "minimum": 20,
3417
+ "maximum": 99,
3418
+ "default": 95
3419
+ },
3420
+ "deliveryMethod": {
3421
+ "title": "Delivery Method",
3422
+ "description": "Determines how the API delivers task results.",
3423
+ "type": "string",
3424
+ "oneOf": [
3425
+ {
3426
+ "const": "async",
3427
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
3428
+ }
3429
+ ],
3430
+ "default": "async"
3431
+ },
3432
+ "safety": {
3433
+ "type": "object",
3434
+ "title": "Safety Settings",
3435
+ "description": "Content safety checking configuration for video generation.",
3436
+ "properties": {
3437
+ "checkContent": {
3438
+ "title": "Check Content",
3439
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
3440
+ "type": "boolean",
3441
+ "default": false
3442
+ },
3443
+ "mode": {
3444
+ "description": "Safety checking mode for video generation.",
3445
+ "type": "string",
3446
+ "oneOf": [
3447
+ {
3448
+ "const": "none",
3449
+ "title": "None",
3450
+ "description": "Disables checking."
3451
+ },
3452
+ {
3453
+ "const": "fast",
3454
+ "title": "Fast",
3455
+ "description": "Checks key frames."
3456
+ },
3457
+ {
3458
+ "const": "full",
3459
+ "title": "Full",
3460
+ "description": "Checks all frames."
3461
+ }
3462
+ ],
3463
+ "default": "none"
3464
+ }
3465
+ },
3466
+ "additionalProperties": false
3467
+ }
3468
+ },
3469
+ "allOf": [
3470
+ {
3471
+ "dependentRequired": {
3472
+ "width": [
3473
+ "height"
3474
+ ],
3475
+ "height": [
3476
+ "width"
3477
+ ]
3478
+ }
3479
+ },
3480
+ {
3481
+ "oneOf": [
3482
+ {
3483
+ "title": "360p (16:9)",
3484
+ "properties": {
3485
+ "width": {
3486
+ "const": 640
3487
+ },
3488
+ "height": {
3489
+ "const": 352
3490
+ }
3491
+ }
3492
+ },
3493
+ {
3494
+ "title": "360p (4:3)",
3495
+ "properties": {
3496
+ "width": {
3497
+ "const": 544
3498
+ },
3499
+ "height": {
3500
+ "const": 400
3501
+ }
3502
+ }
3503
+ },
3504
+ {
3505
+ "title": "360p (1:1)",
3506
+ "properties": {
3507
+ "width": {
3508
+ "const": 480
3509
+ },
3510
+ "height": {
3511
+ "const": 480
3512
+ }
3513
+ }
3514
+ },
3515
+ {
3516
+ "title": "360p (3:4)",
3517
+ "properties": {
3518
+ "width": {
3519
+ "const": 400
3520
+ },
3521
+ "height": {
3522
+ "const": 544
3523
+ }
3524
+ }
3525
+ },
3526
+ {
3527
+ "title": "360p (9:16)",
3528
+ "properties": {
3529
+ "width": {
3530
+ "const": 352
3531
+ },
3532
+ "height": {
3533
+ "const": 640
3534
+ }
3535
+ }
3536
+ },
3537
+ {
3538
+ "title": "540p (16:9)",
3539
+ "properties": {
3540
+ "width": {
3541
+ "const": 960
3542
+ },
3543
+ "height": {
3544
+ "const": 528
3545
+ }
3546
+ }
3547
+ },
3548
+ {
3549
+ "title": "540p (4:3)",
3550
+ "properties": {
3551
+ "width": {
3552
+ "const": 816
3553
+ },
3554
+ "height": {
3555
+ "const": 608
3556
+ }
3557
+ }
3558
+ },
3559
+ {
3560
+ "title": "540p (1:1)",
3561
+ "properties": {
3562
+ "width": {
3563
+ "const": 720
3564
+ },
3565
+ "height": {
3566
+ "const": 720
3567
+ }
3568
+ }
3569
+ },
3570
+ {
3571
+ "title": "540p (3:4)",
3572
+ "properties": {
3573
+ "width": {
3574
+ "const": 608
3575
+ },
3576
+ "height": {
3577
+ "const": 816
3578
+ }
3579
+ }
3580
+ },
3581
+ {
3582
+ "title": "540p (9:16)",
3583
+ "properties": {
3584
+ "width": {
3585
+ "const": 528
3586
+ },
3587
+ "height": {
3588
+ "const": 960
3589
+ }
3590
+ }
3591
+ },
3592
+ {
3593
+ "title": "720p (16:9)",
3594
+ "properties": {
3595
+ "width": {
3596
+ "const": 1280
3597
+ },
3598
+ "height": {
3599
+ "const": 720
3600
+ }
3601
+ }
3602
+ },
3603
+ {
3604
+ "title": "720p (4:3)",
3605
+ "properties": {
3606
+ "width": {
3607
+ "const": 1104
3608
+ },
3609
+ "height": {
3610
+ "const": 816
3611
+ }
3612
+ }
3613
+ },
3614
+ {
3615
+ "title": "720p (1:1)",
3616
+ "properties": {
3617
+ "width": {
3618
+ "const": 960
3619
+ },
3620
+ "height": {
3621
+ "const": 960
3622
+ }
3623
+ }
3624
+ },
3625
+ {
3626
+ "title": "720p (3:4)",
3627
+ "properties": {
3628
+ "width": {
3629
+ "const": 816
3630
+ },
3631
+ "height": {
3632
+ "const": 1104
3633
+ }
3634
+ }
3635
+ },
3636
+ {
3637
+ "title": "720p (9:16)",
3638
+ "properties": {
3639
+ "width": {
3640
+ "const": 720
3641
+ },
3642
+ "height": {
3643
+ "const": 1280
3644
+ }
3645
+ }
3646
+ },
3647
+ {
3648
+ "title": "1080p (16:9)",
3649
+ "properties": {
3650
+ "width": {
3651
+ "const": 1920
3652
+ },
3653
+ "height": {
3654
+ "const": 1080
3655
+ }
3656
+ }
3657
+ },
3658
+ {
3659
+ "title": "1080p (4:3)",
3660
+ "properties": {
3661
+ "width": {
3662
+ "const": 1674
3663
+ },
3664
+ "height": {
3665
+ "const": 1238
3666
+ }
3667
+ }
3668
+ },
3669
+ {
3670
+ "title": "1080p (1:1)",
3671
+ "properties": {
3672
+ "width": {
3673
+ "const": 1440
3674
+ },
3675
+ "height": {
3676
+ "const": 1440
3677
+ }
3678
+ }
3679
+ },
3680
+ {
3681
+ "title": "1080p (3:4)",
3682
+ "properties": {
3683
+ "width": {
3684
+ "const": 1238
3685
+ },
3686
+ "height": {
3687
+ "const": 1674
3688
+ }
3689
+ }
3690
+ },
3691
+ {
3692
+ "title": "1080p (9:16)",
3693
+ "properties": {
3694
+ "width": {
3695
+ "const": 1080
3696
+ },
3697
+ "height": {
3698
+ "const": 1920
3699
+ }
3700
+ }
3701
+ }
3702
+ ]
3703
+ },
3704
+ {
3705
+ "if": {
3706
+ "properties": {
3707
+ "providerSettings": {
3708
+ "properties": {
3709
+ "vidu": {
3710
+ "required": [
3711
+ "bgm"
3712
+ ]
3713
+ }
3714
+ }
3715
+ }
3716
+ },
3717
+ "required": [
3718
+ "providerSettings"
3719
+ ]
3720
+ },
3721
+ "then": {
3722
+ "properties": {
3723
+ "duration": {
3724
+ "const": 4
3725
+ }
3726
+ }
3727
+ }
3728
+ }
3729
+ ],
3730
+ "additionalProperties": false,
3731
+ "required": [
3732
+ "taskType",
3733
+ "taskUUID",
3734
+ "model"
3735
+ ]
3736
+ },
3737
+ {
3738
+ "type": "object",
3739
+ "properties": {
3740
+ "model": {
3741
+ "title": "Model",
3742
+ "description": "Identifier of the model to use for generation.",
3743
+ "type": "string",
3744
+ "const": "vidu:4@1"
3745
+ },
3746
+ "inputs": {
3747
+ "title": "Inputs",
3748
+ "description": "The unified payload wrapper for complex media assets dictating image, video or audio inference constraints.",
3749
+ "type": "object",
3750
+ "properties": {
3751
+ "frameImages": {
3752
+ "title": "Frame Images",
3753
+ "description": "List of frame-specific image inputs. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object with an image and a target frame position.",
3754
+ "type": "array",
3755
+ "minItems": 1,
3756
+ "items": {
3757
+ "anyOf": [
3758
+ {
3759
+ "title": "Image",
3760
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
3761
+ "type": "string",
3762
+ "anyOf": [
3763
+ {
3764
+ "format": "uuid"
3765
+ },
3766
+ {
3767
+ "format": "uri"
3768
+ },
3769
+ {
3770
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
3771
+ },
3772
+ {
3773
+ "pattern": "^[a-zA-Z0-9+/=]+$"
3774
+ }
3775
+ ]
3776
+ },
3777
+ {
3778
+ "type": "object",
3779
+ "properties": {
3780
+ "image": {
3781
+ "title": "Image",
3782
+ "description": "Image input (UUID, URL, Data URI, or Base64).",
3783
+ "type": "string",
3784
+ "anyOf": [
3785
+ {
3786
+ "format": "uuid"
3787
+ },
3788
+ {
3789
+ "format": "uri"
3790
+ },
3791
+ {
3792
+ "pattern": "^data:image\\/[a-zA-Z]+;base64,[a-zA-Z0-9+/=]+$"
3793
+ },
3794
+ {
3795
+ "pattern": "^[a-zA-Z0-9+/=]+$"
3796
+ }
3797
+ ]
3798
+ },
3799
+ "frame": {
3800
+ "title": "Frame",
3801
+ "description": "Target frame position for the image. Supports first and last frame.",
3802
+ "oneOf": [
3803
+ {
3804
+ "const": "first",
3805
+ "description": "First frame of the video."
3806
+ },
3807
+ {
3808
+ "const": "last",
3809
+ "description": "Last frame of the video."
3810
+ },
3811
+ {
3812
+ "const": 0,
3813
+ "description": "Frame index 0 (first frame)."
3814
+ },
3815
+ {
3816
+ "const": -1,
3817
+ "description": "Frame index -1 (last frame)."
3818
+ }
3819
+ ]
3820
+ }
3821
+ },
3822
+ "required": [
3823
+ "image"
3824
+ ],
3825
+ "additionalProperties": false
3826
+ }
3827
+ ]
3828
+ },
3829
+ "maxItems": 2
3830
+ }
3831
+ },
3832
+ "additionalProperties": false
3833
+ },
3834
+ "positivePrompt": {
3835
+ "title": "Positive Prompt",
3836
+ "description": "Text prompt describing elements to include in the generated output.",
3837
+ "type": "string",
3838
+ "minLength": 2,
3839
+ "maxLength": 2000
3840
+ },
3841
+ "width": {
3842
+ "title": "Width",
3843
+ "description": "Width of the generated media in pixels.",
3844
+ "type": "integer"
3845
+ },
3846
+ "height": {
3847
+ "title": "Height",
3848
+ "description": "Height of the generated media in pixels.",
3849
+ "type": "integer"
3850
+ },
3851
+ "resolution": {
3852
+ "title": "Resolution",
3853
+ "description": "Resolution preset for the output. When used with input media, automatically matches the aspect ratio from the input.",
3854
+ "type": "string",
3855
+ "enum": [
3856
+ "360p",
3857
+ "540p",
3858
+ "720p",
3859
+ "1080p"
3860
+ ],
3861
+ "default": "720p"
3862
+ },
3863
+ "duration": {
3864
+ "title": "Duration",
3865
+ "description": "Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).",
3866
+ "type": "integer",
3867
+ "default": 5,
3868
+ "minimum": 1,
3869
+ "maximum": 16
3870
+ },
3871
+ "seed": {
3872
+ "title": "Seed",
3873
+ "description": "Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.",
3874
+ "type": "integer",
3875
+ "minimum": 0,
3876
+ "maximum": 2147483647
3877
+ },
3878
+ "providerSettings": {
3879
+ "title": "Provider Settings",
3880
+ "description": "Provider-specific configuration settings.",
3881
+ "type": "object",
3882
+ "properties": {
3883
+ "vidu": {
3884
+ "title": "Vidu Settings",
3885
+ "description": "Provider-specific settings for Vidu.",
3886
+ "type": "object",
3887
+ "properties": {
3888
+ "audio": {
3889
+ "title": "Audio",
3890
+ "description": "Enable audio generation.",
3891
+ "type": "boolean",
3892
+ "default": false
3893
+ }
3894
+ },
3895
+ "additionalProperties": false
3896
+ }
3897
+ },
3898
+ "additionalProperties": false
3899
+ },
3900
+ "taskType": {
3901
+ "title": "Task Type",
3902
+ "description": "Identifier for the type of task being performed",
3903
+ "type": "string",
3904
+ "const": "videoInference"
3905
+ },
3906
+ "taskUUID": {
3907
+ "title": "Task UUID",
3908
+ "description": "UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.",
3909
+ "type": "string",
3910
+ "format": "uuid"
3911
+ },
3912
+ "webhookURL": {
3913
+ "title": "Webhook URL",
3914
+ "description": "Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.",
3915
+ "type": "string",
3916
+ "format": "uri"
3917
+ },
3918
+ "includeCost": {
3919
+ "title": "Include Cost",
3920
+ "description": "Include task cost in the response.",
3921
+ "type": "boolean",
3922
+ "default": false
3923
+ },
3924
+ "numberResults": {
3925
+ "title": "Number of Results",
3926
+ "description": "Number of results to generate. Each result uses a different seed, producing variations of the same parameters.",
3927
+ "type": "integer",
3928
+ "minimum": 1,
3929
+ "default": 1,
3930
+ "maximum": 4
3931
+ },
3932
+ "uploadEndpoint": {
3933
+ "title": "Upload Endpoint",
3934
+ "description": "URL to upload content via HTTP PUT. The request body will contain the raw binary data.",
3935
+ "type": "string",
3936
+ "format": "uri"
3937
+ },
3938
+ "ttl": {
3939
+ "title": "TTL",
3940
+ "description": "Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.",
3941
+ "type": "integer",
3942
+ "minimum": 60
3943
+ },
3944
+ "outputType": {
3945
+ "title": "Output Type",
3946
+ "description": "Video output type.",
3947
+ "type": "string",
3948
+ "enum": [
3949
+ "URL"
3950
+ ],
3951
+ "default": "URL"
3952
+ },
3953
+ "outputFormat": {
3954
+ "title": "Output Format",
3955
+ "description": "File format for the generated video.",
3956
+ "type": "string",
3957
+ "enum": [
3958
+ "MP4",
3959
+ "WEBM",
3960
+ "MOV"
3961
+ ],
3962
+ "default": "MP4"
3963
+ },
3964
+ "outputQuality": {
3965
+ "title": "Output Quality",
3966
+ "description": "Compression quality of the output. Higher values preserve quality but increase file size.",
3967
+ "type": "integer",
3968
+ "minimum": 20,
3969
+ "maximum": 99,
3970
+ "default": 95
3971
+ },
3972
+ "deliveryMethod": {
3973
+ "title": "Delivery Method",
3974
+ "description": "Determines how the API delivers task results.",
3975
+ "type": "string",
3976
+ "oneOf": [
3977
+ {
3978
+ "const": "async",
3979
+ "description": "Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse. Required for long-running tasks like video generation."
3980
+ }
3981
+ ],
3982
+ "default": "async"
3983
+ },
3984
+ "safety": {
3985
+ "type": "object",
3986
+ "title": "Safety Settings",
3987
+ "description": "Content safety checking configuration for video generation.",
3988
+ "properties": {
3989
+ "checkContent": {
3990
+ "title": "Check Content",
3991
+ "description": "Enable or disable content safety checking. When enabled, defaults to `fast` mode.",
3992
+ "type": "boolean",
3993
+ "default": false
3994
+ },
3995
+ "mode": {
3996
+ "description": "Safety checking mode for video generation.",
3997
+ "type": "string",
3998
+ "oneOf": [
3999
+ {
4000
+ "const": "none",
4001
+ "title": "None",
4002
+ "description": "Disables checking."
4003
+ },
4004
+ {
4005
+ "const": "fast",
4006
+ "title": "Fast",
4007
+ "description": "Checks key frames."
4008
+ },
4009
+ {
4010
+ "const": "full",
4011
+ "title": "Full",
4012
+ "description": "Checks all frames."
4013
+ }
4014
+ ],
4015
+ "default": "none"
4016
+ }
4017
+ },
4018
+ "additionalProperties": false
4019
+ }
4020
+ },
4021
+ "allOf": [
4022
+ {
4023
+ "dependentRequired": {
4024
+ "width": [
4025
+ "height"
4026
+ ],
4027
+ "height": [
4028
+ "width"
4029
+ ]
4030
+ }
4031
+ },
4032
+ {
4033
+ "oneOf": [
4034
+ {
4035
+ "title": "360p (16:9)",
4036
+ "properties": {
4037
+ "width": {
4038
+ "const": 640
4039
+ },
4040
+ "height": {
4041
+ "const": 352
4042
+ }
4043
+ }
4044
+ },
4045
+ {
4046
+ "title": "360p (4:3)",
4047
+ "properties": {
4048
+ "width": {
4049
+ "const": 544
4050
+ },
4051
+ "height": {
4052
+ "const": 400
4053
+ }
4054
+ }
4055
+ },
4056
+ {
4057
+ "title": "360p (1:1)",
4058
+ "properties": {
4059
+ "width": {
4060
+ "const": 480
4061
+ },
4062
+ "height": {
4063
+ "const": 480
4064
+ }
4065
+ }
4066
+ },
4067
+ {
4068
+ "title": "360p (3:4)",
4069
+ "properties": {
4070
+ "width": {
4071
+ "const": 400
4072
+ },
4073
+ "height": {
4074
+ "const": 544
4075
+ }
4076
+ }
4077
+ },
4078
+ {
4079
+ "title": "360p (9:16)",
4080
+ "properties": {
4081
+ "width": {
4082
+ "const": 352
4083
+ },
4084
+ "height": {
4085
+ "const": 640
4086
+ }
4087
+ }
4088
+ },
4089
+ {
4090
+ "title": "540p (16:9)",
4091
+ "properties": {
4092
+ "width": {
4093
+ "const": 960
4094
+ },
4095
+ "height": {
4096
+ "const": 528
4097
+ }
4098
+ }
4099
+ },
4100
+ {
4101
+ "title": "540p (4:3)",
4102
+ "properties": {
4103
+ "width": {
4104
+ "const": 816
4105
+ },
4106
+ "height": {
4107
+ "const": 608
4108
+ }
4109
+ }
4110
+ },
4111
+ {
4112
+ "title": "540p (1:1)",
4113
+ "properties": {
4114
+ "width": {
4115
+ "const": 720
4116
+ },
4117
+ "height": {
4118
+ "const": 720
4119
+ }
4120
+ }
4121
+ },
4122
+ {
4123
+ "title": "540p (3:4)",
4124
+ "properties": {
4125
+ "width": {
4126
+ "const": 608
4127
+ },
4128
+ "height": {
4129
+ "const": 816
4130
+ }
4131
+ }
4132
+ },
4133
+ {
4134
+ "title": "540p (9:16)",
4135
+ "properties": {
4136
+ "width": {
4137
+ "const": 528
4138
+ },
4139
+ "height": {
4140
+ "const": 960
4141
+ }
4142
+ }
4143
+ },
4144
+ {
4145
+ "title": "720p (16:9)",
4146
+ "properties": {
4147
+ "width": {
4148
+ "const": 1280
4149
+ },
4150
+ "height": {
4151
+ "const": 720
4152
+ }
4153
+ }
4154
+ },
4155
+ {
4156
+ "title": "720p (4:3)",
4157
+ "properties": {
4158
+ "width": {
4159
+ "const": 1104
4160
+ },
4161
+ "height": {
4162
+ "const": 816
4163
+ }
4164
+ }
4165
+ },
4166
+ {
4167
+ "title": "720p (1:1)",
4168
+ "properties": {
4169
+ "width": {
4170
+ "const": 960
4171
+ },
4172
+ "height": {
4173
+ "const": 960
4174
+ }
4175
+ }
4176
+ },
4177
+ {
4178
+ "title": "720p (3:4)",
4179
+ "properties": {
4180
+ "width": {
4181
+ "const": 816
4182
+ },
4183
+ "height": {
4184
+ "const": 1104
4185
+ }
4186
+ }
4187
+ },
4188
+ {
4189
+ "title": "720p (9:16)",
4190
+ "properties": {
4191
+ "width": {
4192
+ "const": 720
4193
+ },
4194
+ "height": {
4195
+ "const": 1280
4196
+ }
4197
+ }
4198
+ },
4199
+ {
4200
+ "title": "1080p (16:9)",
4201
+ "properties": {
4202
+ "width": {
4203
+ "const": 1920
4204
+ },
4205
+ "height": {
4206
+ "const": 1080
4207
+ }
4208
+ }
4209
+ },
4210
+ {
4211
+ "title": "1080p (4:3)",
4212
+ "properties": {
4213
+ "width": {
4214
+ "const": 1674
4215
+ },
4216
+ "height": {
4217
+ "const": 1238
4218
+ }
4219
+ }
4220
+ },
4221
+ {
4222
+ "title": "1080p (1:1)",
4223
+ "properties": {
4224
+ "width": {
4225
+ "const": 1440
4226
+ },
4227
+ "height": {
4228
+ "const": 1440
4229
+ }
4230
+ }
4231
+ },
4232
+ {
4233
+ "title": "1080p (3:4)",
4234
+ "properties": {
4235
+ "width": {
4236
+ "const": 1238
4237
+ },
4238
+ "height": {
4239
+ "const": 1674
4240
+ }
4241
+ }
4242
+ },
4243
+ {
4244
+ "title": "1080p (9:16)",
4245
+ "properties": {
4246
+ "width": {
4247
+ "const": 1080
4248
+ },
4249
+ "height": {
4250
+ "const": 1920
4251
+ }
4252
+ }
4253
+ }
4254
+ ]
4255
+ },
4256
+ {
4257
+ "not": {
4258
+ "allOf": [
4259
+ {
4260
+ "required": [
4261
+ "resolution"
4262
+ ]
4263
+ },
4264
+ {
4265
+ "anyOf": [
4266
+ {
4267
+ "required": [
4268
+ "width"
4269
+ ]
4270
+ },
4271
+ {
4272
+ "required": [
4273
+ "height"
4274
+ ]
4275
+ }
4276
+ ]
4277
+ }
4278
+ ]
4279
+ }
4280
+ }
4281
+ ],
4282
+ "additionalProperties": false,
4283
+ "required": [
4284
+ "taskType",
4285
+ "taskUUID",
4286
+ "model"
4287
+ ]
4288
+ }
4289
+ ]
4290
+ }