Repin Parakeet Redux to the current upstream revision

moondream/parakeet-redux was rewritten upstream on 2026-09-23 to a single
commit (2bf128600aac), so the pinned revision fad622f no longer resolves.
model.safetensors still downloads from the old revision, but config.json,
ternary.json, tokenizer.json and README.md return HTTP 404, which makes
`install.sh --install-model` fail.

The weights, config, ternary map and tokenizer at 2bf1286 have the same
size and SHA-256 as the old pins, so the model itself is unchanged. Only
the model card README.md differs (8533 -> 8832 bytes), so its pin is
updated along with the revision.

Fixes #1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bod09andClaude Opus 5.5 committed 2026-10-02 19:05:06 +01:00
1 parent 9ec5dd03ba
commit bbbd31fa6d
7 files changed
+13 -10

No files matched your search

+2 -2
View File
@@ -10,13 +10,13 @@
}, },
"model": { "model": {
"source": "https://huggingface.co/moondream/parakeet-redux", "source": "https://huggingface.co/moondream/parakeet-redux",
"revision": "fad622f25f303105c20d70e201bcc477c88b620c", "revision": "2bf128600aac4b16946f7ed8372e56117fe5e23b",
"files": [ "files": [
{"path": "model.safetensors", "size": 177774490, "sha256": "78ec25733ee0d0c1586d1346fc86db9d0c2e436e3a8ab1d32a82d1bb8f848d21"}, {"path": "model.safetensors", "size": 177774490, "sha256": "78ec25733ee0d0c1586d1346fc86db9d0c2e436e3a8ab1d32a82d1bb8f848d21"},
{"path": "config.json", "size": 12988, "sha256": "503c653b2e3bb788adbcb04f5abdee532d958686564081baeed133ff10143f6e"}, {"path": "config.json", "size": 12988, "sha256": "503c653b2e3bb788adbcb04f5abdee532d958686564081baeed133ff10143f6e"},
{"path": "ternary.json", "size": 57970, "sha256": "1221c6d3ce901ffe09c089da758a8db8b76189f80cff41c5afc244fc61e2051d"}, {"path": "ternary.json", "size": 57970, "sha256": "1221c6d3ce901ffe09c089da758a8db8b76189f80cff41c5afc244fc61e2051d"},
{"path": "tokenizer.json", "size": 1159960, "sha256": "bd321b096832a3f270bd3b2a88823957920f1a5c5ada71114a26ea729d0cbe91"}, {"path": "tokenizer.json", "size": 1159960, "sha256": "bd321b096832a3f270bd3b2a88823957920f1a5c5ada71114a26ea729d0cbe91"},
{"path": "README.md", "size": 8533, "sha256": "a8b327f983a8b8ff262ff7bead3a791fbed9350632002af8db85ab5cd84cdaa5"} {"path": "README.md", "size": 8832, "sha256": "930055e6bac7d75114e719850ffaffc8d327e73b4295518c38c81399acd63e46"}
] ]
}, },
"attribution": "Moondream/M87 Labs, Parakeet Redux, derived from NVIDIA Parakeet TDT 0.6B v3; original model card README.md retained with the files.", "attribution": "Moondream/M87 Labs, Parakeet Redux, derived from NVIDIA Parakeet TDT 0.6B v3; original model card README.md retained with the files.",
+1 -1
View File
@@ -93,7 +93,7 @@ and target application compatibility require further headset work.
## Inference runtime ## Inference runtime
Redux weights at `fad622f25f303105c20d70e201bcc477c88b620c` are CC-BY-4.0. Pinned Redux weights at `2bf128600aac4b16946f7ed8372e56117fe5e23b` are CC-BY-4.0. Pinned
file sizes/hashes and attribution live in `assets/backends/redux.json`; offline file sizes/hashes and attribution live in `assets/backends/redux.json`; offline
`--list-models`/`--check-model redux --model-dir /absolute/model` (or `--list-models`/`--check-model redux --model-dir /absolute/model` (or
`scripts/model-status.py`) verify without inference or downloads. Manifest `scripts/model-status.py`) verify without inference or downloads. Manifest
+5 -2
View File
@@ -226,9 +226,12 @@ may deliver at most once; cancellation invalidates it before any later reply.
## On-device Redux ## On-device Redux
Use the **same** `moondream/parakeet-redux` revision from the benchmark: Use the **same** `moondream/parakeet-redux` revision from the benchmark:
`fad622f25f303105c20d70e201bcc477c88b620c` (177,774,490-byte weight file), initially `2bf128600aac4b16946f7ed8372e56117fe5e23b` (177,774,490-byte weight file), initially
moondream 2.4.0 / kestrel 0.8.0. Do not substitute dense Ultra or silently fall moondream 2.4.0 / kestrel 0.8.0. Do not substitute dense Ultra or silently fall
back to desktop/cloud inference. back to desktop/cloud inference. The benchmark ran on revision
`fad622f25f303105c20d70e201bcc477c88b620c`, which no longer resolves after the
upstream history was rewritten; the weights, config, ternary map and tokenizer at
`2bf1286` are byte-identical to it (same SHA-256), only the model card README differs.
The earlier benchmark used this local API (its source belongs to the originating The earlier benchmark used this local API (its source belongs to the originating
repository, not this project): repository, not this project):
+1 -1
View File
@@ -45,7 +45,7 @@ prefix. ARM64/glibc packaging is not a claim of compatibility with arbitrary Lin
```sh ```sh
python3 scripts/package-release.py --stage /path/to/stage --output /existing/output \ python3 scripts/package-release.py --stage /path/to/stage --output /existing/output \
--version 0.1.202609241627 --arch linux-aarch64 \ --version 0.1.202609241627 --arch linux-aarch64 \
--model-revision fad622f25f303105c20d70e201bcc477c88b620c --external-runtime --model-revision 2bf128600aac4b16946f7ed8372e56117fe5e23b --external-runtime
``` ```
Use the actual binary's numeric `MAJOR.MINOR.YYYYMMDDHHMM` UTC version Use the actual binary's numeric `MAJOR.MINOR.YYYYMMDDHHMM` UTC version
+1 -1
View File
@@ -27,7 +27,7 @@ source-only, and Python packages are fetched from PyPI on the user's machine.
| Component | Where | License | | Component | Where | License |
| --- | --- | --- | | --- | --- | --- |
| Parakeet Redux weights, revision `fad622f25f303105c20d70e201bcc477c88b620c`, derived from NVIDIA Parakeet TDT 0.6B v3 by Moondream/M87 Labs; pinned sizes and hashes in `assets/backends/redux.json` | <https://huggingface.co/moondream/parakeet-redux> | CC-BY-4.0 | | Parakeet Redux weights, revision `2bf128600aac4b16946f7ed8372e56117fe5e23b`, derived from NVIDIA Parakeet TDT 0.6B v3 by Moondream/M87 Labs; pinned sizes and hashes in `assets/backends/redux.json` | <https://huggingface.co/moondream/parakeet-redux> | CC-BY-4.0 |
| Kestrel, `kestrel-kernels` | <https://github.com/m87-labs/kestrel> | Local inference is free and needs no API key, per the Kestrel README. Finetuned-model inference needs an API key and is not used here. | | Kestrel, `kestrel-kernels` | <https://github.com/m87-labs/kestrel> | Local inference is free and needs no API key, per the Kestrel README. Finetuned-model inference needs an API key and is not used here. |
| `moondream` | PyPI | See the package | | `moondream` | PyPI | See the package |
| PyTorch (CPU build) | <https://github.com/pytorch/pytorch> | BSD-3-Clause | | PyTorch (CPU build) | <https://github.com/pytorch/pytorch> | BSD-3-Clause |
+1 -1
View File
@@ -57,7 +57,7 @@ device="cpu", cpu_threads=threads)` and persistent
Install an **isolated** Python runtime with the Install an **isolated** Python runtime with the
moondream 2.4.0, kestrel 0.8.0 and compatible CPU dependencies; provide moondream 2.4.0, kestrel 0.8.0 and compatible CPU dependencies; provide
preinstalled local weights from revision preinstalled local weights from revision
`fad622f25f303105c20d70e201bcc477c88b620c` and pass its directory `2bf128600aac4b16946f7ed8372e56117fe5e23b` and pass its directory
explicitly. The code verifies exact sizes and SHA-256 of weights/config/tokenizer explicitly. The code verifies exact sizes and SHA-256 of weights/config/tokenizer
against `assets/backends/redux.json` via the shared, offline against `assets/backends/redux.json` via the shared, offline
`python/frameyap/model_files.py` schema/verifier before importing model libraries. `python/frameyap/model_files.py` schema/verifier before importing model libraries.
+2 -2
View File
@@ -13,13 +13,13 @@ from frameyap.model_files import DEFAULT_MANIFEST_DIR, ManifestError, load_backe
class BackendTests(unittest.TestCase): class BackendTests(unittest.TestCase):
def test_redux_manifest_preserves_pinned_artifacts_and_launcher_contract(self): def test_redux_manifest_preserves_pinned_artifacts_and_launcher_contract(self):
redux = load_backends()["redux"] redux = load_backends()["redux"]
self.assertEqual(redux.revision, "fad622f25f303105c20d70e201bcc477c88b620c") self.assertEqual(redux.revision, "2bf128600aac4b16946f7ed8372e56117fe5e23b")
self.assertEqual({f.path: (f.size, f.sha256) for f in redux.files}, { self.assertEqual({f.path: (f.size, f.sha256) for f in redux.files}, {
"model.safetensors": (177774490, "78ec25733ee0d0c1586d1346fc86db9d0c2e436e3a8ab1d32a82d1bb8f848d21"), "model.safetensors": (177774490, "78ec25733ee0d0c1586d1346fc86db9d0c2e436e3a8ab1d32a82d1bb8f848d21"),
"config.json": (12988, "503c653b2e3bb788adbcb04f5abdee532d958686564081baeed133ff10143f6e"), "config.json": (12988, "503c653b2e3bb788adbcb04f5abdee532d958686564081baeed133ff10143f6e"),
"ternary.json": (57970, "1221c6d3ce901ffe09c089da758a8db8b76189f80cff41c5afc244fc61e2051d"), "ternary.json": (57970, "1221c6d3ce901ffe09c089da758a8db8b76189f80cff41c5afc244fc61e2051d"),
"tokenizer.json": (1159960, "bd321b096832a3f270bd3b2a88823957920f1a5c5ada71114a26ea729d0cbe91"), "tokenizer.json": (1159960, "bd321b096832a3f270bd3b2a88823957920f1a5c5ada71114a26ea729d0cbe91"),
"README.md": (8533, "a8b327f983a8b8ff262ff7bead3a791fbed9350632002af8db85ab5cd84cdaa5"), "README.md": (8832, "930055e6bac7d75114e719850ffaffc8d327e73b4295518c38c81399acd63e46"),
}) })
self.assertEqual(redux.launcher["protocol"], "frameyap-worker-v1") self.assertEqual(redux.launcher["protocol"], "frameyap-worker-v1")
self.assertEqual(redux.launcher["arguments"], ["--model", "{model_dir}", "--threads", "{threads}", "--clip-dir", "{clip_dir}"]) self.assertEqual(redux.launcher["arguments"], ["--model", "{model_dir}", "--threads", "{threads}", "--clip-dir", "{clip_dir}"])