moondream 2.2.0__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.4.0
4
+
5
+ - Added fast, memory-efficient local transcription with `moondream/parakeet-redux` on CPUs, Apple silicon, and CUDA, including pause-aware processing for long audio.
6
+
7
+ ## 2.3.0
8
+
9
+ - Upgraded Photon local inference to `kestrel 0.7.2`.
10
+ - Expanded fast Qwen 3.5 and Qwen 3.6 35B-A3B inference across NVIDIA
11
+ Ampere, Hopper, and Blackwell GPUs, including changing request concurrency.
12
+ - Kept block-scaled Qwen prefill projections on the packed GPU path.
13
+ - Corrected multimodal Qwen chat token accounting for conversations with
14
+ image inputs.
15
+
16
+ See the underlying engine [0.7.2](https://github.com/m87-labs/kestrel/blob/main/CHANGELOG.md#072--2026-09-13)
17
+ release notes for the complete engine changes.
18
+
3
19
  ## 2.2.0
4
20
 
5
21
  - Photon's optimized local inference now spans NVIDIA Ampere, Ada, Hopper, and
@@ -9,8 +25,6 @@
9
25
  - Added accelerated Whisper transcription on L4 and RTX 3090.
10
26
  - Reduced transcription latency and host overhead for Qwen ASR and Parakeet,
11
27
  including one-at-a-time workloads.
12
- - A standard `pip install moondream==2.2.0` now selects the matching optimized
13
- Photon runtime and GPU kernels automatically.
14
28
 
15
29
  See the underlying engine [0.7.1](https://github.com/m87-labs/kestrel/blob/main/CHANGELOG.md#071--2026-09-09)
16
30
  release notes for the complete engine changes.
@@ -1,3 +1,20 @@
1
+ Metadata-Version: 2.4
2
+ Name: moondream
3
+ Version: 2.4.0
4
+ Summary: Official Python interface for Moondream Cloud and Photon local inference.
5
+ Author: M87 Labs
6
+ Author-email: contact@moondream.ai
7
+ Requires-Python: >=3.10,<3.15
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
14
+ Requires-Dist: kestrel (==0.8.0)
15
+ Requires-Dist: pillow (>=10.4.0)
16
+ Description-Content-Type: text/markdown
17
+
1
18
  # Moondream Python Client Library
2
19
 
3
20
  Official Python interface for [Moondream Cloud](https://moondream.ai/cloud) and Photon local inference on NVIDIA GPUs (Linux x86_64 / aarch64 or Windows) or Apple Silicon Macs.
@@ -30,7 +47,7 @@ Photon 2.1 includes these local model families:
30
47
  | Gemma 4 | E2B, E4B, 26B-A4B, and 31B base/instruction variants |
31
48
  | Whisper | Whisper large-v3-turbo transcription and English translation |
32
49
  | Qwen3-ASR | 0.6B and 1.7B transcription and forced alignment |
33
- | Parakeet TDT | 0.6B v3 transcription |
50
+ | Parakeet TDT | 0.6B v3 transcription; [parakeet-redux](https://huggingface.co/moondream/parakeet-redux), its ternary version for CPUs, Apple silicon, and CUDA |
34
51
 
35
52
  Use `md.photon_models()` to inspect the exact registered identifiers in the installed
36
53
  release. The returned client reports `model_id`, `tasks`, and
@@ -106,8 +123,12 @@ model = md.vl(api_key="<your-api-key>", model="moondream3-preview/ft_id@step")
106
123
  qwen = md.photon("Qwen/Qwen3.5-4B")
107
124
  gemma = md.photon("google/gemma-4-E2B-it")
108
125
  speech = md.photon("openai/whisper-large-v3-turbo")
126
+ speech = md.photon("moondream/parakeet-redux") # CPU, Apple silicon or CUDA
109
127
  ```
110
128
 
129
+ Photon picks CUDA when it is available, then Apple silicon, then the CPU; pass
130
+ `device="cpu"`, `"mps"` or `"cuda"` to choose.
131
+
111
132
  Photon clients share matching local engines. Call `model.close()` when an
112
133
  application is finished with a client, or use
113
134
  `with md.photon("moondream3.1-9B-A2B") as model:`
@@ -324,6 +345,16 @@ Set `task="translate"` for English translation. Other options include
324
345
  `language`, `sample_rate`, `initial_prompt`, `condition_on_previous_text`,
325
346
  `clip_start_seconds`, `clip_end_seconds`, and model sampling `settings`.
326
347
 
348
+ `moondream/parakeet-redux` is the ternary Parakeet: 178 MB of weights, 25
349
+ languages, and local inference on CPUs, Apple silicon, and CUDA. It takes
350
+ `timestamps` of `"none"`, `"segment"`, `"word"` or `"character"` and no
351
+ language or prompt options.
352
+
353
+ ```python
354
+ with md.photon("moondream/parakeet-redux") as speech:
355
+ print(speech.transcribe(audio="meeting.mp3")["text"])
356
+ ```
357
+
327
358
  ### Types
328
359
 
329
360
  | Type | Description |
@@ -340,3 +371,4 @@ Set `task="translate"` for English translation. Other options include
340
371
  - [Website](https://moondream.ai/)
341
372
  - [Playground](https://moondream.ai/playground)
342
373
  - [GitHub](https://github.com/vikhyat/moondream)
374
+
@@ -1,20 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: moondream
3
- Version: 2.2.0
4
- Summary: Official Python interface for Moondream Cloud and Photon local inference.
5
- Author: M87 Labs
6
- Author-email: contact@moondream.ai
7
- Requires-Python: >=3.10,<3.15
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3.10
10
- Classifier: Programming Language :: Python :: 3.11
11
- Classifier: Programming Language :: Python :: 3.12
12
- Classifier: Programming Language :: Python :: 3.13
13
- Classifier: Programming Language :: Python :: 3.14
14
- Requires-Dist: kestrel (==0.7.1)
15
- Requires-Dist: pillow (>=10.4.0)
16
- Description-Content-Type: text/markdown
17
-
18
1
  # Moondream Python Client Library
19
2
 
20
3
  Official Python interface for [Moondream Cloud](https://moondream.ai/cloud) and Photon local inference on NVIDIA GPUs (Linux x86_64 / aarch64 or Windows) or Apple Silicon Macs.
@@ -47,7 +30,7 @@ Photon 2.1 includes these local model families:
47
30
  | Gemma 4 | E2B, E4B, 26B-A4B, and 31B base/instruction variants |
48
31
  | Whisper | Whisper large-v3-turbo transcription and English translation |
49
32
  | Qwen3-ASR | 0.6B and 1.7B transcription and forced alignment |
50
- | Parakeet TDT | 0.6B v3 transcription |
33
+ | Parakeet TDT | 0.6B v3 transcription; [parakeet-redux](https://huggingface.co/moondream/parakeet-redux), its ternary version for CPUs, Apple silicon, and CUDA |
51
34
 
52
35
  Use `md.photon_models()` to inspect the exact registered identifiers in the installed
53
36
  release. The returned client reports `model_id`, `tasks`, and
@@ -123,8 +106,12 @@ model = md.vl(api_key="<your-api-key>", model="moondream3-preview/ft_id@step")
123
106
  qwen = md.photon("Qwen/Qwen3.5-4B")
124
107
  gemma = md.photon("google/gemma-4-E2B-it")
125
108
  speech = md.photon("openai/whisper-large-v3-turbo")
109
+ speech = md.photon("moondream/parakeet-redux") # CPU, Apple silicon or CUDA
126
110
  ```
127
111
 
112
+ Photon picks CUDA when it is available, then Apple silicon, then the CPU; pass
113
+ `device="cpu"`, `"mps"` or `"cuda"` to choose.
114
+
128
115
  Photon clients share matching local engines. Call `model.close()` when an
129
116
  application is finished with a client, or use
130
117
  `with md.photon("moondream3.1-9B-A2B") as model:`
@@ -341,6 +328,16 @@ Set `task="translate"` for English translation. Other options include
341
328
  `language`, `sample_rate`, `initial_prompt`, `condition_on_previous_text`,
342
329
  `clip_start_seconds`, `clip_end_seconds`, and model sampling `settings`.
343
330
 
331
+ `moondream/parakeet-redux` is the ternary Parakeet: 178 MB of weights, 25
332
+ languages, and local inference on CPUs, Apple silicon, and CUDA. It takes
333
+ `timestamps` of `"none"`, `"segment"`, `"word"` or `"character"` and no
334
+ language or prompt options.
335
+
336
+ ```python
337
+ with md.photon("moondream/parakeet-redux") as speech:
338
+ print(speech.transcribe(audio="meeting.mp3")["text"])
339
+ ```
340
+
344
341
  ### Types
345
342
 
346
343
  | Type | Description |
@@ -357,4 +354,3 @@ Set `task="translate"` for English translation. Other options include
357
354
  - [Website](https://moondream.ai/)
358
355
  - [Playground](https://moondream.ai/playground)
359
356
  - [GitHub](https://github.com/vikhyat/moondream)
360
-
@@ -5,6 +5,10 @@ import atexit
5
5
  import base64
6
6
  import json
7
7
  import os
8
+
9
+ # Set before torch loads so idle OpenMP workers do not compete with Kestrel's CPU kernels.
10
+ os.environ.setdefault("OMP_WAIT_POLICY", "passive")
11
+
8
12
  import queue
9
13
  import threading
10
14
  from concurrent.futures import TimeoutError as FutureTimeoutError
@@ -32,7 +36,12 @@ from .types import (
32
36
 
33
37
 
34
38
  def _default_photon_device() -> str:
35
- """Choose the local Photon device when the caller does not specify one."""
39
+ """Choose the local Photon device when the caller does not specify one.
40
+
41
+ CUDA when it is available, Apple silicon's MPS when it is, and the CPU
42
+ otherwise. Models that do not run on the CPU report that themselves when
43
+ the engine starts; passing ``device=`` overrides the choice.
44
+ """
36
45
  if torch.cuda.is_available():
37
46
  return "cuda"
38
47
  if torch.backends.cuda.is_built():
@@ -42,10 +51,7 @@ def _default_photon_device() -> str:
42
51
  return "cuda"
43
52
  if hasattr(torch.backends, "mps") and torch.backends.mps.is_available():
44
53
  return "mps"
45
- raise RuntimeError(
46
- "Photon local inference needs a supported accelerator, but neither "
47
- "CUDA nor Apple Silicon MPS is available in this Python environment."
48
- )
54
+ return "cpu"
49
55
 
50
56
 
51
57
  def _image_to_bytes(image: Union[Image.Image, EncodedImage]) -> bytes:
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "moondream"
7
- version = "2.2.0"
7
+ version = "2.4.0"
8
8
  description = "Official Python interface for Moondream Cloud and Photon local inference."
9
9
  authors = [ "M87 Labs <contact@moondream.ai>",]
10
10
  readme = "README.md"
@@ -21,4 +21,4 @@ reportMissingParameterType = false
21
21
  [tool.poetry.dependencies]
22
22
  python = ">=3.10,<3.15"
23
23
  pillow = ">=10.4.0"
24
- kestrel = "0.7.1"
24
+ kestrel = "0.8.0"
File without changes