From: Adrien Gallouët Date: Thu, 9 Apr 2026 05:28:06 +0000 (+0200) Subject: common : skip non-primary GGUF split files when selecting model (#21633) X-Git-Tag: upstream/0.0.10438~1717 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=4293919068059bba716434264939f91cda25e70b;p=pkg%2Fggml%2Fsources%2Fllama.cpp common : skip non-primary GGUF split files when selecting model (#21633) We should not assume files are listed in order. Signed-off-by: Adrien Gallouët --- diff --git a/common/download.cpp b/common/download.cpp index 9d7995c9d..055f0038f 100644 --- a/common/download.cpp +++ b/common/download.cpp @@ -591,6 +591,10 @@ static hf_cache::hf_file find_best_model(const hf_cache::hf_files & files, for (const auto & f : files) { if (gguf_filename_is_model(f.path) && std::regex_search(f.path, pattern)) { + auto split = get_gguf_split_info(f.path); + if (split.count > 1 && split.index != 1) { + continue; + } return f; } } @@ -600,6 +604,10 @@ static hf_cache::hf_file find_best_model(const hf_cache::hf_files & files, if (tag.empty()) { for (const auto & f : files) { if (gguf_filename_is_model(f.path)) { + auto split = get_gguf_split_info(f.path); + if (split.count > 1 && split.index != 1) { + continue; + } return f; } } @@ -618,6 +626,7 @@ static void list_available_gguf_files(const hf_cache::hf_files & files) { } struct hf_plan { + hf_cache::hf_file primary; hf_cache::hf_files model_files; hf_cache::hf_file mmproj; }; @@ -663,6 +672,7 @@ static hf_plan get_hf_plan(const common_params_model & model, } } + plan.primary = primary; plan.model_files = get_split_files(all, primary); if (opts.download_mmproj) { @@ -749,7 +759,7 @@ common_download_model_result common_download_model(const common_params_model for (const auto & f : hf.model_files) { hf_cache::finalize_file(f); } - result.model_path = hf.model_files[0].final_path; + result.model_path = hf.primary.final_path; if (!hf.mmproj.path.empty()) { result.mmproj_path = hf_cache::finalize_file(hf.mmproj);