Add
image input to any MLX quant of GLM-5.2 with a ~1 GB sidecar: the frozen
MoonViT-3d vision tower from Kimi K2.6 plus the trained 49.5M-parameter
PatchMerger projector from
baseten/GLM-5.2-Vision-NVFP4
(Harry Partridge's vision retrofit), repackaged for Apple Silicon / MLX.
The GLM-5.2 text backbone is untouched — text-only behavior stays byte-identical.
1[vision]
2image_token_id = 154854
3model_type = "kimi_vl"
4weights_repo = "<this repo id>"
5processor_repo = "<this repo id>"
Point the card's model at a directory containing your GLM-5.2 MLX quant with
Baseten's
chat_template.jinja and this repo's
config.json additions
(
vision_config /
text_config /
media_placeholder_token_id). Assembly
scripts (symlink the backbone — no weight duplication):
build_glm52_vision_dir.py
and
build_glm52_vision_tower.py.
Verified live on a 2-Mac-Studio (M3 Ultra) tensor-parallel cluster over RDMA,
against both mlx-community/GLM-5.2-DQ4plus-q8 and mlx-community/GLM-5.2-mxfp4:
temp-0 deterministic, no cross-image cache bleed, text-only outputs identical
to the plain model.
MIT, following all parents. Full chain:
Z.ai (GLM-5.2, MIT) →
Moonshot AI (Kimi K2.6 MoonViT tower, Modified MIT) →
Harry Partridge /
Baseten (projector training + reference processor,
baseten/GLM-5.2-Vision-NVFP4,
MIT) →
exolabs (original K2.6 tower extraction for MLX) → this repackaging
(tensor remap documented in the build script). None of the upstream teams were
involved in this packaging.