kimi-k3.vision = false and no mmproj
Kimi-K3-IQ2_XXS-Q2_K.gguf declares kimi-k3.vision = false (GGUF bool).
It should be true.
The mmproj should also be included.
https://huggingface.co/unsloth/Kimi-K3-GGUF/blob/main/mmproj-BF16.gguf
This flag and lack of mmproj will prevent vision from working.
Even if ds4 doesn't support vision - it won't harm to have the vision flag set to true and to include the mmproj.
Without the flag and the mmproj - another distribution of this quant will be required, which does have the flag and the mmproj included.
Reproduce
$ python3 -c "
from gguf import GGUFReader
r = GGUFReader('Kimi-K3-IQ2_XXS-Q2_K.gguf')
print(bool(r.get_field('kimi-k3.vision').parts[-1][0]))
"
False
$ python3 -c "
from gguf import GGUFReader
r = GGUFReader('mmproj-BF16.gguf')
print(bool(r.get_field('clip.has_vision_encoder').parts[-1][0]))
"
True
Suggested fix
kimi-k3.vision is a GGUF bool, so this is a one-byte in-place correction β
no re-quantisation, no change in file size, and no tensor-info offsets move:
Kimi-K3-IQ2_XXS-Q2_K.gguf.part-01-of-05
offset 538 (0x21a): 0x00 -> 0x01
I patched a local copy that way and verified it: file size unchanged, the
header still parses (2736 tensors, 14 KV, general.architecture = kimi-k3),
and a byte-level diff against the original reports exactly one differing byte.
Two follow-ups if you take that route:
Kimi-K3-IQ2_XXS-Q2_K.gguf.sha256(58d7624aβ¦) and the matching value inKimi-K3-IQ2_XXS-Q2_K.gguf.parts.txtwill need regenerating.- Worth correcting in the converter as well, so future builds are right at the
source rather than patched after the fact.