Commit f8d0cf6a authored by AUTOMATIC's avatar AUTOMATIC

rework #6329 to remove duplicate code and add prevent tab names for showing in...

rework #6329 to remove duplicate code and add prevent tab names for showing in ids for scripts that only exist on one tab
parent 997461d3
import os import os
import re
import sys import sys
import traceback import traceback
from collections import namedtuple from collections import namedtuple
...@@ -128,6 +129,15 @@ class Script: ...@@ -128,6 +129,15 @@ class Script:
"""unused""" """unused"""
return "" return ""
def elem_id(self, item_id):
"""helper function to generate id for a HTML element, constructs final id out of script name, tab and user-supplied item_id"""
need_tabname = self.show(True) == self.show(False)
tabname = ('img2img' if self.is_img2img else 'txt2txt') + "_" if need_tabname else ""
title = re.sub(r'[^a-z_0-9]', '', re.sub(r'\s', '_', self.title().lower()))
return f'script_{tabname}{title}_{item_id}'
current_basedir = paths.script_path current_basedir = paths.script_path
......
...@@ -3,18 +3,12 @@ import gradio as gr ...@@ -3,18 +3,12 @@ import gradio as gr
from modules.processing import Processed from modules.processing import Processed
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import re
class Script(scripts.Script): class Script(scripts.Script):
def title(self): def title(self):
return "Custom code" return "Custom code"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def show(self, is_img2img): def show(self, is_img2img):
return cmd_opts.allow_code return cmd_opts.allow_code
......
...@@ -16,7 +16,6 @@ import k_diffusion as K ...@@ -16,7 +16,6 @@ import k_diffusion as K
from PIL import Image from PIL import Image
from torch import autocast from torch import autocast
from einops import rearrange, repeat from einops import rearrange, repeat
import re
def find_noise_for_image(p, cond, uncond, cfg_scale, steps): def find_noise_for_image(p, cond, uncond, cfg_scale, steps):
...@@ -123,11 +122,6 @@ class Script(scripts.Script): ...@@ -123,11 +122,6 @@ class Script(scripts.Script):
def title(self): def title(self):
return "img2img alternative test" return "img2img alternative test"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def show(self, is_img2img): def show(self, is_img2img):
return is_img2img return is_img2img
......
...@@ -8,18 +8,12 @@ from modules import processing, shared, sd_samplers, images ...@@ -8,18 +8,12 @@ from modules import processing, shared, sd_samplers, images
from modules.processing import Processed from modules.processing import Processed
from modules.sd_samplers import samplers from modules.sd_samplers import samplers
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import re
class Script(scripts.Script): class Script(scripts.Script):
def title(self): def title(self):
return "Loopback" return "Loopback"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def show(self, is_img2img): def show(self, is_img2img):
return is_img2img return is_img2img
......
...@@ -10,7 +10,6 @@ from PIL import Image, ImageDraw ...@@ -10,7 +10,6 @@ from PIL import Image, ImageDraw
from modules import images, processing, devices from modules import images, processing, devices
from modules.processing import Processed, process_images from modules.processing import Processed, process_images
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import re
# this function is taken from https://github.com/parlance-zz/g-diffuser-bot # this function is taken from https://github.com/parlance-zz/g-diffuser-bot
...@@ -123,11 +122,6 @@ class Script(scripts.Script): ...@@ -123,11 +122,6 @@ class Script(scripts.Script):
def title(self): def title(self):
return "Outpainting mk2" return "Outpainting mk2"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def show(self, is_img2img): def show(self, is_img2img):
return is_img2img return is_img2img
......
...@@ -7,18 +7,12 @@ from PIL import Image, ImageDraw ...@@ -7,18 +7,12 @@ from PIL import Image, ImageDraw
from modules import images, processing, devices from modules import images, processing, devices
from modules.processing import Processed, process_images from modules.processing import Processed, process_images
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import re
class Script(scripts.Script): class Script(scripts.Script):
def title(self): def title(self):
return "Poor man's outpainting" return "Poor man's outpainting"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def show(self, is_img2img): def show(self, is_img2img):
return is_img2img return is_img2img
......
...@@ -10,7 +10,6 @@ from modules import images ...@@ -10,7 +10,6 @@ from modules import images
from modules.processing import process_images, Processed from modules.processing import process_images, Processed
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import modules.sd_samplers import modules.sd_samplers
import re
def draw_xy_grid(xs, ys, x_label, y_label, cell): def draw_xy_grid(xs, ys, x_label, y_label, cell):
...@@ -45,11 +44,6 @@ class Script(scripts.Script): ...@@ -45,11 +44,6 @@ class Script(scripts.Script):
def title(self): def title(self):
return "Prompt matrix" return "Prompt matrix"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def ui(self, is_img2img): def ui(self, is_img2img):
put_at_start = gr.Checkbox(label='Put variable parts at start of prompt', value=False, elem_id=self.elem_id("put_at_start")) put_at_start = gr.Checkbox(label='Put variable parts at start of prompt', value=False, elem_id=self.elem_id("put_at_start"))
different_seeds = gr.Checkbox(label='Use different seed for each picture', value=False, elem_id=self.elem_id("different_seeds")) different_seeds = gr.Checkbox(label='Use different seed for each picture', value=False, elem_id=self.elem_id("different_seeds"))
......
...@@ -13,7 +13,6 @@ from modules import sd_samplers ...@@ -13,7 +13,6 @@ from modules import sd_samplers
from modules.processing import Processed, process_images from modules.processing import Processed, process_images
from PIL import Image from PIL import Image
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import re
def process_string_tag(tag): def process_string_tag(tag):
...@@ -112,11 +111,6 @@ class Script(scripts.Script): ...@@ -112,11 +111,6 @@ class Script(scripts.Script):
def title(self): def title(self):
return "Prompts from file or textbox" return "Prompts from file or textbox"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def ui(self, is_img2img): def ui(self, is_img2img):
checkbox_iterate = gr.Checkbox(label="Iterate seed every line", value=False, elem_id=self.elem_id("checkbox_iterate")) checkbox_iterate = gr.Checkbox(label="Iterate seed every line", value=False, elem_id=self.elem_id("checkbox_iterate"))
checkbox_iterate_batch = gr.Checkbox(label="Use same random seed for all lines", value=False, elem_id=self.elem_id("checkbox_iterate_batch")) checkbox_iterate_batch = gr.Checkbox(label="Use same random seed for all lines", value=False, elem_id=self.elem_id("checkbox_iterate_batch"))
......
...@@ -7,18 +7,12 @@ from PIL import Image ...@@ -7,18 +7,12 @@ from PIL import Image
from modules import processing, shared, sd_samplers, images, devices from modules import processing, shared, sd_samplers, images, devices
from modules.processing import Processed from modules.processing import Processed
from modules.shared import opts, cmd_opts, state from modules.shared import opts, cmd_opts, state
import re
class Script(scripts.Script): class Script(scripts.Script):
def title(self): def title(self):
return "SD upscale" return "SD upscale"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def show(self, is_img2img): def show(self, is_img2img):
return is_img2img return is_img2img
......
...@@ -290,11 +290,6 @@ class Script(scripts.Script): ...@@ -290,11 +290,6 @@ class Script(scripts.Script):
def title(self): def title(self):
return "X/Y plot" return "X/Y plot"
def elem_id(self, item_id):
gen_elem_id = ('img2img' if self.is_img2img else 'txt2txt') + '_script_' + re.sub(r'\s', '_', self.title().lower()) + '_' + item_id
gen_elem_id = re.sub(r'[^a-z_0-9]', '', gen_elem_id)
return gen_elem_id
def ui(self, is_img2img): def ui(self, is_img2img):
current_axis_options = [x for x in axis_options if type(x) == AxisOption or type(x) == AxisOptionImg2Img and is_img2img] current_axis_options = [x for x in axis_options if type(x) == AxisOption or type(x) == AxisOptionImg2Img and is_img2img]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment