Skip to content

Commit ac8ffb3

Browse files
Merge pull request AUTOMATIC1111#15470 from AUTOMATIC1111/read-infotext-Script-not-found
error handling paste_field callables
2 parents a976f4d + ef83f68 commit ac8ffb3

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

modules/infotext_utils.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import gradio as gr
1010
from modules.paths import data_path
11-
from modules import shared, ui_tempdir, script_callbacks, processing, infotext_versions, images, prompt_parser
11+
from modules import shared, ui_tempdir, script_callbacks, processing, infotext_versions, images, prompt_parser, errors
1212
from PIL import Image
1313

1414
sys.modules['modules.generation_parameters_copypaste'] = sys.modules[__name__] # alias for old name
@@ -488,7 +488,11 @@ def paste_func(prompt):
488488

489489
for output, key in paste_fields:
490490
if callable(key):
491-
v = key(params)
491+
try:
492+
v = key(params)
493+
except Exception:
494+
errors.report(f"Error executing {key}", exc_info=True)
495+
v = None
492496
else:
493497
v = params.get(key, None)
494498

modules/scripts.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -739,12 +739,17 @@ def init_field(title):
739739
def onload_script_visibility(params):
740740
title = params.get('Script', None)
741741
if title:
742-
title_index = self.titles.index(title)
743-
visibility = title_index == self.script_load_ctr
744-
self.script_load_ctr = (self.script_load_ctr + 1) % len(self.titles)
745-
return gr.update(visible=visibility)
746-
else:
747-
return gr.update(visible=False)
742+
try:
743+
title_index = self.titles.index(title)
744+
visibility = title_index == self.script_load_ctr
745+
self.script_load_ctr = (self.script_load_ctr + 1) % len(self.titles)
746+
return gr.update(visible=visibility)
747+
except ValueError:
748+
params['Script'] = None
749+
massage = f'Cannot find Script: "{title}"'
750+
print(massage)
751+
gr.Warning(massage)
752+
return gr.update(visible=False)
748753

749754
self.infotext_fields.append((dropdown, lambda x: gr.update(value=x.get('Script', 'None'))))
750755
self.infotext_fields.extend([(script.group, onload_script_visibility) for script in self.selectable_scripts])

0 commit comments

Comments
 (0)