| from __future__ import annotations |
|
|
| from typing import TYPE_CHECKING |
|
|
| if TYPE_CHECKING: |
| from abc import ABC, abstractmethod |
| from collections import namedtuple |
| from dataclasses import dataclass |
| from typing import Any |
|
|
| import gradio as gr |
| from PIL import Image |
|
|
| from sd_webui.processing import ( |
| Processed, |
| StableDiffusionProcessingImg2Img, |
| StableDiffusionProcessingTxt2Img, |
| ) |
|
|
| SDPType = StableDiffusionProcessingImg2Img | StableDiffusionProcessingTxt2Img |
| AlwaysVisible = object() |
|
|
| @dataclass |
| class PostprocessImageArgs: |
| image: Image.Image |
|
|
| class Script(ABC): |
| filename: str |
| args_from: int |
| args_to: int |
| alwayson: bool |
|
|
| is_txt2img: bool |
| is_img2img: bool |
|
|
| group: gr.Group |
| infotext_fields: list[tuple[str, str]] |
| paste_field_names: list[str] |
|
|
| @abstractmethod |
| def title(self): |
| raise NotImplementedError |
|
|
| def ui(self, is_img2img: bool): |
| pass |
|
|
| def show(self, is_img2img: bool): |
| return True |
|
|
| def run(self, p: SDPType, *args): |
| pass |
|
|
| def process(self, p: SDPType, *args): |
| pass |
|
|
| def before_process_batch(self, p: SDPType, *args, **kwargs): |
| pass |
|
|
| def process_batch(self, p: SDPType, *args, **kwargs): |
| pass |
|
|
| def postprocess_batch(self, p: SDPType, *args, **kwargs): |
| pass |
|
|
| def postprocess_image(self, p: SDPType, pp: PostprocessImageArgs, *args): |
| pass |
|
|
| def postprocess(self, p: SDPType, processed: Processed, *args): |
| pass |
|
|
| def before_component(self, component, **kwargs): |
| pass |
|
|
| def after_component(self, component, **kwargs): |
| pass |
|
|
| def describe(self): |
| return "" |
|
|
| def elem_id(self, item_id: Any) -> str: |
| pass |
|
|
| ScriptClassData = namedtuple( |
| "ScriptClassData", ["script_class", "path", "basedir", "module"] |
| ) |
| scripts_data: list[ScriptClassData] = [] |
|
|
| else: |
| from modules.scripts import ( |
| AlwaysVisible, |
| PostprocessImageArgs, |
| Script, |
| scripts_data, |
| ) |
|
|