kimi-k3.vision = false and no mmproj

#1
by erichartford - opened

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 in
    Kimi-K3-IQ2_XXS-Q2_K.gguf.parts.txt will need regenerating.
  • Worth correcting in the converter as well, so future builds are right at the
    source rather than patched after the fact.

Sign up or log in to comment