Back to Freedom.Tech Back
All LocalAI releasesAll versions
Release Mon, May 11, 2026 9 min read

LocalAI 4.2.0

Original release notes

LocalAI 4.2.0 Release!

LocalAI 4.2.0 is out!

This release teaches LocalAI to see and hear. New /v1/voice/* and /v1/audio/diarization endpoints, a full face-recognition pipeline with antispoofing, word-level timestamps for faster-whisper, and a client-cancellable Whisper. There is also a drop-in Ollama API, video generation in stable-diffusion.ggml, a redesigned chat with i18n and admin-configurable branding, eleven new backends, an interactive model config editor with autocomplete, and a hardened distributed mode v2. vLLM finally hits feature parity with llama.cpp and gets tensor-parallel distributed workers.

---

TL;DR

| Feature | Summary | |---------|---------| | Voice Recognition | New /v1/voice/*. Verify, identify, embed and analyze speakers. | | Face Recognition + Liveness | 1:1 verify, 1:N identify, detect, analyze, embed, and reject spoofed photos. | | Diarization | New /v1/audio/diarization endpoint, "who spoke when?" via sherpa-onnx + vibevoice.cpp. | | Better Transcriptions | Word-level timestamps, client-cancellable Whisper, segments + duration + language on the stream-done event. | | Ollama API | Drop-in compatibility. Point your ollama client straight at LocalAI. | | Video Generation | stable-diffusion.ggml now generates video (i2v, first-last-frame). | | Redesigned UI | Chat redesign, Nord palette, i18n (5 languages), admin-configurable branding. | | Interactive Model Editor | Autocomplete-driven config editor in the UI. | | Universal Importer | Imports across most backends, not just llama.cpp. | | Concurrency Groups | Per-model exclusive groups for safe backend loading. | | 11 New Backends | sglang, ik-llama-cpp, TurboQuant, sam.cpp, Kokoros, qwen3tts.cpp, tinygrad-multimodal, LocalVQE, vibevoice-cpp, insightface (liveness), voice-rec. | | vLLM @ parity | Feature parity with llama.cpp + tensor-parallel distributed workers + full engine_args. | | Distributed v2 | Hardened orchestrator, round-robin replicas, scoped Upgrade All, NATS install/upgrade split. |

---

New Features & Major Enhancements

Voice Recognition

LocalAI is now ears-on. New /v1/voice/* endpoints let you verify, identify, analyze and embed speakers, powered by a SpeechBrain + ONNX Python backend.

  • 1:1 Verify, "is this the same speaker?"
  • 1:N Identify, "who is talking, out of my enrolled users?"
  • Embeddings, voice fingerprints for your own pipelines
  • Analyze, age, gender, emotion attributes per segment

Pairs naturally with the new diarization endpoint for full speaker pipelines.

---

Face Recognition & Antispoofing

A complete face-biometrics pipeline, built on InsightFace + ONNX.

  • 1:1 Verify, match two faces
  • 1:N Identify, resolve a face against an enrolled set
  • Detection & Analysis, find faces, extract attributes (age, gender, emotion, race)
  • Embeddings, facial fingerprints for your own stack
  • Antispoofing (liveness), reject spoofed photos and videos

Samples never leave your machine. They go only to the running backend.

---

Diarization & a smarter audio pipeline

Audio is a first-class citizen now.

  • /v1/audio/diarization, segments speech by speaker turn (sherpa-onnx + vibevoice.cpp)
  • Word-level timestamps for faster-whisper
  • Client cancellation for Whisper via the ggml abort_callback. Stop a transcription mid-flight and free the GPU.
  • Stream-done metadata on /v1/audio/transcriptions. segments, duration and language on the final event.
  • Audio transformations UI (LocalVQE), explore audio FX directly from the React UI
  • Transcription error visibility, handler errors land in the access log and on the client

---

Ollama drop-in API

Point your existing Ollama client at LocalAI. Everything keeps working. Another front door, same engine.

OLLAMA_HOST=http://localhost:8080 ollama run qwen3

---

Video Generation

The stable-diffusion.ggml backend now generates video, with curated gallery entries for Wan 2.1 FLF2V 14B 720P and Wan i2v 720p, plus a new stablediffusion-ggml-development meta backend to track the cutting edge.

---

React UI: total refresh

A massive UI cycle landed in 4.2:

  • Chat redesign, cleaner layout, faster perceived latency, better message density
  • Editorial refresh with the Nord palette, calmer, more focused, dark-mode-first
  • Multilingual / i18n, English, Italiano, Espanol, Deutsch,
  • Brandable instance, admin-configurable name, tagline, and assets (logo, favicon)
  • Interactive model config editor, autocomplete over known fields, live validation, automatic file-renaming on save
  • Backend management UX, revamped backend list with concrete versions
  • Better error UX, distributed backend management errors surface cleanly

Self-host with your branding. The login page, sidebar, footer, and browser tab all pick up the instance name and logo.

---

Backend & model lifecycle

  • Backend versioning with automatic upgrade detection
  • Pin models so they survive the reaper
  • On-demand toggle per model to control auto-load
  • Concurrency groups, per-model exclusive groups so heavy backends won't trample each other
  • Universal importer, single flow that imports across most backends, with clean multi-shard GGUF handling and dedicated importers for vibevoice-cpp and whisper.cpp HF repos

---

New Backends!

| Backend | What it brings | |---|---| | sglang | High-throughput LLM serving + speculative decoding (EAGLE/EAGLE3/DFLASH/MTP) | | ik-llama.cpp | ikawrakow's llama.cpp fork | | TurboQuant | Quant-focused llama.cpp fork | | sam.cpp | Segment Anything detection | | Kokoros | Rust-native Kokoro TTS | | qwen3tts.cpp | Qwen3 TTS | | tinygrad-multimodal *(experimental)* | tinygrad-powered multimodal | | vibevoice.cpp | Diarization-grade speech | | LocalVQE | Audio transformations / FX | | insightface | Face antispoofing | | voice-rec | Speaker recognition / embeddings |

---

vLLM at parity (and beyond)

  • vLLM parity with llama.cpp, same feature surface, same ergonomics
  • vLLM engine_args, the full AsyncEngineArgs exposed via a generic YAML map
  • Tensor-parallel distributed workers, fan a single model across nodes
  • CUDA 13 builds for vLLM, vLLM-omni and sglang
  • L4T arm64 (CUDA 13), vLLM/vLLM-omni/sglang variants for Jetson-class arm64
  • MLX backend refactored, shared helpers and enhanced functionality
  • llama.cpp split_mode for explicit multi-GPU placement
  • Speculative decoding wired through for llama.cpp, Gemma 4 thinking support added
  • Vision / mtmd marker propagated from the backend via ModelMetadata

---

Distributed Mode v2

Distributed mode keeps maturing. This release was a hardening pass across the orchestration loop:

  • Orchestrator resilience, auto-upgrade routing, worker bind-wait, RAG-init crash, log-spam fixes
  • Round-robin across replicas of the same model
  • Upgrade All scoped to nodes that actually have the backend installed
  • NATS install / upgrade split, backend.upgrade no longer piggybacks on install
  • Cached-replica lookup honors NodeSelector, the reconciler no longer scales up empty backends
  • VRAM/RAM reporting correct on NVIDIA unified-memory hosts
  • Agent nodes, queue loops stop on teardown, dead-letter cap added
  • Autoscaling, load-model extracted from Route() and applied during autoscale

---

Auth & Security

  • Settings API, env-supplied ApiKeys are stripped before persisting (no accidental leaks)
  • grpc-server hardening, removed unsafe sprintf() in the C++ grpc server
  • OIDC, bumped go-oidc/v3 to 3.18.0
  • Security hardening pass across the codebase
  • AI coding assistants policy, LocalAI now follows the Linux kernel's DCO/attribution guidelines (Assisted-by: trailer, no AI co-authors)

---

Hardware & deployment

  • CUDA 13 for vLLM, vLLM-omni, and sglang
  • NVIDIA L4T arm64 (CUDA 13) for Jetson-class boards
  • ROCm 7.x bumped to latest
  • gfx1151 (Strix Halo / Ryzen AI MAX) support, AMDGPU_TARGETS exposed as a build-arg
  • Intel GPU, latest oneapi-basekit (b70 support) across Intel images
  • arm64 CI, cpu-whisperx and cpu-faster-whisper now ship arm64 images
  • whisperx, ROCm/HIPBLAS target dropped (pinned to rocm6.4 wheels)

---

Under the Hood

  • Better CLI errors with actionable guidance
  • golangci-lint baseline (new-from-merge-base) keeps drift in check
  • Coding-agent discoverability, new APIs let coding agents introspect and configure LocalAI
  • Autoparser, prefers backend-emitted chat deltas, correct logprob passthrough, strips partial reasoning tags during warm-up
  • Reasoning + tools, no more empty content from thinking models in retry loops
  • Streaming hygiene, deduped content, deduped tool calls, recovered reasoning, unique tool_call IDs in deferred flushes
  • HTTP, handler-error status now visible in the access log + transcription error surface
  • Backend monitor accepts model as a query parameter
  • Config loader, YAML backup files are ignored
  • GGUF thinking probe respects explicit reasoning config
  • Inference defaults refreshed from Unsloth
  • Embeddings on collection upload, dim changes handled gracefully
  • Python backends, JIT subprocesses use tempfile.gettempdir() instead of hardcoded /tmp
  • Draft model paths, relative paths now resolve against the models dir
  • whisper-cpp: implement streaming transcription and context cancellation

---

Notable fixes

  • Cascading user deletion on PostgreSQL, deleting a user removes all owned data
  • Importer emits all shards for multi-part GGUF models
  • Open Responses parses OpenAI-spec nested tool_choice and uses the correct setter
  • llama-cpp: server-chat.cpp included in grpc-server TU, common -> llama-common rename, turboquant common.h detection
  • ik-llama-cpp: adapted to common_grammar in sampling.h, patched clip.cpp for the new ggml_quantize_chunk signature
  • Kokoros: trait stubs (face_verify, face_analyze, audio_transcription_stream), CI publish
  • stable-diffusion.ggml: MP4 container forced in ffmpeg mux, new i2v options
  • Gallery: orphaned meta-backend uninstall, gemma-4 URIs, flux-kontext param overrides, Wan dedup, z-image-turbo load, Qwen3.5 typo override, tag-casing normalization
  • Streaming: content + tool-call dedup, reasoning recovery, unique tool-call IDs in deferred flush
  • Realtime: consume ChatDeltas when the C++ autoparser clears Response
  • Tool-calls: use SetFunctionCallNameString when forcing a specific tool
  • Faster-whisper: cast segment timestamps to int after multiplication
  • mlx-vlm: pinned to v0.4.4 to unblock CUDA builds
  • vLLM: dropped flash-attn wheel to avoid torch 2.10 ABI mismatch
  • Downloader: list supported URL schemes in DownloadFile errors
  • Backend: resolve relative draft_model paths against the models dir
  • CI: wire AMDGPU_TARGETS through the backend workflow, switch gallery-agent to sigs.k8s.io/yaml, recover rerankers + vllm-omni on aarch64, unbreak master CI for docs/kokoros/vibevoice-cpp ABI

---

Gallery additions

  • Wan 2.1 FLF2V 14B 720P (video)
  • Wan i2v 720p (image-to-video)
  • stablediffusion-ggml-development meta backend
  • chroma1-hd (diffusers)
  • Gemma 4 (+ mmproj)
  • EmbeddingGemma
  • Qwen 3.5, Qwen-ASR, OCR entries for llama.cpp
  • Qwen3-VL Reranker, Qwen3-VL Embedding (tagged)
  • A steady stream of automated gallery-agent model additions throughout the cycle

---

The Complete Local Stack for Privacy-First AI

The free, Open Source OpenAI alternative. Drop-in REST API compatible with OpenAI specs for local AI inferencing. No GPU required.

Link: https://github.com/mudler/LocalAI

Local AI agent management platform. Drop-in for OpenAI's Responses API, with advanced agentic capabilities and a no-code UI.

Link: https://github.com/mudler/LocalAGI

RESTful API and knowledge-base management providing persistent memory and storage for AI agents. Pairs with LocalAI and LocalAGI.

Link: https://github.com/mudler/LocalRecall

---

Thank You

LocalAI is a true FOSS movement, built by contributors, powered by community.

If you believe in privacy-first, self-hosted AI:

  • Star the repo
  • Contribute code, docs, translations or feedback
  • Share with others

Your support keeps this stack alive.

---

Full Changelog

Click to expand full changelog

What's Changed

Bug fixes :bug

  • fix(autoscaling): extract load model from Route() and use as well when doing autoscale by @mudler in https://github.com/mudler/LocalAI/pull/9270
  • fix(nodes): better detection if nodes goes down or model is not available by @mudler in https://github.com/mudler/LocalAI/pull/9274
  • fix: try to add whisperx and faster-whisper for more variants by @mudler in https://github.com/mudler/LocalAI/pull/9278
  • fix: thinking models with tools returning empty content (reasoning-only retry loop) by @mudler in https://github.com/mudler/LocalAI/pull/9290
  • fix(streaming): deduplicate tool call emissions during streaming by @mudler in https://github.com/mudler/LocalAI/pull/9292
  • fix(streaming): skip chat deltas for role-init elements to prevent first token duplication by @mudler in https://github.com/mudler/LocalAI/pull/9299
  • Fix load of z-image-turbo by @thelittlefireman in https://github.com/mudler/LocalAI/pull/9264
  • fix(agents): handle embedding model dim changes on collection upload by @mudler in https://github.com/mudler/LocalAI/pull/9365
  • fix(gallery): correct gemma-4 model URIs returning 404 by @mvanhorn in https://github.com/mudler/LocalAI/pull/9379