kiapi 0.1.0__py3-none-any.whl

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 (465) hide show
  1. kiapi/__init__.py +3 -0
  2. kiapi/__main__.py +4 -0
  3. kiapi/api/__init__.py +26 -0
  4. kiapi/api/_constants/require_auth.py +14 -0
  5. kiapi/api/_helpers/build_job_responses.py +73 -0
  6. kiapi/api/_helpers/build_openapi.py +55 -0
  7. kiapi/api/_helpers/build_train_responses.py +21 -0
  8. kiapi/api/_helpers/get_accept.py +20 -0
  9. kiapi/api/_helpers/get_ctx.py +7 -0
  10. kiapi/api/_helpers/get_worker.py +7 -0
  11. kiapi/api/_helpers/register_capability_endpoints.py +70 -0
  12. kiapi/api/_helpers/submit_and_maybe_wait.py +113 -0
  13. kiapi/api/_settings.py +50 -0
  14. kiapi/api/_views/async_job_response.py +21 -0
  15. kiapi/api/_views/capability_model_spec.py +49 -0
  16. kiapi/api/app.py +150 -0
  17. kiapi/api/audio/acestep/_views/extract_response.py +57 -0
  18. kiapi/api/audio/acestep/_views/track_response.py +57 -0
  19. kiapi/api/audio/acestep/router.py +190 -0
  20. kiapi/api/audio/audiogen/_views/audio_response.py +46 -0
  21. kiapi/api/audio/audiogen/router.py +77 -0
  22. kiapi/api/chat/_views/chat_completion_response.py +71 -0
  23. kiapi/api/chat/router.py +253 -0
  24. kiapi/api/embedding/_views/embedding_response.py +35 -0
  25. kiapi/api/embedding/router.py +82 -0
  26. kiapi/api/files/_operations/get_file.py +14 -0
  27. kiapi/api/files/_operations/get_file_id.py +18 -0
  28. kiapi/api/files/_views/file_delete_response.py +14 -0
  29. kiapi/api/files/_views/file_list_response.py +15 -0
  30. kiapi/api/files/router.py +105 -0
  31. kiapi/api/health/_views/health_response.py +26 -0
  32. kiapi/api/health/router.py +28 -0
  33. kiapi/api/image/depthpro/_views/estimate_response.py +70 -0
  34. kiapi/api/image/depthpro/router.py +81 -0
  35. kiapi/api/image/ernie/_views/image_response.py +50 -0
  36. kiapi/api/image/ernie/router.py +181 -0
  37. kiapi/api/image/flux2/_views/image_response.py +53 -0
  38. kiapi/api/image/flux2/router.py +197 -0
  39. kiapi/api/image/ideogram4/_views/image_response.py +55 -0
  40. kiapi/api/image/ideogram4/router.py +87 -0
  41. kiapi/api/image/qwen/_views/image_response.py +47 -0
  42. kiapi/api/image/qwen/router.py +141 -0
  43. kiapi/api/image/seedvr2/_views/image_response.py +50 -0
  44. kiapi/api/image/seedvr2/router.py +83 -0
  45. kiapi/api/image/zimage/_views/image_response.py +49 -0
  46. kiapi/api/image/zimage/router.py +131 -0
  47. kiapi/api/jobs/_operations/get_job_id.py +18 -0
  48. kiapi/api/jobs/_views/job_delete_response.py +19 -0
  49. kiapi/api/jobs/_views/job_list_response.py +15 -0
  50. kiapi/api/jobs/router.py +62 -0
  51. kiapi/api/models/_schemas/openai_model_spec.py +26 -0
  52. kiapi/api/models/_views/model_list_response.py +15 -0
  53. kiapi/api/models/router.py +29 -0
  54. kiapi/api/video/ltx2/_views/__init__.py +1 -0
  55. kiapi/api/video/ltx2/_views/video_response.py +59 -0
  56. kiapi/api/video/ltx2/router.py +89 -0
  57. kiapi/api/web/_views/__init__.py +7 -0
  58. kiapi/api/web/_views/fetch_api_request.py +26 -0
  59. kiapi/api/web/_views/fetch_error_response.py +25 -0
  60. kiapi/api/web/router.py +302 -0
  61. kiapi/capabilities/__init__.py +24 -0
  62. kiapi/capabilities/_exceptions/CapabilityError.py +2 -0
  63. kiapi/capabilities/_exceptions/ValidationError.py +2 -0
  64. kiapi/capabilities/_helpers/attach_mflux_progress.py +50 -0
  65. kiapi/capabilities/_helpers/get_file_path.py +20 -0
  66. kiapi/capabilities/_helpers/resolve_file_ref.py +16 -0
  67. kiapi/capabilities/acestep/README.ja.md +174 -0
  68. kiapi/capabilities/acestep/README.md +167 -0
  69. kiapi/capabilities/acestep/__init__.py +37 -0
  70. kiapi/capabilities/acestep/_constants/description.py +122 -0
  71. kiapi/capabilities/acestep/_exceptions/ace_step_engine_error.py +2 -0
  72. kiapi/capabilities/acestep/_helpers/register.py +96 -0
  73. kiapi/capabilities/acestep/_models/acestep.py +105 -0
  74. kiapi/capabilities/acestep/_operations/handle_cover.py +23 -0
  75. kiapi/capabilities/acestep/_operations/handle_extract.py +38 -0
  76. kiapi/capabilities/acestep/_operations/handle_generate.py +18 -0
  77. kiapi/capabilities/acestep/_operations/handle_repaint.py +25 -0
  78. kiapi/capabilities/acestep/_operations/resolve_ace_step_paths.py +30 -0
  79. kiapi/capabilities/acestep/_operations/resolve_cover_params.py +21 -0
  80. kiapi/capabilities/acestep/_operations/resolve_engine.py +10 -0
  81. kiapi/capabilities/acestep/_operations/resolve_extract_params.py +24 -0
  82. kiapi/capabilities/acestep/_operations/resolve_generate_params.py +18 -0
  83. kiapi/capabilities/acestep/_operations/resolve_repaint_params.py +22 -0
  84. kiapi/capabilities/acestep/_schemas/ace_step_paths.py +29 -0
  85. kiapi/capabilities/acestep/_services/ace_step_engine.py +143 -0
  86. kiapi/capabilities/acestep/_settings.py +82 -0
  87. kiapi/capabilities/acestep/_views/ace_step_base.py +61 -0
  88. kiapi/capabilities/acestep/_views/cover_params.py +26 -0
  89. kiapi/capabilities/acestep/_views/cover_request.py +49 -0
  90. kiapi/capabilities/acestep/_views/extract_params.py +24 -0
  91. kiapi/capabilities/acestep/_views/extract_request.py +33 -0
  92. kiapi/capabilities/acestep/_views/generate_params.py +25 -0
  93. kiapi/capabilities/acestep/_views/generate_request.py +54 -0
  94. kiapi/capabilities/acestep/_views/repaint_params.py +27 -0
  95. kiapi/capabilities/acestep/_views/repaint_request.py +51 -0
  96. kiapi/capabilities/acestep/_views/track_params.py +7 -0
  97. kiapi/capabilities/acestep/worker_subprocess.py +247 -0
  98. kiapi/capabilities/audiogen/README.ja.md +49 -0
  99. kiapi/capabilities/audiogen/README.md +48 -0
  100. kiapi/capabilities/audiogen/__init__.py +25 -0
  101. kiapi/capabilities/audiogen/_constants/description.py +60 -0
  102. kiapi/capabilities/audiogen/_helpers/attach_audiogen_progress.py +27 -0
  103. kiapi/capabilities/audiogen/_helpers/register.py +42 -0
  104. kiapi/capabilities/audiogen/_helpers/validate_generate.py +14 -0
  105. kiapi/capabilities/audiogen/_models/audiogen.py +98 -0
  106. kiapi/capabilities/audiogen/_operations/handle_generate.py +27 -0
  107. kiapi/capabilities/audiogen/_operations/resolve_generate_params.py +25 -0
  108. kiapi/capabilities/audiogen/_settings.py +34 -0
  109. kiapi/capabilities/audiogen/_views/generate_params.py +14 -0
  110. kiapi/capabilities/audiogen/_views/generate_request.py +96 -0
  111. kiapi/capabilities/chat/README.ja.md +822 -0
  112. kiapi/capabilities/chat/README.md +806 -0
  113. kiapi/capabilities/chat/__init__.py +25 -0
  114. kiapi/capabilities/chat/_constants/description.py +163 -0
  115. kiapi/capabilities/chat/_helpers/register.py +67 -0
  116. kiapi/capabilities/chat/_models/qwen3_5.py +183 -0
  117. kiapi/capabilities/chat/_models/qwen3_omni.py +242 -0
  118. kiapi/capabilities/chat/_operations/apply_template.py +74 -0
  119. kiapi/capabilities/chat/_operations/completed_hermes_tool_call_text.py +9 -0
  120. kiapi/capabilities/chat/_operations/emit_streaming_response.py +297 -0
  121. kiapi/capabilities/chat/_operations/ensure_streaming_detokenizer_compat.py +49 -0
  122. kiapi/capabilities/chat/_operations/format_response.py +72 -0
  123. kiapi/capabilities/chat/_operations/handle_chat.py +25 -0
  124. kiapi/capabilities/chat/_operations/parse_hermes_tool_calls.py +63 -0
  125. kiapi/capabilities/chat/_operations/parse_json_tool_calls.py +66 -0
  126. kiapi/capabilities/chat/_operations/parse_messages.py +326 -0
  127. kiapi/capabilities/chat/_operations/resolve_chat_params.py +50 -0
  128. kiapi/capabilities/chat/_operations/stream_text_from_tokens.py +32 -0
  129. kiapi/capabilities/chat/_operations/strip_tool_calls.py +15 -0
  130. kiapi/capabilities/chat/_settings.py +74 -0
  131. kiapi/capabilities/chat/_utils/apply_parallel_tool_call_policy.py +17 -0
  132. kiapi/capabilities/chat/_utils/apply_seed.py +8 -0
  133. kiapi/capabilities/chat/_utils/load_audio_mono.py +31 -0
  134. kiapi/capabilities/chat/_utils/load_mlx_vlm.py +12 -0
  135. kiapi/capabilities/chat/_utils/warmup_params.py +26 -0
  136. kiapi/capabilities/chat/_views/chat_params.py +34 -0
  137. kiapi/capabilities/chat/_views/chat_request.py +153 -0
  138. kiapi/capabilities/depthpro/README.ja.md +131 -0
  139. kiapi/capabilities/depthpro/README.md +124 -0
  140. kiapi/capabilities/depthpro/__init__.py +23 -0
  141. kiapi/capabilities/depthpro/_constants/description.py +39 -0
  142. kiapi/capabilities/depthpro/_helpers/register.py +46 -0
  143. kiapi/capabilities/depthpro/_helpers/validate_estimate.py +32 -0
  144. kiapi/capabilities/depthpro/_models/depthpro.py +144 -0
  145. kiapi/capabilities/depthpro/_operations/handle_estimate.py +50 -0
  146. kiapi/capabilities/depthpro/_operations/is_quantize_override.py +12 -0
  147. kiapi/capabilities/depthpro/_operations/resolve_estimate_params.py +24 -0
  148. kiapi/capabilities/depthpro/_settings.py +46 -0
  149. kiapi/capabilities/depthpro/_views/estimate_params.py +21 -0
  150. kiapi/capabilities/depthpro/_views/estimate_request.py +63 -0
  151. kiapi/capabilities/embedding/README.ja.md +137 -0
  152. kiapi/capabilities/embedding/README.md +128 -0
  153. kiapi/capabilities/embedding/__init__.py +24 -0
  154. kiapi/capabilities/embedding/_constants/description.py +47 -0
  155. kiapi/capabilities/embedding/_helpers/register.py +66 -0
  156. kiapi/capabilities/embedding/_models/qwen3_text.py +53 -0
  157. kiapi/capabilities/embedding/_models/qwen3_vl.py +97 -0
  158. kiapi/capabilities/embedding/_operations/format_response.py +24 -0
  159. kiapi/capabilities/embedding/_operations/handle_embed.py +24 -0
  160. kiapi/capabilities/embedding/_operations/parse_inputs.py +108 -0
  161. kiapi/capabilities/embedding/_operations/resolve_embed_params.py +18 -0
  162. kiapi/capabilities/embedding/_settings.py +27 -0
  163. kiapi/capabilities/embedding/_utils/to_vector.py +20 -0
  164. kiapi/capabilities/embedding/_views/embed_params.py +17 -0
  165. kiapi/capabilities/embedding/_views/embed_request.py +39 -0
  166. kiapi/capabilities/ernie/README.ja.md +242 -0
  167. kiapi/capabilities/ernie/README.md +223 -0
  168. kiapi/capabilities/ernie/__init__.py +34 -0
  169. kiapi/capabilities/ernie/_constants/description.py +71 -0
  170. kiapi/capabilities/ernie/_helpers/register.py +60 -0
  171. kiapi/capabilities/ernie/_helpers/validate_edit.py +19 -0
  172. kiapi/capabilities/ernie/_helpers/validate_generate.py +8 -0
  173. kiapi/capabilities/ernie/_models/ernie.py +356 -0
  174. kiapi/capabilities/ernie/_operations/handle_edit.py +39 -0
  175. kiapi/capabilities/ernie/_operations/handle_generate.py +38 -0
  176. kiapi/capabilities/ernie/_operations/handle_train.py +77 -0
  177. kiapi/capabilities/ernie/_operations/is_quantize_override.py +16 -0
  178. kiapi/capabilities/ernie/_operations/resolve_edit_params.py +44 -0
  179. kiapi/capabilities/ernie/_operations/resolve_generate_params.py +40 -0
  180. kiapi/capabilities/ernie/_operations/resolve_lora_params.py +23 -0
  181. kiapi/capabilities/ernie/_operations/resolve_train_params.py +43 -0
  182. kiapi/capabilities/ernie/_operations/validate_common.py +33 -0
  183. kiapi/capabilities/ernie/_schemas/lora_ref.py +27 -0
  184. kiapi/capabilities/ernie/_settings.py +151 -0
  185. kiapi/capabilities/ernie/_views/edit_params.py +36 -0
  186. kiapi/capabilities/ernie/_views/edit_request.py +142 -0
  187. kiapi/capabilities/ernie/_views/generate_params.py +32 -0
  188. kiapi/capabilities/ernie/_views/generate_request.py +127 -0
  189. kiapi/capabilities/ernie/_views/train_params.py +28 -0
  190. kiapi/capabilities/ernie/_views/train_request.py +96 -0
  191. kiapi/capabilities/flux2/README.ja.md +260 -0
  192. kiapi/capabilities/flux2/README.md +241 -0
  193. kiapi/capabilities/flux2/__init__.py +36 -0
  194. kiapi/capabilities/flux2/_constants/description.py +81 -0
  195. kiapi/capabilities/flux2/_helpers/register.py +98 -0
  196. kiapi/capabilities/flux2/_helpers/validate_edit.py +12 -0
  197. kiapi/capabilities/flux2/_helpers/validate_generate.py +8 -0
  198. kiapi/capabilities/flux2/_models/flux2.py +396 -0
  199. kiapi/capabilities/flux2/_operations/handle_edit.py +44 -0
  200. kiapi/capabilities/flux2/_operations/handle_generate.py +46 -0
  201. kiapi/capabilities/flux2/_operations/handle_train.py +105 -0
  202. kiapi/capabilities/flux2/_operations/is_quantize_override.py +16 -0
  203. kiapi/capabilities/flux2/_operations/resolve_edit_params.py +43 -0
  204. kiapi/capabilities/flux2/_operations/resolve_generate_params.py +44 -0
  205. kiapi/capabilities/flux2/_operations/resolve_lora_params.py +23 -0
  206. kiapi/capabilities/flux2/_operations/resolve_train_params.py +42 -0
  207. kiapi/capabilities/flux2/_operations/role_spec.py +13 -0
  208. kiapi/capabilities/flux2/_operations/split_repo.py +11 -0
  209. kiapi/capabilities/flux2/_operations/validate_common.py +35 -0
  210. kiapi/capabilities/flux2/_schemas/lora_ref.py +27 -0
  211. kiapi/capabilities/flux2/_settings.py +181 -0
  212. kiapi/capabilities/flux2/_views/edit_params.py +36 -0
  213. kiapi/capabilities/flux2/_views/edit_request.py +145 -0
  214. kiapi/capabilities/flux2/_views/generate_params.py +36 -0
  215. kiapi/capabilities/flux2/_views/generate_request.py +150 -0
  216. kiapi/capabilities/flux2/_views/train_params.py +32 -0
  217. kiapi/capabilities/flux2/_views/train_request.py +102 -0
  218. kiapi/capabilities/ideogram4/README.ja.md +230 -0
  219. kiapi/capabilities/ideogram4/README.md +219 -0
  220. kiapi/capabilities/ideogram4/__init__.py +24 -0
  221. kiapi/capabilities/ideogram4/_constants/description.py +65 -0
  222. kiapi/capabilities/ideogram4/_helpers/register.py +44 -0
  223. kiapi/capabilities/ideogram4/_helpers/validate_generate.py +31 -0
  224. kiapi/capabilities/ideogram4/_models/ideogram4.py +120 -0
  225. kiapi/capabilities/ideogram4/_operations/handle_generate.py +30 -0
  226. kiapi/capabilities/ideogram4/_operations/is_quantize_override.py +12 -0
  227. kiapi/capabilities/ideogram4/_operations/resolve_generate_params.py +30 -0
  228. kiapi/capabilities/ideogram4/_settings.py +89 -0
  229. kiapi/capabilities/ideogram4/_views/generate_params.py +27 -0
  230. kiapi/capabilities/ideogram4/_views/generate_request.py +118 -0
  231. kiapi/capabilities/ltx2/README.ja.md +287 -0
  232. kiapi/capabilities/ltx2/README.md +274 -0
  233. kiapi/capabilities/ltx2/__init__.py +26 -0
  234. kiapi/capabilities/ltx2/_constants/description.py +81 -0
  235. kiapi/capabilities/ltx2/_helpers/register.py +58 -0
  236. kiapi/capabilities/ltx2/_helpers/validate_generate.py +42 -0
  237. kiapi/capabilities/ltx2/_models/ltx2.py +106 -0
  238. kiapi/capabilities/ltx2/_operations/detect_mode.py +19 -0
  239. kiapi/capabilities/ltx2/_operations/handle_generate.py +52 -0
  240. kiapi/capabilities/ltx2/_operations/resolve_generate_params.py +31 -0
  241. kiapi/capabilities/ltx2/_settings.py +93 -0
  242. kiapi/capabilities/ltx2/_views/generate_params.py +34 -0
  243. kiapi/capabilities/ltx2/_views/generate_request.py +151 -0
  244. kiapi/capabilities/qwen/README.ja.md +251 -0
  245. kiapi/capabilities/qwen/README.md +235 -0
  246. kiapi/capabilities/qwen/__init__.py +30 -0
  247. kiapi/capabilities/qwen/_constants/description.py +53 -0
  248. kiapi/capabilities/qwen/_helpers/register.py +60 -0
  249. kiapi/capabilities/qwen/_helpers/validate_edit.py +12 -0
  250. kiapi/capabilities/qwen/_helpers/validate_generate.py +12 -0
  251. kiapi/capabilities/qwen/_models/qwen.py +224 -0
  252. kiapi/capabilities/qwen/_operations/handle_edit.py +44 -0
  253. kiapi/capabilities/qwen/_operations/handle_generate.py +46 -0
  254. kiapi/capabilities/qwen/_operations/is_quantize_override.py +15 -0
  255. kiapi/capabilities/qwen/_operations/resolve_edit_params.py +35 -0
  256. kiapi/capabilities/qwen/_operations/resolve_generate_params.py +39 -0
  257. kiapi/capabilities/qwen/_operations/resolve_lora_params.py +23 -0
  258. kiapi/capabilities/qwen/_operations/validate_common.py +32 -0
  259. kiapi/capabilities/qwen/_schemas/lora_ref.py +27 -0
  260. kiapi/capabilities/qwen/_settings.py +107 -0
  261. kiapi/capabilities/qwen/_views/edit_params.py +36 -0
  262. kiapi/capabilities/qwen/_views/edit_request.py +138 -0
  263. kiapi/capabilities/qwen/_views/generate_params.py +37 -0
  264. kiapi/capabilities/qwen/_views/generate_request.py +149 -0
  265. kiapi/capabilities/seedvr2/README.ja.md +234 -0
  266. kiapi/capabilities/seedvr2/README.md +219 -0
  267. kiapi/capabilities/seedvr2/__init__.py +24 -0
  268. kiapi/capabilities/seedvr2/_constants/description.py +46 -0
  269. kiapi/capabilities/seedvr2/_helpers/register.py +60 -0
  270. kiapi/capabilities/seedvr2/_helpers/validate_upscale.py +52 -0
  271. kiapi/capabilities/seedvr2/_models/seedvr2.py +140 -0
  272. kiapi/capabilities/seedvr2/_operations/handle_upscale.py +42 -0
  273. kiapi/capabilities/seedvr2/_operations/is_quantize_override.py +12 -0
  274. kiapi/capabilities/seedvr2/_operations/resolve_upscale_params.py +30 -0
  275. kiapi/capabilities/seedvr2/_settings.py +74 -0
  276. kiapi/capabilities/seedvr2/_views/upscale_params.py +27 -0
  277. kiapi/capabilities/seedvr2/_views/upscale_request.py +94 -0
  278. kiapi/capabilities/web/README.ja.md +187 -0
  279. kiapi/capabilities/web/README.md +171 -0
  280. kiapi/capabilities/web/__init__.py +30 -0
  281. kiapi/capabilities/web/_constants/description.py +38 -0
  282. kiapi/capabilities/web/_exceptions/FetchError.py +24 -0
  283. kiapi/capabilities/web/_exceptions/SearchBackendError.py +11 -0
  284. kiapi/capabilities/web/_helpers/register.py +59 -0
  285. kiapi/capabilities/web/_models/crawl4ai.py +32 -0
  286. kiapi/capabilities/web/_models/searxng.py +44 -0
  287. kiapi/capabilities/web/_operations/handle_fetch.py +145 -0
  288. kiapi/capabilities/web/_operations/handle_search.py +56 -0
  289. kiapi/capabilities/web/_operations/resolve_fetch_params.py +19 -0
  290. kiapi/capabilities/web/_operations/resolve_search_params.py +34 -0
  291. kiapi/capabilities/web/_operations/resolve_searxng_config_dir.py +21 -0
  292. kiapi/capabilities/web/_services/__init__.py +1 -0
  293. kiapi/capabilities/web/_services/web_backend_process.py +144 -0
  294. kiapi/capabilities/web/_settings.py +138 -0
  295. kiapi/capabilities/web/_views/fetch_params.py +27 -0
  296. kiapi/capabilities/web/_views/fetch_request.py +29 -0
  297. kiapi/capabilities/web/_views/fetch_result.py +20 -0
  298. kiapi/capabilities/web/_views/search_params.py +43 -0
  299. kiapi/capabilities/web/_views/search_request.py +93 -0
  300. kiapi/capabilities/web/_views/search_response.py +49 -0
  301. kiapi/capabilities/web/resources/__init__.py +0 -0
  302. kiapi/capabilities/web/resources/searxng/__init__.py +0 -0
  303. kiapi/capabilities/web/resources/searxng/settings.yml +11 -0
  304. kiapi/capabilities/zimage/README.ja.md +249 -0
  305. kiapi/capabilities/zimage/README.md +231 -0
  306. kiapi/capabilities/zimage/__init__.py +34 -0
  307. kiapi/capabilities/zimage/_constants/description.py +73 -0
  308. kiapi/capabilities/zimage/_helpers/register.py +62 -0
  309. kiapi/capabilities/zimage/_helpers/validate_generate.py +37 -0
  310. kiapi/capabilities/zimage/_models/zimage.py +278 -0
  311. kiapi/capabilities/zimage/_operations/handle_generate.py +38 -0
  312. kiapi/capabilities/zimage/_operations/handle_train.py +78 -0
  313. kiapi/capabilities/zimage/_operations/is_quantize_override.py +11 -0
  314. kiapi/capabilities/zimage/_operations/resolve_generate_params.py +39 -0
  315. kiapi/capabilities/zimage/_operations/resolve_lora_params.py +23 -0
  316. kiapi/capabilities/zimage/_operations/resolve_train_params.py +38 -0
  317. kiapi/capabilities/zimage/_schemas/lora_ref.py +27 -0
  318. kiapi/capabilities/zimage/_settings.py +166 -0
  319. kiapi/capabilities/zimage/_views/generate_params.py +23 -0
  320. kiapi/capabilities/zimage/_views/generate_request.py +127 -0
  321. kiapi/capabilities/zimage/_views/train_params.py +22 -0
  322. kiapi/capabilities/zimage/_views/train_request.py +101 -0
  323. kiapi/cli/__init__.py +11 -0
  324. kiapi/cli/_helpers/dedupe_resources.py +12 -0
  325. kiapi/cli/_helpers/register_all_capabilities.py +36 -0
  326. kiapi/cli/_helpers/run_resources.py +24 -0
  327. kiapi/cli/_helpers/select_specs.py +67 -0
  328. kiapi/cli/activate/_operations/preflight_hf_access.py +129 -0
  329. kiapi/cli/activate/cli.py +37 -0
  330. kiapi/cli/check/_helpers/check_audio_acestep_turbo.py +22 -0
  331. kiapi/cli/check/_helpers/check_audio_acestep_xl_base.py +22 -0
  332. kiapi/cli/check/_helpers/check_audio_audiogen_medium.py +24 -0
  333. kiapi/cli/check/_helpers/check_chat_chat_qwen3_6_27b.py +19 -0
  334. kiapi/cli/check/_helpers/check_chat_chat_qwen3_omni.py +19 -0
  335. kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_embedding_8b.py +14 -0
  336. kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_vl_embedding_2b.py +19 -0
  337. kiapi/cli/check/_helpers/check_image_depthpro_base.py +21 -0
  338. kiapi/cli/check/_helpers/check_image_ernie_base.py +23 -0
  339. kiapi/cli/check/_helpers/check_image_ernie_turbo.py +23 -0
  340. kiapi/cli/check/_helpers/check_image_flux2_klein_9b.py +23 -0
  341. kiapi/cli/check/_helpers/check_image_flux2_klein_base_4b.py +23 -0
  342. kiapi/cli/check/_helpers/check_image_flux2_klein_base_9b.py +23 -0
  343. kiapi/cli/check/_helpers/check_image_ideogram4_fp8.py +23 -0
  344. kiapi/cli/check/_helpers/check_image_qwen_edit_2509.py +27 -0
  345. kiapi/cli/check/_helpers/check_image_qwen_image.py +23 -0
  346. kiapi/cli/check/_helpers/check_image_seedvr2_3b.py +23 -0
  347. kiapi/cli/check/_helpers/check_image_seedvr2_7b.py +23 -0
  348. kiapi/cli/check/_helpers/check_image_zimage_base.py +23 -0
  349. kiapi/cli/check/_helpers/check_image_zimage_turbo.py +23 -0
  350. kiapi/cli/check/_helpers/check_video_ltx2_distilled.py +26 -0
  351. kiapi/cli/check/_helpers/check_web_web_fetch.py +14 -0
  352. kiapi/cli/check/_helpers/check_web_web_search.py +14 -0
  353. kiapi/cli/check/_operations/build_check_result.py +20 -0
  354. kiapi/cli/check/_operations/check_context.py +10 -0
  355. kiapi/cli/check/_operations/create_sample_image.py +46 -0
  356. kiapi/cli/check/_schemas/check_result.py +12 -0
  357. kiapi/cli/check/cli.py +89 -0
  358. kiapi/cli/cli.py +29 -0
  359. kiapi/cli/config/cli.py +17 -0
  360. kiapi/cli/config/edit/cli.py +32 -0
  361. kiapi/cli/config/init/cli.py +33 -0
  362. kiapi/cli/config/show/cli.py +13 -0
  363. kiapi/cli/config/template/cli.py +36 -0
  364. kiapi/cli/deactivate/cli.py +49 -0
  365. kiapi/cli/run/asgi.py +16 -0
  366. kiapi/cli/run/cli.py +59 -0
  367. kiapi/cli/service/__init__.py +5 -0
  368. kiapi/cli/service/_services/service_manager.py +107 -0
  369. kiapi/cli/service/cli.py +19 -0
  370. kiapi/cli/service/install/cli.py +17 -0
  371. kiapi/cli/service/start/cli.py +22 -0
  372. kiapi/cli/service/status/cli.py +81 -0
  373. kiapi/cli/service/stop/cli.py +19 -0
  374. kiapi/cli/service/uninstall/cli.py +16 -0
  375. kiapi/cli/status/cli.py +226 -0
  376. kiapi/core/app/__init__.py +16 -0
  377. kiapi/core/app/_schemas/app_context.py +28 -0
  378. kiapi/core/app/_services/user_directory.py +59 -0
  379. kiapi/core/app/_settings.py +46 -0
  380. kiapi/core/capability/__init__.py +11 -0
  381. kiapi/core/capability/_schemas/capability_spec.py +17 -0
  382. kiapi/core/capability/_services/capability_spec_registry.py +21 -0
  383. kiapi/core/config/__init__.py +11 -0
  384. kiapi/core/config/_exceptions/user_config_error.py +2 -0
  385. kiapi/core/config/_helpers/get_user_settings_path.py +7 -0
  386. kiapi/core/config/_helpers/load_user_settings.py +54 -0
  387. kiapi/core/file/__init__.py +37 -0
  388. kiapi/core/file/_helpers/create_file_store.py +7 -0
  389. kiapi/core/file/_helpers/resolve_file_ref.py +90 -0
  390. kiapi/core/file/_schemas/file_data_url_ref.py +19 -0
  391. kiapi/core/file/_schemas/file_id_ref.py +16 -0
  392. kiapi/core/file/_schemas/file_record.py +46 -0
  393. kiapi/core/file/_schemas/file_url_ref.py +16 -0
  394. kiapi/core/file/_services/file_store.py +138 -0
  395. kiapi/core/file/_settings.py +22 -0
  396. kiapi/core/file/_types/file_id.py +2 -0
  397. kiapi/core/file/_types/file_ref.py +12 -0
  398. kiapi/core/file/_views/resolved_file_ref.py +16 -0
  399. kiapi/core/job/__init__.py +24 -0
  400. kiapi/core/job/_enums/job_status.py +9 -0
  401. kiapi/core/job/_helpers/creep_progress.py +123 -0
  402. kiapi/core/job/_models/job.py +121 -0
  403. kiapi/core/job/_services/job_store.py +33 -0
  404. kiapi/core/job/_services/progress_reporter.py +79 -0
  405. kiapi/core/job/_types/job_id.py +3 -0
  406. kiapi/core/job/_types/job_result.py +5 -0
  407. kiapi/core/job/_types/job_type.py +4 -0
  408. kiapi/core/logging/__init__.py +14 -0
  409. kiapi/core/logging/_helpers/get_log_level.py +8 -0
  410. kiapi/core/logging/_helpers/setup_logger.py +14 -0
  411. kiapi/core/logging/_settings.py +34 -0
  412. kiapi/core/logging/_types/log_level.py +3 -0
  413. kiapi/core/memory/__init__.py +21 -0
  414. kiapi/core/memory/_exceptions/memory_budget_error.py +2 -0
  415. kiapi/core/memory/_helpers/create_memory_manager.py +17 -0
  416. kiapi/core/memory/_operations/log_memory_limit.py +29 -0
  417. kiapi/core/memory/_operations/resolve_effective_memory_limit_gb.py +13 -0
  418. kiapi/core/memory/_operations/resolve_framework_strategy.py +42 -0
  419. kiapi/core/memory/_schemas/framework_strategy.py +14 -0
  420. kiapi/core/memory/_schemas/memory_stats.py +24 -0
  421. kiapi/core/memory/_schemas/resident_model.py +14 -0
  422. kiapi/core/memory/_schemas/resident_model_stats.py +49 -0
  423. kiapi/core/memory/_services/memory_manager.py +257 -0
  424. kiapi/core/memory/_settings.py +36 -0
  425. kiapi/core/memory/_types/framework_name.py +4 -0
  426. kiapi/core/memory/_types/resident_key.py +4 -0
  427. kiapi/core/model/__init__.py +36 -0
  428. kiapi/core/model/_exceptions/unknown_model_error.py +2 -0
  429. kiapi/core/model/_schemas/model_spec.py +145 -0
  430. kiapi/core/model/_services/model_registry.py +85 -0
  431. kiapi/core/model/_types/model_alias.py +2 -0
  432. kiapi/core/model/_types/model_domain.py +6 -0
  433. kiapi/core/model/_types/model_family.py +5 -0
  434. kiapi/core/model/_types/model_key.py +8 -0
  435. kiapi/core/model/_types/model_name.py +4 -0
  436. kiapi/core/model/_types/model_repo.py +3 -0
  437. kiapi/core/net/__init__.py +16 -0
  438. kiapi/core/net/_exceptions/unsafe_url_error.py +7 -0
  439. kiapi/core/net/_helpers/verify_public_url.py +68 -0
  440. kiapi/core/net/_settings.py +28 -0
  441. kiapi/core/setup/__init__.py +25 -0
  442. kiapi/core/setup/_exceptions/setup_required_error.py +2 -0
  443. kiapi/core/setup/_schemas/docker_image_resource.py +37 -0
  444. kiapi/core/setup/_schemas/hf_snapshot_resource.py +50 -0
  445. kiapi/core/setup/_schemas/local_path_resource.py +43 -0
  446. kiapi/core/setup/_schemas/python_package_resource.py +58 -0
  447. kiapi/core/setup/_schemas/python_venv_resource.py +63 -0
  448. kiapi/core/setup/_schemas/setup_status.py +7 -0
  449. kiapi/core/setup/_schemas/url_file_resource.py +43 -0
  450. kiapi/core/setup/_services/setup_manager.py +331 -0
  451. kiapi/core/setup/_types/setup_resource.py +21 -0
  452. kiapi/core/setup/_types/setup_target.py +11 -0
  453. kiapi/core/workdir/__init__.py +8 -0
  454. kiapi/core/workdir/_helpers/create_work_dir.py +11 -0
  455. kiapi/core/workdir/_settings.py +21 -0
  456. kiapi/core/worker/__init__.py +23 -0
  457. kiapi/core/worker/_helpers/create_worker.py +9 -0
  458. kiapi/core/worker/_services/worker.py +165 -0
  459. kiapi/core/worker/_settings.py +36 -0
  460. kiapi/core/worker/_types/job_thunk.py +6 -0
  461. kiapi-0.1.0.dist-info/METADATA +337 -0
  462. kiapi-0.1.0.dist-info/RECORD +465 -0
  463. kiapi-0.1.0.dist-info/WHEEL +4 -0
  464. kiapi-0.1.0.dist-info/entry_points.txt +2 -0
  465. kiapi-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,129 @@
1
+ from dataclasses import dataclass
2
+ from typing import Protocol
3
+ from urllib.parse import quote
4
+
5
+ import click
6
+ from huggingface_hub import HfApi, get_token
7
+ from huggingface_hub.utils import (
8
+ GatedRepoError, # pyright: ignore
9
+ HfHubHTTPError, # pyright: ignore
10
+ LocalTokenNotFoundError, # pyright: ignore
11
+ )
12
+
13
+ from kiapi.core.setup import HfSnapshotResource, SetupResource
14
+
15
+
16
+ class ResourceStatusManager(Protocol):
17
+ def status(self, resource: SetupResource) -> object: ...
18
+
19
+
20
+ @dataclass(frozen=True)
21
+ class HfAccessIssue:
22
+ repo: str
23
+ url: str
24
+ reason: str
25
+
26
+
27
+ def preflight_hf_access(
28
+ resources: list[SetupResource],
29
+ manager: ResourceStatusManager,
30
+ *,
31
+ api: HfApi | None = None,
32
+ ) -> None:
33
+ """Fail early when selected gated Hugging Face snapshots are not accessible."""
34
+
35
+ hf_resources = [
36
+ resource for resource in resources if isinstance(resource, HfSnapshotResource)
37
+ ]
38
+ if not hf_resources:
39
+ return
40
+
41
+ api = api or HfApi()
42
+ issues: list[HfAccessIssue] = []
43
+ for resource in hf_resources:
44
+ state = manager.status(resource)
45
+ if bool(getattr(state, "ready", False)):
46
+ continue
47
+ if not _is_gated_repo(api, resource):
48
+ continue
49
+
50
+ issue = _check_gated_repo_access(api, resource)
51
+ if issue is not None:
52
+ issues.append(issue)
53
+
54
+ if issues:
55
+ raise click.ClickException(_format_hf_access_issues(issues))
56
+
57
+
58
+ def _is_gated_repo(api: HfApi, resource: HfSnapshotResource) -> bool:
59
+ info = api.model_info(
60
+ resource.repo,
61
+ revision=resource.revision,
62
+ token=False,
63
+ timeout=15,
64
+ )
65
+ return bool(getattr(info, "gated", False))
66
+
67
+
68
+ def _check_gated_repo_access(
69
+ api: HfApi, resource: HfSnapshotResource
70
+ ) -> HfAccessIssue | None:
71
+ url = _repo_url(resource.repo)
72
+ if not get_token():
73
+ return HfAccessIssue(
74
+ repo=resource.repo,
75
+ url=url,
76
+ reason="not authenticated",
77
+ )
78
+
79
+ try:
80
+ api.list_repo_files(
81
+ resource.repo,
82
+ revision=resource.revision,
83
+ repo_type="model",
84
+ token=True,
85
+ )
86
+ except LocalTokenNotFoundError:
87
+ return HfAccessIssue(
88
+ repo=resource.repo,
89
+ url=url,
90
+ reason="not authenticated",
91
+ )
92
+ except GatedRepoError:
93
+ return HfAccessIssue(
94
+ repo=resource.repo,
95
+ url=url,
96
+ reason="access has not been approved or terms have not been accepted",
97
+ )
98
+ except HfHubHTTPError as exc:
99
+ status_code = getattr(getattr(exc, "response", None), "status_code", None)
100
+ if status_code in {401, 403}:
101
+ return HfAccessIssue(
102
+ repo=resource.repo,
103
+ url=url,
104
+ reason="access has not been approved or terms have not been accepted",
105
+ )
106
+ raise
107
+
108
+ return None
109
+
110
+
111
+ def _repo_url(repo: str) -> str:
112
+ return f"https://huggingface.co/{quote(repo, safe='/')}"
113
+
114
+
115
+ def _format_hf_access_issues(issues: list[HfAccessIssue]) -> str:
116
+ repos = "\n".join(
117
+ f"- {issue.repo} ({issue.reason})\n {issue.url}" for issue in issues
118
+ )
119
+ return (
120
+ "Hugging Face access is required before activation.\n\n"
121
+ "Open the following repository page(s), accept the terms or request access, "
122
+ "then authenticate locally:\n\n"
123
+ f"{repos}\n\n"
124
+ "Authenticate with one of:\n\n"
125
+ " hf auth login\n\n"
126
+ "or:\n\n"
127
+ " export HF_TOKEN=hf_...\n\n"
128
+ "Then run `kiapi activate ...` again."
129
+ )
@@ -0,0 +1,37 @@
1
+ import click
2
+
3
+ from kiapi.cli import (
4
+ dedupe_resources,
5
+ register_all_capabilities,
6
+ run_resources,
7
+ select_specs,
8
+ )
9
+ from kiapi.core.setup import SetupManager
10
+
11
+ from ._operations.preflight_hf_access import preflight_hf_access
12
+
13
+
14
+ @click.command()
15
+ @click.option("--all", "activate_all", is_flag=True, help="Activate all models")
16
+ @click.option("--domain", "domains", multiple=True, help="Activate domain")
17
+ @click.option("--family", "families", multiple=True, help="Activate family")
18
+ @click.option("--repo", "repos", multiple=True, help="Activate repo/image")
19
+ def activate(
20
+ activate_all: bool,
21
+ domains: tuple[str, ...],
22
+ families: tuple[str, ...],
23
+ repos: tuple[str, ...],
24
+ ) -> None:
25
+ """Download Hugging Face snapshots and pull Docker images."""
26
+ register_all_capabilities()
27
+ specs = select_specs(
28
+ all_selected=activate_all,
29
+ domains=domains,
30
+ families=families,
31
+ repos=repos,
32
+ interactive=True,
33
+ )
34
+ resources = dedupe_resources(specs)
35
+ manager = SetupManager()
36
+ preflight_hf_access(resources, manager)
37
+ run_resources("activate", resources, manager)
@@ -0,0 +1,22 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.acestep import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="short simple electronic tone",
16
+ lyrics="[Instrumental]",
17
+ duration=5,
18
+ inference_steps=1,
19
+ seed=1,
20
+ ),
21
+ )
22
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,22 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.acestep import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="short simple electronic tone",
16
+ lyrics="[Instrumental]",
17
+ duration=5,
18
+ inference_steps=1,
19
+ seed=1,
20
+ ),
21
+ )
22
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,24 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.audiogen import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="single soft beep",
16
+ duration=1.0,
17
+ seed=1,
18
+ top_k=1,
19
+ top_p=0.0,
20
+ temperature=1.0,
21
+ cfg_coef=3.0,
22
+ ),
23
+ )
24
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,19 @@
1
+ from kiapi.capabilities.chat import ChatRequest, handle_chat
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._schemas.check_result import CheckResult
7
+
8
+
9
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
10
+ result, artifacts = handle_chat(
11
+ ctx,
12
+ ChatRequest(
13
+ model=spec.name,
14
+ messages=[{"role": "user", "content": "Reply with only: ok"}],
15
+ max_completion_tokens=4,
16
+ temperature=0.0,
17
+ ),
18
+ )
19
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,19 @@
1
+ from kiapi.capabilities.chat import ChatRequest, handle_chat
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._schemas.check_result import CheckResult
7
+
8
+
9
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
10
+ result, artifacts = handle_chat(
11
+ ctx,
12
+ ChatRequest(
13
+ model=spec.name,
14
+ messages=[{"role": "user", "content": "Reply with only: ok"}],
15
+ max_completion_tokens=4,
16
+ temperature=0.0,
17
+ ),
18
+ )
19
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,14 @@
1
+ from kiapi.capabilities.embedding import EmbedRequest, handle_embed
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._schemas.check_result import CheckResult
7
+
8
+
9
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
10
+ result, artifacts = handle_embed(
11
+ ctx,
12
+ EmbedRequest(model=spec.name, text="kiapi check"),
13
+ )
14
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,19 @@
1
+ from kiapi.capabilities.embedding import EmbedRequest, handle_embed
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._operations.create_sample_image import create_sample_image
7
+ from .._schemas.check_result import CheckResult
8
+
9
+
10
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
11
+ image_file_id = create_sample_image(ctx)
12
+ rec = ctx.file_store.get(image_file_id)
13
+ if rec is None:
14
+ raise RuntimeError("failed to create check input image")
15
+ result, artifacts = handle_embed(
16
+ ctx,
17
+ EmbedRequest(model=spec.name, image=rec.path),
18
+ )
19
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,21 @@
1
+ from kiapi.capabilities.depthpro import EstimateRequest, handle_estimate
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.file import FileIDRef
4
+ from kiapi.core.model import ModelSpec
5
+
6
+ from .._operations.build_check_result import build_check_result
7
+ from .._operations.create_sample_image import create_sample_image
8
+ from .._schemas.check_result import CheckResult
9
+
10
+
11
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
12
+ image_file_id = create_sample_image(ctx)
13
+ result, artifacts = handle_estimate(
14
+ ctx,
15
+ EstimateRequest(
16
+ model=spec.name,
17
+ image=FileIDRef(file_id=image_file_id),
18
+ include_depth_data=False,
19
+ ),
20
+ )
21
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.ernie import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=1,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.ernie import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=1,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.flux2 import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=2,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.flux2 import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=2,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.flux2 import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=2,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.ideogram4 import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="simple word OK on a plain white card",
16
+ preset="V4_TURBO_12",
17
+ width=256,
18
+ height=256,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,27 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.file import FileIDRef
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._operations.create_sample_image import create_sample_image
7
+ from .._schemas.check_result import CheckResult
8
+
9
+
10
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
11
+ from kiapi.capabilities.qwen import EditRequest, handle_edit
12
+
13
+ image_file_id = create_sample_image(ctx)
14
+ result, artifacts = handle_edit(
15
+ ctx,
16
+ EditRequest(
17
+ model=spec.name,
18
+ prompt="make the object blue, keep the simple composition",
19
+ images=[FileIDRef(file_id=image_file_id)],
20
+ width=256,
21
+ height=256,
22
+ steps=1,
23
+ seed=1,
24
+ quality=90,
25
+ ),
26
+ )
27
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.qwen import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=1,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.capabilities.seedvr2 import UpscaleRequest, handle_upscale
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.file import FileIDRef
4
+ from kiapi.core.model import ModelSpec
5
+
6
+ from .._operations.build_check_result import build_check_result
7
+ from .._operations.create_sample_image import create_sample_image
8
+ from .._schemas.check_result import CheckResult
9
+
10
+
11
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
12
+ image_file_id = create_sample_image(ctx, size=128)
13
+ result, artifacts = handle_upscale(
14
+ ctx,
15
+ UpscaleRequest(
16
+ model=spec.name,
17
+ image=FileIDRef(file_id=image_file_id),
18
+ resolution="2x",
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.capabilities.seedvr2 import UpscaleRequest, handle_upscale
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.file import FileIDRef
4
+ from kiapi.core.model import ModelSpec
5
+
6
+ from .._operations.build_check_result import build_check_result
7
+ from .._operations.create_sample_image import create_sample_image
8
+ from .._schemas.check_result import CheckResult
9
+
10
+
11
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
12
+ image_file_id = create_sample_image(ctx, size=128)
13
+ result, artifacts = handle_upscale(
14
+ ctx,
15
+ UpscaleRequest(
16
+ model=spec.name,
17
+ image=FileIDRef(file_id=image_file_id),
18
+ resolution="2x",
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.zimage import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=2,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,23 @@
1
+ from kiapi.core.app import AppContext
2
+ from kiapi.core.model import ModelSpec
3
+
4
+ from .._operations.build_check_result import build_check_result
5
+ from .._schemas.check_result import CheckResult
6
+
7
+
8
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
9
+ from kiapi.capabilities.zimage import GenerateRequest, handle_generate
10
+
11
+ result, artifacts = handle_generate(
12
+ ctx,
13
+ GenerateRequest(
14
+ model=spec.name,
15
+ prompt="a tiny blue cube on a white table",
16
+ width=256,
17
+ height=256,
18
+ steps=2,
19
+ seed=1,
20
+ quality=90,
21
+ ),
22
+ )
23
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,26 @@
1
+ from kiapi.capabilities.ltx2 import GenerateRequest, handle_generate
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._schemas.check_result import CheckResult
7
+
8
+
9
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
10
+ result, artifacts = handle_generate(
11
+ ctx,
12
+ GenerateRequest(
13
+ model=spec.name,
14
+ prompt="a small blue cube rotating slowly",
15
+ width=256,
16
+ height=256,
17
+ num_frames=9,
18
+ fps=8,
19
+ seed=1,
20
+ image_strength=1.0,
21
+ end_image_strength=None,
22
+ generate_audio=False,
23
+ ),
24
+ mode="T2V",
25
+ )
26
+ return build_check_result(spec, result, artifacts)
@@ -0,0 +1,14 @@
1
+ from kiapi.capabilities.web import FetchRequest, handle_fetch
2
+ from kiapi.core.app import AppContext
3
+ from kiapi.core.model import ModelSpec
4
+
5
+ from .._operations.build_check_result import build_check_result
6
+ from .._schemas.check_result import CheckResult
7
+
8
+
9
+ def check(ctx: AppContext, spec: ModelSpec) -> CheckResult:
10
+ result, artifacts = handle_fetch(
11
+ ctx,
12
+ FetchRequest(url="https://example.com"),
13
+ )
14
+ return build_check_result(spec, result, artifacts)