toto10's picture
Upload folder using huggingface_hub (#1)
34097e9
raw
history blame
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)