From: Xuan-Son Nguyen Date: Wed, 28 May 2025 14:12:35 +0000 (+0200) Subject: convert : fix qwen omni conversion (#13859) X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=a3938fb53d0b5183db4f5a6db21fd9122a0e4780;p=pkg%2Fggml%2Fsources%2Fllama.cpp convert : fix qwen omni conversion (#13859) * convert : fix qwen omni conversion * fix typo --- diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 7f935d09..b36bbc76 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -423,19 +423,19 @@ class ModelBase: 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]: @@ -1207,7 +1207,7 @@ class MmprojModel(ModelBase): 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):