mlx-vlm v0.4.4 attaches the image placeholder to the last message that is
not system or assistant. After a tool call that is the tool result, which
the chat template renders as text, so the next turn fails with "Image
features and image tokens do not match: tokens: 0". v0.6.12 keeps the
placeholder on the user message that carried the image.
The v0.4.4 pin (#9568) worked around the mlx-cuda wheels stopping at
0.31.1. They are at 0.32.4 now, and v0.6.12 (mlx>=0.32.0) resolves with
mlx[cuda12] and mlx[cuda13]. v0.7.x would need backend changes: it drops
mlx_vlm.tool_parsers, which backend.py imports.
Signed-off-by: gman <genx7up@users.noreply.github.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Blaizzy/mlx-vlm git HEAD bumped its constraint to mlx>=0.31.2, but
mlx-cuda-12 and mlx-cuda-13 are only published up to 0.31.1 on PyPI.
Since mlx[cudaXX]==0.31.2 forces a sibling wheel that doesn't exist,
pip backtracks through every older mlx[cudaXX], none of which satisfy
mlx>=0.31.2, producing ResolutionImpossible.
Pin all variants to the v0.4.4 tag (mlx>=0.30.0), which resolves
cleanly against mlx[cuda13]==0.31.1. cpu/mps weren't broken yet but
are pinned for consistency.
Assisted-by: Claude:claude-opus-4-7
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>