Download Auto-Photoshop-StableDiffusion-Plugin/server/python_server/metadata_to_json.py from toto10/extensions: direct link, hf CLI and curl.
- Browser
- Download file 3.02 kB
-
https://huggingface.co/toto10/extensions/resolve/refs%2Fpr%2F6/Auto-Photoshop-StableDiffusion-Plugin/server/python_server/metadata_to_json.py
- Command line
-
hf download hf://toto10/extensions@refs/pr/6/Auto-Photoshop-StableDiffusion-Plugin/server/python_server/metadata_to_json.py
-
curl -L -o metadata_to_json.py https://huggingface.co/toto10/extensions/resolve/refs%2Fpr%2F6/Auto-Photoshop-StableDiffusion-Plugin/server/python_server/metadata_to_json.py
3.02 kB
| import os | |
| from pathlib import Path | |
| from PIL import Image | |
| import json | |
| import serverHelper | |
| # metadata_str = 'cute cat\nSteps: 20, Sampler: Euler a, CFG scale: 7.0, Seed: 2253354038, Size: 512x512, Model hash: 3e16efc8, Seed resize from: -1x-1, Denoising strength: 0, Conditional mask weight: 1.0' | |
| def convertMetadataToJson(metadata_str): | |
| print(metadata_str) | |
| last_new_line_index = metadata_str.rindex('\n') | |
| prompt = metadata_str[:last_new_line_index] | |
| other_settings = metadata_str[last_new_line_index+1:] | |
| print("prompt:", prompt) | |
| print("other_settings:", other_settings) | |
| sub_settings = other_settings.split(",") | |
| print("sub_settings: ",sub_settings) | |
| settings_dict = {} | |
| settings_dict['prompt'] = prompt | |
| for setting in sub_settings: | |
| [key,value]= setting.split(":") | |
| key = key.lstrip(' ') | |
| value = value.lstrip(' ') | |
| settings_dict[key] = value | |
| import json | |
| settings_json = json.dumps(settings_dict) | |
| print("settings_dict: ",settings_dict) | |
| print("settings_json ",settings_json) | |
| return settings_json | |
| def getMetadataFromPng(image_path): | |
| # image_path = "./output/5c42fd2a-6708-45e2-b282-2e9f3894368e/output- 1672476035.4888158.png" | |
| # image_path = "C:/Users/abdul/Desktop/auto-photoshop/Auto-Photoshop-StableDiffusion-Plugin/server/python_server/output/5c42fd2a-6708-45e2-b282-2e9f3894368e/output- 1672476035.4888158.png" | |
| im = Image.open(image_path) | |
| # im.load() # Needed only for .png EXIF data (see citation above) | |
| # print(im.info['parameters']) | |
| metadata_string = im.info['parameters'] | |
| metadata_json_string = convertMetadataToJson(metadata_string) | |
| metadata_dict = json.loads(metadata_json_string) | |
| print("metadata_dict: ", metadata_dict) | |
| # print(im.info['meta_to_read']) | |
| return metadata_dict | |
| def createMetadataJsonFileIfNotExist(image_path): | |
| # image_name = os.path.splitext(image_path) | |
| image_name = Path(image_path).stem | |
| # parent_dir_path = Path(image_path) | |
| # parent_dir_path = image_path.split(image_name)[0] | |
| # os.path.join() | |
| head = os.path.split(image_path)[0] | |
| json_file_tail = f'{image_name}.json' | |
| json_full_path = os.path.join(head,json_file_tail) | |
| print("image_name: ",image_name) | |
| print("json_full_path: ",json_full_path) | |
| isExist = os.path.exists(json_full_path) | |
| if(isExist): | |
| #read metadata from json | |
| metadata_dict = serverHelper.readJson(json_full_path) | |
| else: | |
| #read metadata from image | |
| #save the metadata to a json file | |
| metadata_dict = getMetadataFromPng(image_path) | |
| serverHelper.writeJson(json_full_path,metadata_dict) | |
| return metadata_dict | |
| if __name__ == "__main__": | |
| image_path = "C:/Users/abdul/Desktop/auto-photoshop/Auto-Photoshop-StableDiffusion-Plugin/server/python_server/output/5c42fd2a-6708-45e2-b282-2e9f3894368e/output- 1672476035.4888158.png" | |
| # getMetadataFromPng(image_path) | |
| createMetadataJsonFileIfNotExist(image_path) | |