โ ๏ธ Breaking Change
Impact Score: 7/10
LocalAI v2.23.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: localai ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
Breaking-change evidence from the source
Breaking Changes ๐ * feat(templates): use a single template for multimodals messages by @mudler in https://github.com/mudler/LocalAI/pull/3892 ### Bug fixes :bug:
โก Executive Summary (TL;DR)
LocalAI v2.23.0. Source highlight: feat(templates): use a single template for multimodals messages
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โ ๏ธ Breaking Changes & Deprecations (1)
- Breaking Changes ๐ * feat(templates): use a single template for multimodals messages by @mudler in https://github.com/mudler/LocalAI/pull/3892 ### Bug fixes :bug:
โจ New Features & Capabilities (6)
- feat(templates): use a single template for multimodals messages
- feat(vllm): expose 'load_format'
- feat(tts): Implement naive response_format for tts endpoint
- feat(diffusers): allow multiple lora adapters
- feat(ui): move model detailed info to a modal
- feat: allow to disable '/metrics' endpoints for local stats
โก Performance & Enhancements (1)
- chore(p2p): enhance logging
๐ง Bug Fixes & Patches (6)
- fix(parler-tts): use latest audiotools
- fix(parler-tts): pin grpcio-tools
- fix(gallery): overrides for parler-tts in the gallery
- fix(grpc): pass by modelpath
- fix(tts): correctly pass backend config when generating model options
- fix(phi3-vision): add multimodal template
๐ View Raw Release Notes (Original Developer Log)
<!-- Release notes generated using configuration in .github/release.yml at master -->
## What's Changed
### Breaking Changes ๐
* feat(templates): use a single template for multimodals messages by @mudler in https://github.com/mudler/LocalAI/pull/3892
### Bug fixes :bug:
* fix(parler-tts): use latest audiotools by @mudler in https://github.com/mudler/LocalAI/pull/3954
* fix(parler-tts): pin grpcio-tools by @mudler in https://github.com/mudler/LocalAI/pull/3960
* fix(gallery): overrides for parler-tts in the gallery by @mudler in https://github.com/mudler/LocalAI/pull/3962
* fix(grpc): pass by modelpath by @mudler in https://github.com/mudler/LocalAI/pull/4023
* fix(tts): correctly pass backend config when generating model options by @mudler in https://github.com/mudler/LocalAI/pull/4091
### Exciting New Features ๐
* feat(vllm): expose 'load_format' by @mudler in https://github.com/mudler/LocalAI/pull/3943
* feat(tts): Implement naive response_format for tts endpoint by @n-Arno in https://github.com/mudler/LocalAI/pull/4035
* feat(diffusers): allow multiple lora adapters by @mudler in https://github.com/mudler/LocalAI/pull/4081
* feat(ui): move model detailed info to a modal by @mudler in https://github.com/mudler/LocalAI/pull/4086
* feat: allow to disable '/metrics' endpoints for local stats by @mudler in https://github.com/mudler/LocalAI/pull/3945
* feat: add flux single file support by @sozercan in https://github.com/mudler/LocalAI/pull/3959
### ๐ง Models
* fix(phi3-vision): add multimodal template by @mudler in https://github.com/mudler/LocalAI/pull/3944
* models(gallery): add l3.1-moe-2x8b-v0.2 by @mudler in https://github.com/mudler/LocalAI/pull/3969
* models(gallery): add llama3.1-darkstorm-aspire-8b by @mudler in https://github.com/mudler/LocalAI/pull/3970
* models(gallery): add llama-3.2-sun-2.5b-chat by @mudler in https://github.com/mudler/LocalAI/pull/3971
* models(gallery): add darkest-muse-v1 by @mudler in https://github.com/mudler/LocalAI/pull/3973
* models(gallery): add llama-3.2-3b-instruct-uncensored by @mudler in https://github.com/mudler/LocalAI/pull/3974
* models(gallery): add thebeagle-v2beta-32b-mgs by @mudler in https://github.com/mudler/LocalAI/pull/3975
* models(gallery): add l3.1-70blivion-v0.1-rc1-70b-i1 by @mudler in https://github.com/mudler/LocalAI/pull/3977
* models(gallery): add llama-3.1-hawkish-8b by @mudler in https://github.com/mudler/LocalAI/pull/3978
* models(gallery): add quill-v1 by @mudler in https://github.com/mudler/LocalAI/pull/3980
* models(gallery): add delirium-v1 by @mudler in https://github.com/mudler/LocalAI/pull/3981
* models(gallery): add magnum-v4-9b by @mudler in https://github.com/mudler/LocalAI/pull/3983
* models(gallery): add llama-3-whiterabbitneo-8b-v2.0 by @mudler in https://github.com/mudler/LocalAI/pull/3984
* models(gallery): add l3-nymeria-maid-8b by @mudler in https://github.com/mudler/LocalAI/pull/3985
* models(gallery): add meraj-mini by @mudler in https://github.com/mudler/LocalAI/pull/3987
* models(gallery): add granite-3.0-1b-a400m-instruct by @mudler in https://github.com/mudler/LocalAI/pull/3994
* models(gallery): add moe-girl-800ma-3bt by @mudler in https://github.com/mudler/LocalAI/pull/3995
* models(gallery): add spiral-da-hyah-qwen2.5-72b-i1 by @mudler in https://github.com/mudler/LocalAI/pull/4022
* models(gallery): add llama3.1-bestmix-chem-einstein-8b by @mudler in https://github.com/mudler/LocalAI/pull/4028
* models(gallery): add starcannon-unleashed-12b-v1.0 by @mudler in https://github.com/mudler/LocalAI/pull/4032
* models(gallery): add smollm2-1.7b-instruct by @mudler in https://github.com/mudler/LocalAI/pull/4033
* models(gallery): add control-8b-v1.1 by @mudler in https://github.com/mudler/LocalAI/pull/4039
* models(gallery): add whiterabbitneo-2.5-qwen-2.5-coder-7b by @mudler in https://github.com/mudler/LocalAI/pull/4042
* models(gallery): add llama-3.1-whiterabbitneo-2-8b by @mudler in https://github.com/mudler/LocalAI/pull/4043
* models(gallery): add g2-9b-aletheia-v1 by @mudler in https://github.com/mudler/LocalAI/pull/4056
* models(gallery): add cybertron-v4-qw7b-mgs by @mudler in https://github.com/mudler/LocalAI/pull/4063
* models(gallery): add g2-9b-sugarquill-v0 by @mudler in https://github.com/mudler/LocalAI/pull/4073
* chore(model-gallery): :arrow_up: update checksum by @localai-bot in https://github.com/mudler/LocalAI/pull/4080
* models(gallery): add q25-1.5b-veolu by @mudler in https://github.com/mudler/LocalAI/pull/4088
* models(gallery): add valor-7b-v0.1 by @mudler in https://github.com/mudler/LocalAI/pull/4089
* models(gallery): add tess-r1-limerick-llama-3.1-70b by @mudler in https://github.com/mudler/LocalAI/pull/4095
* models(gallery): add llenn-v0.75-qwen2.5-72b-i1 by @mudler in https://github.com/mudler/LocalAI/pull/4098
* models(gallery): add eva-qwen2.5-14b-v0.2 by @mudler in https://github.com/mudler/LocalAI/pull/4099
* models(gallery): add opencoder-8b instruct and base by @mudler in https://github.com/mudler/LocalAI/pull/4101
* models(gallery): add opencoder-1.5b instruct and base by @mudler in https://github.com/mudler/LocalAI/pull/4102
* models(gallery): add tissint-14b-128k-rp by @mudler in https://github.com/mudler/LocalAI/pull/4103
* models(gallery): add tq2.5-14b-sugarquill-v1 by @mudler in https://github.com/mudler/LocalAI/pull/4104
### ๐ Documentation and examples
* docs: add Homebrew as an option to install on MacOS by @mauromorales in https://github.com/mudler/LocalAI/pull/3946
* chore: drop examples folder now that LocalAI-examples has been created by @dave-gray101 in https://github.com/mudler/LocalAI/pull/4017
### ๐ Dependencies
* chore(deps): Bump llama-index from 0.11.17 to 0.11.19 in /examples/chainlit by @dependabot in https://github.com/mudler/LocalAI/pull/3893
* chore(deps): Bump weaviate-client from 4.8.1 to 4.9.0 in /examples/chainlit by @dependabot in https://github.com/mudler/LocalAI/pull/3894
* chore(deps): Bump langchain from 0.3.3 to 0.3.4 in /examples/functions by @dependabot in https://github.com/mudler/LocalAI/pull/3900
* chore(deps): Bump langchain-community from 0.3.2 to 0.3.3 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3923
* chore(deps): Bump docs/themes/hugo-theme-relearn from `007cc20` to `06e70da` by @dependabot in https://github.com/mudler/LocalAI/pull/3932
* chore(deps): Bump sqlalchemy from 2.0.35 to 2.0.36 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3920
* chore(deps): Bump yarl from 1.15.2 to 1.15.5 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3921
* chore(deps): Bump openai from 1.51.2 to 1.52.0 in /examples/langchain-chroma by @dependabot in https://github.com/mudler/LocalAI/pull/3908
* chore(deps): Bump llama-index from 0.11.17 to 0.11.19 in /examples/langchain-chroma by @dependabot in https://github.com/mudler/LocalAI/pull/3907
* chore(deps): Bump marshmallow from 3.22.0 to 3.23.0 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3917
* chore(deps): Bump openai from 1.51.2 to 1.52.0 in /examples/functions by @dependabot in https://github.com/mudler/LocalAI/pull/3901
* chore(deps): Bump yarl from 1.15.5 to 1.16.0 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3938
* chore(deps): Bump openai from 1.51.2 to 1.52.2 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3993
* chore(deps): Bump torchvision from 0.18.1+rocm6.0 to 0.20.0+cu118 in /backend/python/diffusers by @dependabot in https://github.com/mudler/LocalAI/pull/3997
* chore(deps): Bump docs/themes/hugo-theme-relearn from `06e70da` to `28fce6b` by @dependabot in https://github.com/mudler/LocalAI/pull/3986
* chore(deps): Bump llama-index from 0.11.19 to 0.11.20 in /examples/langchain-chroma by @dependabot in https://github.com/mudler/LocalAI/pull/3988
* chore(deps): Bump openai from 1.52.0 to 1.52.2 in /examples/langchain-chroma by @dependabot in https://github.com/mudler/LocalAI/pull/3989
* chore(deps): Bump llama-index from 0.11.19 to 0.11.20 in /examples/chainlit by @dependabot in https://github.com/mudler/LocalAI/pull/3990
* chore(deps): Bump tqdm from 4.66.5 to 4.66.6 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3991
* chore(deps): Bump frozenlist from 1.4.1 to 1.5.0 in /examples/langchain/langchainpy-localai-example by @dependabot in https://github.com/mudler/LocalAI/pull/3992
* chore(deps): Bump openai from 1.52.0 to 1.52.2 in /examples/functions by @dependabot in https://github.com/mudler/LocalAI/pull/4000
* chore(deps): bump grpcio to 1.67.1 by @mudler in https://github.com/mudler/LocalAI/pull/4009
* chore(deps): bump llama-cpp to 8f275a7c4593aa34147595a90282cf950a853690 by @mudler in https://github.com/mudler/LocalAI/pull/4016
### Other Changes
* docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/3936
* chore: :arrow_up: Update ggerganov/llama.cpp to `e01c67affe450638162a1a457e2e57859ef6ebf0` by @localai-bot in https://github.com/mudler/LocalAI/pull/3937
* chore: update go-piper to latest by @dave-gray101 in https://github.com/mudler/LocalAI/pull/3939
* chore: :arrow_up: Update ggerganov/llama.cpp to `c8c07d658a6cefc5a50cfdf6be7d726503612303` by @localai-bot in https://github.com/mudler/LocalAI/pull/3940
* chore: :arrow_up: Update ggerganov/whisper.cpp to `0fbaac9c891055796456df7b9122a70c220f9ca1` by @localai-bot in https://github.com/mudler/LocalAI/pull/3950
* chore: :arrow_up: Update ggerganov/llama.cpp to `0a1c750c80147687df267114c81956757cc14382` by @localai-bot in https://github.com/mudler/LocalAI/pull/3948
* chore: :arrow_up: Update ggerganov/llama.cpp to `958367bf530d943a902afa1ce1c342476098576b` by @localai-bot in https://github.com/mudler/LocalAI/pull/3956
* chore(python): update backend sample to consume grpcio from venv by @mudler in https://github.com/mudler/LocalAI/pull/3961
* fix(ci): drop grpcio-tools pin to apple CI test run by @mudler in https://github.com/mudler/LocalAI/pull/3964
* chore: :arrow_up: Update ggerganov/llama.cpp to `668750357e66bfa3d1504b65699f5a0dfe3cb7cb` by @localai-bot in https://github.com/mudler/LocalAI/pull/3965
* fix(parler-tts): pin protobuf by @mudler in https://github.com/mudler/LocalAI/pull/3963
* chore: change url to github repository by @mudler in https://github.com/mudler/LocalAI/pull/3972
* chore: :arrow_up: Update ggerganov/llama.cpp to `cc2983d3753c94a630ca7257723914d4c4f6122b` by @localai-bot in https://github.com/mudler/LocalAI/pull/3976
* chore: :arrow_up: Update ggerganov/llama.cpp to `8841ce3f439de6e770f70319b7e08b6613197ea7` by @localai-bot in https://github.com/mudler/LocalAI/pull/3979
* Revert "chore(deps): Bump torchvision from 0.18.1+rocm6.0 to 0.20.0+cu118 in /backend/python/diffusers" by @mudler in https://github.com/mudler/LocalAI/pull/4008
* chore: :arrow_up: Update ggerganov/llama.cpp to `61715d5cc83a28181df6a641846e4f6a740f3c74` by @localai-bot in https://github.com/mudler/LocalAI/pull/4006
* chore: :arrow_up: Update ggerganov/whisper.cpp to `d4bc413505b2fba98dffbb9a176ddd1b165941d0` by @localai-bot in https://github.com/mudler/LocalAI/pull/4005
* chore: :arrow_up: Update ggerganov/whisper.cpp to `55e422109b3504d1a824935cc2681ada7ee9fd38` by @localai-bot in https://github.com/mudler/LocalAI/pull/4015
* chore(tests): expand timeout by @mudler in https://github.com/mudler/LocalAI/pull/4019
* chore: :arrow_up: Update ggerganov/llama.cpp to `61408e7fad082dc44a11c8a9f1398da4837aad44` by @localai-bot in https://github.com/mudler/LocalAI/pull/4021
* chore: :arrow_up: Update ggerganov/whisper.cpp to `19dca2bb1464326587cbeb7af00f93c4a59b01fd` by @localai-bot in https://github.com/mudler/LocalAI/pull/4020
* chore(tests): bump timeouts by @mudler in https://github.com/mudler/LocalAI/pull/4024
* chore: :arrow_up: Update ggerganov/llama.cpp to `ab3d71f97f5b2915a229099777af00d3eada1d24` by @localai-bot in https://github.com/mudler/LocalAI/pull/4025
* chore: :arrow_up: Update ggerganov/whisper.cpp to `aa037a60f32018f32e54be3531ec6cc7802899eb` by @localai-bot in https://github.com/mudler/LocalAI/pull/4026
* chore: :arrow_up: Update ggerganov/whisper.cpp to `0377596b77a3602e36430320cbe45f8c305ef04a` by @localai-bot in https://github.com/mudler/LocalAI/pull/4031
* chore: :arrow_up: Update ggerganov/llama.cpp to `418f5eef262cea07c2af4f45ee6a88d882221fcb` by @localai-bot in https://github.com/mudler/LocalAI/pull/4030
* chore(docs): add top-header partial by @mudler in https://github.com/mudler/LocalAI/pull/4034
* chore: :arrow_up: Update ggerganov/llama.cpp to `42cadc74bda60afafb45b71b1a39d150ede0ed4d` by @localai-bot in https://github.com/mudler/LocalAI/pull/4037
* docs: Update documentation for text-to-audio feature regarding response_format by @n-Arno in https://github.com/mudler/LocalAI/pull/4038
* chore: :arrow_up: Update ggerganov/llama.cpp to `9830b6923b61f1e652a35afeac77aa5f886dad09` by @localai-bot in https://github.com/mudler/LocalAI/pull/4040
* chore: :arrow_up: Update mudler/go-piper to `e10ca041a885d4a8f3871d52924b47792d5e5aa0` by @localai-bot in https://github.com/mudler/LocalAI/pull/3949
* chore: :arrow_up: Update ggerganov/llama.cpp to `9f409893519b4a6def46ef80cd6f5d05ac0fb157` by @localai-bot in https://github.com/mudler/LocalAI/pull/4041
* chore: :arrow_up: Update ggerganov/llama.cpp to `d5a409e57fe8bd24fef597ab8a31110d390a6392` by @localai-bot in https://github.com/mudler/LocalAI/pull/4079
* chore: :arrow_up: Update ggerganov/llama.cpp to `b8deef0ec0af5febac1d2cfd9119ff330ed0b762` by @localai-bot in https://github.com/mudler/LocalAI/pull/4083
* fix(diffusers): correctly parse height and width request without parametrization by @mudler in https://github.com/mudler/LocalAI/pull/4082
* chore: hide raw safetensors files by @mudler in https://github.com/mudler/LocalAI/pull/4085
* chore: :arrow_up: Update ggerganov/llama.cpp to `5c333e014059122245c318e7ed4ec27d1085573c` by @localai-bot in https://github.com/mudler/LocalAI/pull/4087
* chore(p2p): enhance logging by @mudler in https://github.com/mudler/LocalAI/pull/4090
* chore: :arrow_up: Update ggerganov/llama.cpp to `97404c4a0374cac45c8c34a32d13819de1dd023d` by @localai-bot in https://github.com/mudler/LocalAI/pull/4093
* chore: :arrow_up: Update ggerganov/whisper.cpp to `31aea563a83803c710691fed3e8d700e06ae6788` by @localai-bot in https://github.com/mudler/LocalAI/pull/4092
* fix(container-images): install uv as system package by @mudler in https://github.com/mudler/LocalAI/pull/4094
* chore(refactor): drop unnecessary code in loader by @mudler in https://github.com/mudler/LocalAI/pull/4096
* chore: :arrow_up: Update ggerganov/llama.cpp to `ec450d3bbf9fdb3cd06b27c00c684fd1861cb0cf` by @localai-bot in https://github.com/mudler/LocalAI/pull/4097
* chore: :arrow_up: Update ggerganov/llama.cpp to `6423c65aa8be1b98f990cf207422505ac5a441a1` by @localai-bot in https://github.com/mudler/LocalAI/pull/4100
## New Contributors
* @n-Arno made their first contribution in https://github.com/mudler/LocalAI/pull/4035
**Full Changelog**: https://github.com/mudler/LocalAI/compare/v2.22.1...v2.23.0