|
6 | 6 | import gradio as gr
|
7 | 7 |
|
8 | 8 | from modules.processing import StableDiffusionProcessing
|
9 |
| -from modules import shared, paths, script_callbacks, extensions |
| 9 | +from modules import shared, paths, script_callbacks, extensions, script_loading |
10 | 10 |
|
11 | 11 | AlwaysVisible = object()
|
12 | 12 |
|
@@ -161,13 +161,7 @@ def load_scripts():
|
161 | 161 | sys.path = [scriptfile.basedir] + sys.path
|
162 | 162 | current_basedir = scriptfile.basedir
|
163 | 163 |
|
164 |
| - with open(scriptfile.path, "r", encoding="utf8") as file: |
165 |
| - text = file.read() |
166 |
| - |
167 |
| - from types import ModuleType |
168 |
| - compiled = compile(text, scriptfile.path, 'exec') |
169 |
| - module = ModuleType(scriptfile.filename) |
170 |
| - exec(compiled, module.__dict__) |
| 164 | + module = script_loading.load_module(scriptfile.path) |
171 | 165 |
|
172 | 166 | for key, script_class in module.__dict__.items():
|
173 | 167 | if type(script_class) == type and issubclass(script_class, Script):
|
@@ -328,27 +322,21 @@ def postprocess(self, p, processed):
|
328 | 322 |
|
329 | 323 | def reload_sources(self, cache):
|
330 | 324 | for si, script in list(enumerate(self.scripts)):
|
331 |
| - with open(script.filename, "r", encoding="utf8") as file: |
332 |
| - args_from = script.args_from |
333 |
| - args_to = script.args_to |
334 |
| - filename = script.filename |
335 |
| - text = file.read() |
336 |
| - |
337 |
| - from types import ModuleType |
338 |
| - |
339 |
| - module = cache.get(filename, None) |
340 |
| - if module is None: |
341 |
| - compiled = compile(text, filename, 'exec') |
342 |
| - module = ModuleType(script.filename) |
343 |
| - exec(compiled, module.__dict__) |
344 |
| - cache[filename] = module |
345 |
| - |
346 |
| - for key, script_class in module.__dict__.items(): |
347 |
| - if type(script_class) == type and issubclass(script_class, Script): |
348 |
| - self.scripts[si] = script_class() |
349 |
| - self.scripts[si].filename = filename |
350 |
| - self.scripts[si].args_from = args_from |
351 |
| - self.scripts[si].args_to = args_to |
| 325 | + args_from = script.args_from |
| 326 | + args_to = script.args_to |
| 327 | + filename = script.filename |
| 328 | + |
| 329 | + module = cache.get(filename, None) |
| 330 | + if module is None: |
| 331 | + module = script_loading.load_module(script.filename) |
| 332 | + cache[filename] = module |
| 333 | + |
| 334 | + for key, script_class in module.__dict__.items(): |
| 335 | + if type(script_class) == type and issubclass(script_class, Script): |
| 336 | + self.scripts[si] = script_class() |
| 337 | + self.scripts[si].filename = filename |
| 338 | + self.scripts[si].args_from = args_from |
| 339 | + self.scripts[si].args_to = args_to |
352 | 340 |
|
353 | 341 |
|
354 | 342 | scripts_txt2img = ScriptRunner()
|
|
0 commit comments