-
Notifications
You must be signed in to change notification settings - Fork 0
/
RunManager.py
65 lines (54 loc) · 2.17 KB
/
RunManager.py
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
import os
from tkinter import messagebox
from subprocess import call
from VenvManager import VenvManager
class RunManager:
def GetImageFolder(self, imageFolder):
if os.path.exists(imageFolder) is False:
messagebox.showinfo(title="WARNING", message=f"There is no {imageFolder} file")
exit(-1)
isTherePNG = False
filelist = os.listdir(imageFolder)
for file in filelist:
if file.endswith(".png") or file.endswith(".jpg") or file.endswith(".jpeg"):
isTherePNG = True
break
if isTherePNG:
self.imageFolders.append(imageFolder)
return
self.imageFolders = os.listdir(imageFolder)
for i in range(0, len(self.imageFolders)):
self.imageFolders[i] = os.path.join(imageFolder, self.imageFolders[i])
def AddCommands(self):
start = f'-n {self.modelName} -i '
end = f"--ext png -s {self.scale} --tile 192"
if self.faceEnhance == 1:
end = end + " --face_enhance"
if self.fp32 == 1:
end = end + " --fp32"
for folder in self.imageFolders:
tempCommand = f'{start} "{folder}" -o "{self.outputFolder}" {end}'
self.commands.append(tempCommand)
def GetCommandString(self):
finalCommand = ""
for command in self.commands:
finalCommand = finalCommand + command + " && "
finalCommand = finalCommand[:-3]
return finalCommand
def Run(self):
self.GetImageFolder(self.inputFolder)
self.AddCommands()
call('cls' if os.name=='nt' else 'clear', shell=True)
for command in self.commands:
self.venv_manager.RunScript("third-party/Real-ESRGAN/inference_realesrgan", command)
call('cls' if os.name=='nt' else 'clear', shell=True)
self.imageFolders.clear()
imageFolders = []
inputFolder = None
outputFolder = os.path.join(os.getcwd(), "upscaled")
modelName = None
scale = "4"
faceEnhance = 0
fp32 = 1
venv_manager : VenvManager = None
commands = []