Views
No views yet
ManniX-ITA/Qwen3.6-27B-Omnimerge-v4: text + image + video, runnable natively on Apple Silicon via mlx-vlm.mlx-lm.-q --q-bits 4 --q-group-size 64) via mlx_vlm.convertmlx_vlm keeps the vision tower in higher precision by default; only the LM weights are 4-bit quantized)vision_tower.* weights — full vision encodermulti_modal_projector.* weights — vision → LM connectorpreprocessor_config.json — image preprocessingvideo_preprocessor_config.json — video preprocessingprocessor_config.json — chat-time processor wiringchat_template.jinja — Qwen3.5/3.6 chat template with image/video rolesmlx==0.30.0
mlx-cuda==0.30.0 ← ABI-coupled, must match mlx
mlx-lm==0.30.7 ← Qwen3.5/3.6 model_type support
mlx-vlm==0.3.12 (--no-deps) ← last version that doesn't transitively bump mlx
torch==2.11.0+cpu ← satisfies Qwen3VLVideoProcessor's torchvision dep
without disturbing mlx-cuda's nvidia-cublas pinmlx runtime, which has no CUDA dependency.omnimergekit/scripts/mlx_convert.sh (auto-detects vision_config and routes through mlx_vlm.convert). See MLX_CONVERT.md for the full pin rationale.pip install -U mlx-vlm1from mlx_vlm import load, generate
2from mlx_vlm.prompt_utils import apply_chat_template
3from mlx_vlm.utils import load_config
4
5repo = "ManniX-ITA/Qwen3.6-27B-Omnimerge-v4-MLX-VL-4bit"
6model, processor = load(repo)
7config = load_config(repo)
8
9# Pure-text generation
10prompt = apply_chat_template(processor, config,
11 "Write a Rust function that returns the n-th Fibonacci number iteratively.")
12print(generate(model, processor, prompt, max_tokens=512, verbose=True))
13
14# Vision (with an image)
15prompt = apply_chat_template(processor, config,
16 "Describe the image in detail, then state what's likely happening.",
17 num_images=1)
18print(generate(model, processor, prompt,
19 max_tokens=512, verbose=True, image=["path/to/image.png"]))
20
21# Video (with a clip)
22prompt = apply_chat_template(processor, config,
23 "Summarize what happens in this video.", num_videos=1)
24print(generate(model, processor, prompt,
25 max_tokens=512, verbose=True, video=["path/to/clip.mp4"]))<think>...</think>). Strip them in post-processing or use a chat template wrapper that handles them appropriately.| text-only | VL (this build) | |
|---|---|---|
| Loader | mlx_lm.load | mlx_vlm.load |
| Image / video input | ❌ | ✅ |
| Disk size | ~15 GB | ~16 GB |
| Resident RAM | ~16–17 GB | ~17–18 GB |
| Quality on text-only tasks | identical LM weights | identical LM weights |
ManniX-ITA/Qwen3.6-27B-Omnimerge-v4ManniX-ITA/Qwen3.6-27B-Omnimerge-v4-MLX-4bitManniX-ITA/Qwen3.6-27B-Omnimerge-v4-GGUFmannix/omnimerge-v4mann1x/omnimergekit