From a458664fc83b6513baea7adafcb0ef0626b006f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Sun, 14 Dec 2025 23:35:51 +0100 Subject: [PATCH 1/3] keep file part order from model index --- convert_hf_to_gguf.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 3f861f2a6a5..84dcb45f4e0 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -197,10 +197,10 @@ def index_tensors(self, remote_hf_model_id: str | None = None) -> dict[str, Call return tensors prefix = "model" if not self.is_mistral_format else "consolidated" - part_names: set[str] = set(ModelBase.get_model_part_names(self.dir_model, prefix, ".safetensors")) + part_names: list[str] = ModelBase.get_model_part_names(self.dir_model, prefix, ".safetensors") is_safetensors: bool = len(part_names) > 0 if not is_safetensors: - part_names = set(ModelBase.get_model_part_names(self.dir_model, "pytorch_model", ".bin")) + part_names = ModelBase.get_model_part_names(self.dir_model, "pytorch_model", ".bin") tensor_names_from_index: set[str] = set() @@ -217,7 +217,8 @@ def index_tensors(self, remote_hf_model_id: str | None = None) -> dict[str, Call if weight_map is None or not isinstance(weight_map, dict): raise ValueError(f"Can't load 'weight_map' from {index_name!r}") tensor_names_from_index.update(weight_map.keys()) - part_names |= set(weight_map.values()) + part_dict: dict[str, None] = dict.fromkeys(list(weight_map.values()) + part_names, None) + part_names = list(part_dict.keys()) else: weight_map = {} else: From 077f1bdd8c899de56bbee8927c8ee46fb753d721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Wed, 17 Dec 2025 23:25:53 +0100 Subject: [PATCH 2/3] treat index as authoritative --- convert_hf_to_gguf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 84dcb45f4e0..cb5970d7e5f 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -217,7 +217,7 @@ def index_tensors(self, remote_hf_model_id: str | None = None) -> dict[str, Call if weight_map is None or not isinstance(weight_map, dict): raise ValueError(f"Can't load 'weight_map' from {index_name!r}") tensor_names_from_index.update(weight_map.keys()) - part_dict: dict[str, None] = dict.fromkeys(list(weight_map.values()) + part_names, None) + part_dict: dict[str, None] = dict.fromkeys(weight_map.values(), None) part_names = list(part_dict.keys()) else: weight_map = {} From 5f2f5e61778d4471b2aefee28d5e4585de7e8b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Wed, 17 Dec 2025 23:58:01 +0100 Subject: [PATCH 3/3] sort index parts --- convert_hf_to_gguf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index cb5970d7e5f..163322be974 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -218,7 +218,7 @@ def index_tensors(self, remote_hf_model_id: str | None = None) -> dict[str, Call raise ValueError(f"Can't load 'weight_map' from {index_name!r}") tensor_names_from_index.update(weight_map.keys()) part_dict: dict[str, None] = dict.fromkeys(weight_map.values(), None) - part_names = list(part_dict.keys()) + part_names = sorted(part_dict.keys()) else: weight_map = {} else: