nexaai 1.0.19rc7__cp310-cp310-macosx_14_0_universal2.whl → 1.0.19rc8__cp310-cp310-macosx_14_0_universal2.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.

Potentially problematic release.


This version of nexaai might be problematic. Click here for more details.

Files changed (196) hide show
  1. nexaai/_stub.cpython-310-darwin.so +0 -0
  2. nexaai/_version.py +1 -1
  3. nexaai/binds/libnexa_bridge.dylib +0 -0
  4. {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/METADATA +1 -1
  5. {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/RECORD +7 -196
  6. nexaai/binds/nexa_mlx/py-lib/asr/__init__.py +0 -12
  7. nexaai/binds/nexa_mlx/py-lib/asr/interface.py +0 -122
  8. nexaai/binds/nexa_mlx/py-lib/common/__init__.py +0 -0
  9. nexaai/binds/nexa_mlx/py-lib/common/utils.py +0 -25
  10. nexaai/binds/nexa_mlx/py-lib/cv/__init__.py +0 -0
  11. nexaai/binds/nexa_mlx/py-lib/cv/generate.py +0 -195
  12. nexaai/binds/nexa_mlx/py-lib/cv/interface.py +0 -151
  13. nexaai/binds/nexa_mlx/py-lib/cv/main.py +0 -81
  14. nexaai/binds/nexa_mlx/py-lib/cv/modeling/pp_ocr_v4.py +0 -1736
  15. nexaai/binds/nexa_mlx/py-lib/embedding/__init__.py +0 -0
  16. nexaai/binds/nexa_mlx/py-lib/embedding/generate.py +0 -333
  17. nexaai/binds/nexa_mlx/py-lib/embedding/interface.py +0 -617
  18. nexaai/binds/nexa_mlx/py-lib/embedding/main.py +0 -173
  19. nexaai/binds/nexa_mlx/py-lib/embedding/modeling/__init__.py +0 -0
  20. nexaai/binds/nexa_mlx/py-lib/embedding/modeling/nexa_jina_v2.py +0 -399
  21. nexaai/binds/nexa_mlx/py-lib/image_gen/__init__.py +0 -1
  22. nexaai/binds/nexa_mlx/py-lib/image_gen/generate_sd.py +0 -244
  23. nexaai/binds/nexa_mlx/py-lib/image_gen/interface.py +0 -82
  24. nexaai/binds/nexa_mlx/py-lib/image_gen/main.py +0 -281
  25. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/__init__.py +0 -306
  26. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/clip.py +0 -116
  27. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/config.py +0 -65
  28. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/model_io.py +0 -386
  29. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/sampler.py +0 -105
  30. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/tokenizer.py +0 -100
  31. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/unet.py +0 -460
  32. nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/vae.py +0 -274
  33. nexaai/binds/nexa_mlx/py-lib/llm/__init__.py +0 -0
  34. nexaai/binds/nexa_mlx/py-lib/llm/generate.py +0 -149
  35. nexaai/binds/nexa_mlx/py-lib/llm/interface.py +0 -764
  36. nexaai/binds/nexa_mlx/py-lib/llm/main.py +0 -68
  37. nexaai/binds/nexa_mlx/py-lib/rerank/__init__.py +0 -0
  38. nexaai/binds/nexa_mlx/py-lib/rerank/generate.py +0 -174
  39. nexaai/binds/nexa_mlx/py-lib/rerank/interface.py +0 -287
  40. nexaai/binds/nexa_mlx/py-lib/rerank/main.py +0 -127
  41. nexaai/binds/nexa_mlx/py-lib/rerank/modeling/__init__.py +0 -0
  42. nexaai/binds/nexa_mlx/py-lib/rerank/modeling/nexa_jina_rerank.py +0 -330
  43. nexaai/binds/nexa_mlx/py-lib/sd/__init__.py +0 -1
  44. nexaai/binds/nexa_mlx/py-lib/sd/interface.py +0 -362
  45. nexaai/binds/nexa_mlx/py-lib/sd/main.py +0 -286
  46. nexaai/binds/nexa_mlx/py-lib/sd/modeling/__init__.py +0 -306
  47. nexaai/binds/nexa_mlx/py-lib/sd/modeling/clip.py +0 -116
  48. nexaai/binds/nexa_mlx/py-lib/sd/modeling/config.py +0 -65
  49. nexaai/binds/nexa_mlx/py-lib/sd/modeling/model_io.py +0 -385
  50. nexaai/binds/nexa_mlx/py-lib/sd/modeling/sampler.py +0 -105
  51. nexaai/binds/nexa_mlx/py-lib/sd/modeling/tokenizer.py +0 -100
  52. nexaai/binds/nexa_mlx/py-lib/sd/modeling/unet.py +0 -460
  53. nexaai/binds/nexa_mlx/py-lib/sd/modeling/vae.py +0 -274
  54. nexaai/binds/nexa_mlx/py-lib/tts/__init__.py +0 -12
  55. nexaai/binds/nexa_mlx/py-lib/tts/interface.py +0 -276
  56. nexaai/binds/nexa_mlx/py-lib/vlm/__init__.py +0 -3
  57. nexaai/binds/nexa_mlx/py-lib/vlm/generate.py +0 -572
  58. nexaai/binds/nexa_mlx/py-lib/vlm/generate_qwen3_vl.py +0 -294
  59. nexaai/binds/nexa_mlx/py-lib/vlm/generate_qwen3_vl_moe.py +0 -276
  60. nexaai/binds/nexa_mlx/py-lib/vlm/interface.py +0 -504
  61. nexaai/binds/nexa_mlx/py-lib/vlm/main.py +0 -320
  62. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/__init__.py +0 -0
  63. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/convert.py +0 -68
  64. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/__init__.py +0 -0
  65. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/__init__.py +0 -8
  66. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/aya_vision.py +0 -193
  67. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/interpolate.py +0 -186
  68. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/language.py +0 -233
  69. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/vision.py +0 -503
  70. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/base.py +0 -202
  71. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/cache.py +0 -230
  72. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/__init__.py +0 -10
  73. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/conversation.py +0 -264
  74. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/deepseek_vl_v2.py +0 -472
  75. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/language.py +0 -591
  76. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/processing_deepsek_vl_v2.py +0 -526
  77. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/vision.py +0 -356
  78. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/__init__.py +0 -8
  79. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/florence2.py +0 -366
  80. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/language.py +0 -488
  81. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/vision.py +0 -591
  82. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/__init__.py +0 -8
  83. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/gemma3.py +0 -213
  84. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/language.py +0 -315
  85. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/vision.py +0 -238
  86. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/__init__.py +0 -2
  87. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/audio.py +0 -1038
  88. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/config.py +0 -139
  89. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/gemma3n.py +0 -322
  90. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/language.py +0 -629
  91. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/vision.py +0 -1022
  92. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/__init__.py +0 -9
  93. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/idefics2.py +0 -294
  94. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/language.py +0 -191
  95. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/vision.py +0 -267
  96. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/__init__.py +0 -8
  97. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/idefics3.py +0 -175
  98. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/language.py +0 -192
  99. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/vision.py +0 -233
  100. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/__init__.py +0 -9
  101. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/internvl_chat.py +0 -140
  102. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/language.py +0 -220
  103. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/processor.py +0 -393
  104. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/vision.py +0 -293
  105. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kernels.py +0 -307
  106. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/__init__.py +0 -8
  107. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/kimi_vl.py +0 -143
  108. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/language.py +0 -509
  109. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/vision.py +0 -522
  110. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/__init__.py +0 -8
  111. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/language.py +0 -386
  112. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/llama4.py +0 -138
  113. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/vision.py +0 -560
  114. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/__init__.py +0 -8
  115. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/language.py +0 -240
  116. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/llava.py +0 -153
  117. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/vision.py +0 -259
  118. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/__init__.py +0 -9
  119. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/language.py +0 -236
  120. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/llava_bunny.py +0 -256
  121. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/vision.py +0 -303
  122. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/__init__.py +0 -8
  123. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/language.py +0 -230
  124. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/llava_next.py +0 -160
  125. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/vision.py +0 -243
  126. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mistral3/__init__.py +0 -8
  127. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mistral3/mistral3.py +0 -283
  128. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/__init__.py +0 -8
  129. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/language.py +0 -416
  130. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/mllama.py +0 -172
  131. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/vision.py +0 -499
  132. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/__init__.py +0 -8
  133. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/language.py +0 -243
  134. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/molmo.py +0 -133
  135. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/vision.py +0 -465
  136. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/__init__.py +0 -10
  137. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/language.py +0 -230
  138. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/multi_modality.py +0 -385
  139. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/sam.py +0 -557
  140. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/vision.py +0 -526
  141. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/__init__.py +0 -8
  142. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/language.py +0 -282
  143. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/paligemma.py +0 -160
  144. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/vision.py +0 -242
  145. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/__init__.py +0 -8
  146. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/language.py +0 -21
  147. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/phi3_v.py +0 -243
  148. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/su_rope.py +0 -71
  149. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/vision.py +0 -324
  150. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/__init__.py +0 -8
  151. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/language.py +0 -229
  152. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/pixtral.py +0 -161
  153. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/vision.py +0 -320
  154. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/__init__.py +0 -2
  155. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/config.py +0 -108
  156. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/language.py +0 -490
  157. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/qwen2_5_vl.py +0 -168
  158. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/vision.py +0 -414
  159. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/__init__.py +0 -2
  160. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/config.py +0 -104
  161. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/language.py +0 -490
  162. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/qwen2_vl.py +0 -167
  163. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/vision.py +0 -312
  164. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/__init__.py +0 -0
  165. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/base.py +0 -117
  166. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/cache.py +0 -531
  167. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/generate.py +0 -701
  168. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/rope_utils.py +0 -255
  169. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/sample_utils.py +0 -303
  170. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/tokenizer_utils.py +0 -407
  171. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/processor.py +0 -476
  172. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/qwen3vl.py +0 -1223
  173. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/__init__.py +0 -0
  174. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/base.py +0 -117
  175. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/cache.py +0 -531
  176. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/generate.py +0 -701
  177. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/rope_utils.py +0 -255
  178. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/sample_utils.py +0 -303
  179. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/tokenizer_utils.py +0 -407
  180. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/processor.py +0 -476
  181. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/qwen3vl_moe.py +0 -1309
  182. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/switch_layers.py +0 -210
  183. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/smolvlm/__init__.py +0 -8
  184. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/smolvlm/smolvlm.py +0 -62
  185. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/processing_qwen2_5_vl.py +0 -209
  186. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/processing_qwen2_vl.py +0 -215
  187. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/prompt_utils.py +0 -474
  188. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/sample_utils.py +0 -39
  189. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/tokenizer_utils.py +0 -344
  190. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/__init__.py +0 -9
  191. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/lora.py +0 -70
  192. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/trainer.py +0 -296
  193. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/utils.py +0 -160
  194. nexaai/binds/nexa_mlx/py-lib/vlm/modeling/utils.py +0 -928
  195. {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/WHEEL +0 -0
  196. {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/top_level.txt +0 -0
Binary file
nexaai/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # This file is generated by CMake from _version.py.in
2
2
  # Do not modify this file manually - it will be overwritten
3
3
 
4
- __version__ = "1.0.19-rc7"
4
+ __version__ = "1.0.19-rc8"
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nexaai
3
- Version: 1.0.19rc7
3
+ Version: 1.0.19rc8
4
4
  Summary: Python bindings for NexaSDK C-lib backend
5
5
  Author-email: "Nexa AI, Inc." <dev@nexa.ai>
6
6
  Project-URL: Homepage, https://github.com/NexaAI/nexasdk-bridge
@@ -1,6 +1,6 @@
1
1
  nexaai/__init__.py,sha256=L8oB7GFZZMGnUpCg0PecDbI_ycKuQak-ZEJ4Y12_QIw,2184
2
- nexaai/_stub.cpython-310-darwin.so,sha256=AAJFfr2PnpeTXi5gkZlISfZTP1jufDlxFU5F3hj4u7M,66768
3
- nexaai/_version.py,sha256=6idfoyE0rE2oVy8hJFBcYRNfoySV3pKNZpyB8HSD4ko,143
2
+ nexaai/_stub.cpython-310-darwin.so,sha256=53Jf5TH68E8KcPl8KgBf8J9Au81J-_kQ8RK39hSsyBE,66768
3
+ nexaai/_version.py,sha256=aYDZTWn8eaS3I_K2yikTHx48xxCOGb-PhDT-HlTMK3I,143
4
4
  nexaai/asr.py,sha256=NljMXDErwPNMOPaRkJZMEDka9Nk8xyur7L8i924TStY,2054
5
5
  nexaai/base.py,sha256=N8PRgDFA-XPku2vWnQIofQ7ipz3pPlO6f8YZGnuhquE,982
6
6
  nexaai/common.py,sha256=Y0NJNLTi4Nq4x1WL6PQsSvGUto0eGmWhjpsC6jcekfA,3444
@@ -19,7 +19,7 @@ nexaai/asr_impl/pybind_asr_impl.py,sha256=pE9Hb_hMi5yAc4MF83bLVOb8zDtreCkB3_u7XE
19
19
  nexaai/binds/__init__.py,sha256=eYuay_8DDXeOUWz2_R9HFSabohxs6hvZn391t2L0Po0,104
20
20
  nexaai/binds/common_bind.cpython-310-darwin.so,sha256=zxJuD0nSV--VZKxBfWZUavU7_bHj_JTi0FhkjvG4VJw,235264
21
21
  nexaai/binds/embedder_bind.cpython-310-darwin.so,sha256=tPa0c0Dv_GiW66fgmAGWGCHXRGNApznqoQS0eQx9GFM,202064
22
- nexaai/binds/libnexa_bridge.dylib,sha256=zhUM-SVjLq4f7PKjpP2BbYeWJ9_jgYZB72KY4cmEPKI,251832
22
+ nexaai/binds/libnexa_bridge.dylib,sha256=NgW7lIbCsLK1HZRkiJB8gjZceZ8_ME3bCsh6V-idyYg,251832
23
23
  nexaai/binds/llm_bind.cpython-310-darwin.so,sha256=TAWfa1Hzq00TjtC1xVsiAeLp6hv2LrL5afDz4omUghc,182784
24
24
  nexaai/binds/vlm_bind.cpython-310-darwin.so,sha256=nd6eG_m2EiPthzkSZ97hlXWUOZQir4cQfFJZ4p6eR2U,182704
25
25
  nexaai/binds/nexa_llama_cpp/libggml-base.dylib,sha256=eN6A-6ufUoRJdbdkWD7T-jV1M-FmMIRiO4D-g4ep9s4,650944
@@ -32,37 +32,6 @@ nexaai/binds/nexa_llama_cpp/libnexa_plugin.dylib,sha256=2Rur23C0j5E0jH7xUwT3Ootd
32
32
  nexaai/binds/nexa_mlx/libnexa_plugin.dylib,sha256=gllGB0YibdyaKCoZ80t3DFcjOHkzklDnfyTCkSim1OI,659256
33
33
  nexaai/binds/nexa_mlx/py-lib/ml.py,sha256=DKXVOAfh8cg7KTKljh7jpcPwfQFNigc6uv_ZXF6lse8,23977
34
34
  nexaai/binds/nexa_mlx/py-lib/profiling.py,sha256=Dc-mybFwBdCIKFWL7CbSHjkOJGAoYHG7r_e_XPhzwBU,9361
35
- nexaai/binds/nexa_mlx/py-lib/asr/__init__.py,sha256=fuT_9_xpYJ28m4yjly5L2jChUrzlSQz-b_S7nujxkSM,451
36
- nexaai/binds/nexa_mlx/py-lib/asr/interface.py,sha256=pE5expr8sP7O9bEgWaUaJ4ITX0MsCxFovG9iVWqVDVU,4246
37
- nexaai/binds/nexa_mlx/py-lib/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- nexaai/binds/nexa_mlx/py-lib/common/utils.py,sha256=WtRTdE0bUhpsOmhuM_dhn8WHkOxtqRv0vNp5kSY-rNU,949
39
- nexaai/binds/nexa_mlx/py-lib/cv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- nexaai/binds/nexa_mlx/py-lib/cv/generate.py,sha256=fC7a1QQqcOsoa3NkRTVY-e6i97T6Hry8KohWJtqQeCU,6288
41
- nexaai/binds/nexa_mlx/py-lib/cv/interface.py,sha256=qE51ApUETEZxDMPZB4VdV098fsXcIiEg4Hj9zaGQCp4,4686
42
- nexaai/binds/nexa_mlx/py-lib/cv/main.py,sha256=hYaF2C36hKTyy7kGMNkzLrdczPiFVS73H320klzzpVM,2856
43
- nexaai/binds/nexa_mlx/py-lib/cv/modeling/pp_ocr_v4.py,sha256=Vpa-QTy7N5oFfGI7Emldx1dOYJWv_4nAFNRDz_5vHBI,58593
44
- nexaai/binds/nexa_mlx/py-lib/embedding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- nexaai/binds/nexa_mlx/py-lib/embedding/generate.py,sha256=leZA0Ir78-5GV3jloPKYSAKgb04Wr5jORFJlSSVyKs0,12855
46
- nexaai/binds/nexa_mlx/py-lib/embedding/interface.py,sha256=M7AGiq_UVLNIi2Ie6H08ySnMxIjIhUlNgmV9I_rKYt4,22742
47
- nexaai/binds/nexa_mlx/py-lib/embedding/main.py,sha256=xKRebBcooKuf8DzWKwCicftes3MAcYAd1QvcT9_AAPQ,6003
48
- nexaai/binds/nexa_mlx/py-lib/embedding/modeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- nexaai/binds/nexa_mlx/py-lib/embedding/modeling/nexa_jina_v2.py,sha256=F9Z_9r-Dh0wNThiMp5W5hqE2dt5bf4ps5_c6h4BuWGw,15218
50
- nexaai/binds/nexa_mlx/py-lib/image_gen/__init__.py,sha256=8eFAF00-yWdEs0LJiszjHEsgPDAF8tSruBYvujCNgE0,42
51
- nexaai/binds/nexa_mlx/py-lib/image_gen/generate_sd.py,sha256=8DuPsJlxVf1LlFARVThiW807G-0cWPReYONj-x8qKRo,8616
52
- nexaai/binds/nexa_mlx/py-lib/image_gen/interface.py,sha256=7ElIiLm5gZXAfKPs497wLkn8qqLFLL5T-oV-hXVmEdw,3285
53
- nexaai/binds/nexa_mlx/py-lib/image_gen/main.py,sha256=jKkGDfqmGIsQwhHJaL_j_CTtr04xplD6dnnGe3AcilU,8123
54
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/__init__.py,sha256=wriLb0wA5vCBlCoQMtfKrVVWMJw8fhXCCk6R9_Nrb9c,9524
55
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/clip.py,sha256=feHQXi1NiGa01AMo7nK8M-sgBoZBHI95xAGMfAv64kE,3733
56
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/config.py,sha256=lq2sWXevpnCk8KXOywEVOzgFT6WBNnG4xr7NLWgidII,1773
57
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/model_io.py,sha256=ei-pdrqFxjeHLL6Ov5NZaHT5lceqZbHDyNFfUFUh_04,13755
58
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/sampler.py,sha256=nJxiSmF79E2aDGzLqygOat4zpgaTzfR7Kp1PD0bmhWA,3397
59
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/tokenizer.py,sha256=WMcmyQmb5MmhCp-NNU72Bqjq9vQvDzgR8KAfGKA2Qso,2991
60
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/unet.py,sha256=rYj1-baAugL7CNyYYvLch891WUgpunhAJCVBNKxfZSA,14762
61
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/vae.py,sha256=sQ1943x5SKyTmeL2xe3t84FL9DGO72Eab2m88r-BSe8,8044
62
- nexaai/binds/nexa_mlx/py-lib/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- nexaai/binds/nexa_mlx/py-lib/llm/generate.py,sha256=Phes0tzxbbEWA2hDylQvD0LjorMaPwvcfZq9RKCAOt0,4399
64
- nexaai/binds/nexa_mlx/py-lib/llm/interface.py,sha256=SZFkuAUi2vxj_dSqj8RXf9vPTGMtpks_pZxxrF7iIe8,29330
65
- nexaai/binds/nexa_mlx/py-lib/llm/main.py,sha256=gFDE4VZv_CLKMCTn0N521OfCKH_Ys26bHDh6g9VEFNc,1982
66
35
  nexaai/binds/nexa_mlx/py-lib/mlx_audio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
36
  nexaai/binds/nexa_mlx/py-lib/mlx_audio/server.py,sha256=Pqy13Fafq4WX_cTuvRFz1jq89beQm2QQGpXmhK4b9jc,17547
68
37
  nexaai/binds/nexa_mlx/py-lib/mlx_audio/utils.py,sha256=35_9pWHzCuf2HAWHLkmz8AeyPa9WlYFr86zSRasoaAg,6476
@@ -213,164 +182,6 @@ nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_base.py,sha256=dAeEA0IsBnU
213
182
  nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_convert.py,sha256=79ddUhtTUlElD9NvBupUxl-MV4HKFM9PUxQpTwKLnBA,5804
214
183
  nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_interpolate.py,sha256=9dNmH03C46HtxwesH2DpT2oTNEG1KCZWYEKq6UQ3vfk,3536
215
184
  nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_models.py,sha256=12RiOfPtSZQj5g5JM-yCJk3uGQfM3OdmRiPt5uUDE4E,35096
216
- nexaai/binds/nexa_mlx/py-lib/rerank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
- nexaai/binds/nexa_mlx/py-lib/rerank/generate.py,sha256=Y6aWBg0bxVyLS7OiLTpM6cR0XoVw6mpna6QOkBFMpNM,6017
218
- nexaai/binds/nexa_mlx/py-lib/rerank/interface.py,sha256=iU8KmEdDa_QpptszWGlYGerp9LR08TMm8Ba80neMyAo,9922
219
- nexaai/binds/nexa_mlx/py-lib/rerank/main.py,sha256=HEiZxPvW54B1TlZ6svVguunSXOtUaHZSSPuQvxnBvHA,4258
220
- nexaai/binds/nexa_mlx/py-lib/rerank/modeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
- nexaai/binds/nexa_mlx/py-lib/rerank/modeling/nexa_jina_rerank.py,sha256=lVJSjTHWhpFy71elcp0yaWnQGKX1boU4xbkhwV4bMlE,10871
222
- nexaai/binds/nexa_mlx/py-lib/sd/__init__.py,sha256=n3pC_cDqtZuP0_X9OkSBwwKqjdLfRkbRIjjFYd_1iU0,44
223
- nexaai/binds/nexa_mlx/py-lib/sd/interface.py,sha256=5sGuEwfDGQtSeZ93JmDn2eL47XHmCyxkceDSyCK7e1g,13415
224
- nexaai/binds/nexa_mlx/py-lib/sd/main.py,sha256=cHlZhG8KHDFXbYRH-diKA7B1Qacq1euuGw0pKeXJGAI,8575
225
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/__init__.py,sha256=wriLb0wA5vCBlCoQMtfKrVVWMJw8fhXCCk6R9_Nrb9c,9524
226
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/clip.py,sha256=feHQXi1NiGa01AMo7nK8M-sgBoZBHI95xAGMfAv64kE,3733
227
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/config.py,sha256=lq2sWXevpnCk8KXOywEVOzgFT6WBNnG4xr7NLWgidII,1773
228
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/model_io.py,sha256=xUjF5XNUfRLHQz-LtGT_D3XGQ1MI7ZQWknmdUDMpi_s,13732
229
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/sampler.py,sha256=nJxiSmF79E2aDGzLqygOat4zpgaTzfR7Kp1PD0bmhWA,3397
230
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/tokenizer.py,sha256=WMcmyQmb5MmhCp-NNU72Bqjq9vQvDzgR8KAfGKA2Qso,2991
231
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/unet.py,sha256=rYj1-baAugL7CNyYYvLch891WUgpunhAJCVBNKxfZSA,14762
232
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/vae.py,sha256=sQ1943x5SKyTmeL2xe3t84FL9DGO72Eab2m88r-BSe8,8044
233
- nexaai/binds/nexa_mlx/py-lib/tts/__init__.py,sha256=fuT_9_xpYJ28m4yjly5L2jChUrzlSQz-b_S7nujxkSM,451
234
- nexaai/binds/nexa_mlx/py-lib/tts/interface.py,sha256=0FvZbIyOvg8jERZEQ6bygbv7v02O9xHO4-TPUlar0b4,9568
235
- nexaai/binds/nexa_mlx/py-lib/vlm/__init__.py,sha256=_25kvMEviX16Hg3bro8Ws70V0eeIEqYKV8ZDXqYzKew,73
236
- nexaai/binds/nexa_mlx/py-lib/vlm/generate.py,sha256=DqHFEAuqk-nko8ho6U9GAXTDAWz4d8GTe_hCt-XFyCw,19071
237
- nexaai/binds/nexa_mlx/py-lib/vlm/generate_qwen3_vl.py,sha256=eeizW18u6dHPZOOnJtQUJkiqMAIIpOSS-IOjacXGsz4,10240
238
- nexaai/binds/nexa_mlx/py-lib/vlm/generate_qwen3_vl_moe.py,sha256=Lcu1_I9FriRQF7TuFehjRWwVjEl6lA3eOWUGV2NQovk,9673
239
- nexaai/binds/nexa_mlx/py-lib/vlm/interface.py,sha256=uTX5ifnMltDiFu5T4OgHCPNHf0E4gGUEFR8Bz-jnbds,19774
240
- nexaai/binds/nexa_mlx/py-lib/vlm/main.py,sha256=pvNrMzgaYxw-uyQLj1k-OiAI6RdmNVxhxemEMXZSwUs,10829
241
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/convert.py,sha256=ia5i9cgTufFGmKyhkYUaW0nfNqT_bMo8i-Hg_zy5JC4,1863
243
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/processing_qwen2_5_vl.py,sha256=PdlV1pTp0_b6QPrXNZzA52GBMRjyODWLlN_uzrMtDLQ,10218
244
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/processing_qwen2_vl.py,sha256=Kzu_GcXiQeUt9o7AUILgmOsc6nfts7mN30rl4F_iFeg,10254
245
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/prompt_utils.py,sha256=ihebAhlzlmxX0JTV0n3_8gmTJK_0GelXgcAUOI2TjV8,15702
246
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/sample_utils.py,sha256=Q_PT7wbq-pHostpUgmhCm-WcsvZ_sWHKMq-Owy3XUT8,1354
247
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/tokenizer_utils.py,sha256=si_yU4NfBBdDk1vHGhGdzvwQyYKGOBcNOvuXXfeDXRc,10693
248
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/utils.py,sha256=W3xZmWEHK31BwtGQeqv60BQAT9F460JvV1YDWFM1nLw,30226
249
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/base.py,sha256=qVf-yv5C5_FigU6NPJHkikwQc0jMzshtHd-FRgVny_g,6212
251
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/cache.py,sha256=7q2waWeCZSjsDCuTi3nEY9M0cO9C7XMwRdLDmZLkl80,7409
252
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kernels.py,sha256=nJYMiB3nxfpO3EpD4KfTvZ7Cn28AerRQDMEhRRDgvj8,10283
253
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/__init__.py,sha256=DsuevxWyQ_P-7qcxPfH86gjw-qo1sJIVsW8BMMMBR9s,126
254
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/aya_vision.py,sha256=c-D6o7HmSAFWhp1u-3SSeLo5KCqGBVl0lewlfUHuD08,6708
255
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/interpolate.py,sha256=JsFYtIZoDv8XAfqYKt7p3fdUPybGx8LVVtWi9ejLgZo,7073
256
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/language.py,sha256=Ch8pCFfErinfdLdazHmyDbqmce0Y3yGYrWxj2r8N8rc,7362
257
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/vision.py,sha256=BeVhbFbMLEUqRakLInWy3t90cX-F5EXkS9Yvt0ftrtY,18135
258
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/__init__.py,sha256=BQv9ZWMbrIxqE9N-hPThwZ-1u2DTtdt4yKo3lpE-xHA,178
259
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/conversation.py,sha256=H6-RV9A8wy8ea7TgM_G_DcCamYYRT1-X8TETbtgEXD4,8230
260
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/deepseek_vl_v2.py,sha256=Jf0SRNEUfe90DiUVgM9LfQ3EdC5duPHGf_nGXiS9R-A,17815
261
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/language.py,sha256=UAfsz7ENTvP6aCo1HiWLGpHp_rHj1TUya5SGEDPzeLo,20494
262
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/processing_deepsek_vl_v2.py,sha256=RAfwrkXiGnyRIlNmlh8eKPNSrudoNrvdgS9cEDANxiw,18671
263
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/vision.py,sha256=6Uf8gbhY8bCyXls_68TIbE_ly4wus4S5ELkOgSzVkLI,10923
264
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/__init__.py,sha256=TCHENiHr36OR7FGMVID0DDbNIwjtJifPtFiuCSBy2nk,125
265
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/florence2.py,sha256=TtkKb6MsjptZxjpRI-xjf7t37MIfuqvpWbp15lGSv7E,13099
266
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/language.py,sha256=WL0eXkeKFC-mqTsueoVFTP4fn_DkJgU047m2W6y-1xA,16594
267
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/vision.py,sha256=5bna_aw7gDJ_knjimiZ9czLydkEJmt0nuN5gnptNcLE,16997
268
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/__init__.py,sha256=iOd-lWlJDgnEyoZZ6vikZd3PsRhBq8_uSLPIAUjPpfo,122
269
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/gemma3.py,sha256=6lIqddtl5RCVWCnlnvix1qPGyhbZon_jLvUoXFg2nwc,7548
270
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/language.py,sha256=eHb8aqbEUYS1Ma8nq4migF_qVR87xzqTH4PnECI9IYc,10268
271
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/vision.py,sha256=UExcSWWL1-4eTkVYRHiK1s8-VGc7eiVS__MwMUnmdvM,7654
272
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/__init__.py,sha256=iu_nBtI1gg6yS6jQqOV_eXHSdEBSttuaXcJh1plwQl0,138
273
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/audio.py,sha256=sP2gePQo6TwB4p29DvGh97pnXbaYiGtXcYRygohn-9s,42203
274
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/config.py,sha256=YBcgZu5vgcW6EXLYiExuiSFIILME_DBupLB2_uXNZPE,4109
275
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/gemma3n.py,sha256=zsGBamEiiLkOTt7MTQwj9FBSjiuIM_catjxlHy0yRNI,11762
276
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/language.py,sha256=5JrrGqqGd6DKgrmKEgyrXeIw8T0_F9shW1Ht1shUP3s,21718
277
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/vision.py,sha256=_JF-cxEhizjlzAysOtcqolEBNqaHlW7RcZ35BG2O3Q4,32774
278
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/__init__.py,sha256=9-RTi8hnIXow9Lng_3ZauPcH0-KfAxqtkkopPbp9hCQ,145
279
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/idefics2.py,sha256=4XGhEnFFWtA8aAfTddwnXaJuQZxs74Jciz-Rq7CZ614,9532
280
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/language.py,sha256=U4sM5pwbxVrZu_ukPmD_2e1hp3xpNJSv1YB8ZJQZpv0,5996
281
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/vision.py,sha256=ZGsEORw1N6R7lJ3Yiz90O3sGVlt-DZo4p_exvImxQxM,8843
282
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/__init__.py,sha256=QO4U4tH6cnmibJM6lGaUBjiFLnq5pysC63gb2Tcv0RY,124
283
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/idefics3.py,sha256=YuMYYjbqJwShFxGR59ZA_nZRVT8RXvoh7fmJ29cswDg,5461
284
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/language.py,sha256=cYPQU-xEuKDywxH9gaGB-3ZbS26mPBQgG7eM2UHAFpc,6062
285
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/vision.py,sha256=gZyDmPeErlGsgtK1s8lLxg72g7D_-PFha9E5_lC2tm8,7587
286
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/__init__.py,sha256=yJda-w1nYNxbQw0bEk_eb0FESvj9YmQfyfC5TUk-G6M,198
287
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/internvl_chat.py,sha256=qiwnN-CfqquV90QHhZdPwZ3O792Z2nLG-HVBn7WUUMM,4431
288
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/language.py,sha256=KC9Eu315Z5ehGOGEbj29ih7eq1RN9QLR2N4Zqrl7Kjk,6725
289
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/processor.py,sha256=UkE-qFLRcS3xeEa57rRkCQTyG-e8JiolY7eFyMH8ZsA,14235
290
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/vision.py,sha256=IhnusA8AUjHktsNAzITLUE87J3UIlbg0icDjRZSWiyg,9702
291
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/__init__.py,sha256=xu3qapXNTsgV_Wiy6KPHlqmJvbnhXRnSJNK-m6Jfj4Y,123
292
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/kimi_vl.py,sha256=xVixys0VUa8lkYpMIdUuN7pifzsD_2OYMRb9CEkd2MA,4405
293
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/language.py,sha256=zls5RbW1LPLQJD9lviQz3fXaGcb7QyfI8RyKiq1o22o,16768
294
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/vision.py,sha256=wk3RXFbLM4Li1czZegvlWj3GuOiNdmVXER3m2xYSupk,18094
295
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/__init__.py,sha256=Yg0P88xUaJvvzct3xMJjd2A1dx7JV8Ukg3bBMEBGe9g,122
296
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/language.py,sha256=Q_-bmHY8XMxQO4flSGiytYnGH7FI_UabCSwrCKowCyE,12949
297
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/llama4.py,sha256=Ok3jH2UiE9afRPhrpQkLTtdilpd1bMQiAIqGqrn3hTA,4392
298
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/vision.py,sha256=3PzBb9ynusCg-Zw_81xb0Y1Bcpjk6G0h8Rk090LrKoc,18435
299
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/__init__.py,sha256=XTbyDs7MRdWKiIjcrpj8jWRX_lWpkUeDUwq8XftMio0,121
300
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/language.py,sha256=FnuZwfHbDrDMbQKA8n53bHm8Hy3IX39AvLA7tBYQ6U0,7743
301
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/llava.py,sha256=yfib0AQcyYe7L7smCiGy2BqCIWi3qIjJSEiUgOzGQTg,5285
302
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/vision.py,sha256=ZV0WvzxGQ1k4esrSTa3yiAwjtOWnT40sjg02mVCoAx8,8520
303
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/__init__.py,sha256=9jsgrMKG-lSyB0R6Gpa-mA00kPUztEw3LpGwciJIuyU,147
304
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/language.py,sha256=XstwscHuoegRyOqAKWyQBCoP2CkoXDuNRrcLxoOcNcI,7560
305
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/llava_bunny.py,sha256=7LR-JxOVp2bGm0glBlWl4PT97U4wOdCb6ReNM5HBecU,8295
306
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/vision.py,sha256=JwKWMPp2tig8JHBNc72qiFwUO2hHmV2pNTDDqR62nAo,9703
307
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/__init__.py,sha256=0DqRY9eU4is6YTBnpTaaDw7dHgpb4LshbhiV4u1Tvac,126
308
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/language.py,sha256=JzHDhLohuSe18E0w7vWo0BGZmAQ4PFVoIVq6cl8BTVo,7375
309
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/llava_next.py,sha256=vm7zpnCqqt5NBwmOafPC6FVKMGaadOuyTB-nVlDECIo,5432
310
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/vision.py,sha256=iuHeSO4N-6dXZj2l_Cu06pX8NvuIFxqFGxOR5REVNN4,7926
311
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mistral3/__init__.py,sha256=Jcg12HYdW9E8uDHdPz1SS9PTfeinqDqWZPxGTwv7B1c,124
312
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mistral3/mistral3.py,sha256=2Ef50Mw9BHvDICU-GSYnXQK1aIYhDo1ygRTGim1NEEg,9414
313
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/__init__.py,sha256=-wzqUK3A74dQBift1InXI79l8zfU5WgvjAmAJlAFutg,122
314
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/language.py,sha256=tHjeQoziSzY34qoGYZ3jyCTsZD0o-2qf6qi3oG5UPGs,14699
315
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/mllama.py,sha256=xPT2-drmM3EgJ649caGzuNU9YYzZwxpr64qGvrqLRbg,5518
316
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/vision.py,sha256=Pns7GLeNqX5hJbAsVltUSR5S-C_jv65LkfzeLCbps50,17179
317
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/__init__.py,sha256=Ho4yNHWTcZKUNFeePWKf93lm26t8aqbfpmyrGJ3LaTY,121
318
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/language.py,sha256=iuNNDGiGA6b5_Eab4tlQ6oY1rNK_OoMQT0V41VMPNIg,7319
319
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/molmo.py,sha256=CRo1CgvhpDX979IyddxuO9Q7eVQPOM37ACuGOaKOyEA,4421
320
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/vision.py,sha256=ycj7SlrRJ6HLmZ6xs6YQ8Jq3lC-i5gx8BZve36_yjrM,16039
321
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/__init__.py,sha256=KRtd-Xac8BS1Y98wBQnCsno0g2oXAaJTso92KM7C8bc,171
322
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/language.py,sha256=6-peH6hjHZYNjPaqipZ7lR6JZSPq-iR1QRx-3_1Jc10,7381
323
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/multi_modality.py,sha256=PlcagwaquP5o4jY4kwRkoSFdXKhPBl4mWzMOVn5JgIc,12542
324
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/sam.py,sha256=wBVbATFQCYPwj24SacVMYyCMtp_UJMb48hTvw4mSlek,19066
325
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/vision.py,sha256=j8WUDlAsOdHmQt_JrPE7PsCJ3vH1zwvjkU_kwNd7jo8,17362
326
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/__init__.py,sha256=VY8-bvKoa7eEZtagTdxPiI-Hdib77F4vyic7Y-pVEJk,125
327
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/language.py,sha256=l3WeLMVtEc0CR6cJh0Oq1YWArqZ6lAjeY-iwUDYd_vs,9330
328
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/paligemma.py,sha256=TdqS_uthWJvmD03RHXp8tD44vrGhaL1kEMgSvX2_7FM,5554
329
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/vision.py,sha256=HTHbpel48XGcgjLyiOH406vv2LCZGKcs5gIfgC1ayEU,7756
330
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/__init__.py,sha256=_09_A3rCKPgiLoh5nNvZ9q1Y7gwaJrj3yYG7FxsqzPQ,122
331
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/language.py,sha256=Nmye5NBz8rR5tPGPBKGmLhWGYlVRxGfFyAA5O-siBMs,384
332
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/phi3_v.py,sha256=F_JzvFCGVdFmlgLDbZAszdL_LqfOep5x2P2UzAZfmQI,7754
333
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/su_rope.py,sha256=8GuFFbTnfTAvnMB3PyDtuausPf7NCyTddYPHtcBrQeU,3365
334
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/vision.py,sha256=i69DehvOYyBgFrCmbF0TG2YSrIHoRDvTG9hzrraFtZM,10845
335
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/__init__.py,sha256=fMUWctNaCVUXn94PAWOy3EAZCO1nPWETW4tQUTXIukA,123
336
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/language.py,sha256=TguNVrGerRI3yuuoXuJIM1NoRWdDcBYCD7HwblCvVHk,7320
337
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/pixtral.py,sha256=p1V0kT4Jjim01qv8EOrxeFR10QxKqAgwMxgRS5mswU8,5840
338
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/vision.py,sha256=HOqbwRTmedGBu7XLkcDjcgrL5VCZYHMVCdGrZGjV1zo,10618
339
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/__init__.py,sha256=Gh9nT0rpEOQOGzNK3Cd80tt3_2mt9pGGoiSdmt34B1c,116
340
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/config.py,sha256=aKtTJhN5M_KaHf3QrOoACf08kJpWZh3IELv1YjHNHX4,3137
341
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/language.py,sha256=OeUoAfIg7dNB43tzRTLk3brdPmYFwaf_uUH4a-VwIzo,19189
342
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/qwen2_5_vl.py,sha256=xLbbNujUc1pq9nSQz6Y6IG0KzTBqMB2pju8SFR_cwp0,5893
343
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/vision.py,sha256=8z0aZ5vpCIBfelBZuNsuGhHDuiSWNx460zQZUtaAnMo,14612
344
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/__init__.py,sha256=P1WUzaUZF27dXhvUTunDLt5Dz62SzWWYgdbTGAv5etw,114
345
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/config.py,sha256=yPnWEyLruqmakMVGsFpizd_2rFOGwyscAmC6jW6ZtgI,2940
346
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/language.py,sha256=OeUoAfIg7dNB43tzRTLk3brdPmYFwaf_uUH4a-VwIzo,19189
347
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/qwen2_vl.py,sha256=YysRg1PszpZdsH7hywqN2pIMZAbU1P636KZoSJCNri8,5740
348
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/vision.py,sha256=rcneYZYwP5fx3p8xxXEDGvnWAMIn8DXenqBPLBjmVcI,10555
349
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/processor.py,sha256=_WZK8uv0LAGHO8V5LwCojyS4UYk0tfICsZ9GM4_Pfxo,19156
350
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/qwen3vl.py,sha256=LArnNtI98B_GJOblPNijVage9EmVfa-YZYI-2XGFZek,50662
351
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/base.py,sha256=4RlZwgz8YX2ngmJNaymxFFpw9hJu-0EMw9xwXpngW9o,3496
353
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/cache.py,sha256=NMOB6x-RT6svF4H-Ymo5WqnP7ptAal3aaKjWZXWGMsM,17671
354
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/generate.py,sha256=bchCpnlewysWQss5TQKxdKPXYd5VA7ySUDfRt8Xj_H4,26677
355
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/rope_utils.py,sha256=ty0dA3SsEUFtFbHo16tKdnKymrNKKsUO3KMYapMajbY,8704
356
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/sample_utils.py,sha256=8SEeVwgjuvaYy-4ALAU0RHQMuRr2k7EkXba_csxk498,10673
357
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/tokenizer_utils.py,sha256=Gqanx4hBDcon_k5ClhUsS4YpMbZNiee8jvImGS9h43s,13229
358
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/processor.py,sha256=_WZK8uv0LAGHO8V5LwCojyS4UYk0tfICsZ9GM4_Pfxo,19156
359
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/qwen3vl_moe.py,sha256=WTmNmkGe5YwTJEbwq44fh1LOhaekguPuSE1H89szj9Y,53856
360
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/switch_layers.py,sha256=6hjFCvIH8J1UBEPYaIg9HqSakyZgEEiQoJQ9E0WmZoM,5960
361
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
362
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/base.py,sha256=4RlZwgz8YX2ngmJNaymxFFpw9hJu-0EMw9xwXpngW9o,3496
363
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/cache.py,sha256=NMOB6x-RT6svF4H-Ymo5WqnP7ptAal3aaKjWZXWGMsM,17671
364
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/generate.py,sha256=bchCpnlewysWQss5TQKxdKPXYd5VA7ySUDfRt8Xj_H4,26677
365
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/rope_utils.py,sha256=ty0dA3SsEUFtFbHo16tKdnKymrNKKsUO3KMYapMajbY,8704
366
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/sample_utils.py,sha256=8SEeVwgjuvaYy-4ALAU0RHQMuRr2k7EkXba_csxk498,10673
367
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/tokenizer_utils.py,sha256=Gqanx4hBDcon_k5ClhUsS4YpMbZNiee8jvImGS9h43s,13229
368
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/smolvlm/__init__.py,sha256=nvaihrxZuqymlQZbPCSTKBoxzJYx5fg3U1aM5eXUutw,123
369
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/smolvlm/smolvlm.py,sha256=i-B_d0AxninzMWSHx-kc2X5nwp-0bmKnibjS7nXeKGA,2363
370
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/__init__.py,sha256=rGAttw-lYQ2HUXVeuDDprKq8ERq3WIIFnRsA9tYwAjo,252
371
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/lora.py,sha256=tGjvenjEQ8_1Az8Nz3smz5Mgvu20wOmBw8857egiWPM,2134
372
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/trainer.py,sha256=h16SaHt76JzFruXuidgXDx7_2evx4L0SecvzqLmhyZw,9081
373
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/utils.py,sha256=29oHf_7946YeJKP_-Dt-NPeN4xJq8Fj7Yv4jZKO9RWA,4909
374
185
  nexaai/binds/nexa_nexaml/libfftw3.3.dylib,sha256=Ul6NlZv0UhmXnnqAyFxCRCw-8pOsV5e4rc_9-wxrRJg,693424
375
186
  nexaai/binds/nexa_nexaml/libfftw3f.3.dylib,sha256=SKZE35Ly9R_nbMt7oWpObydvpK3HIo9-UhUA2KkeQyk,693920
376
187
  nexaai/binds/nexa_nexaml/libggml-base.dylib,sha256=eN6A-6ufUoRJdbdkWD7T-jV1M-FmMIRiO4D-g4ep9s4,650944
@@ -755,7 +566,7 @@ nexaai/utils/quantization_utils.py,sha256=FYcNSAKGlBqFDUTx3jSKOr2lnq4nyiyC0ZG8oS
755
566
  nexaai/vlm_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
756
567
  nexaai/vlm_impl/mlx_vlm_impl.py,sha256=pLtWm_ckz8a0U-AtAOMVseFDO4OVPvHyYO2KlfBaGYk,10833
757
568
  nexaai/vlm_impl/pybind_vlm_impl.py,sha256=FAbhpRJzHgI78r0mUvKybO97R1szvNhH0aTn_I52oT4,8597
758
- nexaai-1.0.19rc7.dist-info/METADATA,sha256=xfvVczRWdNhFztOjNjahKD3_DlvNAyBFV2gvVHnbEm4,1201
759
- nexaai-1.0.19rc7.dist-info/WHEEL,sha256=T2p57lol9__xkoU6aJTyN1Pm43ZpRU3q6km7mIbrAMs,114
760
- nexaai-1.0.19rc7.dist-info/top_level.txt,sha256=LRE2YERlrZk2vfuygnSzsEeqSknnZbz3Z1MHyNmBU4w,7
761
- nexaai-1.0.19rc7.dist-info/RECORD,,
569
+ nexaai-1.0.19rc8.dist-info/METADATA,sha256=_6I83vjzdeOT-tZ4Swm0kiOBCImquoJTEmD6KfKl-q4,1201
570
+ nexaai-1.0.19rc8.dist-info/WHEEL,sha256=T2p57lol9__xkoU6aJTyN1Pm43ZpRU3q6km7mIbrAMs,114
571
+ nexaai-1.0.19rc8.dist-info/top_level.txt,sha256=LRE2YERlrZk2vfuygnSzsEeqSknnZbz3Z1MHyNmBU4w,7
572
+ nexaai-1.0.19rc8.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- # patching the _resume method in phonemizer because logger.setLevel(logging.ERROR) doesn't work - the logger instance is created and stored in the package.
2
- try:
3
- from phonemizer.backend.espeak.words_mismatch import BaseWordsMismatch
4
-
5
- def silent_resume(self, nmismatch, nlines):
6
- """Silent version of _resume that suppresses warnings"""
7
- pass
8
-
9
- BaseWordsMismatch._resume = silent_resume
10
-
11
- except ImportError:
12
- pass
@@ -1,122 +0,0 @@
1
- from typing import Any, List, Optional, Sequence
2
- import argparse
3
- import sys
4
- import os
5
-
6
- import mlx.core as mx
7
- import numpy as np
8
-
9
- from ml import ASR, ASRConfig, ASRResult, Path as MLPath
10
- from mlx_audio.stt.utils import load_model
11
- from mlx_audio.stt.models.whisper.tokenizer import LANGUAGES
12
- from mlx_audio.stt.models.whisper.whisper import Model
13
- import soundfile as sf
14
- import scipy.signal
15
-
16
- from profiling import ProfilingMixin, StopReason
17
-
18
-
19
- class MlxAsr(ASR, ProfilingMixin):
20
- """MLX Audio implementation of ASR interface."""
21
-
22
- def __init__(
23
- self,
24
- model_path: MLPath,
25
- tokenizer_path: Optional[MLPath],
26
- language: Optional[str],
27
- device: Optional[str] = None,
28
- ) -> None:
29
- # Initialize profiling mixin
30
- ProfilingMixin.__init__(self)
31
-
32
- if os.path.isfile(model_path):
33
- model_path = os.path.dirname(model_path)
34
-
35
- super().__init__(model_path, tokenizer_path, language, device)
36
-
37
- # Load model immediately in constructor
38
- self.model: Model = load_model(model_path)
39
- self.model_path = model_path
40
-
41
- def destroy(self) -> None:
42
- """Destroy the model and free resources."""
43
- if self.model is not None:
44
- del self.model
45
- self.model = None
46
- mx.clear_cache()
47
-
48
- def close(self) -> None:
49
- """Close the model."""
50
- self.destroy()
51
-
52
- def transcribe(
53
- self,
54
- audio_path: MLPath,
55
- language: Optional[str] = None,
56
- config: Optional[ASRConfig] = None,
57
- clear_cache: bool = True,
58
- ) -> ASRResult:
59
- """Transcribe audio file to text."""
60
- if self.model is None:
61
- raise RuntimeError("Model not loaded")
62
-
63
- # Start profiling
64
- self._start_profiling()
65
- self._decode_start()
66
-
67
- try:
68
- result = self.model.generate(audio_path)
69
-
70
- if clear_cache:
71
- mx.clear_cache()
72
-
73
- self._decode_end()
74
- self._set_stop_reason(StopReason.ML_STOP_REASON_COMPLETED)
75
- self._end_profiling()
76
- except Exception as e:
77
- self._end_profiling()
78
- raise RuntimeError(f"Failed to transcribe audio file {audio_path}: {e}")
79
-
80
- # Extract confidence scores and timestamps
81
- confidence_scores = []
82
- timestamps = []
83
-
84
- # Handle different result types: Whisper (STTOutput) vs Parakeet (AlignedResult)
85
- if hasattr(result, 'segments') and result.segments:
86
- # Whisper STTOutput format
87
- for segment in result.segments:
88
- if 'avg_logprob' in segment:
89
- # Convert log probability to confidence score (0-1)
90
- confidence = max(0.0, min(1.0, np.exp(segment['avg_logprob'])))
91
- confidence_scores.append(confidence)
92
- else:
93
- confidence_scores.append(0.5) # Default confidence
94
-
95
- start_time = segment.get('start', 0.0)
96
- end_time = segment.get('end', 0.0)
97
- timestamps.append((start_time, end_time))
98
- elif hasattr(result, 'sentences') and result.sentences:
99
- # Parakeet AlignedResult format
100
- for sentence in result.sentences:
101
- confidence_scores.append(0.5) # Default confidence for Parakeet
102
- timestamps.append((sentence.start, sentence.end))
103
- else:
104
- # Single segment case or empty result
105
- confidence_scores.append(0.5)
106
- timestamps.append((0.0, 0.0)) # Default timestamps
107
-
108
- return ASRResult(
109
- transcript=result.text,
110
- confidence_scores=confidence_scores,
111
- timestamps=timestamps,
112
- duration_us=self._get_audio_duration_us(audio_path)
113
- )
114
-
115
- def list_supported_languages(self) -> List[str]:
116
- """List supported languages."""
117
- return list(LANGUAGES.keys())
118
-
119
- def _get_audio_duration_us(self, audio_path: MLPath) -> int:
120
- with sf.SoundFile(audio_path) as f:
121
- duration_us = f.frames / f.samplerate * 1e6
122
- return int(duration_us)
File without changes
@@ -1,25 +0,0 @@
1
- import atexit
2
-
3
- # Store the original atexit.register function
4
- _original_atexit_register = atexit.register
5
-
6
- def _filtered_atexit_register(func, *args, **kwargs):
7
- """
8
- Clean atexit interceptor that skips nanobind handlers to prevent segfaults due to MLX atexit cleanups.
9
- This should be registered early during Python runtime initialization.
10
- """
11
- # Skip nanobind handlers silently
12
- func_type_str = str(type(func))
13
- if 'nanobind' in func_type_str or func_type_str.startswith("<class 'nb_"):
14
- return lambda: None
15
-
16
- # Allow all other handlers to register normally
17
- return _original_atexit_register(func, *args, **kwargs)
18
-
19
- def install_atexit_filter():
20
- """Install the atexit filter to prevent problematic nanobind registrations."""
21
- atexit.register = _filtered_atexit_register
22
-
23
- def uninstall_atexit_filter():
24
- """Restore the original atexit.register function."""
25
- atexit.register = _original_atexit_register
File without changes
@@ -1,195 +0,0 @@
1
- #!/usr/bin/env python3
2
-
3
- import os
4
- import sys
5
- import time
6
- import math
7
- from pathlib import Path
8
-
9
- import cv2
10
- import numpy as np
11
- from PIL import Image, ImageDraw, ImageFont
12
-
13
- from .modeling.pp_ocr_v4 import Config, TextSystem
14
-
15
-
16
- def is_image_file(file_path):
17
- """Check if file is an image based on extension."""
18
- img_extensions = {".jpg", ".jpeg", ".png", ".bmp", ".tiff", ".tif", ".gif", ".rgb"}
19
- return Path(file_path).suffix.lower() in img_extensions
20
-
21
-
22
- def get_image_file_list(img_file):
23
- """Get list of image files from a directory or single file."""
24
- imgs_lists = []
25
- if img_file is None or not os.path.exists(img_file):
26
- raise Exception("not found any img file in {}".format(img_file))
27
-
28
- if os.path.isfile(img_file) and is_image_file(img_file):
29
- imgs_lists.append(img_file)
30
- elif os.path.isdir(img_file):
31
- for single_file in os.listdir(img_file):
32
- file_path = os.path.join(img_file, single_file)
33
- if is_image_file(file_path):
34
- imgs_lists.append(file_path)
35
- if len(imgs_lists) == 0:
36
- raise Exception("not found any img file in {}".format(img_file))
37
- return imgs_lists
38
-
39
-
40
- def check_and_read_gif(img_path):
41
- """Check if image is gif and read it properly."""
42
- if os.path.basename(img_path)[-3:] in ["gif", "GIF"]:
43
- gif = cv2.VideoCapture(img_path)
44
- ret, frame = gif.read()
45
- if not ret:
46
- print("Cannot read {}. This gif image maybe corrupted.".format(img_path))
47
- return None, False
48
- if len(frame.shape) == 2 or frame.shape[-1] == 1:
49
- frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2RGB)
50
- imgvalue = frame[:, :, ::-1]
51
- return imgvalue, True
52
- return None, False
53
-
54
-
55
- def draw_ocr_box_txt(
56
- image, boxes, txts, scores=None, drop_score=0.5, font_path="./doc/simfang.ttf"
57
- ):
58
- """Draw OCR results with boxes and text."""
59
- h, w = image.height, image.width
60
- img_left = image.copy()
61
- img_right = Image.new("RGB", (w, h), (255, 255, 255))
62
-
63
- import random
64
- random.seed(0)
65
-
66
- draw_left = ImageDraw.Draw(img_left)
67
- draw_right = ImageDraw.Draw(img_right)
68
-
69
- for idx, (box, txt) in enumerate(zip(boxes, txts)):
70
- if scores is not None and scores[idx] < drop_score:
71
- continue
72
-
73
- color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
74
- draw_left.polygon(box, fill=color)
75
- draw_right.polygon(
76
- [
77
- box[0][0],
78
- box[0][1],
79
- box[1][0],
80
- box[1][1],
81
- box[2][0],
82
- box[2][1],
83
- box[3][0],
84
- box[3][1],
85
- ],
86
- outline=color,
87
- )
88
-
89
- box_height = math.sqrt((box[0][0] - box[3][0]) ** 2 + (box[0][1] - box[3][1]) ** 2)
90
- box_width = math.sqrt((box[0][0] - box[1][0]) ** 2 + (box[0][1] - box[1][1]) ** 2)
91
-
92
- if box_height > 2 * box_width:
93
- font_size = max(int(box_width * 0.9), 10)
94
- try:
95
- font = ImageFont.truetype(font_path, font_size, encoding="utf-8")
96
- except:
97
- font = ImageFont.load_default()
98
- cur_y = box[0][1]
99
- for c in txt:
100
- try:
101
- bbox = font.getbbox(c)
102
- char_size = (bbox[2] - bbox[0], bbox[3] - bbox[1])
103
- except:
104
- char_size = (font_size, font_size)
105
- draw_right.text((box[0][0] + 3, cur_y), c, fill=(0, 0, 0), font=font)
106
- cur_y += char_size[1]
107
- else:
108
- font_size = max(int(box_height * 0.8), 10)
109
- try:
110
- font = ImageFont.truetype(font_path, font_size, encoding="utf-8")
111
- except:
112
- font = ImageFont.load_default()
113
- draw_right.text([box[0][0], box[0][1]], txt, fill=(0, 0, 0), font=font)
114
-
115
- img_left = Image.blend(image, img_left, 0.5)
116
- img_show = Image.new("RGB", (w * 2, h), (255, 255, 255))
117
- img_show.paste(img_left, (0, 0, w, h))
118
- img_show.paste(img_right, (w, 0, w * 2, h))
119
-
120
- return np.array(img_show)
121
-
122
-
123
- def load_model():
124
- """Load OCR model and return config and text system."""
125
- config = Config()
126
- ocr_system = TextSystem(config)
127
- return config, ocr_system
128
-
129
-
130
- def process_folder(config, ocr_system):
131
- """Process all images in the configured folder."""
132
- img_paths = get_image_file_list(config.image_dir)
133
- if not img_paths:
134
- print("[ERR] No images found in", config.image_dir)
135
- return
136
-
137
- out_root = Path(config.base_dir) / "output"
138
- txt_dir = out_root / "inference_txt"
139
- vis_dir = out_root / "inference_results"
140
- txt_dir.mkdir(parents=True, exist_ok=True)
141
- vis_dir.mkdir(parents=True, exist_ok=True)
142
-
143
- font = config.vis_font_path
144
-
145
- total = 0.0
146
- for idx, p in enumerate(img_paths, 1):
147
- img, is_gif = check_and_read_gif(p)
148
- if not is_gif:
149
- img = cv2.imread(p)
150
- if img is None:
151
- print(f"[WARN] skip {p}")
152
- continue
153
-
154
- t0 = time.time()
155
- boxes, recs = ocr_system(img)
156
- dt = time.time() - t0
157
- total += dt
158
-
159
- name = Path(p).stem
160
-
161
- with open(txt_dir / f"{name}.txt", "w", encoding="utf-8") as f:
162
- f.writelines(f"{txt}\n" for txt, sc in recs) # DO NOT write confidence score in txt file
163
-
164
- vis = draw_ocr_box_txt(
165
- Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)),
166
- boxes,
167
- [t for t, _ in recs],
168
- [s for _, s in recs],
169
- drop_score=config.drop_score,
170
- font_path=font,
171
- )
172
- cv2.imwrite(str(vis_dir / f"{name}.jpg"), vis[:, :, ::-1])
173
-
174
- print(f"[{idx}/{len(img_paths)}] {Path(p).name} boxes={len(boxes)} time={dt:.3f}s")
175
-
176
- print(f"\nDone {len(img_paths)} images in {total:.2f}s (avg {total/len(img_paths):.3f}s)")
177
-
178
-
179
- def main():
180
- """Main function to demonstrate OCR functionality."""
181
- print("📥 Loading OCR model...")
182
-
183
- # Load model and config
184
- config, ocr_system = load_model()
185
-
186
- print("✅ OCR model loaded successfully!")
187
- print(f"📂 Processing images from: {config.image_dir}")
188
- print("="*50)
189
-
190
- # Process images
191
- process_folder(config, ocr_system)
192
-
193
-
194
- if __name__ == "__main__":
195
- main()