From e61c6980dcea3ae67fd2e3cf81bdee9a09a80e63 Mon Sep 17 00:00:00 2001 From: City <125218114+city96@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:13:38 +0200 Subject: [PATCH] Shape fix --- tools/lcpp.patch | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tools/lcpp.patch b/tools/lcpp.patch index 56e2f8d..3e449ac 100644 --- a/tools/lcpp.patch +++ b/tools/lcpp.patch @@ -39,7 +39,7 @@ index b16c462f..6d1568f1 100644 const int idx = gguf_find_tensor(ctx, name); if (idx < 0) { diff --git a/src/llama.cpp b/src/llama.cpp -index 24e1f1f0..569778fd 100644 +index 24e1f1f0..8a1e9ef8 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -205,6 +205,18 @@ enum llm_arch { @@ -296,7 +296,7 @@ index 24e1f1f0..569778fd 100644 } size_t total_size_org = 0; -@@ -18547,6 +18757,51 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s +@@ -18547,6 +18757,57 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s ctx_outs[i_split] = gguf_init_empty(); } gguf_add_tensor(ctx_outs[i_split], tensor); @@ -344,11 +344,17 @@ index 24e1f1f0..569778fd 100644 + gguf_set_tensor_ndim(ctx_outs[i_split], tensor->name, n_dim); + LLAMA_LOG_INFO("\n%s: Correcting shape for Wan FLF2V: [key:%s]\n", __func__, tensor->name); + } ++ // S2V model only ++ if (name == "casual_audio_encoder.weights" || name == "casual_audio_encoder.encoder.padding_tokens") { ++ const int n_dim = 4; ++ gguf_set_tensor_ndim(ctx_outs[i_split], tensor->name, n_dim); ++ LLAMA_LOG_INFO("\n%s: Correcting shape for Wan S2V: [key:%s]\n", __func__, tensor->name); ++ } + } } // Set split info if needed -@@ -18647,6 +18902,124 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s +@@ -18647,6 +18908,124 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s // do not quantize relative position bias (T5) quantize &= name.find("attn_rel_b.weight") == std::string::npos; @@ -473,7 +479,7 @@ index 24e1f1f0..569778fd 100644 enum ggml_type new_type; void * new_data; size_t new_size; -@@ -18655,6 +19028,9 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s +@@ -18655,6 +19034,9 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s new_type = default_type; // get more optimal quantization type based on the tensor shape, layer, etc. @@ -483,7 +489,7 @@ index 24e1f1f0..569778fd 100644 if (!params->pure && ggml_is_quantized(default_type)) { new_type = llama_tensor_get_type(qs, new_type, tensor, ftype); } -@@ -18664,6 +19040,7 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s +@@ -18664,6 +19046,7 @@ static void llama_model_quantize_internal(const std::string & fname_inp, const s if (params->output_tensor_type < GGML_TYPE_COUNT && strcmp(tensor->name, "output.weight") == 0) { new_type = params->output_tensor_type; }