From 7e40f6fcb95f33d9c1058489fa8d6ea64d4aa010 Mon Sep 17 00:00:00 2001 From: Will Miao <13051207myq@gmail.com> Date: Sun, 2 Nov 2025 10:20:44 +0800 Subject: [PATCH] feat: add GGUF loader metadata extractor support, fixes #627 Add GGUFLoaderExtractor class to handle metadata extraction for GGUF model loaders. Register extractor for both LoaderGGUF and LoaderGGUFAdvanced node types to capture checkpoint metadata from gguf_name input parameter. This enables proper metadata tracking for GGUF model files used in the system. --- py/metadata_collector/node_extractors.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/py/metadata_collector/node_extractors.py b/py/metadata_collector/node_extractors.py index 41c27620..e759447e 100644 --- a/py/metadata_collector/node_extractors.py +++ b/py/metadata_collector/node_extractors.py @@ -63,6 +63,15 @@ class NunchakuQwenImageDiTLoaderExtractor(NodeMetadataExtractor): model_name = inputs.get("model_name") _store_checkpoint_metadata(metadata, node_id, model_name) +class GGUFLoaderExtractor(NodeMetadataExtractor): + @staticmethod + def extract(node_id, inputs, outputs, metadata): + if not inputs or "gguf_name" not in inputs: + return + + model_name = inputs.get("gguf_name") + _store_checkpoint_metadata(metadata, node_id, model_name) + class TSCCheckpointLoaderExtractor(NodeMetadataExtractor): @staticmethod def extract(node_id, inputs, outputs, metadata): @@ -684,6 +693,8 @@ NODE_EXTRACTORS = { "TSC_EfficientLoader": TSCCheckpointLoaderExtractor, # Efficient Nodes "NunchakuFluxDiTLoader": NunchakuFluxDiTLoaderExtractor, # ComfyUI-Nunchaku "NunchakuQwenImageDiTLoader": NunchakuQwenImageDiTLoaderExtractor, # ComfyUI-Nunchaku + "LoaderGGUF": GGUFLoaderExtractor, # calcuis gguf + "LoaderGGUFAdvanced": GGUFLoaderExtractor, # calcuis gguf "UNETLoader": UNETLoaderExtractor, # Updated to use dedicated extractor "UnetLoaderGGUF": UNETLoaderExtractor, # Updated to use dedicated extractor "LoraLoader": LoraLoaderExtractor,