cymic/Waifu_Diffusion_Webui
1
1import modules.scripts as scripts2import gradio as gr3 4from modules.processing import Processed5from modules.shared import opts, cmd_opts, state6 7class Script(scripts.Script):8 9 def title(self):10 return "Custom code"11 12 13 def show(self, is_img2img):14 return cmd_opts.allow_code15 16 def ui(self, is_img2img):17 code = gr.Textbox(label="Python code", visible=False, lines=1)18 19 return [code]20 21 22 def run(self, p, code):23 assert cmd_opts.allow_code, '--allow-code option must be enabled'24 25 display_result_data = [[], -1, ""]26 27 def display(imgs, s=display_result_data[1], i=display_result_data[2]):28 display_result_data[0] = imgs29 display_result_data[1] = s30 display_result_data[2] = i31 32 from types import ModuleType33 compiled = compile(code, '', 'exec')34 module = ModuleType("testmodule")35 module.__dict__.update(globals())36 module.p = p37 module.display = display38 exec(compiled, module.__dict__)39 40 return Processed(p, *display_result_data)41 42 