kiapi 0.5.3__tar.gz → 0.7.0__tar.gz

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 (482) hide show
  1. kiapi-0.7.0/PKG-INFO +306 -0
  2. kiapi-0.7.0/README.md +257 -0
  3. {kiapi-0.5.3 → kiapi-0.7.0}/pyproject.toml +79 -23
  4. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/__init__.py +0 -3
  5. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/build_openapi.py +10 -7
  6. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/app.py +1 -23
  7. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/health/_views/health_response.py +0 -8
  8. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/health/router.py +4 -8
  9. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/video/ltx2/_views/video_response.py +3 -2
  10. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/video/ltx2/router.py +1 -1
  11. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/README.md +1 -3
  12. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/README.md +0 -2
  13. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/README.md +40 -30
  14. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_constants/description.py +3 -0
  15. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_helpers/register.py +21 -1
  16. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_models/qwen3_5.py +5 -9
  17. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_models/qwen3_omni.py +10 -62
  18. kiapi-0.7.0/src/kiapi/capabilities/chat/_operations/ensure_omni_deepstack_window.py +106 -0
  19. kiapi-0.7.0/src/kiapi/capabilities/chat/_operations/ensure_omni_image_video_join.py +103 -0
  20. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/stream_text_from_tokens.py +1 -1
  21. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_utils/load_mlx_vlm.py +1 -1
  22. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/README.md +0 -2
  23. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/README.md +0 -2
  24. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/README.md +0 -2
  25. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/README.md +0 -2
  26. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/README.md +0 -2
  27. kiapi-0.7.0/src/kiapi/capabilities/ltx2/README.md +456 -0
  28. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_constants/description.py +29 -13
  29. kiapi-0.7.0/src/kiapi/capabilities/ltx2/_constants/variants.py +2 -0
  30. kiapi-0.7.0/src/kiapi/capabilities/ltx2/_helpers/register.py +105 -0
  31. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_helpers/validate_generate.py +41 -7
  32. kiapi-0.7.0/src/kiapi/capabilities/ltx2/_models/ltx25.py +120 -0
  33. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_operations/handle_generate.py +16 -4
  34. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_operations/resolve_generate_params.py +11 -5
  35. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_settings.py +28 -0
  36. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_views/generate_params.py +17 -1
  37. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_views/generate_request.py +41 -1
  38. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/README.md +0 -2
  39. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/README.md +0 -2
  40. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/README.md +0 -2
  41. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/README.md +0 -2
  42. kiapi-0.7.0/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_omni.py +19 -0
  43. kiapi-0.7.0/src/kiapi/cli/check/_helpers/check_video_ltx2_ltx_2_5_distilled.py +26 -0
  44. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/config/template/cli.py +0 -4
  45. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/run/cli.py +0 -15
  46. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/hf_snapshot_resource.py +7 -1
  47. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_services/setup_manager.py +24 -0
  48. kiapi-0.5.3/.mise/tasks/package/current +0 -7
  49. kiapi-0.5.3/.vscode/settings.json +0 -7
  50. kiapi-0.5.3/CHANGELOG.md +0 -98
  51. kiapi-0.5.3/Makefile +0 -19
  52. kiapi-0.5.3/PKG-INFO +0 -201
  53. kiapi-0.5.3/README.ja.md +0 -144
  54. kiapi-0.5.3/README.md +0 -150
  55. kiapi-0.5.3/src/kiapi/api/_helpers/get_relay_runner.py +0 -7
  56. kiapi-0.5.3/src/kiapi/capabilities/acestep/README.ja.md +0 -174
  57. kiapi-0.5.3/src/kiapi/capabilities/audiogen/README.ja.md +0 -49
  58. kiapi-0.5.3/src/kiapi/capabilities/chat/README.ja.md +0 -822
  59. kiapi-0.5.3/src/kiapi/capabilities/chat/_operations/ensure_streaming_detokenizer_compat.py +0 -49
  60. kiapi-0.5.3/src/kiapi/capabilities/depthpro/README.ja.md +0 -131
  61. kiapi-0.5.3/src/kiapi/capabilities/embedding/README.ja.md +0 -137
  62. kiapi-0.5.3/src/kiapi/capabilities/ernie/README.ja.md +0 -242
  63. kiapi-0.5.3/src/kiapi/capabilities/flux2/README.ja.md +0 -260
  64. kiapi-0.5.3/src/kiapi/capabilities/ideogram4/README.ja.md +0 -230
  65. kiapi-0.5.3/src/kiapi/capabilities/ltx2/README.ja.md +0 -287
  66. kiapi-0.5.3/src/kiapi/capabilities/ltx2/README.md +0 -274
  67. kiapi-0.5.3/src/kiapi/capabilities/ltx2/_helpers/register.py +0 -58
  68. kiapi-0.5.3/src/kiapi/capabilities/qwen/README.ja.md +0 -251
  69. kiapi-0.5.3/src/kiapi/capabilities/seedvr2/README.ja.md +0 -234
  70. kiapi-0.5.3/src/kiapi/capabilities/web/README.ja.md +0 -187
  71. kiapi-0.5.3/src/kiapi/capabilities/zimage/README.ja.md +0 -249
  72. {kiapi-0.5.3 → kiapi-0.7.0}/.gitignore +0 -0
  73. {kiapi-0.5.3 → kiapi-0.7.0}/LICENSE +0 -0
  74. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/__init__.py +0 -0
  75. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/__main__.py +0 -0
  76. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_constants/require_auth.py +0 -0
  77. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/build_job_responses.py +0 -0
  78. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/build_train_responses.py +0 -0
  79. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/get_accept.py +0 -0
  80. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/get_ctx.py +0 -0
  81. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/get_worker.py +0 -0
  82. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/register_capability_endpoints.py +0 -0
  83. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_helpers/submit_and_maybe_wait.py +0 -0
  84. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_settings.py +0 -0
  85. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_views/async_job_response.py +0 -0
  86. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/_views/capability_model_spec.py +0 -0
  87. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/audio/acestep/_views/extract_response.py +0 -0
  88. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/audio/acestep/_views/track_response.py +0 -0
  89. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/audio/acestep/router.py +0 -0
  90. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/audio/audiogen/_views/audio_response.py +0 -0
  91. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/audio/audiogen/router.py +0 -0
  92. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/chat/_views/chat_completion_response.py +0 -0
  93. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/chat/router.py +0 -0
  94. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/embedding/_views/embedding_response.py +0 -0
  95. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/embedding/router.py +0 -0
  96. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/files/_operations/get_file.py +0 -0
  97. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/files/_operations/get_file_id.py +0 -0
  98. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/files/_views/file_delete_response.py +0 -0
  99. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/files/_views/file_list_response.py +0 -0
  100. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/files/router.py +0 -0
  101. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/depthpro/_views/estimate_response.py +0 -0
  102. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/depthpro/router.py +0 -0
  103. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/ernie/_views/image_response.py +0 -0
  104. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/ernie/router.py +0 -0
  105. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/flux2/_views/image_response.py +0 -0
  106. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/flux2/router.py +0 -0
  107. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/ideogram4/_views/image_response.py +0 -0
  108. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/ideogram4/router.py +0 -0
  109. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/qwen/_views/image_response.py +0 -0
  110. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/qwen/router.py +0 -0
  111. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/seedvr2/_views/image_response.py +0 -0
  112. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/seedvr2/router.py +0 -0
  113. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/zimage/_views/image_response.py +0 -0
  114. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/image/zimage/router.py +0 -0
  115. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/jobs/_operations/get_job_id.py +0 -0
  116. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/jobs/_views/job_delete_response.py +0 -0
  117. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/jobs/_views/job_list_response.py +0 -0
  118. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/jobs/router.py +0 -0
  119. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/models/_schemas/openai_model_spec.py +0 -0
  120. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/models/_views/model_list_response.py +0 -0
  121. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/models/router.py +0 -0
  122. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/video/ltx2/_views/__init__.py +0 -0
  123. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/web/_views/__init__.py +0 -0
  124. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/web/_views/fetch_api_request.py +0 -0
  125. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/web/_views/fetch_error_response.py +0 -0
  126. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/api/web/router.py +0 -0
  127. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/__init__.py +0 -0
  128. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/_exceptions/CapabilityError.py +0 -0
  129. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/_exceptions/ValidationError.py +0 -0
  130. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/_helpers/attach_mflux_progress.py +0 -0
  131. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/_helpers/get_file_path.py +0 -0
  132. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/_helpers/resolve_file_ref.py +0 -0
  133. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/__init__.py +0 -0
  134. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_constants/description.py +0 -0
  135. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_exceptions/ace_step_engine_error.py +0 -0
  136. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_helpers/register.py +0 -0
  137. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_models/acestep.py +0 -0
  138. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/handle_cover.py +0 -0
  139. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/handle_extract.py +0 -0
  140. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/handle_generate.py +0 -0
  141. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/handle_repaint.py +0 -0
  142. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/resolve_ace_step_paths.py +0 -0
  143. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/resolve_cover_params.py +0 -0
  144. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/resolve_engine.py +0 -0
  145. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/resolve_extract_params.py +0 -0
  146. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/resolve_generate_params.py +0 -0
  147. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_operations/resolve_repaint_params.py +0 -0
  148. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_schemas/ace_step_paths.py +0 -0
  149. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_services/ace_step_engine.py +0 -0
  150. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_settings.py +0 -0
  151. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/ace_step_base.py +0 -0
  152. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/cover_params.py +0 -0
  153. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/cover_request.py +0 -0
  154. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/extract_params.py +0 -0
  155. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/extract_request.py +0 -0
  156. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/generate_params.py +0 -0
  157. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/generate_request.py +0 -0
  158. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/repaint_params.py +0 -0
  159. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/repaint_request.py +0 -0
  160. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/_views/track_params.py +0 -0
  161. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/acestep/worker_subprocess.py +0 -0
  162. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/__init__.py +0 -0
  163. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_constants/description.py +0 -0
  164. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_helpers/attach_audiogen_progress.py +0 -0
  165. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_helpers/register.py +0 -0
  166. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_helpers/validate_generate.py +0 -0
  167. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_models/audiogen.py +0 -0
  168. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_operations/handle_generate.py +0 -0
  169. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_operations/resolve_generate_params.py +0 -0
  170. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_settings.py +0 -0
  171. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_views/generate_params.py +0 -0
  172. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/audiogen/_views/generate_request.py +0 -0
  173. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/__init__.py +0 -0
  174. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/apply_template.py +0 -0
  175. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/completed_hermes_tool_call_text.py +0 -0
  176. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/emit_streaming_response.py +0 -0
  177. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/format_response.py +0 -0
  178. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/handle_chat.py +0 -0
  179. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/parse_hermes_tool_calls.py +0 -0
  180. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/parse_json_tool_calls.py +0 -0
  181. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/parse_messages.py +0 -0
  182. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/resolve_chat_params.py +0 -0
  183. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_operations/strip_tool_calls.py +0 -0
  184. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_settings.py +0 -0
  185. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_utils/apply_parallel_tool_call_policy.py +0 -0
  186. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_utils/apply_seed.py +0 -0
  187. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_utils/load_audio_mono.py +0 -0
  188. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_utils/warmup_params.py +0 -0
  189. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_views/chat_params.py +0 -0
  190. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/chat/_views/chat_request.py +0 -0
  191. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/__init__.py +0 -0
  192. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_constants/description.py +0 -0
  193. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_helpers/register.py +0 -0
  194. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_helpers/validate_estimate.py +0 -0
  195. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_models/depthpro.py +0 -0
  196. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_operations/handle_estimate.py +0 -0
  197. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_operations/is_quantize_override.py +0 -0
  198. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_operations/resolve_estimate_params.py +0 -0
  199. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_settings.py +0 -0
  200. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_views/estimate_params.py +0 -0
  201. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/depthpro/_views/estimate_request.py +0 -0
  202. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/__init__.py +0 -0
  203. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_constants/description.py +0 -0
  204. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_helpers/register.py +0 -0
  205. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_models/qwen3_text.py +0 -0
  206. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_models/qwen3_vl.py +0 -0
  207. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_operations/format_response.py +0 -0
  208. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_operations/handle_embed.py +0 -0
  209. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_operations/parse_inputs.py +0 -0
  210. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_operations/resolve_embed_params.py +0 -0
  211. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_settings.py +0 -0
  212. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_utils/to_vector.py +0 -0
  213. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_views/embed_params.py +0 -0
  214. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/embedding/_views/embed_request.py +0 -0
  215. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/__init__.py +0 -0
  216. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_constants/description.py +0 -0
  217. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_helpers/register.py +0 -0
  218. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_helpers/validate_edit.py +0 -0
  219. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_helpers/validate_generate.py +0 -0
  220. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_models/ernie.py +0 -0
  221. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/handle_edit.py +0 -0
  222. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/handle_generate.py +0 -0
  223. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/handle_train.py +0 -0
  224. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/is_quantize_override.py +0 -0
  225. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/resolve_edit_params.py +0 -0
  226. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/resolve_generate_params.py +0 -0
  227. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/resolve_lora_params.py +0 -0
  228. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/resolve_train_params.py +0 -0
  229. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_operations/validate_common.py +0 -0
  230. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_schemas/lora_ref.py +0 -0
  231. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_settings.py +0 -0
  232. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_views/edit_params.py +0 -0
  233. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_views/edit_request.py +0 -0
  234. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_views/generate_params.py +0 -0
  235. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_views/generate_request.py +0 -0
  236. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_views/train_params.py +0 -0
  237. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ernie/_views/train_request.py +0 -0
  238. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/__init__.py +0 -0
  239. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_constants/description.py +0 -0
  240. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_helpers/register.py +0 -0
  241. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_helpers/validate_edit.py +0 -0
  242. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_helpers/validate_generate.py +0 -0
  243. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_models/flux2.py +0 -0
  244. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/handle_edit.py +0 -0
  245. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/handle_generate.py +0 -0
  246. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/handle_train.py +0 -0
  247. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/is_quantize_override.py +0 -0
  248. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/resolve_edit_params.py +0 -0
  249. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/resolve_generate_params.py +0 -0
  250. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/resolve_lora_params.py +0 -0
  251. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/resolve_train_params.py +0 -0
  252. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/role_spec.py +0 -0
  253. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/split_repo.py +0 -0
  254. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_operations/validate_common.py +0 -0
  255. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_schemas/lora_ref.py +0 -0
  256. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_settings.py +0 -0
  257. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_views/edit_params.py +0 -0
  258. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_views/edit_request.py +0 -0
  259. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_views/generate_params.py +0 -0
  260. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_views/generate_request.py +0 -0
  261. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_views/train_params.py +0 -0
  262. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/flux2/_views/train_request.py +0 -0
  263. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/__init__.py +0 -0
  264. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_constants/description.py +0 -0
  265. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_helpers/register.py +0 -0
  266. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_helpers/validate_generate.py +0 -0
  267. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_models/ideogram4.py +0 -0
  268. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_operations/handle_generate.py +0 -0
  269. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_operations/is_quantize_override.py +0 -0
  270. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_operations/resolve_generate_params.py +0 -0
  271. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_settings.py +0 -0
  272. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_views/generate_params.py +0 -0
  273. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ideogram4/_views/generate_request.py +0 -0
  274. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/__init__.py +0 -0
  275. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_models/ltx2.py +0 -0
  276. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/ltx2/_operations/detect_mode.py +0 -0
  277. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/__init__.py +0 -0
  278. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_constants/description.py +0 -0
  279. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_helpers/register.py +0 -0
  280. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_helpers/validate_edit.py +0 -0
  281. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_helpers/validate_generate.py +0 -0
  282. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_models/qwen.py +0 -0
  283. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/handle_edit.py +0 -0
  284. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/handle_generate.py +0 -0
  285. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/is_quantize_override.py +0 -0
  286. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/resolve_edit_params.py +0 -0
  287. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/resolve_generate_params.py +0 -0
  288. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/resolve_lora_params.py +0 -0
  289. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_operations/validate_common.py +0 -0
  290. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_schemas/lora_ref.py +0 -0
  291. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_settings.py +0 -0
  292. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_views/edit_params.py +0 -0
  293. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_views/edit_request.py +0 -0
  294. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_views/generate_params.py +0 -0
  295. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/qwen/_views/generate_request.py +0 -0
  296. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/__init__.py +0 -0
  297. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_constants/description.py +0 -0
  298. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_helpers/register.py +0 -0
  299. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_helpers/validate_upscale.py +0 -0
  300. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_models/seedvr2.py +0 -0
  301. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_operations/handle_upscale.py +0 -0
  302. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_operations/is_quantize_override.py +0 -0
  303. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_operations/resolve_upscale_params.py +0 -0
  304. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_settings.py +0 -0
  305. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_views/upscale_params.py +0 -0
  306. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/seedvr2/_views/upscale_request.py +0 -0
  307. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/__init__.py +0 -0
  308. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_constants/description.py +0 -0
  309. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_exceptions/FetchError.py +0 -0
  310. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_exceptions/SearchBackendError.py +0 -0
  311. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_helpers/register.py +0 -0
  312. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_models/crawl4ai.py +0 -0
  313. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_models/searxng.py +0 -0
  314. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_operations/handle_fetch.py +0 -0
  315. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_operations/handle_search.py +0 -0
  316. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_operations/resolve_fetch_params.py +0 -0
  317. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_operations/resolve_search_params.py +0 -0
  318. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_operations/resolve_searxng_config_dir.py +0 -0
  319. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_services/__init__.py +0 -0
  320. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_services/web_backend_process.py +0 -0
  321. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_settings.py +0 -0
  322. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_views/fetch_params.py +0 -0
  323. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_views/fetch_request.py +0 -0
  324. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_views/fetch_result.py +0 -0
  325. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_views/search_params.py +0 -0
  326. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_views/search_request.py +0 -0
  327. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/_views/search_response.py +0 -0
  328. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/resources/__init__.py +0 -0
  329. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/resources/searxng/__init__.py +0 -0
  330. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/web/resources/searxng/settings.yml +0 -0
  331. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/__init__.py +0 -0
  332. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_constants/description.py +0 -0
  333. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_helpers/register.py +0 -0
  334. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_helpers/validate_generate.py +0 -0
  335. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_models/zimage.py +0 -0
  336. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_operations/handle_generate.py +0 -0
  337. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_operations/handle_train.py +0 -0
  338. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_operations/is_quantize_override.py +0 -0
  339. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_operations/resolve_generate_params.py +0 -0
  340. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_operations/resolve_lora_params.py +0 -0
  341. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_operations/resolve_train_params.py +0 -0
  342. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_schemas/lora_ref.py +0 -0
  343. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_settings.py +0 -0
  344. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_views/generate_params.py +0 -0
  345. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_views/generate_request.py +0 -0
  346. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_views/train_params.py +0 -0
  347. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/capabilities/zimage/_views/train_request.py +0 -0
  348. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/__init__.py +0 -0
  349. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/_helpers/dedupe_resources.py +0 -0
  350. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/_helpers/register_all_capabilities.py +0 -0
  351. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/_helpers/run_resources.py +0 -0
  352. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/_helpers/select_specs.py +0 -0
  353. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/activate/_operations/preflight_hf_access.py +0 -0
  354. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/activate/cli.py +0 -0
  355. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_audio_acestep_turbo.py +0 -0
  356. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_audio_acestep_xl_base.py +0 -0
  357. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_audio_audiogen_medium.py +0 -0
  358. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_6_27b.py +0 -0
  359. /kiapi-0.5.3/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_omni.py → /kiapi-0.7.0/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_8_27b.py +0 -0
  360. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_embedding_8b.py +0 -0
  361. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_vl_embedding_2b.py +0 -0
  362. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_depthpro_base.py +0 -0
  363. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_ernie_base.py +0 -0
  364. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_ernie_turbo.py +0 -0
  365. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_9b.py +0 -0
  366. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_base_4b.py +0 -0
  367. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_base_9b.py +0 -0
  368. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_ideogram4_fp8.py +0 -0
  369. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_qwen_edit_2509.py +0 -0
  370. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_qwen_image.py +0 -0
  371. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_seedvr2_3b.py +0 -0
  372. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_seedvr2_7b.py +0 -0
  373. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_zimage_base.py +0 -0
  374. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_image_zimage_turbo.py +0 -0
  375. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_video_ltx2_distilled.py +0 -0
  376. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_web_web_fetch.py +0 -0
  377. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_helpers/check_web_web_search.py +0 -0
  378. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_operations/build_check_result.py +0 -0
  379. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_operations/check_context.py +0 -0
  380. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_operations/create_sample_image.py +0 -0
  381. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/_schemas/check_result.py +0 -0
  382. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/check/cli.py +0 -0
  383. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/cli.py +0 -0
  384. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/config/cli.py +0 -0
  385. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/config/edit/cli.py +0 -0
  386. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/config/init/cli.py +0 -0
  387. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/config/show/cli.py +0 -0
  388. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/deactivate/cli.py +0 -0
  389. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/run/asgi.py +0 -0
  390. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/__init__.py +0 -0
  391. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/_services/service_manager.py +0 -0
  392. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/cli.py +0 -0
  393. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/install/cli.py +0 -0
  394. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/show/__init__.py +0 -0
  395. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/show/cli.py +0 -0
  396. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/start/cli.py +0 -0
  397. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/status/cli.py +0 -0
  398. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/stop/cli.py +0 -0
  399. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/service/uninstall/cli.py +0 -0
  400. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/cli/status/cli.py +0 -0
  401. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/app/__init__.py +0 -0
  402. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/app/_schemas/app_context.py +0 -0
  403. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/capability/__init__.py +0 -0
  404. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/capability/_schemas/capability_spec.py +0 -0
  405. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/capability/_services/capability_spec_registry.py +0 -0
  406. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/config/__init__.py +0 -0
  407. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/config/_exceptions/user_config_error.py +0 -0
  408. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/config/_helpers/get_user_settings_path.py +0 -0
  409. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/config/_helpers/load_user_settings.py +0 -0
  410. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/__init__.py +0 -0
  411. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_helpers/create_file_store.py +0 -0
  412. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_helpers/resolve_file_ref.py +0 -0
  413. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_schemas/file_data_url_ref.py +0 -0
  414. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_schemas/file_id_ref.py +0 -0
  415. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_schemas/file_record.py +0 -0
  416. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_schemas/file_url_ref.py +0 -0
  417. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_services/file_store.py +0 -0
  418. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_settings.py +0 -0
  419. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_types/file_id.py +0 -0
  420. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_types/file_ref.py +0 -0
  421. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/file/_views/resolved_file_ref.py +0 -0
  422. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/__init__.py +0 -0
  423. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_enums/job_status.py +0 -0
  424. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_helpers/creep_progress.py +0 -0
  425. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_models/job.py +0 -0
  426. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_services/job_store.py +0 -0
  427. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_services/progress_reporter.py +0 -0
  428. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_types/job_id.py +0 -0
  429. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_types/job_result.py +0 -0
  430. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/job/_types/job_type.py +0 -0
  431. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/logging/__init__.py +0 -0
  432. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/logging/_helpers/get_log_level.py +0 -0
  433. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/logging/_helpers/setup_logger.py +0 -0
  434. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/logging/_settings.py +0 -0
  435. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/logging/_types/log_level.py +0 -0
  436. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/__init__.py +0 -0
  437. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_exceptions/memory_budget_error.py +0 -0
  438. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_helpers/create_memory_manager.py +0 -0
  439. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_operations/log_memory_limit.py +0 -0
  440. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_operations/resolve_effective_memory_limit_gb.py +0 -0
  441. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_operations/resolve_framework_strategy.py +0 -0
  442. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_schemas/framework_strategy.py +0 -0
  443. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_schemas/memory_stats.py +0 -0
  444. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_schemas/resident_model.py +0 -0
  445. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_schemas/resident_model_stats.py +0 -0
  446. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_services/memory_manager.py +0 -0
  447. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_settings.py +0 -0
  448. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_types/framework_name.py +0 -0
  449. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/memory/_types/resident_key.py +0 -0
  450. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/__init__.py +0 -0
  451. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_exceptions/unknown_model_error.py +0 -0
  452. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_schemas/model_spec.py +0 -0
  453. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_services/model_registry.py +0 -0
  454. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_types/model_alias.py +0 -0
  455. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_types/model_domain.py +0 -0
  456. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_types/model_family.py +0 -0
  457. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_types/model_key.py +0 -0
  458. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_types/model_name.py +0 -0
  459. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/model/_types/model_repo.py +0 -0
  460. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/net/__init__.py +0 -0
  461. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/net/_exceptions/unsafe_url_error.py +0 -0
  462. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/net/_helpers/verify_public_url.py +0 -0
  463. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/net/_settings.py +0 -0
  464. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/__init__.py +0 -0
  465. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_exceptions/setup_required_error.py +0 -0
  466. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/docker_image_resource.py +0 -0
  467. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/local_path_resource.py +0 -0
  468. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/python_package_resource.py +0 -0
  469. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/python_venv_resource.py +0 -0
  470. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/setup_status.py +0 -0
  471. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_schemas/url_file_resource.py +0 -0
  472. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_types/setup_resource.py +0 -0
  473. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/setup/_types/setup_target.py +0 -0
  474. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/workdir/__init__.py +0 -0
  475. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/workdir/_helpers/create_work_dir.py +0 -0
  476. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/workdir/_settings.py +0 -0
  477. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/worker/__init__.py +0 -0
  478. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/worker/_helpers/create_worker.py +0 -0
  479. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/worker/_services/worker.py +0 -0
  480. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/worker/_settings.py +0 -0
  481. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/core/worker/_types/job_thunk.py +0 -0
  482. {kiapi-0.5.3 → kiapi-0.7.0}/src/kiapi/py.typed +0 -0
kiapi-0.7.0/PKG-INFO ADDED
@@ -0,0 +1,306 @@
1
+ Metadata-Version: 2.5
2
+ Name: kiapi
3
+ Version: 0.7.0
4
+ Summary: Unified local inference API server for LLM agents on Apple Silicon (MLX): chat, embedding, image, music, sound-effect, and video — one process, one global memory budget, one single-flight queue, unified jobs and files.
5
+ Project-URL: Homepage, https://github.com/kiarina/kiapi
6
+ Project-URL: Repository, https://github.com/kiarina/kiapi
7
+ Project-URL: Documentation, https://kiarina.github.io/kiapi/
8
+ Project-URL: Changelog, https://github.com/kiarina/kiapi/blob/main/CHANGELOG.md
9
+ Author-email: kiarina <kiarinadawa@gmail.com>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: agent,api,apple-silicon,fastapi,local-inference,mlx
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Environment :: MacOS X
15
+ Classifier: Framework :: FastAPI
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
23
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
+ Requires-Python: <3.13,>=3.12
25
+ Requires-Dist: click
26
+ Requires-Dist: fastapi>=0.141
27
+ Requires-Dist: httpx
28
+ Requires-Dist: kiarina-utils-app>=2.3.0
29
+ Requires-Dist: kiarina-utils-common>=2.2.0
30
+ Requires-Dist: mflux>=0.18.0
31
+ Requires-Dist: mlx-audiocraft>=0.1.0
32
+ Requires-Dist: mlx-embeddings>=0.1.0
33
+ Requires-Dist: mlx-lm>=0.31.3
34
+ Requires-Dist: mlx-vlm==0.7.1
35
+ Requires-Dist: numpy
36
+ Requires-Dist: pillow
37
+ Requires-Dist: psutil
38
+ Requires-Dist: pydantic-settings-manager>=3.8.0
39
+ Requires-Dist: pydantic>=2
40
+ Requires-Dist: python-multipart
41
+ Requires-Dist: pyyaml
42
+ Requires-Dist: questionary
43
+ Requires-Dist: soundfile>=0.13.1
44
+ Requires-Dist: torch
45
+ Requires-Dist: torchaudio
46
+ Requires-Dist: torchvision
47
+ Requires-Dist: uvicorn[standard]
48
+ Description-Content-Type: text/markdown
49
+
50
+ # kiapi
51
+
52
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
53
+ ![Python](https://img.shields.io/badge/Python-3.12-blue.svg)
54
+ [![API Docs](https://img.shields.io/badge/API%20Docs-GitHub%20Pages-green.svg)](https://kiarina.github.io/kiapi/)
55
+
56
+ ## Summary
57
+
58
+ kiapi is an API server that uses a Mac Studio M4 Max with 128GB of memory at home to provide the following capabilities.
59
+
60
+ | Capability | Support |
61
+ | --- | --- |
62
+ | Chat | OpenAI Chat Completions API compatible<br>text + image + audio + video input support<br>tool call + tool choice (auto, any, specific) + parallel tool calls + streaming support |
63
+ | Embedding | text + image input support |
64
+ | Image generation | text2image, image2image, image editing, and LoRA training support |
65
+ | Music and sound-effect generation | text2audio, cover, repaint, and extract support |
66
+ | Video generation | text2video, image2video, and audio2video support |
67
+ | Web | search + fetch support |
68
+
69
+ See: [API Documents](https://kiarina.github.io/kiapi/)
70
+
71
+ > [!NOTE]
72
+ > The Mac Studio M4 Max with 128GB of memory is an example.
73
+ > Other Apple Silicon models will also work if they have sufficient unified memory.
74
+
75
+ ## Resources
76
+
77
+ To provide its capabilities, kiapi downloads and uses selected resources from the list below.
78
+ Each resource is governed by its upstream license.
79
+ Always review the upstream license to confirm the terms and whether commercial use is permitted.
80
+
81
+ > [!IMPORTANT] Review date: 2026-06-23
82
+
83
+ | Domain | Family | Resource | Kind | Upstream license | Notes |
84
+ |---|---|---|---|---|---|
85
+ | chat | [chat](src/kiapi/capabilities/chat/README.md) | [mlx-community/Qwen3-Omni-30B-A3B-Instruct-4bit](https://huggingface.co/mlx-community/Qwen3-Omni-30B-A3B-Instruct-4bit) | model weights | Apache-2.0 | MLX-converted Qwen3 Omni model. |
86
+ | | | [mlx-community/Qwen3.8-27B-4bit](https://huggingface.co/mlx-community/Qwen3.8-27B-4bit) | model weights | Apache-2.0 | MLX-converted Qwen3.8 model. |
87
+ | | | [mlx-community/Qwen3.6-27B-4bit](https://huggingface.co/mlx-community/Qwen3.6-27B-4bit) | model weights | Apache-2.0 | MLX-converted Qwen3.6 model. |
88
+ | embedding | [embedding](src/kiapi/capabilities/embedding/README.md) | [mlx-community/Qwen3-Embedding-8B-mxfp8](https://huggingface.co/mlx-community/Qwen3-Embedding-8B-mxfp8) | model weights | Apache-2.0 | Text embedding model. |
89
+ | | | [mlx-community/Qwen3-VL-Embedding-2B-mxfp8](https://huggingface.co/mlx-community/Qwen3-VL-Embedding-2B-mxfp8) | model weights | Apache-2.0 | Text + image embedding model. |
90
+ | image | [zimage](src/kiapi/capabilities/zimage/README.md) | [filipstrand/Z-Image-Turbo-mflux-4bit](https://huggingface.co/filipstrand/Z-Image-Turbo-mflux-4bit) | model weights | Tongyi Qianwen License | Quantized MLX-compatible Z-Image Turbo; inherits the original Z-Image Turbo license. |
91
+ | | | [Tongyi-MAI/Z-Image](https://huggingface.co/Tongyi-MAI/Z-Image) | model weights | Apache-2.0 | Base Z-Image model. |
92
+ | | [flux2](src/kiapi/capabilities/flux2/README.md) | [black-forest-labs/FLUX.2-klein-9B](https://huggingface.co/black-forest-labs/FLUX.2-klein-9B) | model weights | FLUX Non-Commercial License | Gated upstream model. Confirm terms before any commercial use. |
93
+ | | | [black-forest-labs/FLUX.2-klein-base-4B](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B) | model weights | Apache-2.0 | Open-weight FLUX.2 Klein Base 4B variant. |
94
+ | | | [black-forest-labs/FLUX.2-klein-base-9B](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B) | model weights | FLUX Non-Commercial License | Gated upstream model. Confirm terms before any commercial use. |
95
+ | | [qwen](src/kiapi/capabilities/qwen/README.md) | [Qwen/Qwen-Image](https://huggingface.co/Qwen/Qwen-Image) | model weights | Apache-2.0 | Text-to-image model. |
96
+ | | | [Qwen/Qwen-Image-Edit-2509](https://huggingface.co/Qwen/Qwen-Image-Edit-2509) | model weights | Apache-2.0 | Image editing model. |
97
+ | | [ideogram4](src/kiapi/capabilities/ideogram4/README.md) | [ideogram-ai/ideogram-4-fp8](https://huggingface.co/ideogram-ai/ideogram-4-fp8) | model weights | Ideogram Non-Commercial Model Agreement | Gated upstream model. Confirm hosted-service and commercial-use terms. |
98
+ | | [ernie](src/kiapi/capabilities/ernie/README.md) | [baidu/ERNIE-Image-Turbo](https://huggingface.co/baidu/ERNIE-Image-Turbo) | model weights | Apache-2.0 | Turbo ERNIE-Image variant. |
99
+ | | | [baidu/ERNIE-Image](https://huggingface.co/baidu/ERNIE-Image) | model weights | Apache-2.0 | Base ERNIE-Image variant. |
100
+ | | [seedvr2](src/kiapi/capabilities/seedvr2/README.md) | [numz/SeedVR2_comfyUI](https://huggingface.co/numz/SeedVR2_comfyUI) | model weights | Apache-2.0 | SeedVR2 3B and 7B upscaling checkpoints. |
101
+ | | [depthpro](src/kiapi/capabilities/depthpro/README.md) | [apple/ml-depth-pro](https://github.com/apple/ml-depth-pro) / [depth_pro.pt](https://ml-site.cdn-apple.com/models/depth-pro/depth_pro.pt) | code + model file | Apple custom license | GitHub reports `NOASSERTION`; review Apple's license text before redistribution or commercial use. |
102
+ | audio | [acestep](src/kiapi/capabilities/acestep/README.md) | [ace-step/ACE-Step-1.5](https://github.com/ace-step/ACE-Step-1.5) | Python package | MIT | Installed into the ACE-Step dedicated venv. |
103
+ | | | [ACE-Step/Ace-Step1.5](https://huggingface.co/ACE-Step/Ace-Step1.5) | shared checkpoints | MIT | Shared ACE-Step 1.5 checkpoint resources. |
104
+ | | | [ACE-Step/acestep-v15-xl-base](https://huggingface.co/ACE-Step/acestep-v15-xl-base) | model weights | MIT | Extra checkpoint used by `xl-base`. |
105
+ | audio | [audiogen](src/kiapi/capabilities/audiogen/README.md) | [facebook/audiogen-medium](https://huggingface.co/facebook/audiogen-medium) | model weights | CC-BY-NC-4.0 | Non-commercial license. |
106
+ | video | [ltx2](src/kiapi/capabilities/ltx2/README.md) | [Blaizzy/mlx-video](https://github.com/Blaizzy/mlx-video) | Python package | MIT | Installed from a pinned Git commit for LTX-2.5 / LTX-2 inference. LTX-2.5 support is pinned from the [kiarina fork](https://github.com/kiarina/mlx-video/tree/kiapi/ltx-2.5) until [#52](https://github.com/Blaizzy/mlx-video/pull/52) is merged. |
107
+ | | | [Lightricks/LTX-2.5](https://huggingface.co/Lightricks/LTX-2.5) | model weights | LTX-2.x Community License | Gated; accept the model terms on Hugging Face. Used by the default `ltx-2.5-distilled`. |
108
+ | | | [Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler) | model weights | LTX-2.x Community License | Gated. Detailing adapter for `pipeline="dfr"`. |
109
+ | | | [mlx-community/gemma-4-e2b-it-bf16](https://huggingface.co/mlx-community/gemma-4-e2b-it-bf16) | model weights | Gemma Terms of Use | Prompt enhancer for `enhance_prompt`. |
110
+ | | | [prince-canuma/LTX-2-distilled](https://huggingface.co/prince-canuma/LTX-2-distilled) | model weights | Not declared upstream | The model card has no license metadata; verify rights before use. |
111
+ | web | [web](src/kiapi/capabilities/web/README.md) | [searxng/searxng](https://github.com/searxng/searxng) / `searxng/searxng:latest` | Docker image | AGPL-3.0 | Web search backend. AGPL obligations can matter for network services. |
112
+ | | | [unclecode/crawl4ai](https://github.com/unclecode/crawl4ai) / `unclecode/crawl4ai:latest` | Docker image | Apache-2.0 | Web fetch backend. |
113
+
114
+ > [!NOTE]
115
+ > Using all resources at once requires a little under 600GB of disk space in total.
116
+ > It also consumes a little under 50GB of memory at peak.
117
+ > For the size and memory consumption of each resource, see the per-family links above.
118
+
119
+ ## Design
120
+
121
+ **Reliably provide every capability:**
122
+
123
+ - Queue non-administrative requests and process them one at a time
124
+ - Manage API server memory to prevent overcommit failures
125
+
126
+ **Support interactive integration with LLM agents:**
127
+
128
+ - Provide LLMs with tips as well as I/O specifications through `openapi.json`
129
+ - Run generation tasks in both sync and async modes
130
+ - Make asynchronous task progress observable
131
+
132
+ **Provide secure external access to kiapi inside a closed network:**
133
+
134
+ - kiapi binds to `127.0.0.1` by default and never exposes an inbound socket by itself
135
+ - For access from other machines, put it behind your own private network layer, for example `tailscale serve`
136
+
137
+ > [!NOTE]
138
+ > See [ARCHITECTURE.md](ARCHITECTURE.md) for details.
139
+
140
+ ## API
141
+
142
+ | Domain | Family | Endpoint | Description |
143
+ |---|---|---|---|
144
+ | chat | | `POST /v1/chat` | [Chat API details](src/kiapi/capabilities/chat/README.md) |
145
+ | embedding | | `POST /v1/embedding` | [Embedding API details](src/kiapi/capabilities/embedding/README.md) |
146
+ | image | zimage | `POST /v1/image/zimage` | [Z-Image API details](src/kiapi/capabilities/zimage/README.md) |
147
+ | | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](src/kiapi/capabilities/flux2/README.md) |
148
+ | | qwen | `POST /v1/image/qwen` | [Qwen Image API details](src/kiapi/capabilities/qwen/README.md) |
149
+ | | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](src/kiapi/capabilities/ideogram4/README.md) |
150
+ | | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](src/kiapi/capabilities/ernie/README.md) |
151
+ | | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](src/kiapi/capabilities/seedvr2/README.md) |
152
+ | | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](src/kiapi/capabilities/depthpro/README.md) |
153
+ | audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](src/kiapi/capabilities/acestep/README.md) |
154
+ | | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](src/kiapi/capabilities/audiogen/README.md) |
155
+ | video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](src/kiapi/capabilities/ltx2/README.md) |
156
+ | web | | `POST /v1/web` | [Web API details](src/kiapi/capabilities/web/README.md) |
157
+ | core | files | `POST /v1/files` | Upload input files, LoRA adapters, and other files, then issue a `file_id`. |
158
+ | | | `GET /v1/files` | Return a list of stored files. |
159
+ | | | `GET /v1/files/{file_id}` | Return file metadata. |
160
+ | | | `GET /v1/files/{file_id}/download` | Download the file body. |
161
+ | | | `DELETE /v1/files/{file_id}` | Delete a stored file. |
162
+ | | jobs | `GET /v1/jobs` | Return a list of generation jobs. |
163
+ | | | `GET /v1/jobs/{job_id}` | Return job status, progress, result, and artifact `file_id`s. |
164
+ | | | `DELETE /v1/jobs/{job_id}` | Remove a job from the job store. Running jobs are not interrupted. |
165
+ | | openapi | `GET /openapi.json` | Return the common API and each capability documentation URL. |
166
+ | | | `GET /v1/{domain}/{family}/openapi.json` | Return detailed input/output specs, usage, tips, and examples for each family. |
167
+ | | health | `GET /health` | Return server status, warmup status, queue length, and memory usage. |
168
+
169
+ See: [kiapi API Docs](https://kiarina.github.io/kiapi/)
170
+
171
+ ## Requirements
172
+
173
+ - macOS / Apple Silicon
174
+ - Python `>=3.12,<3.13`
175
+ - `uv` (optional, recommended for isolated CLI installs and faster venv/package setup in `kiapi activate`)
176
+ - `mise` (used for development)
177
+ - Docker (when using the Web capability)
178
+ - Enough disk capacity for model weights and Docker images
179
+
180
+ kiapi is developed mainly for personal use on a **Mac Studio M4 Max 128GB**.
181
+ Some or all features may work on other Apple Silicon environments, but they are
182
+ not the primary verification target.
183
+
184
+ The memory budget can be specified with `KIAPI_MEMORY_LIMIT_GB`. If omitted,
185
+ kiapi automatically uses 80% of installed memory as the effective budget on
186
+ startup. If a model's required memory does not fit in that budget, requests
187
+ return 503 as an insufficient memory budget error.
188
+
189
+ `kiapi activate --all` uses a little under 600GB of disk capacity, including
190
+ model weights and Docker images. At first, it is recommended to use `kiapi activate`
191
+ to set up only the capabilities you need.
192
+
193
+ ## Quick Start
194
+
195
+ **Set up kiapi:**
196
+ ```sh
197
+ # Install kiapi
198
+ python3.12 -m pip install --upgrade kiapi # If you cannot use uv
199
+ uv tool install --python 3.12 kiapi # If you can use uv
200
+
201
+ # Change the default host, port, or memory budget if needed
202
+ kiapi config init # Create the configuration file
203
+ kiapi config edit # Edit the configuration file in an editor
204
+
205
+ # Check the current setup state
206
+ kiapi status
207
+
208
+ # Prepare model weights, Docker images, and dedicated venv environments
209
+ kiapi activate # Choose targets from the interactive list
210
+ kiapi activate --all # Set up everything (just under 600GB)
211
+ kiapi activate --family acestep # Set up only the specified family
212
+
213
+ # Verify the setup
214
+ kiapi check # Choose targets from the interactive list
215
+ kiapi check --all # Verify everything
216
+ ```
217
+
218
+ **Use from an LLM agent:**
219
+ ```sh
220
+ # Start the kiapi server
221
+ kiapi run # Start based on the configuration file (default: 127.0.0.1:8000)
222
+ kiapi run --host 0.0.0.0 --port 8500 # Start on a specific host and port
223
+
224
+ # Example integration with an agent
225
+ codex e "
226
+ Please inspect http://localhost:8000/openapi.json.
227
+ Use the music generation API to create a 20-second BGM track at ~/Downloads/bgm.wav
228
+ with the theme 'a person walking in the rain'.
229
+ "
230
+
231
+ # Inspect the generated file
232
+ open ~/Downloads/bgm.wav
233
+ ```
234
+
235
+ **Run as a background service:**
236
+ ```sh
237
+ # kiapi
238
+ kiapi service install # Register
239
+ kiapi service show # Show the installed plist
240
+ kiapi service start # Start
241
+ kiapi service status # Check status and the tail of logs
242
+ kiapi service stop # Stop
243
+ kiapi service uninstall # Remove
244
+ ```
245
+
246
+ **Access from other machines:**
247
+ kiapi binds to `127.0.0.1` by default. To reach it from other machines, expose
248
+ it over your own private network layer. For example, with
249
+ [Tailscale](https://tailscale.com/) on the kiapi machine:
250
+
251
+ ```sh
252
+ tailscale serve --bg --https=8500 8500 # TLS endpoint reachable only inside your tailnet
253
+ ```
254
+
255
+ ## Local Storage
256
+
257
+ kiapi mainly writes to these local paths at runtime.
258
+
259
+ | Purpose | Setting | Default | Notes |
260
+ |---|---|---|---|
261
+ | Files API uploads, generated artifacts, and URL/data URL inputs | `KIAPI_FILES_ROOT` | `/tmp/kiapi/files` | Storage referenced by `file_id`. The default may disappear after OS reboot or tmp cleanup. Use `~/.kiapi/files` or external storage for long-term retention. |
262
+ | Temporary working directories during request processing | `KIAPI_TMP_ROOT` | `/tmp/kiapi/work` | Used for chat/embedding input expansion, generation intermediates, LoRA training work, and similar tasks. |
263
+ | Web backend subprocess logs | `KIAPI_WEB_BACKEND_LOG_DIR` | `/tmp/kiapi/logs/web` | stdout/stderr for SearXNG / Crawl4AI Docker subprocesses. |
264
+ | ACE-Step dedicated venv / project / checkpoints | `KIAPI_ACESTEP_PYTHON_PATH`, `KIAPI_ACESTEP_PROJECT_ROOT`, `KIAPI_ACESTEP_CHECKPOINT_DIR` | `acestep/` under the user data dir | When `python_path`, `project_root`, and `checkpoint_dir` are omitted, kiapi places the ACE-Step venv and checkpoints under a persistent ACE-Step directory. |
265
+
266
+ Other model weights and library caches are managed by Hugging Face, mflux,
267
+ Docker, or each library/tool. kiapi generally does not move them into its own
268
+ storage location.
269
+
270
+ ## Security
271
+
272
+ By default, `kiapi run` starts on `127.0.0.1:8000`.
273
+ When `--host 0.0.0.0` is specified, the server may be reachable from other
274
+ machines, so use it only on trusted networks.
275
+ ## Development
276
+
277
+ ```sh
278
+ make init # Install dependencies, download test data, and create venv environments
279
+ make update # Sync dependencies
280
+ make upgrade # Upgrade dependencies
281
+
282
+ # ... implement
283
+
284
+ make # Format, type-check, and regenerate dynamic documentation
285
+ make test # Unit tests
286
+ make dev # Start the development server with auto-reload
287
+
288
+ # GPU-backed functional and regression tests
289
+ make verify # Choose the capability family interactively
290
+ make verify-fast # Interactive choice, light tests only
291
+ make verify-kiapi # Run every capability non-interactively
292
+ ```
293
+
294
+ ## Release
295
+
296
+ Releases to PyPI are automated by GitHub Actions workflows.
297
+
298
+ > [!NOTE]
299
+ > See [docs/runbooks/release.md](docs/runbooks/release.md) for the detailed release procedure.
300
+
301
+ ## Project Status
302
+
303
+ > [!NOTE]
304
+ > kiapi is OSS developed mainly for personal use.
305
+ > The API, supported models, and setup instructions may change in the future.
306
+ > Issues and pull requests are welcome, but support is best-effort because this is a personal project.
kiapi-0.7.0/README.md ADDED
@@ -0,0 +1,257 @@
1
+ # kiapi
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
4
+ ![Python](https://img.shields.io/badge/Python-3.12-blue.svg)
5
+ [![API Docs](https://img.shields.io/badge/API%20Docs-GitHub%20Pages-green.svg)](https://kiarina.github.io/kiapi/)
6
+
7
+ ## Summary
8
+
9
+ kiapi is an API server that uses a Mac Studio M4 Max with 128GB of memory at home to provide the following capabilities.
10
+
11
+ | Capability | Support |
12
+ | --- | --- |
13
+ | Chat | OpenAI Chat Completions API compatible<br>text + image + audio + video input support<br>tool call + tool choice (auto, any, specific) + parallel tool calls + streaming support |
14
+ | Embedding | text + image input support |
15
+ | Image generation | text2image, image2image, image editing, and LoRA training support |
16
+ | Music and sound-effect generation | text2audio, cover, repaint, and extract support |
17
+ | Video generation | text2video, image2video, and audio2video support |
18
+ | Web | search + fetch support |
19
+
20
+ See: [API Documents](https://kiarina.github.io/kiapi/)
21
+
22
+ > [!NOTE]
23
+ > The Mac Studio M4 Max with 128GB of memory is an example.
24
+ > Other Apple Silicon models will also work if they have sufficient unified memory.
25
+
26
+ ## Resources
27
+
28
+ To provide its capabilities, kiapi downloads and uses selected resources from the list below.
29
+ Each resource is governed by its upstream license.
30
+ Always review the upstream license to confirm the terms and whether commercial use is permitted.
31
+
32
+ > [!IMPORTANT] Review date: 2026-06-23
33
+
34
+ | Domain | Family | Resource | Kind | Upstream license | Notes |
35
+ |---|---|---|---|---|---|
36
+ | chat | [chat](src/kiapi/capabilities/chat/README.md) | [mlx-community/Qwen3-Omni-30B-A3B-Instruct-4bit](https://huggingface.co/mlx-community/Qwen3-Omni-30B-A3B-Instruct-4bit) | model weights | Apache-2.0 | MLX-converted Qwen3 Omni model. |
37
+ | | | [mlx-community/Qwen3.8-27B-4bit](https://huggingface.co/mlx-community/Qwen3.8-27B-4bit) | model weights | Apache-2.0 | MLX-converted Qwen3.8 model. |
38
+ | | | [mlx-community/Qwen3.6-27B-4bit](https://huggingface.co/mlx-community/Qwen3.6-27B-4bit) | model weights | Apache-2.0 | MLX-converted Qwen3.6 model. |
39
+ | embedding | [embedding](src/kiapi/capabilities/embedding/README.md) | [mlx-community/Qwen3-Embedding-8B-mxfp8](https://huggingface.co/mlx-community/Qwen3-Embedding-8B-mxfp8) | model weights | Apache-2.0 | Text embedding model. |
40
+ | | | [mlx-community/Qwen3-VL-Embedding-2B-mxfp8](https://huggingface.co/mlx-community/Qwen3-VL-Embedding-2B-mxfp8) | model weights | Apache-2.0 | Text + image embedding model. |
41
+ | image | [zimage](src/kiapi/capabilities/zimage/README.md) | [filipstrand/Z-Image-Turbo-mflux-4bit](https://huggingface.co/filipstrand/Z-Image-Turbo-mflux-4bit) | model weights | Tongyi Qianwen License | Quantized MLX-compatible Z-Image Turbo; inherits the original Z-Image Turbo license. |
42
+ | | | [Tongyi-MAI/Z-Image](https://huggingface.co/Tongyi-MAI/Z-Image) | model weights | Apache-2.0 | Base Z-Image model. |
43
+ | | [flux2](src/kiapi/capabilities/flux2/README.md) | [black-forest-labs/FLUX.2-klein-9B](https://huggingface.co/black-forest-labs/FLUX.2-klein-9B) | model weights | FLUX Non-Commercial License | Gated upstream model. Confirm terms before any commercial use. |
44
+ | | | [black-forest-labs/FLUX.2-klein-base-4B](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B) | model weights | Apache-2.0 | Open-weight FLUX.2 Klein Base 4B variant. |
45
+ | | | [black-forest-labs/FLUX.2-klein-base-9B](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B) | model weights | FLUX Non-Commercial License | Gated upstream model. Confirm terms before any commercial use. |
46
+ | | [qwen](src/kiapi/capabilities/qwen/README.md) | [Qwen/Qwen-Image](https://huggingface.co/Qwen/Qwen-Image) | model weights | Apache-2.0 | Text-to-image model. |
47
+ | | | [Qwen/Qwen-Image-Edit-2509](https://huggingface.co/Qwen/Qwen-Image-Edit-2509) | model weights | Apache-2.0 | Image editing model. |
48
+ | | [ideogram4](src/kiapi/capabilities/ideogram4/README.md) | [ideogram-ai/ideogram-4-fp8](https://huggingface.co/ideogram-ai/ideogram-4-fp8) | model weights | Ideogram Non-Commercial Model Agreement | Gated upstream model. Confirm hosted-service and commercial-use terms. |
49
+ | | [ernie](src/kiapi/capabilities/ernie/README.md) | [baidu/ERNIE-Image-Turbo](https://huggingface.co/baidu/ERNIE-Image-Turbo) | model weights | Apache-2.0 | Turbo ERNIE-Image variant. |
50
+ | | | [baidu/ERNIE-Image](https://huggingface.co/baidu/ERNIE-Image) | model weights | Apache-2.0 | Base ERNIE-Image variant. |
51
+ | | [seedvr2](src/kiapi/capabilities/seedvr2/README.md) | [numz/SeedVR2_comfyUI](https://huggingface.co/numz/SeedVR2_comfyUI) | model weights | Apache-2.0 | SeedVR2 3B and 7B upscaling checkpoints. |
52
+ | | [depthpro](src/kiapi/capabilities/depthpro/README.md) | [apple/ml-depth-pro](https://github.com/apple/ml-depth-pro) / [depth_pro.pt](https://ml-site.cdn-apple.com/models/depth-pro/depth_pro.pt) | code + model file | Apple custom license | GitHub reports `NOASSERTION`; review Apple's license text before redistribution or commercial use. |
53
+ | audio | [acestep](src/kiapi/capabilities/acestep/README.md) | [ace-step/ACE-Step-1.5](https://github.com/ace-step/ACE-Step-1.5) | Python package | MIT | Installed into the ACE-Step dedicated venv. |
54
+ | | | [ACE-Step/Ace-Step1.5](https://huggingface.co/ACE-Step/Ace-Step1.5) | shared checkpoints | MIT | Shared ACE-Step 1.5 checkpoint resources. |
55
+ | | | [ACE-Step/acestep-v15-xl-base](https://huggingface.co/ACE-Step/acestep-v15-xl-base) | model weights | MIT | Extra checkpoint used by `xl-base`. |
56
+ | audio | [audiogen](src/kiapi/capabilities/audiogen/README.md) | [facebook/audiogen-medium](https://huggingface.co/facebook/audiogen-medium) | model weights | CC-BY-NC-4.0 | Non-commercial license. |
57
+ | video | [ltx2](src/kiapi/capabilities/ltx2/README.md) | [Blaizzy/mlx-video](https://github.com/Blaizzy/mlx-video) | Python package | MIT | Installed from a pinned Git commit for LTX-2.5 / LTX-2 inference. LTX-2.5 support is pinned from the [kiarina fork](https://github.com/kiarina/mlx-video/tree/kiapi/ltx-2.5) until [#52](https://github.com/Blaizzy/mlx-video/pull/52) is merged. |
58
+ | | | [Lightricks/LTX-2.5](https://huggingface.co/Lightricks/LTX-2.5) | model weights | LTX-2.x Community License | Gated; accept the model terms on Hugging Face. Used by the default `ltx-2.5-distilled`. |
59
+ | | | [Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler) | model weights | LTX-2.x Community License | Gated. Detailing adapter for `pipeline="dfr"`. |
60
+ | | | [mlx-community/gemma-4-e2b-it-bf16](https://huggingface.co/mlx-community/gemma-4-e2b-it-bf16) | model weights | Gemma Terms of Use | Prompt enhancer for `enhance_prompt`. |
61
+ | | | [prince-canuma/LTX-2-distilled](https://huggingface.co/prince-canuma/LTX-2-distilled) | model weights | Not declared upstream | The model card has no license metadata; verify rights before use. |
62
+ | web | [web](src/kiapi/capabilities/web/README.md) | [searxng/searxng](https://github.com/searxng/searxng) / `searxng/searxng:latest` | Docker image | AGPL-3.0 | Web search backend. AGPL obligations can matter for network services. |
63
+ | | | [unclecode/crawl4ai](https://github.com/unclecode/crawl4ai) / `unclecode/crawl4ai:latest` | Docker image | Apache-2.0 | Web fetch backend. |
64
+
65
+ > [!NOTE]
66
+ > Using all resources at once requires a little under 600GB of disk space in total.
67
+ > It also consumes a little under 50GB of memory at peak.
68
+ > For the size and memory consumption of each resource, see the per-family links above.
69
+
70
+ ## Design
71
+
72
+ **Reliably provide every capability:**
73
+
74
+ - Queue non-administrative requests and process them one at a time
75
+ - Manage API server memory to prevent overcommit failures
76
+
77
+ **Support interactive integration with LLM agents:**
78
+
79
+ - Provide LLMs with tips as well as I/O specifications through `openapi.json`
80
+ - Run generation tasks in both sync and async modes
81
+ - Make asynchronous task progress observable
82
+
83
+ **Provide secure external access to kiapi inside a closed network:**
84
+
85
+ - kiapi binds to `127.0.0.1` by default and never exposes an inbound socket by itself
86
+ - For access from other machines, put it behind your own private network layer, for example `tailscale serve`
87
+
88
+ > [!NOTE]
89
+ > See [ARCHITECTURE.md](ARCHITECTURE.md) for details.
90
+
91
+ ## API
92
+
93
+ | Domain | Family | Endpoint | Description |
94
+ |---|---|---|---|
95
+ | chat | | `POST /v1/chat` | [Chat API details](src/kiapi/capabilities/chat/README.md) |
96
+ | embedding | | `POST /v1/embedding` | [Embedding API details](src/kiapi/capabilities/embedding/README.md) |
97
+ | image | zimage | `POST /v1/image/zimage` | [Z-Image API details](src/kiapi/capabilities/zimage/README.md) |
98
+ | | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](src/kiapi/capabilities/flux2/README.md) |
99
+ | | qwen | `POST /v1/image/qwen` | [Qwen Image API details](src/kiapi/capabilities/qwen/README.md) |
100
+ | | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](src/kiapi/capabilities/ideogram4/README.md) |
101
+ | | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](src/kiapi/capabilities/ernie/README.md) |
102
+ | | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](src/kiapi/capabilities/seedvr2/README.md) |
103
+ | | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](src/kiapi/capabilities/depthpro/README.md) |
104
+ | audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](src/kiapi/capabilities/acestep/README.md) |
105
+ | | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](src/kiapi/capabilities/audiogen/README.md) |
106
+ | video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](src/kiapi/capabilities/ltx2/README.md) |
107
+ | web | | `POST /v1/web` | [Web API details](src/kiapi/capabilities/web/README.md) |
108
+ | core | files | `POST /v1/files` | Upload input files, LoRA adapters, and other files, then issue a `file_id`. |
109
+ | | | `GET /v1/files` | Return a list of stored files. |
110
+ | | | `GET /v1/files/{file_id}` | Return file metadata. |
111
+ | | | `GET /v1/files/{file_id}/download` | Download the file body. |
112
+ | | | `DELETE /v1/files/{file_id}` | Delete a stored file. |
113
+ | | jobs | `GET /v1/jobs` | Return a list of generation jobs. |
114
+ | | | `GET /v1/jobs/{job_id}` | Return job status, progress, result, and artifact `file_id`s. |
115
+ | | | `DELETE /v1/jobs/{job_id}` | Remove a job from the job store. Running jobs are not interrupted. |
116
+ | | openapi | `GET /openapi.json` | Return the common API and each capability documentation URL. |
117
+ | | | `GET /v1/{domain}/{family}/openapi.json` | Return detailed input/output specs, usage, tips, and examples for each family. |
118
+ | | health | `GET /health` | Return server status, warmup status, queue length, and memory usage. |
119
+
120
+ See: [kiapi API Docs](https://kiarina.github.io/kiapi/)
121
+
122
+ ## Requirements
123
+
124
+ - macOS / Apple Silicon
125
+ - Python `>=3.12,<3.13`
126
+ - `uv` (optional, recommended for isolated CLI installs and faster venv/package setup in `kiapi activate`)
127
+ - `mise` (used for development)
128
+ - Docker (when using the Web capability)
129
+ - Enough disk capacity for model weights and Docker images
130
+
131
+ kiapi is developed mainly for personal use on a **Mac Studio M4 Max 128GB**.
132
+ Some or all features may work on other Apple Silicon environments, but they are
133
+ not the primary verification target.
134
+
135
+ The memory budget can be specified with `KIAPI_MEMORY_LIMIT_GB`. If omitted,
136
+ kiapi automatically uses 80% of installed memory as the effective budget on
137
+ startup. If a model's required memory does not fit in that budget, requests
138
+ return 503 as an insufficient memory budget error.
139
+
140
+ `kiapi activate --all` uses a little under 600GB of disk capacity, including
141
+ model weights and Docker images. At first, it is recommended to use `kiapi activate`
142
+ to set up only the capabilities you need.
143
+
144
+ ## Quick Start
145
+
146
+ **Set up kiapi:**
147
+ ```sh
148
+ # Install kiapi
149
+ python3.12 -m pip install --upgrade kiapi # If you cannot use uv
150
+ uv tool install --python 3.12 kiapi # If you can use uv
151
+
152
+ # Change the default host, port, or memory budget if needed
153
+ kiapi config init # Create the configuration file
154
+ kiapi config edit # Edit the configuration file in an editor
155
+
156
+ # Check the current setup state
157
+ kiapi status
158
+
159
+ # Prepare model weights, Docker images, and dedicated venv environments
160
+ kiapi activate # Choose targets from the interactive list
161
+ kiapi activate --all # Set up everything (just under 600GB)
162
+ kiapi activate --family acestep # Set up only the specified family
163
+
164
+ # Verify the setup
165
+ kiapi check # Choose targets from the interactive list
166
+ kiapi check --all # Verify everything
167
+ ```
168
+
169
+ **Use from an LLM agent:**
170
+ ```sh
171
+ # Start the kiapi server
172
+ kiapi run # Start based on the configuration file (default: 127.0.0.1:8000)
173
+ kiapi run --host 0.0.0.0 --port 8500 # Start on a specific host and port
174
+
175
+ # Example integration with an agent
176
+ codex e "
177
+ Please inspect http://localhost:8000/openapi.json.
178
+ Use the music generation API to create a 20-second BGM track at ~/Downloads/bgm.wav
179
+ with the theme 'a person walking in the rain'.
180
+ "
181
+
182
+ # Inspect the generated file
183
+ open ~/Downloads/bgm.wav
184
+ ```
185
+
186
+ **Run as a background service:**
187
+ ```sh
188
+ # kiapi
189
+ kiapi service install # Register
190
+ kiapi service show # Show the installed plist
191
+ kiapi service start # Start
192
+ kiapi service status # Check status and the tail of logs
193
+ kiapi service stop # Stop
194
+ kiapi service uninstall # Remove
195
+ ```
196
+
197
+ **Access from other machines:**
198
+ kiapi binds to `127.0.0.1` by default. To reach it from other machines, expose
199
+ it over your own private network layer. For example, with
200
+ [Tailscale](https://tailscale.com/) on the kiapi machine:
201
+
202
+ ```sh
203
+ tailscale serve --bg --https=8500 8500 # TLS endpoint reachable only inside your tailnet
204
+ ```
205
+
206
+ ## Local Storage
207
+
208
+ kiapi mainly writes to these local paths at runtime.
209
+
210
+ | Purpose | Setting | Default | Notes |
211
+ |---|---|---|---|
212
+ | Files API uploads, generated artifacts, and URL/data URL inputs | `KIAPI_FILES_ROOT` | `/tmp/kiapi/files` | Storage referenced by `file_id`. The default may disappear after OS reboot or tmp cleanup. Use `~/.kiapi/files` or external storage for long-term retention. |
213
+ | Temporary working directories during request processing | `KIAPI_TMP_ROOT` | `/tmp/kiapi/work` | Used for chat/embedding input expansion, generation intermediates, LoRA training work, and similar tasks. |
214
+ | Web backend subprocess logs | `KIAPI_WEB_BACKEND_LOG_DIR` | `/tmp/kiapi/logs/web` | stdout/stderr for SearXNG / Crawl4AI Docker subprocesses. |
215
+ | ACE-Step dedicated venv / project / checkpoints | `KIAPI_ACESTEP_PYTHON_PATH`, `KIAPI_ACESTEP_PROJECT_ROOT`, `KIAPI_ACESTEP_CHECKPOINT_DIR` | `acestep/` under the user data dir | When `python_path`, `project_root`, and `checkpoint_dir` are omitted, kiapi places the ACE-Step venv and checkpoints under a persistent ACE-Step directory. |
216
+
217
+ Other model weights and library caches are managed by Hugging Face, mflux,
218
+ Docker, or each library/tool. kiapi generally does not move them into its own
219
+ storage location.
220
+
221
+ ## Security
222
+
223
+ By default, `kiapi run` starts on `127.0.0.1:8000`.
224
+ When `--host 0.0.0.0` is specified, the server may be reachable from other
225
+ machines, so use it only on trusted networks.
226
+ ## Development
227
+
228
+ ```sh
229
+ make init # Install dependencies, download test data, and create venv environments
230
+ make update # Sync dependencies
231
+ make upgrade # Upgrade dependencies
232
+
233
+ # ... implement
234
+
235
+ make # Format, type-check, and regenerate dynamic documentation
236
+ make test # Unit tests
237
+ make dev # Start the development server with auto-reload
238
+
239
+ # GPU-backed functional and regression tests
240
+ make verify # Choose the capability family interactively
241
+ make verify-fast # Interactive choice, light tests only
242
+ make verify-kiapi # Run every capability non-interactively
243
+ ```
244
+
245
+ ## Release
246
+
247
+ Releases to PyPI are automated by GitHub Actions workflows.
248
+
249
+ > [!NOTE]
250
+ > See [docs/runbooks/release.md](docs/runbooks/release.md) for the detailed release procedure.
251
+
252
+ ## Project Status
253
+
254
+ > [!NOTE]
255
+ > kiapi is OSS developed mainly for personal use.
256
+ > The API, supported models, and setup instructions may change in the future.
257
+ > Issues and pull requests are welcome, but support is best-effort because this is a personal project.