sbakus1528/gemma-4-E4B-it-mmproj-vision
gemma-4-E4B-it mmproj — vision only
The official Gemma 4 E4B multimodal projector ships vision and audio in one file. If your app only needs image understanding, the audio encoder is dead weight — and llama.cpp has no flag to disable one modality (--no-mmproj turns off both).
This is the same projector with the audio encoder removed. No weight value was modified.
On an 8 GB laptop GPU that is roughly one extra slot.
Verified, not assumed
Both files were loaded in llama-server and asked the same questions with the same image:
- synthetic image (3 blue squares, "how many?") — original:
3, this:3 - real 1920x1080 desktop screenshot ("what is this screen?") — both correctly identified Google Colab and that machine-learning work was in progress
A first attempt loaded fine but returned garbage (<unused49>): the repacking had flattened clip.vision.image_mean / image_std from [0,0,0] / [1,1,1] to scalars, so image normalization was wrong. Every key and tensor was present — only the values were broken. Worth knowing if you repack one yourself: comparing key lists is not enough, compare values.
What changed
- removed tensors:
a.*(751) andmm.a.input_projection.weight - kept tensors:
v.*(658) andmm.input_projection.weight - metadata:
clip.has_audio_encoder=false;clip.audio.*keys removed
Usage
llama-server -m gemma-4-E4B-it-Q4_K_M.gguf \
--mmproj gemma-4-E4B-it-mmproj-vision.gguf -ngl 99Audio input will not work with this file — that is the point. Use the original projector if you need it.
License
Apache-2.0, inherited from google/gemma-4-E4B-it. Source of the GGUF conversion: unsloth/gemma-4-E4B-it-GGUF. See NOTICE for the required attribution and the list of changes.
