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.
- nexaai/_stub.cpython-310-darwin.so +0 -0
- nexaai/_version.py +1 -1
- nexaai/binds/libnexa_bridge.dylib +0 -0
- {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/METADATA +1 -1
- {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/RECORD +7 -196
- nexaai/binds/nexa_mlx/py-lib/asr/__init__.py +0 -12
- nexaai/binds/nexa_mlx/py-lib/asr/interface.py +0 -122
- nexaai/binds/nexa_mlx/py-lib/common/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/common/utils.py +0 -25
- nexaai/binds/nexa_mlx/py-lib/cv/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/cv/generate.py +0 -195
- nexaai/binds/nexa_mlx/py-lib/cv/interface.py +0 -151
- nexaai/binds/nexa_mlx/py-lib/cv/main.py +0 -81
- nexaai/binds/nexa_mlx/py-lib/cv/modeling/pp_ocr_v4.py +0 -1736
- nexaai/binds/nexa_mlx/py-lib/embedding/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/embedding/generate.py +0 -333
- nexaai/binds/nexa_mlx/py-lib/embedding/interface.py +0 -617
- nexaai/binds/nexa_mlx/py-lib/embedding/main.py +0 -173
- nexaai/binds/nexa_mlx/py-lib/embedding/modeling/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/embedding/modeling/nexa_jina_v2.py +0 -399
- nexaai/binds/nexa_mlx/py-lib/image_gen/__init__.py +0 -1
- nexaai/binds/nexa_mlx/py-lib/image_gen/generate_sd.py +0 -244
- nexaai/binds/nexa_mlx/py-lib/image_gen/interface.py +0 -82
- nexaai/binds/nexa_mlx/py-lib/image_gen/main.py +0 -281
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/__init__.py +0 -306
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/clip.py +0 -116
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/config.py +0 -65
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/model_io.py +0 -386
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/sampler.py +0 -105
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/tokenizer.py +0 -100
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/unet.py +0 -460
- nexaai/binds/nexa_mlx/py-lib/image_gen/stable_diffusion/vae.py +0 -274
- nexaai/binds/nexa_mlx/py-lib/llm/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/llm/generate.py +0 -149
- nexaai/binds/nexa_mlx/py-lib/llm/interface.py +0 -764
- nexaai/binds/nexa_mlx/py-lib/llm/main.py +0 -68
- nexaai/binds/nexa_mlx/py-lib/rerank/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/rerank/generate.py +0 -174
- nexaai/binds/nexa_mlx/py-lib/rerank/interface.py +0 -287
- nexaai/binds/nexa_mlx/py-lib/rerank/main.py +0 -127
- nexaai/binds/nexa_mlx/py-lib/rerank/modeling/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/rerank/modeling/nexa_jina_rerank.py +0 -330
- nexaai/binds/nexa_mlx/py-lib/sd/__init__.py +0 -1
- nexaai/binds/nexa_mlx/py-lib/sd/interface.py +0 -362
- nexaai/binds/nexa_mlx/py-lib/sd/main.py +0 -286
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/__init__.py +0 -306
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/clip.py +0 -116
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/config.py +0 -65
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/model_io.py +0 -385
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/sampler.py +0 -105
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/tokenizer.py +0 -100
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/unet.py +0 -460
- nexaai/binds/nexa_mlx/py-lib/sd/modeling/vae.py +0 -274
- nexaai/binds/nexa_mlx/py-lib/tts/__init__.py +0 -12
- nexaai/binds/nexa_mlx/py-lib/tts/interface.py +0 -276
- nexaai/binds/nexa_mlx/py-lib/vlm/__init__.py +0 -3
- nexaai/binds/nexa_mlx/py-lib/vlm/generate.py +0 -572
- nexaai/binds/nexa_mlx/py-lib/vlm/generate_qwen3_vl.py +0 -294
- nexaai/binds/nexa_mlx/py-lib/vlm/generate_qwen3_vl_moe.py +0 -276
- nexaai/binds/nexa_mlx/py-lib/vlm/interface.py +0 -504
- nexaai/binds/nexa_mlx/py-lib/vlm/main.py +0 -320
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/convert.py +0 -68
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/aya_vision.py +0 -193
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/interpolate.py +0 -186
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/language.py +0 -233
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/aya_vision/vision.py +0 -503
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/base.py +0 -202
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/cache.py +0 -230
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/__init__.py +0 -10
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/conversation.py +0 -264
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/deepseek_vl_v2.py +0 -472
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/language.py +0 -591
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/processing_deepsek_vl_v2.py +0 -526
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/deepseek_vl_v2/vision.py +0 -356
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/florence2.py +0 -366
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/language.py +0 -488
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/florence2/vision.py +0 -591
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/gemma3.py +0 -213
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/language.py +0 -315
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3/vision.py +0 -238
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/__init__.py +0 -2
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/audio.py +0 -1038
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/config.py +0 -139
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/gemma3n.py +0 -322
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/language.py +0 -629
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/gemma3n/vision.py +0 -1022
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/__init__.py +0 -9
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/idefics2.py +0 -294
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/language.py +0 -191
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics2/vision.py +0 -267
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/idefics3.py +0 -175
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/language.py +0 -192
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/idefics3/vision.py +0 -233
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/__init__.py +0 -9
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/internvl_chat.py +0 -140
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/language.py +0 -220
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/processor.py +0 -393
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/internvl_chat/vision.py +0 -293
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kernels.py +0 -307
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/kimi_vl.py +0 -143
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/language.py +0 -509
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/kimi_vl/vision.py +0 -522
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/language.py +0 -386
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/llama4.py +0 -138
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llama4/vision.py +0 -560
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/language.py +0 -240
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/llava.py +0 -153
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava/vision.py +0 -259
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/__init__.py +0 -9
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/language.py +0 -236
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/llava_bunny.py +0 -256
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_bunny/vision.py +0 -303
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/language.py +0 -230
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/llava_next.py +0 -160
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/llava_next/vision.py +0 -243
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mistral3/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mistral3/mistral3.py +0 -283
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/language.py +0 -416
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/mllama.py +0 -172
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/mllama/vision.py +0 -499
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/language.py +0 -243
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/molmo.py +0 -133
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/molmo/vision.py +0 -465
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/__init__.py +0 -10
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/language.py +0 -230
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/multi_modality.py +0 -385
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/sam.py +0 -557
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/multi_modality/vision.py +0 -526
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/language.py +0 -282
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/paligemma.py +0 -160
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/paligemma/vision.py +0 -242
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/language.py +0 -21
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/phi3_v.py +0 -243
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/su_rope.py +0 -71
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/phi3_v/vision.py +0 -324
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/language.py +0 -229
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/pixtral.py +0 -161
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/pixtral/vision.py +0 -320
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/__init__.py +0 -2
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/config.py +0 -108
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/language.py +0 -490
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/qwen2_5_vl.py +0 -168
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_5_vl/vision.py +0 -414
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/__init__.py +0 -2
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/config.py +0 -104
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/language.py +0 -490
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/qwen2_vl.py +0 -167
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen2_vl/vision.py +0 -312
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/base.py +0 -117
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/cache.py +0 -531
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/generate.py +0 -701
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/rope_utils.py +0 -255
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/sample_utils.py +0 -303
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/llm_common/tokenizer_utils.py +0 -407
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/processor.py +0 -476
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3_vl/qwen3vl.py +0 -1223
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/__init__.py +0 -0
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/base.py +0 -117
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/cache.py +0 -531
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/generate.py +0 -701
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/rope_utils.py +0 -255
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/sample_utils.py +0 -303
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/llm_common/tokenizer_utils.py +0 -407
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/processor.py +0 -476
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/qwen3vl_moe.py +0 -1309
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/qwen3vl_moe/switch_layers.py +0 -210
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/smolvlm/__init__.py +0 -8
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/models/smolvlm/smolvlm.py +0 -62
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/processing_qwen2_5_vl.py +0 -209
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/processing_qwen2_vl.py +0 -215
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/prompt_utils.py +0 -474
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/sample_utils.py +0 -39
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/tokenizer_utils.py +0 -344
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/__init__.py +0 -9
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/lora.py +0 -70
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/trainer.py +0 -296
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/trainer/utils.py +0 -160
- nexaai/binds/nexa_mlx/py-lib/vlm/modeling/utils.py +0 -928
- {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/WHEEL +0 -0
- {nexaai-1.0.19rc7.dist-info → nexaai-1.0.19rc8.dist-info}/top_level.txt +0 -0
|
Binary file
|
nexaai/_version.py
CHANGED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
nexaai/__init__.py,sha256=L8oB7GFZZMGnUpCg0PecDbI_ycKuQak-ZEJ4Y12_QIw,2184
|
|
2
|
-
nexaai/_stub.cpython-310-darwin.so,sha256=
|
|
3
|
-
nexaai/_version.py,sha256=
|
|
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=
|
|
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.
|
|
759
|
-
nexaai-1.0.
|
|
760
|
-
nexaai-1.0.
|
|
761
|
-
nexaai-1.0.
|
|
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()
|