Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
3edeebb
fix(config): do not read a TTS speaker-encoder mmproj as vision support
mudler Aug 5, 2026
4d280d6
feat(llama-cpp): add TTS request option parsing helper
mudler Aug 5, 2026
0f03690
fix(llama-cpp): range-check the TTS top_k and top_p request params
mudler Aug 5, 2026
ecf6ebd
chore(llama-cpp): bump pin to f9e832c10 and carry the TTS server task
mudler Aug 5, 2026
cd42e80
feat(llama-cpp): implement the TTS and TTSStream RPCs
mudler Aug 6, 2026
5da3b2f
fix(llama-cpp): mask non-codec tokens for Qwen3-TTS generation
mudler Aug 6, 2026
b04de70
chore(llama-cpp): bump pin to 9de0fcf2b and drop the TTS codec mask
mudler Aug 6, 2026
1941a8b
fix(llama-cpp): clear the TTS slot sequence between requests
mudler Aug 6, 2026
60526ff
feat(llama-cpp): expose max_frames for TTS requests
mudler Aug 6, 2026
873d3c5
fix(llama-cpp): send the TTS sample rate up front, and tidy three rev…
mudler Aug 6, 2026
1c5ff4e
build(llama-cpp): let unpatched forks opt out of the TTS task
mudler Aug 6, 2026
e07fc57
fix(config): keep a TTS speaker-encoder projector out of vision detec…
mudler Aug 6, 2026
ea1fdc2
feat(gallery): add Qwen3-TTS entries for the llama-cpp backend
mudler Aug 6, 2026
67f1421
docs: cover Qwen3-TTS on the llama-cpp backend
mudler Aug 6, 2026
9805e62
fix(config): register llama-cpp as a TTS and voice-cloning backend
mudler Aug 6, 2026
bb392fb
fix(gallery): declare what nemotron-3-nano-omni actually accepts
mudler Aug 6, 2026
aac507d
fix(importers): import a Qwen3-TTS GGUF repo as TTS, not chat
mudler Aug 6, 2026
f48efa4
fix(llama-cpp): stop non-TTS models crashing on the new pin
mudler Aug 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions backend/cpp/bonsai/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ define bonsai-build
rm -rf $(CURRENT_MAKEFILE_DIR)/../bonsai-$(1)-build/patches
$(MAKE) -C $(CURRENT_MAKEFILE_DIR)/../bonsai-$(1)-build purge
bash $(LLAMA_CPP_DIR)/disable-score-task.sh $(CURRENT_MAKEFILE_DIR)/../bonsai-$(1)-build/grpc-server.cpp
bash $(LLAMA_CPP_DIR)/disable-tts-task.sh $(CURRENT_MAKEFILE_DIR)/../bonsai-$(1)-build/grpc-server.cpp
$(info $(GREEN)I bonsai build info:$(1)$(RESET))
LLAMA_REPO=$(LLAMA_REPO) LLAMA_VERSION=$(BONSAI_VERSION) \
$(MAKE) -C $(CURRENT_MAKEFILE_DIR)/../bonsai-$(1)-build llama.cpp
Expand Down Expand Up @@ -79,6 +80,7 @@ bonsai-cpu-all:
rm -rf $(CURRENT_MAKEFILE_DIR)/../bonsai-cpu-all-build/patches
$(MAKE) -C $(CURRENT_MAKEFILE_DIR)/../bonsai-cpu-all-build purge
bash $(LLAMA_CPP_DIR)/disable-score-task.sh $(CURRENT_MAKEFILE_DIR)/../bonsai-cpu-all-build/grpc-server.cpp
bash $(LLAMA_CPP_DIR)/disable-tts-task.sh $(CURRENT_MAKEFILE_DIR)/../bonsai-cpu-all-build/grpc-server.cpp
$(info $(GREEN)I bonsai build info:cpu-all-variants$(RESET))
LLAMA_REPO=$(LLAMA_REPO) LLAMA_VERSION=$(BONSAI_VERSION) \
$(MAKE) -C $(CURRENT_MAKEFILE_DIR)/../bonsai-cpu-all-build llama.cpp
Expand Down
5 changes: 5 additions & 0 deletions backend/cpp/llama-cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,9 @@ if(LLAMA_GRPC_BUILD_TESTS)
target_include_directories(passthrough_options_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_features(passthrough_options_test PRIVATE cxx_std_17)
add_test(NAME passthrough_options_test COMMAND passthrough_options_test)

add_executable(tts_request_options_test tts_request_options_test.cpp tts_request_options.h)
target_include_directories(tts_request_options_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_features(tts_request_options_test PRIVATE cxx_std_17)
add_test(NAME tts_request_options_test COMMAND tts_request_options_test)
endif()
2 changes: 1 addition & 1 deletion backend/cpp/llama-cpp/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

LLAMA_VERSION?=221f0f6356efe2260023208365705ec5d5a7c8f5
LLAMA_VERSION?=9de0fcf2b3e587a43f293d9a2b6ec0a32991f768
LLAMA_REPO?=https://github.com/ggerganov/llama.cpp

CMAKE_ARGS?=
Expand Down
43 changes: 43 additions & 0 deletions backend/cpp/llama-cpp/disable-tts-task.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash
# Mark a copied gRPC server as targeting a llama.cpp fork that does not carry
# LocalAI's SERVER_TASK_TYPE_TTS patch. The RPCs remain present in the shared
# protobuf service, but respond with UNIMPLEMENTED instead of referencing
# server task types and mtmd gen-audio APIs absent from those forks.

set -euo pipefail

if [[ $# -ne 1 ]]; then
echo "usage: $0 <grpc-server.cpp>" >&2
exit 2
fi

SRC=$1

if [[ ! -f "$SRC" ]]; then
echo "grpc-server.cpp not found at $SRC" >&2
exit 2
fi

if grep -q '^#define LOCALAI_LLAMA_CPP_NO_TTS_TASK' "$SRC"; then
echo "==> $SRC already disables the LocalAI TTS task, skipping"
exit 0
fi

awk '
!done && /^#include/ {
print "#define LOCALAI_LLAMA_CPP_NO_TTS_TASK 1"
print "// ^ injected by disable-tts-task.sh for an unpatched llama.cpp fork"
print ""
done = 1
}
{ print }
END {
if (!done) {
print "disable-tts-task.sh: no #include anchor found" > "/dev/stderr"
exit 1
}
}
' "$SRC" > "$SRC.tmp"
mv "$SRC.tmp" "$SRC"

echo "==> LocalAI TTS task disabled in $SRC"
Loading
Loading