In October 2026 an Apple Silicon Mac can run every model a small video editor needs without a server: a vision model to label clips, a model that calls tools, speech recognition with word timings, and one embedding space for text, frames, and audio. The best small options are task models measured in megabytes, from Cactus Compute and Desert Ant Labs, beside open general models from Google, OpenBMB, Liquid AI, and Qwen. Speech, sound, and image generation also run locally in seconds. Video generation is the exception: it works on a Mac, but a five-second clip still takes minutes.
This survey is written for Yapwing, a native Mac editor for captioned portrait videos that Hraness is building. Yapwing cuts a recording by editing its transcript, so it needs four models: vision for labeling clips, a tool-calling model, transcription, and multimodal embeddings. The four generation sections cover the media an editor might add. Each table lists the model, its size, license, the runtime that reaches a Mac, and what its authors report. Every figure comes from the linked model card or vendor page as of October 15, 2026; the vendors ran these benchmarks themselves, and numbers from different vendors are not directly comparable.
Two companies that build small task models
Cactus Compute ships one CPU engine and two models for it. Needle 3 is the tool-calling model: an 8 to 29 MB file that picks functions and fills their arguments, extracts typed fields from text, and returns text embeddings. Whistle is the speech-to-text model: 16.9 MB, with word timestamps and a speech embedding. Both load into the same Needle binary, which can transcribe a clip and answer it against your tools in one call. Both are Apache 2.0. Cactus also republishes Gemma 4, LFM2.5-VL, Qwen3.5, Parakeet, and Whisper in its own format.
Desert Ant Labs launched on September 8, 2026 with 18 single-task models for audio, vision, and text, 12 stable and six in beta, behind one Swift, Kotlin, and JavaScript SDK (launch post, Hraness reading digest). The team built them to replace cloud APIs in its video app, Detail, which makes the catalog unusually close to an editor’s needs: Voz for transcription, Align for word timestamps, Uhm for filler words, Clips for picking highlights from a transcript, Clear for audio cleanup, Who for speaker labels, and Eye for frame scoring. The models are source-available, not open source: the license is free below 100,000 monthly active devices per model and platform, requires a visible “Powered by Desert Ant Labs” credit, and forbids training a competing model on their outputs.
Vision for labeling clips
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| MiniCPM-V 4.7 1B1B | Apache 2.0 | llama.cpp (GGUF), Ollama | Native video input up to 128 frames. OpenBMB reports LongVideoBench 53.4 and MotionBench 54.55, ahead of Qwen3.5 0.8B and LFM2.5-VL 3B. |
| Gemma 4 E4B4.5B effective, 8B with embeddings | Apache 2.0 | llama.cpp (QAT GGUF), MLX, LiteRT | Reads images, video frames, and audio in one model. Google reports MMMU Pro 52.6%. |
| Liquid d1-3B3.1B | LFM Open License 1.0 | GGUF, MLX | Answers a set of named yes/no, choice, or score questions in one forward pass with no generated text. Liquid reports 30 ms a decision on an M5 Pro. |
| Liquid d1-omni-600M587M | LFM Open License 1.0 | GGUF, MLX | The same decision interface over images and up to 30 seconds of speech. Audio training covered English requests only. |
| Desert Ant Eye (closed beta)Not published | Desert Ant source-available | Swift SDK | Scores frames for composition, subject clarity, thumbnail quality, and aesthetics, adds tags, and groups near-duplicates. No public benchmark yet. |
Pick: MiniCPM-V 4.7 1B for free-form clip descriptions. It takes video directly, it is Apache 2.0, and OpenBMB released it in October 2026 with GGUF builds for llama.cpp. When labels come from a fixed list, such as shot type, indoor or outdoor, or whether a face is visible, Liquid’s d1 models are a better fit: they return a calibrated answer to each question in one pass and never produce free text to parse. Gemma 4 E4B is the choice when a label depends on what is said as well as what is shown.
A model that calls tools
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| Cactus Needle 329M to 121M, 8 to 29 MB file | Apache 2.0 | Needle engine (macOS arm64 binary, C API, Python, WASI) | Cactus reports 86.0% exact-call accuracy on Mobile Actions for the 121M model, against 82.4% for LFM2.5 1.2B and 65.1% for FunctionGemma 270M. On BFCL v4 it scores 50.2 to LFM2.5 1.2B’s 62.0. Built for single requests and extraction, not chat. |
| Gemma 4 E4B4.5B effective | Apache 2.0 | llama.cpp, MLX, Ollama | Native function calling. Google reports 42.2% on Tau2, against 24.5% for E2B and 69.0% for the 12B model. |
| LFM2.5-24B-A2B24B total, 2.45B active | LFM Open License 1.0 | GGUF, MLX (4 to 8 bit), ONNX | A mixture of experts with 2.45B active parameters. Liquid reports BFCL v4 65.01, against 65.00 for Qwen3.6-35B-A3B and 57.09 for Gemma 4 26B-A4B. |
| Qwen3.8-27B27B | Apache 2.0 | MLX, llama.cpp | The strongest open dense model in this survey. Qwen reports 73.0 on Terminal Bench 2.1 and 84.3 on OSWorld-Verified. At 27B dense parameters it is a model for a high-memory Mac, not for CPU-only use. |
Pick: Needle 3 for turning a request into one of Yapwing’s editing commands. Its decoder is constrained by a grammar compiled from the tool schemas, so every call parses, and an off-topic request returns an empty list. Cactus also reports that fine-tuning on one product’s tools lifts each Needle depth by 18 to 36 points on DroidCall. Needle is weaker on broad benchmarks such as BFCL v4, so a task with several dependent steps needs a general model. Gemma 4 E4B is the smaller general option. LFM2.5-24B-A2B scores higher on Liquid’s tool benchmarks but has to hold 24B parameters in memory.
Transcription
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| Cactus Whistle16.9 MB | Apache 2.0 | Needle engine on CPU | Word timestamps, seven languages, keyword biasing. Cactus reports 4.31% WER on LibriSpeech test-clean, 10.49% on test-other, and 11.1 ms to first token on an M4 Pro CPU. |
| Qwen3-ASR 1.7B and 0.6B1.7B and 0.6B | Apache 2.0 | llama.cpp (GGUF), MLX | 5.75% and 6.60% average WER on the Open ASR Leaderboard, the best open-weight scores in this survey. 52 languages and dialects; a separate 0.6B forced aligner adds timestamps. |
| Desert Ant Voz467 MB | Desert Ant source-available | Core ML (Swift SDK), ONNX | Parakeet TDT 0.6B v3, compressed for the Neural Engine. 7.40% average WER on six Open ASR sets against 7.00% for Whisper large-v3-turbo, with word starts within 83 ms of a forced aligner on average. Transcribes 10 minutes in 2.4 s on an M1 Mac mini. |
| Parakeet TDT 0.6B v3 / Whisper large-v3-turbo0.6B / 1.6 GB | CC BY 4.0 / MIT | Core ML, whisper.cpp, MLX | The common baselines. Parakeet v3 averages 6.38% on the Open ASR Leaderboard. |
Pick: Whistle, which Yapwing already uses. It is 28 times smaller than Voz, runs on the CPU with no other runtime, and returns the word timestamps that transcript cutting depends on. Qwen3-ASR 1.7B is the accuracy reference to test it against on real recordings. Two Desert Ant models fill gaps no recognizer covers: Uhm marks “uh,” “um,” and “hmm” to 20 ms without running speech recognition, and Align corrects the word timings from Apple’s SpeechAnalyzer, cutting average timing error by 65% on clean audio in Desert Ant’s tests.
Multimodal embeddings
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| EmbeddingGemma 2740M (270M text, 170M vision, 300M audio) | Apache 2.0 | MLX, llama.cpp (GGUF), ONNX, LiteRT, community Core ML | Text, images, video at 1 frame per second, and audio in one 768-dimension space. Google reports 50.67 Hit@1 on MMEB v2 video and 69.54 MRR@10 on MSEB audio retrieval. One 8,192-token input holds about 58 frames or 327 seconds of audio. |
| Qwen3-VL-Embedding 2B2B | Apache 2.0 | Transformers | Text, images, and video with 32K context and up to 2,048 dimensions. No audio. |
| jina-embeddings-v5-omni-small1.74B | CC BY-NC 4.0 | Transformers | Text, images, video, and audio. The license rules out commercial use. |
Pick: EmbeddingGemma 2. The original EmbeddingGemma, released in 2025, embedded text only. EmbeddingGemma 2, released October 6, 2026, puts text, images, video, and audio in one vector space, so a typed query, a voice memo, and a clip can be compared directly (Hraness reading digest). Its vision and audio encoders load separately: text alone needs 270M parameters, and text with images needs 440M. Vectors truncate from 768 to 256 dimensions with little loss in Google’s tables. The alternatives either drop audio, like Qwen3-VL-Embedding, or forbid commercial use, like Jina’s omni models.
Speech generation
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| Kyutai Pocket TTS100M | CC BY 4.0 | CPU (Python), MLX port, browser | Voice cloning from a WAV file, streaming, seven languages. Kyutai reports about 200 ms to first audio and 6x real time on two CPU cores of an M4 MacBook Air. |
| Kokoro-82M82M | Apache 2.0 | ONNX, MLX (mlx-audio) | Leads English intelligibility on the Hugging Face Open TTS Leaderboard with Supertonic 3 and Fish Audio S2 Pro. Fixed voices only. |
| Supertonic 3About 99M | OpenRAIL | ONNX Runtime | 31 languages through ONNX Runtime on CPU, with no GPU required. |
| KittenTTS 21.7B | Stellon Labs Community License | llama.cpp fork on CPU | A 1-bit speech model that clones a voice from 5 to 30 seconds of audio. The commercial grant ends at a usage threshold. |
Pick: Pocket TTS when a voice has to match the speaker, because it clones from a short recording and runs on two CPU cores. Kokoro is the smaller choice for fixed narrator voices. The Open TTS Leaderboard scores intelligibility and speaker similarity with automatic metrics; it does not measure naturalness, so listen before choosing.
Music and sound effects
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| Stable Audio 3 Small-SFX and Small-Music433M each | Stability AI Community License | CPU, Core ML, LiteRT | Separate sound-effect and music models, up to 120 seconds. Stability reports a 30-second clip in 1.72 s on Mac CPU and 0.63 s through Core ML. |
| MOSS-SoundEffect v2.0Not stated in the port | Apache 2.0 | MLX (community port) | Text to foley, ambience, and action sounds at 48 kHz, up to 30 seconds. The MLX port is a community project. |
| ACE-Step 1.52B DiT turbo, 4B XL | MIT | MLX on Apple Silicon | Full songs from 10 seconds to 10 minutes, with LoRA style training from a few songs. The 2B model runs in under 4 GB of VRAM; the 4B XL model needs at least 12 GB with offloading. |
Pick: Stable Audio 3 Small-SFX for sound effects and Small-Music for short beds, since both run on a Mac CPU in a few seconds. Read the Stability AI Community License before shipping. ACE-Step 1.5 is the MIT-licensed option for full songs.
Image generation
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| FLUX.2 [klein] 4B4B | Apache 2.0 | mflux (MLX) | Generation and multi-reference editing in one model. Black Forest Labs lists about 13 GB of VRAM. |
| Z-Image-Turbo6B | Apache 2.0 | mflux (MLX) | Eight steps, fits 16 GB devices. Tongyi reports the best open-source result on Alibaba AI Arena’s human-preference ranking. |
| Qwen-Image-2.1-Turbo7B | Qwen research license | mflux (MLX) | Eight steps, strong text rendering, transparent PNG output. The research license rules it out for a shipping product. |
Pick: FLUX.2 [klein] 4B for overlay images, because it generates and edits in one Apache 2.0 model and mflux runs it natively on Apple Silicon. Z-Image-Turbo is the alternative when realism matters more than editing.
Video generation
| Model and size | License | Mac runtime | What the source reports |
|---|---|---|---|
| FastMetal-5B-QAD5B | Apache 2.0 | FastVideo MLX runtime | A three-step INT8 student of Wan2.2-TI2V-5B. On an M4 Max it makes a five-second 720p clip in 151 s at a 9.34 GiB peak, or 47 s in fast mode. |
| FastMetal-1.3B-QAD1.3B | Apache 2.0 | FastVideo MLX runtime | Five seconds at 480p in 110 s with a 3.87 GiB peak. Runs on a fanless MacBook Air. |
| LTX-2.3 and LTX-2.5Not stated in the port | LTX-2.x Community License | MLX (community port) | Image-to-video, keyframes, retakes, and extensions. The community MLX port recommends 32 GB of RAM at int8, or 16 GB with block streaming. |
Pick: FastMetal-5B-QAD for generated b-roll. It is the only model here with published Mac timings at 720p, and it fits in 16 GB of unified memory. At 47 to 151 seconds a clip on an M4 Max, it suits a background job that imports the result as a new asset, not an interactive preview.
Limits
Every quality figure above is a vendor’s own measurement on public test sets. None of these models has been tested on Yapwing’s recordings. Desert Ant notes that clean audiobooks score 2 to 4% word error rate while meetings and podcasts score 10 to 13%, and that most real recordings sound like the second group. Licenses vary from Apache 2.0 to research-only, and several change terms at a revenue or usage threshold, so check the current license on the model page before shipping. Desert Ant Eye is in closed beta and has no published benchmark.