reorganize scripts/extensions

Signed-off-by: vladmandic <mandic00@live.com>
This commit is contained in:
vladmandic
2026-03-27 14:00:23 +01:00
parent db6b724dfa
commit b5e9fbc7b3
56 changed files with 98 additions and 170 deletions
+1 -1
View File
@@ -198,7 +198,7 @@ def set_free_noise(frames):
shared.sd_model.enable_free_noise(context_length=context_length, context_stride=context_stride)
class Script(scripts_manager.Script):
class AnimateDiffScript(scripts_manager.Script):
def title(self):
return 'Video: AnimateDiff'
+1 -1
View File
@@ -6,7 +6,7 @@ from modules.logger import log
registered = False
class Script(scripts_manager.Script):
class APGScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -29,7 +29,7 @@ img2img = True
### Script definition
class Script(scripts_manager.Script):
class AutoColorInpaintScript(scripts_manager.Script):
def title(self):
return title
+1 -1
View File
@@ -3,7 +3,7 @@ from modules import scripts_manager, processing, shared, sd_models
from modules.logger import log
class Script(scripts_manager.Script):
class BLIPDiffusionScript(scripts_manager.Script):
def title(self):
return 'BLIP Diffusion: Controllable Generation and Editing'
+1 -1
View File
@@ -16,7 +16,7 @@ from modules import scripts_manager, devices, errors, processing, shared, sd_mod
from modules.logger import log
class Script(scripts_manager.Script):
class ConsiStoryScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.anchor_cache_first_stage = None
+1 -1
View File
@@ -6,7 +6,7 @@ from modules import shared, scripts_manager, processing, processing_helpers, sd_
from modules.logger import log
class Script(scripts_manager.Script):
class CtrlXScript(scripts_manager.Script):
def title(self):
return 'Ctrl-X: Controlling Structure and Appearance'
+1 -1
View File
@@ -35,7 +35,7 @@ def exec_with_return(code, module):
return None
class Script(scripts_manager.Script):
class CustomCodeScript(scripts_manager.Script):
def title(self):
return "Custom code"
+1 -1
View File
@@ -9,7 +9,7 @@ from modules.logger import log
COLORMAP = ['autumn', 'bone', 'jet', 'winter', 'rainbow', 'ocean', 'summer', 'spring', 'cool', 'hsv', 'pink', 'hot', 'parula', 'magma', 'inferno', 'plasma', 'viridis', 'cividis', 'twilight', 'shifted', 'turbo', 'deepgreen']
class Script(scripts_manager.Script):
class DAAMScript(scripts_manager.Script):
def title(self):
return 'DAAM: Diffusion Attentive Attribution Maps'
+1 -1
View File
@@ -1220,7 +1220,7 @@ class DemoFusionSDXLPipeline(DiffusionPipeline, FromSingleFileMixin, LoraLoaderM
### Script definition
class Script(scripts_manager.Script):
class DemoFusionScript(scripts_manager.Script):
def title(self):
return 'DemoFusion: High-Resolution Image Generation'
+1 -1
View File
@@ -1847,7 +1847,7 @@ MODELS = {
}
class Script(scripts_manager.Script):
class DifferentialDiffusionScript(scripts_manager.Script):
def title(self):
return 'Differential diffusion: Individual Pixel Strength'
-104
View File
@@ -1,104 +0,0 @@
# repo: https://huggingface.co/gokaygokay/Flux-Prompt-Enhance
import time
import random
import threading
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import gradio as gr
from modules import shared, scripts_manager, devices, processing
from modules.logger import log
repo_id = "gokaygokay/Flux-Prompt-Enhance"
num_return_sequences = 5
load_lock = threading.Lock()
class Script(scripts_manager.Script):
prompts = [['']]
tokenizer: AutoTokenizer = None
model: AutoModelForSeq2SeqLM = None
prefix: str = "enhance prompt: "
button: gr.Button = None
auto_apply: gr.Checkbox = None
max_length: gr.Slider = None
temperature: gr.Slider = None
repetition_penalty: gr.Slider = None
table: gr.DataFrame = None
prompt: gr.Textbox = None
def title(self):
return 'Flux Prompt enhance (Legacy)'
def show(self, is_img2img):
return True
def load(self):
with load_lock:
if self.tokenizer is None:
self.tokenizer = AutoTokenizer.from_pretrained('gokaygokay/Flux-Prompt-Enhance', cache_dir=shared.opts.hfcache_dir)
if self.model is None:
log.info(f'Prompt enhance: model="{repo_id}"')
self.model = AutoModelForSeq2SeqLM.from_pretrained('gokaygokay/Flux-Prompt-Enhance', cache_dir=shared.opts.hfcache_dir).to(device=devices.cpu, dtype=devices.dtype)
def enhance(self, prompt, auto_apply: bool = False, temperature: float = 0.7, repetition_penalty: float = 1.2, max_length: int = 128):
self.load()
t0 = time.time()
input_text = self.prefix + prompt
input_ids = self.tokenizer(input_text, return_tensors="pt").input_ids.to(devices.device)
self.model = self.model.to(devices.device)
kwargs = {
'max_length': int(max_length),
'num_return_sequences': int(num_return_sequences),
'do_sample': True,
'temperature': float(temperature),
'repetition_penalty': float(repetition_penalty),
}
try:
outputs = self.model.generate(input_ids, **kwargs)
except Exception as e:
log.error(f'Prompt enhance: error="{e}"')
return [['']]
self.model = self.model.to(devices.cpu)
prompts = self.tokenizer.batch_decode(outputs, skip_special_tokens=True)
prompts = [[p] for p in prompts]
t1 = time.time()
log.info(f'Prompt enhance: temperature={temperature} repetition={repetition_penalty} length={max_length} sequences={num_return_sequences} apply={auto_apply} time={t1-t0:.2f}s')
return prompts
def select(self, cell: gr.SelectData, _table):
prompt = cell.value if hasattr(cell, 'value') else cell
log.info(f'Prompt enhance: prompt="{prompt}"')
return prompt
def ui(self, _is_img2img):
with gr.Row():
self.button = gr.Button(value='Enhance prompt')
self.auto_apply = gr.Checkbox(label='Auto apply', value=False)
with gr.Row():
self.max_length = gr.Slider(label='Length', minimum=64, maximum=512, step=1, value=128)
self.temperature = gr.Slider(label='Temperature', minimum=0.1, maximum=2.0, step=0.05, value=0.7)
self.repetition_penalty = gr.Slider(label='Penalty', minimum=0.1, maximum=2.0, step=0.05, value=1.2)
with gr.Row():
self.table = gr.DataFrame(self.prompts, label='', show_label=False, interactive=False, wrap=True, datatype="str", col_count=1, headers=['Prompts'])
if self.prompt is not None:
self.button.click(fn=self.enhance, inputs=[self.prompt, self.auto_apply, self.temperature, self.repetition_penalty, self.max_length], outputs=[self.table])
self.table.select(fn=self.select, inputs=[self.table], outputs=[self.prompt])
return [self.auto_apply, self.temperature, self.repetition_penalty, self.max_length]
def run(self, p: processing.StableDiffusionProcessing, auto_apply, temperature, repetition_penalty, max_length): # pylint: disable=arguments-differ
if auto_apply:
p.prompt = shared.prompt_styles.apply_styles_to_prompt(p.prompt, p.styles)
p.negative_prompt = shared.prompt_styles.apply_negative_styles_to_prompt(p.negative_prompt, p.styles)
shared.prompt_styles.apply_styles_to_extra(p)
p.styles = []
log.debug(f'Prompt enhance: source="{p.prompt}"')
prompts = self.enhance(p.prompt, auto_apply, temperature, repetition_penalty, max_length)
p.prompt = random.choice(prompts)[0]
log.debug(f'Prompt enhance: prompt="{p.prompt}"')
def after_component(self, component, **kwargs): # searching for actual ui prompt components
if getattr(component, 'elem_id', '') in ['txt2img_prompt', 'img2img_prompt', 'control_prompt', 'video_prompt']:
self.prompt = component
self.prompt.use_original = True
+1 -1
View File
@@ -15,7 +15,7 @@ processor_depth = None
title = 'Flux Tools'
class Script(scripts_manager.Script):
class FluxToolsScript(scripts_manager.Script):
def title(self):
return f'{title}'
+1 -1
View File
@@ -6,7 +6,7 @@ from modules.logger import log
registered = False
class Script(scripts_manager.Script):
class FreeScaleScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -9,7 +9,7 @@ from modules.processing import get_processed
from modules.shared import opts, state
class Script(scripts_manager.Script):
class HDRScript(scripts_manager.Script):
def title(self):
return "HDR: High Dynamic Range"
+1 -1
View File
@@ -7,7 +7,7 @@ from modules.logger import log
from modules.files_cache import list_files
class Script(scripts_manager.Script):
class I2IFolderScript(scripts_manager.Script):
def title(self):
return "CeeTeeDees I2I folder batch inference"
+1 -1
View File
@@ -12,7 +12,7 @@ MODELS = [
]
class Script(scripts_manager.Script):
class VGenI2VScript(scripts_manager.Script):
def title(self):
return 'Video: VGen Image-to-Video'
+1 -1
View File
@@ -30,7 +30,7 @@ def load_infiniteyou(model: str):
sd_models.set_diffuser_options(shared.sd_model)
class Script(scripts_manager.Script):
class InfiniteYouScript(scripts_manager.Script):
def title(self):
return f'{prefix}: Flexible Photo Recrafting'
+1 -1
View File
@@ -2,7 +2,7 @@ from modules.logger import log
from modules import scripts_manager, processing, shared, devices
class Script(scripts_manager.Script):
class InitLatentsScript(scripts_manager.Script):
standalone = False
def title(self):
+1 -1
View File
@@ -6,7 +6,7 @@ from modules import scripts_manager, processing, shared, sd_models, devices, ipa
from modules.logger import log
class Script(scripts_manager.Script):
class InstantIRScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -8,7 +8,7 @@ from modules.logger import log
MAX_ADAPTERS = 4
class Script(scripts_manager.Script):
class IPAdapterScript(scripts_manager.Script):
standalone = True
def title(self):
+1 -1
View File
@@ -17,7 +17,7 @@ encoder = "laion/CLIP-ViT-H-14-laion2B-s32B-b79K"
folder = os.path.join('repositories', 'ip_instruct')
class Script(scripts_manager.Script):
class IPInstructScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -4,7 +4,7 @@ from modules import scripts_manager, processing, shared, sd_models, devices
from modules.logger import log
class Script(scripts_manager.Script):
class KohyaHiResFixScript(scripts_manager.Script):
def title(self):
return 'Kohya HiRes Fix'
+1 -1
View File
@@ -3,7 +3,7 @@ from modules import shared, scripts_manager, sd_models
from modules.logger import log
class Script(scripts_manager.Script):
class LayerDiffuseScript(scripts_manager.Script):
def title(self):
return 'LayerDiffuse: Transparent Image'
+1 -1
View File
@@ -30,7 +30,7 @@ ASPECT_RATIOS = {
}
class Script(scripts_manager.Script):
class LBMScript(scripts_manager.Script):
def title(self):
return 'LBM: Latent Bridge Matching'
+1 -1
View File
@@ -4,7 +4,7 @@ from modules import scripts_manager, processing, shared, devices, sd_models
from modules.logger import log
class Script(scripts_manager.Script):
class LEditsScript(scripts_manager.Script):
def title(self):
return 'LEdits: Limitless Image Editing'
+1 -1
View File
@@ -7,7 +7,7 @@ from modules.processing import Processed
from modules.shared import opts, state, log
class Script(scripts_manager.Script):
class LoopbackScript(scripts_manager.Script):
def title(self):
return "Loopback"
+1 -1
View File
@@ -8,7 +8,7 @@ max_xtiles = 4
max_ytiles = 4
class Script(scripts_manager.Script):
class MoDScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -25,7 +25,7 @@ def check_dependencies():
return False
class Script(scripts_manager.Script):
class MixtureTilingScript(scripts_manager.Script):
def title(self):
return 'Mixture Tiling: Scene Composition'
+1 -1
View File
@@ -45,7 +45,7 @@ tokenizer = None
text_encoder_path = None
class Script(scripts_manager.Script):
class MuLanScript(scripts_manager.Script):
def title(self):
return 'MuLan: Multi Language Prompts'
+1 -1
View File
@@ -99,7 +99,7 @@ def get_matched_noise(_np_src_image, np_mask_rgb, noise_q=1, color_variation=0.0
return np.clip(matched_noise, 0., 1.)
class Script(scripts_manager.Script):
class OutpaintingScript(scripts_manager.Script):
def title(self):
return "Outpainting"
+1 -1
View File
@@ -4,7 +4,7 @@ from modules import scripts_manager, processing, shared, sd_models, devices, ima
from modules.logger import log
class Script(scripts_manager.Script):
class PixelSmithScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -7,7 +7,7 @@ from modules.shared import opts, state, log
from modules.image.grid import split_grid
class Script(scripts_manager.Script):
class OutpaintingAltScript(scripts_manager.Script):
def title(self):
return "Outpainting alternative"
+1 -1
View File
@@ -300,7 +300,7 @@ class Options:
return get_model_display_name(Options.default)
class Script(scripts_manager.Script):
class PromptEnhanceScript(scripts_manager.Script):
prompt: gr.Textbox = None
image: gr.Image = None
model: str = None
+1 -1
View File
@@ -6,7 +6,7 @@ from modules.shared import opts, log
import modules.sd_samplers
class Script(scripts_manager.Script):
class PromptMatrixScript(scripts_manager.Script):
def title(self):
return "Prompt matrix"
+1 -1
View File
@@ -93,7 +93,7 @@ def load_prompt_file(file):
return None, "\n".join(lines), gr.update(lines=7)
class Script(scripts_manager.Script):
class PromptsFromFileScript(scripts_manager.Script):
def title(self):
return "Prompts from file"
+1 -1
View File
@@ -14,7 +14,7 @@ registered = False
uploaded_images = []
class Script(scripts_manager.Script):
class PulIDScript(scripts_manager.Script):
def __init__(self):
self.pulid = None
self.cache = None
+1 -1
View File
@@ -22,7 +22,7 @@ def hijack_register_modules(self, **kwargs):
setattr(self, name, module)
class Script(scripts_manager.Script):
class RegionalPromptingScript(scripts_manager.Script):
def title(self):
return 'Regional prompting'
+1 -1
View File
@@ -18,7 +18,7 @@ models = {
'SDXL v1 interpolation': 'resadapter_v1_sdxl_interpolation',
}
class Script(scripts_manager.Script):
class ResAdapterScript(scripts_manager.Script):
def title(self):
return 'ResAdapter: Domain Consistent Resolution'
+1 -1
View File
@@ -6,7 +6,7 @@ from modules import scripts_manager, shared
# pylint: disable=protected-access
class Script(scripts_manager.Script):
class ROCmScript(scripts_manager.Script):
def title(self):
return "ROCm: Advanced Config"
+1 -1
View File
@@ -8,7 +8,7 @@ from modules.image.util import flatten
from modules.image.grid import split_grid
class Script(scripts_manager.Script):
class SDUpscaleScript(scripts_manager.Script):
def title(self):
return "SD Upscale"
+1 -1
View File
@@ -7,7 +7,7 @@ from modules.logger import log
registered = False
class Script(scripts_manager.Script):
class SLGScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.register()
+1 -1
View File
@@ -1608,7 +1608,7 @@ from modules import shared, scripts_manager, processing, sd_models
from modules.logger import log
class Script(scripts_manager.Script):
class SoftFillScript(scripts_manager.Script):
orig_pipeline = None
def title(self):
+1 -1
View File
@@ -15,7 +15,7 @@ models = {
"SVD XT 1.1": "stabilityai/stable-video-diffusion-img2vid-xt-1-1",
}
class Script(scripts_manager.Script):
class SVDScript(scripts_manager.Script):
def title(self):
return 'Video: Stable Video Diffusion'
+1 -1
View File
@@ -12,7 +12,7 @@ supported_model_list = ['sdxl']
orig_prompt_attention = None
class Script(scripts_manager.Script):
class StyleAlignedScript(scripts_manager.Script):
def title(self):
return 'Style Aligned Image Generation'
+1 -1
View File
@@ -4,7 +4,7 @@ from modules.logger import log
from installer import install
class Script(scripts_manager.Script):
class TGateScript(scripts_manager.Script):
def title(self):
return 'T-Gate: Accelerate via Gating Attention'
+1 -1
View File
@@ -22,7 +22,7 @@ MODELS = [
]
class Script(scripts_manager.Script):
class ModelScopeScript(scripts_manager.Script):
def title(self):
return 'Video: ModelScope'
+1 -1
View File
@@ -22,7 +22,7 @@ def asymmetricConv2DConvForward(self, input: Tensor, weight: Tensor, bias: Optio
return F.conv2d(working, weight, bias, self.stride, _pair(0), self.dilation, self.groups)
class Script(scripts_manager.Script):
class TilingScript(scripts_manager.Script):
def __init__(self):
super().__init__()
self.orig_pipe = None
+1 -1
View File
@@ -22,7 +22,7 @@ from modules.logger import log
debug = log.trace if os.environ.get('SD_XYZ_DEBUG', None) is not None else lambda *args, **kwargs: None
class Script(scripts_manager.Script):
class XYZGridScript(scripts_manager.Script):
current_axis_options = []
def title(self):
+1 -1
View File
@@ -23,7 +23,7 @@ xyz_results_cache = None
debug = log.trace if os.environ.get('SD_XYZ_DEBUG', None) is not None else lambda *args, **kwargs: None
class Script(scripts_manager.Script):
class XYZGridScript(scripts_manager.Script):
current_axis_options = []
def show(self, is_img2img):