aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDepFA <35278260+dfaker@users.noreply.github.com>2022-10-02 01:18:42 +0100
committerGitHub <noreply@github.com>2022-10-02 01:18:42 +0100
commitcf33268d686986a24f2e04eb615f01ed53bfe308 (patch)
treea5b147f6aa0eab250adeb79b07670aea0345cb6f
parent0aa354bd5e811e2b41b17a3052cf5d4c8190d533 (diff)
add script body only refresh
-rw-r--r--modules/scripts.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/modules/scripts.py b/modules/scripts.py
index 3c14b9e3..788397f5 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -162,10 +162,33 @@ class ScriptRunner:
return processed
+ def reload_sources(self):
+ for si,script in list(enumerate(self.scripts)):
+ with open(script.filename, "r", encoding="utf8") as file:
+ args_from = script.args_from
+ args_to = script.args_to
+ filename = script.filename
+ text = file.read()
+
+ from types import ModuleType
+ compiled = compile(text, filename, 'exec')
+ module = ModuleType(script.filename)
+ exec(compiled, module.__dict__)
+
+ for key, script_class in module.__dict__.items():
+ if type(script_class) == type and issubclass(script_class, Script):
+ self.scripts[si] = script_class()
+ self.scripts[si].filename = filename
+ self.scripts[si].args_from = args_from
+ self.scripts[si].args_to = args_to
scripts_txt2img = ScriptRunner()
scripts_img2img = ScriptRunner()
+def reload_script_body_only():
+ scripts_txt2img.reload_sources()
+ scripts_img2img.reload_sources()
+
def reload_scripts(basedir):
global scripts_txt2img,scripts_img2img