diff --git a/py/metadata_collector/node_extractors.py b/py/metadata_collector/node_extractors.py index 3c7b868b..01768c10 100644 --- a/py/metadata_collector/node_extractors.py +++ b/py/metadata_collector/node_extractors.py @@ -709,6 +709,7 @@ NODE_EXTRACTORS = { "LoaderGGUFAdvanced": GGUFLoaderExtractor, # calcuis gguf "GGUFLoaderKJ": KJNodesModelLoaderExtractor, # KJNodes "DiffusionModelLoaderKJ": KJNodesModelLoaderExtractor, # KJNodes + "CheckpointLoaderKJ": CheckpointLoaderExtractor, # KJNodes "UNETLoader": UNETLoaderExtractor, # Updated to use dedicated extractor "UnetLoaderGGUF": UNETLoaderExtractor, # Updated to use dedicated extractor "LoraLoader": LoraLoaderExtractor, diff --git a/py/nodes/save_image.py b/py/nodes/save_image.py index cb3a8e9e..dbf44d07 100644 --- a/py/nodes/save_image.py +++ b/py/nodes/save_image.py @@ -273,9 +273,15 @@ class SaveImage: length = int(parts[1]) prompt = prompt[:length] filename = filename.replace(segment, prompt.strip()) - elif key == "model" and 'checkpoint' in metadata_dict: - model = metadata_dict.get('checkpoint', '') - model = os.path.splitext(os.path.basename(model))[0] + elif key == "model": + model_value = metadata_dict.get('checkpoint') + if isinstance(model_value, (bytes, os.PathLike)): + model_value = str(model_value) + + if not isinstance(model_value, str) or not model_value: + model = "model_unavailable" + else: + model = os.path.splitext(os.path.basename(model_value))[0] if len(parts) >= 2: length = int(parts[1]) model = model[:length] @@ -442,4 +448,4 @@ class SaveImage: add_counter_to_filename ) - return (images,) \ No newline at end of file + return (images,)