-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutilities.py
More file actions
executable file
·114 lines (96 loc) · 3.59 KB
/
utilities.py
File metadata and controls
executable file
·114 lines (96 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import time
from datetime import datetime
import os
import gc
import torch
import description_helper as dsh
# 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()