Splash 1.4.1
Splash 1.4.1 adds Ornith-1.5-122B and Flint, improves MoE performance on base M3/M4 Macs, and fixes startup and request stalls under memory pressure.
New models
Ornith-1.5-122B loads from GGUF or MLX with its matching DFlash2 draft selected automatically (#539, #560).
splash serve --model unsloth/Ornith-1.5-122B-GGUF:UD-Q4_K_XLGGUF supports vision. ornith-ai/Ornith-1.5-122B-MLX-4bit also includes its vision tower; --language-only is optional.
Flint, RecursiveSI's 40B-A2.5B MoE, serves from GGUF with automatic incoai/Flint-DFlash2 selection, tool calling, structured output, and up to 262,144 tokens of context (#573–#576).
splash serve --model unsloth/flint-GGUF:UD-Q4_K_XLFlint is text-only and decides when to reason itself; reasoning settings cannot force it on or off. MLX checkpoints are not supported.
Pruned-expert GGUFs now load, including ISTA's Flash-Next GSQ-RCO-Coder variants (#561).
Speed and memory
- Flint measured 190 tok/s across ten mixed prompts on an M5 Max with 36 GB, versus 89 tok/s for llama.cpp on the same Mac and UD-Q4_K_XL checkpoint. These are the pooled results from four runs (#576).
- Flint releases sliding-window K/V once it is no longer needed. With INT8 KV, cached pages beyond the window use 71% less memory; full-history attention is retained (#574).
- Faster MoE kernels on base M3/M4 GPUs with ten cores or fewer. On the ten-core M4, most tested formats took 12–45% less GPU time per MoE layer in small-batch benchmarks. This is a kernel measurement, not an end-to-end speedup (#578).
Fixes
- Low-memory startup: release idle warmup buffers before checking the host memory reserve, avoiding false startup refusals on 24 GB Macs. Startup failures also report their actual reason instead of a generic EOF error (#577, #563).
- Large images: fix GPU timeouts when the 27B's image encoding overlaps ANE prefill. Image-encoding commands run on the GPU; subsequent text chunks still use ANE (#593).
- Concurrent requests: fix queued requests stalling under memory pressure while another request grows its KV cache, while preserving capacity for long single requests (#579).
- Accept split GGUFs whose first file contains only metadata (#560).
- Report missing MLX vision shards clearly and suggest
--language-onlyfor affected checkpoints (#568). - Update Pillow to 13.0.0 and certifi to 2026.10.19 (#558).
- Improve model verification checks, including penalty and warmup-EOS checks, memory handling, and stale weight records (#562, #564–#567).
Upgrade
Existing GGUF installations refresh derived metadata locally on first start, reusing downloaded weights. Their persistent conversation cache starts fresh because the model identity changes. Existing MLX cache layouts remain compatible when model and draft identities are unchanged.
Thanks to @zhijian-liu, @ezoushen, @wmTJc9IK0Q, @linson007, @cresslank, @Litee and @realzop for contributions, reports and testing.
Full changelog: 1.4.0...1.4.1