aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/scripts.py19
-rw-r--r--scripts/custom_code.py6
2 files changed, 23 insertions, 2 deletions
diff --git a/modules/scripts.py b/modules/scripts.py
index 9cc5a185..0e0b949b 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -13,18 +13,37 @@ class Script:
args_from = None
args_to = None
+ # The title of the script. This is what will be displayed in the dropdown menu.
def title(self):
raise NotImplementedError()
+ # How the script is displayed in the UI. See https://gradio.app/docs/#components
+ # for the different UI components you can use and how to create them.
+ # Most UI components can return a value, such as a boolean for a checkbox.
+ # The returned values are passed to the run method as parameters.
def ui(self, is_img2img):
pass
+ # Determines when the script should be shown in the dropdown menu via the
+ # returned value. As an example:
+ # is_img2img is True if the current tab is img2img, and False if it is txt2img.
+ # Thus, return is_img2img to only show the script on the img2img tab.
def show(self, is_img2img):
return True
+ # 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.
+ # Custom functions can be defined here, and additional libraries can be imported
+ # to be used in processing. The return value should be a Processed object, which is
+ # what is returned by the process_images method.
def run(self, *args):
raise NotImplementedError()
+ # The description method is currently unused.
+ # To add a description that appears when hovering over the title, amend the "titles"
+ # dict in script.js to include the script title (returned by title) as a key, and
+ # your description as the value.
def describe(self):
return ""
diff --git a/scripts/custom_code.py b/scripts/custom_code.py
index 5694f2dd..a9b10c09 100644
--- a/scripts/custom_code.py
+++ b/scripts/custom_code.py
@@ -4,8 +4,8 @@ import gradio as gr
from modules.processing import Processed
from modules.shared import opts, cmd_opts, state
-
class Script(scripts.Script):
+
def title(self):
return "Custom code"
@@ -18,6 +18,7 @@ class Script(scripts.Script):
return [code]
+
def run(self, p, code):
assert cmd_opts.allow_code, '--allow-code option must be enabled'
@@ -37,4 +38,5 @@ class Script(scripts.Script):
exec(compiled, module.__dict__)
return Processed(p, *display_result_data)
-
+
+ \ No newline at end of file