Spaces:
Sleeping
Sleeping
import time | |
from datetime import datetime | |
import os | |
import gc | |
import torch | |
# Utility scripts for all modules | |
# List for file locations to point at | |
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 | |
# Create a unique time stamped file 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 | |
# Create a list of a directory if directory exists | |
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 | |
# Delete a list of file | |
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() | |