From 156676cf41c30300520c0ea5f0e4758d164cc5fe Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Wed, 28 May 2025 15:44:09 +0200 Subject: [PATCH 1/2] convert : fix qwen omni conversion --- convert_hf_to_gguf.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 7f935d091a70b..f2993050f85ee 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -423,19 +423,19 @@ def load_hparams(dir_model: Path): try: # for security reason, we don't allow loading remote code by default # if a model need remote code, we will fallback to config.json - return AutoConfig.from_pretrained(dir_model, trust_remote_code=False).to_dict() + config = AutoConfig.from_pretrained(dir_model, trust_remote_code=False).to_dict() except Exception as e: logger.warning(f"Failed to load model config from {dir_model}: {e}") logger.warning("Trying to load config.json instead") with open(dir_model / "config.json", "r", encoding="utf-8") as f: config = json.load(f) - if "llm_config" in config: - # rename for InternVL - config["text_config"] = config["llm_config"] - if "thinker_config" in config: - # rename for Qwen2.5-Omni - config["text_config"] = config["thinker_config"]["text_config"] - return config + if "llm_config" in config: + # rename for InternVL + config["text_config"] = config["llm_config"] + if "thinker_config" in config: + # rename for Qwen2.5-Omni + config["text_config"] = config["thinker_config"]["text_config"] + return config @classmethod def register(cls, *names: str) -> Callable[[AnyModel], AnyModel]: From f4f93de0c9cb6a36d7b5ddc3c725f57e4db2a487 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Wed, 28 May 2025 15:49:04 +0200 Subject: [PATCH 2/2] fix typo --- 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 f2993050f85ee..b36bbc7658934 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -1207,7 +1207,7 @@ def set_gguf_parameters(self): self.gguf_writer.add_audio_block_count(self.find_aparam(self.n_block_keys)) self.gguf_writer.add_audio_head_count(self.find_aparam(["num_attention_heads"])) - else: + if not self.has_vision_encoder and not self.has_audio_encoder: raise ValueError("MmprojModel must have either vision or audio encoder") def write_vocab(self):