What's Changed
- Warn when resize_shape is ignored by a custom image processor by @eptan in #1829
- Add Qwen3.8-27B support by @Lazarus-931 in #1899
- fix(server): stop skipping KV cache quantization on "qat" model paths by @Lazarus-931 in #1955
- Add num_image_tokens estimation for dynamic-resolution processors by @eptan in #1950
- Use case-insensitive comparison for chat template detection by @lucasnewman in #1961
- Refactor MTP split pathways by @Lazarus-931 in #1935
- Remove surplus Qwen3-VL image placeholders by @byoan in #1941
- Load a custom model class from a model_file declared in config.json by @noahzelezny in #1926
- feat(server): alias reasoning_effort to reasoning_strength (Glimmer; supersedes #1843) by @nazerim in #1884
- GLM-4.7 attention with TurboQuant APC support by @lucasnewman in #1975
- fix(qwen3_omni): convert audio_feature_lengths to mel frames (#1620) by @Anai-Guo in #1948
- Assert sanitize() idempotency in tests and document the invariant by @danmackinlay in #1821
- Add Z-Image generation and conversion support by @scaryrawr in #1952
- Add continuous batching support to PoolingCache by @lucasnewman in #1974
- Fix instances of mx.arrays being implicitly used as integers by @lucasnewman in #1982
- Add LFM2.5 DSpark speculative decoding by @Blaizzy in #1980
- Make LFM2 DSpark exact: 2.90x dense and 1.24x MoE by @Blaizzy in #1987
- State the cached-decode invariant once instead of per test by @Lazarus-931 in #1992
- Stop CI from installing an older mlx than requirements allow by @Lazarus-931 in #1990
- Tweaks to add-model skill to reduce review burden by @lucasnewman in #1973
- Fix ArraysCache per-token Metal buffer leak on long hybrid-model generation (#1972) by @Lazarus-931 in #1984
- Fix Qwen3-Omni decode assigning RoPE position 0 to every token by @Lazarus-931 in #1993
- Fix DeepSeek-V4 quantization path aliases by @byoan in #1977
- Expose --top-p, --top-k and --min-p on the generate CLI by @Lazarus-931 in #1994
- Use integer Metal grid dimensions by @Lazarus-931 in #2006
- fix(server): enforce tool_choice on the Anthropic /v1/messages route (#2000) by @Anai-Guo in #2002
- Add Mage-Flow quantization support by @scaryrawr in #1979
- Ensure APC is reset before unloading a model to avoid stale cache state persisting by @lucasnewman in #2010
- Add exact Qwen3.8 27B DSpark speculative decoding by @Blaizzy in #1998
- Bump version to 0.6.16 by @Blaizzy in #2012
- Load text-only checkpoints that still advertise a vision tower by @Lazarus-931 in #1999
- feat: ship a PEP 561 py.typed marker so mlx-vlm's annotations are usable (#1970) by @Anai-Guo in #1985
- Add native ERNIE-Image generation and img2img support by @scaryrawr in #1954
- Add Qwen3.8 27B DFlash2 speculative decoding by @Blaizzy in #2014
New Contributors
- @eptan made their first contribution in #1829
- @noahzelezny made their first contribution in #1926
- @danmackinlay made their first contribution in #1821
Full Changelog: v0.6.15...v0.6.16