diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 5e37e03331..3881621df0 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -112,7 +112,7 @@ static llama_model * llama_model_mapping(llm_arch arch, const llama_model_params case LLM_ARCH_QWEN3VLMOE: return new llama_model_qwen3vlmoe(params); case LLM_ARCH_QWEN3TTS: - return new llama_model_qwen3vl(params); + return new llama_model_qwen3tts(params); case LLM_ARCH_PHI2: return new llama_model_phi2(params); case LLM_ARCH_PHI3: diff --git a/src/models/models.h b/src/models/models.h index bb372ece81..58556102f0 100644 --- a/src/models/models.h +++ b/src/models/models.h @@ -596,6 +596,11 @@ struct llama_model_qwen3vlmoe : public llama_model_base { }; +struct llama_model_qwen3tts : public llama_model_qwen3vl { + llama_model_qwen3tts(const struct llama_model_params & params) : llama_model_qwen3vl(params) {} +}; + + struct llama_model_phi2 : public llama_model_base { llama_model_phi2(const struct llama_model_params & params) : llama_model_base(params) {} void load_arch_hparams(llama_model_loader & ml) override; diff --git a/src/models/qwen3tts.cpp b/src/models/qwen3tts.cpp new file mode 100644 index 0000000000..3604f844c3 --- /dev/null +++ b/src/models/qwen3tts.cpp @@ -0,0 +1,3 @@ +#include "models.h" + +// llama_model_qwen3tts reuses llama_model_qwen3vl's hparams/tensors/graph logic diff --git a/tests/test-llama-archs.cpp b/tests/test-llama-archs.cpp index a1ed2a76f8..eb90798b62 100644 --- a/tests/test-llama-archs.cpp +++ b/tests/test-llama-archs.cpp @@ -113,6 +113,8 @@ static gguf_context_ptr get_gguf_ctx(const llm_arch arch, const bool moe) { n_layer = 3; } else if (arch == LLM_ARCH_CHAMELEON) { n_vocab = 10240; + } else if (arch == LLM_ARCH_QWEN3TTS) { + n_vocab = 4096; // must be >= the hard-coded codec head size (3072) } const uint32_t n_embd_head = n_embd / n_head;