Fix for Prompts_from_file showing extra textbox.
This commit is contained in:
parent
1ffeb42d38
commit
e2930f9821
|
@ -1,4 +1,5 @@
|
|||
import os
|
||||
from pydoc import visiblename
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
|
@ -31,6 +32,15 @@ class Script:
|
|||
def show(self, is_img2img):
|
||||
return True
|
||||
|
||||
|
||||
# Called when the ui for this script has been shown.
|
||||
# Useful for hiding some controls, since the scripts module sets visibility to
|
||||
# everything to true. The parameters will be the parameters returned by the ui method
|
||||
# The return value should be gradio updates, similar to what you would return
|
||||
# from a Gradio event handler.
|
||||
def on_show(self, *args):
|
||||
return [ui.gr_show(True)] * len(args)
|
||||
|
||||
# This is where the additional processing is implemented. The parameters include
|
||||
# self, the model object "p" (a StableDiffusionProcessing class, see
|
||||
# processing.py), and the parameters returned by the ui method.
|
||||
|
@ -125,20 +135,32 @@ class ScriptRunner:
|
|||
inputs += controls
|
||||
script.args_to = len(inputs)
|
||||
|
||||
def select_script(script_index):
|
||||
def select_script(*args):
|
||||
script_index = args[0]
|
||||
on_show_updates = []
|
||||
if 0 < script_index <= len(self.scripts):
|
||||
script = self.scripts[script_index-1]
|
||||
args_from = script.args_from
|
||||
args_to = script.args_to
|
||||
script_args = args[args_from:args_to]
|
||||
on_show_updates = wrap_call(script.on_show, script.filename, "on_show", *script_args)
|
||||
else:
|
||||
args_from = 0
|
||||
args_to = 0
|
||||
|
||||
return [ui.gr_show(True if i == 0 else args_from <= i < args_to) for i in range(len(inputs))]
|
||||
ret = [ ui.gr_show(True)] # always show the dropdown
|
||||
for i in range(1, len(inputs)):
|
||||
if (args_from <= i < args_to):
|
||||
ret.append( on_show_updates[i - args_from] )
|
||||
else:
|
||||
ret.append(ui.gr_show(False))
|
||||
return ret
|
||||
|
||||
# return [ui.gr_show(True if (i == 0) else on_show_updates[i - args_from] if args_from <= i < args_to else False) for i in range(len(inputs))]
|
||||
|
||||
dropdown.change(
|
||||
fn=select_script,
|
||||
inputs=[dropdown],
|
||||
inputs=inputs,
|
||||
outputs=inputs
|
||||
)
|
||||
|
||||
|
@ -198,4 +220,4 @@ def reload_scripts(basedir):
|
|||
load_scripts(basedir)
|
||||
|
||||
scripts_txt2img = ScriptRunner()
|
||||
scripts_img2img = ScriptRunner()
|
||||
scripts_img2img = ScriptRunner()
|
|
@ -10,6 +10,7 @@ from modules.processing import Processed, process_images
|
|||
from PIL import Image
|
||||
from modules.shared import opts, cmd_opts, state
|
||||
|
||||
g_txt_mode = False
|
||||
|
||||
class Script(scripts.Script):
|
||||
def title(self):
|
||||
|
@ -29,6 +30,9 @@ class Script(scripts.Script):
|
|||
checkbox_txt.change(fn=lambda x: [gr.File.update(visible = not x), gr.TextArea.update(visible = x)], inputs=[checkbox_txt], outputs=[file, prompt_txt])
|
||||
return [checkbox_txt, file, prompt_txt]
|
||||
|
||||
def on_show(self, checkbox_txt, file, prompt_txt):
|
||||
return [ gr.Checkbox.update(visible = True), gr.File.update(visible = not checkbox_txt), gr.TextArea.update(visible = checkbox_txt) ]
|
||||
|
||||
def run(self, p, checkbox_txt, data: bytes, prompt_txt: str):
|
||||
if (checkbox_txt):
|
||||
lines = [x.strip() for x in prompt_txt.splitlines()]
|
||||
|
|
Loading…
Reference in New Issue