|
import time
|
|
from datetime import datetime
|
|
import os
|
|
import gc
|
|
import torch
|
|
|
|
|
|
|
|
|
|
file_name_list = []
|
|
image_name_list = []
|
|
link_list =['something','Link to monster statblock once generated']
|
|
random_prompt_list = []
|
|
user_log = []
|
|
|
|
def clear_cache():
|
|
command = "sync; echo 3 > /proc/sys/vm/drop_caches"
|
|
os.system(command)
|
|
print(os.system("free"))
|
|
|
|
def reclaim_mem():
|
|
allocated_memory = torch.cuda.memory_allocated()
|
|
cached_memory = torch.cuda.memory_reserved()
|
|
mem_alloc = f"Memory Allocated: {allocated_memory / 1024**2:.2f} MB"
|
|
mem_cache = f"Memory Cached: {cached_memory / 1024**2:.2f} MB"
|
|
print(mem_alloc)
|
|
print(mem_cache)
|
|
torch.cuda.ipc_collect()
|
|
gc.collect()
|
|
torch.cuda.empty_cache()
|
|
torch.cuda.synchronize()
|
|
time.sleep(0.01)
|
|
allocated_memory = torch.cuda.memory_allocated()
|
|
cached_memory = torch.cuda.memory_reserved()
|
|
print(f"Memory Allocated after del {mem_alloc}")
|
|
print(f"Memory Cached after del {mem_cache}")
|
|
|
|
def generate_datetime():
|
|
now = datetime.now()
|
|
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
|
|
return date_time
|
|
|
|
def make_folder():
|
|
foldertimestr = time.strftime("%Y%m%d_%H")
|
|
folder_path = f"./output/{foldertimestr}"
|
|
if not os.path.exists("./output"):
|
|
os.mkdir("./output")
|
|
if not os.path.exists(folder_path):
|
|
os.mkdir(folder_path)
|
|
return foldertimestr
|
|
|
|
def make_image_name(name):
|
|
del image_name_list[:]
|
|
timestr = time.strftime("%Y%m%d-%H%M%S")
|
|
image_name = f"./output/{make_folder()}/{name}{timestr}.png"
|
|
image_name = image_name.replace(' ', '_')
|
|
image_name_list.append(image_name)
|
|
print("Image name is : " + image_name_list[-1])
|
|
return image_name
|
|
|
|
|
|
def gen_file_name(mon_name):
|
|
del file_name_list[:]
|
|
timestr = time.strftime("%H%M%S")
|
|
input_dir = f"./output/{make_folder()}"
|
|
|
|
mon_file_name = mon_name
|
|
file_name = mon_file_name + "_" + timestr
|
|
file_name_list.append(input_dir)
|
|
file_name_list.append(file_name)
|
|
file_name_list.append(mon_file_name)
|
|
|
|
def make_folder():
|
|
foldertimestr = time.strftime("%Y%m%d_%H")
|
|
folder_path = f"./output/{foldertimestr}"
|
|
if not os.path.exists("./output"):
|
|
os.mkdir("./output")
|
|
if not os.path.exists(folder_path):
|
|
os.mkdir(folder_path)
|
|
return foldertimestr
|
|
|
|
|
|
def directory_contents(directory_path):
|
|
if os.path.isdir(directory_path) :
|
|
contents = os.listdir(directory_path)
|
|
return contents
|
|
else : pass
|
|
|
|
def absolute_path(directory_path):
|
|
path_list = []
|
|
if os.path.isdir(directory_path):
|
|
contents = os.listdir(directory_path)
|
|
for item in contents:
|
|
item_path = os.path.join(directory_path,item)
|
|
abs_path = os.path.abspath(item_path)
|
|
path_list.append(abs_path)
|
|
return path_list
|
|
|
|
|
|
|
|
|
|
def delete_files(file_paths):
|
|
if file_paths:
|
|
|
|
for file_path in file_paths:
|
|
try:
|
|
os.remove(f"./image_temp/{file_path}")
|
|
print(f"Remove : ./image_temp/{file_path}")
|
|
except OSError as e:
|
|
print(f"Error: {file_path} : {e.strerror}")
|
|
file_paths.clear()
|
|
|