diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-12-17 07:22:03 +0000 |
---|---|---|
committer | AUTOMATIC1111 <16777216c@gmail.com> | 2023-12-30 07:42:42 +0000 |
commit | bb07cb6a0df60a96827125ffc09ea182a1ed272c (patch) | |
tree | e84c1769371fbfa797a13d29ab49a7089f8c78b7 /modules/api/api.py | |
parent | de03882d6ca56bc81058f5120f028678a6a54aaa (diff) | |
download | stable-diffusion-webui-gfx803-bb07cb6a0df60a96827125ffc09ea182a1ed272c.tar.gz stable-diffusion-webui-gfx803-bb07cb6a0df60a96827125ffc09ea182a1ed272c.tar.bz2 stable-diffusion-webui-gfx803-bb07cb6a0df60a96827125ffc09ea182a1ed272c.zip |
a
Diffstat (limited to 'modules/api/api.py')
-rw-r--r-- | modules/api/api.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/modules/api/api.py b/modules/api/api.py index 7154c9d5..b3d70940 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -335,6 +335,29 @@ class Api: script_args[alwayson_script.args_from + idx] = request.alwayson_scripts[alwayson_script_name]["args"][idx] return script_args + def apply_infotext(self, request, tabname): + if not request.infotext: + return {} + + params = generation_parameters_copypaste.parse_generation_parameters(request.infotext) + + for field in generation_parameters_copypaste.paste_fields[tabname]["fields"]: + if not field.api: + continue + + value = field.function(params) if field.function else params.get(field.label) + target_type = request.__fields__[field.api].type_ + + if value is None: + continue + + if not isinstance(value, target_type): + value = target_type(value) + + setattr(request, field.api, value) + + return params + def text2imgapi(self, txt2imgreq: models.StableDiffusionTxt2ImgProcessingAPI): task_id = txt2imgreq.force_task_id or create_task_id("txt2img") @@ -342,6 +365,9 @@ class Api: if not script_runner.scripts: script_runner.initialize_scripts(False) ui.create_ui() + + infotext_params = self.apply_infotext(txt2imgreq, "txt2img") + if not self.default_script_arg_txt2img: self.default_script_arg_txt2img = self.init_default_script_args(script_runner) selectable_scripts, selectable_script_idx = self.get_selectable_script(txt2imgreq.script_name, script_runner) @@ -358,6 +384,7 @@ class Api: args.pop('script_name', None) args.pop('script_args', None) # will refeed them to the pipeline directly after initializing them args.pop('alwayson_scripts', None) + args.pop('infotext', None) script_args = self.init_script_args(txt2imgreq, self.default_script_arg_txt2img, selectable_scripts, selectable_script_idx, script_runner) |