comfyui-discord/lib/helpers.py

68 lines
1.7 KiB
Python

import json
import os
import re
import random
# Make it easy to read a json file
def read_json(path, default_value={}):
if os.path.isfile(path):
try:
with open(path, "r") as file:
json_string = file.read()
json_dict = json.loads(json_string)
return json_dict
except:
pass
return default_value
# Merge dictionary b into a
def merge_dicts(a, b):
if b is None:
return a
output = a
for k in b.keys():
if k not in output.keys():
if b[k] is not None:
output[k] = b[k]
if b[k] is None:
if k in output.keys():
output.pop(k, None)
if isinstance(b[k], dict):
if isinstance(output[k], dict):
output[k] = merge_dicts(output[k], b[k])
continue
output[k] = b[k]
if output[k] is None:
del output[k]
return output
def write_json(path, o):
try:
with open(path, "w") as file:
file.write(json.dumps(o, indent=4))
except:
pass
def get_legacy_username(obj):
username = obj.name
discriminator = 0
if hasattr(obj, "discriminator"):
if obj.discriminator is not None:
discriminator = obj.discriminator
return f"{username}#{discriminator}"
def get_prompt_filename(input_string):
output = input_string
output = re.sub(r"\s", "_", output)
output = re.sub(r"[^A-Za-z0-9_]", "", output)
output = re.sub(r"[_]{2,}", "_", output)
output = output[:25]
output = f"{output}_" + str(random.randint(1000, 9999))
return output