2023-12-02 23:01:11 +08:00
|
|
|
from PIL import ImageOps, Image
|
|
|
|
|
|
|
|
from modules import scripts_postprocessing, ui_components
|
|
|
|
import gradio as gr
|
|
|
|
|
|
|
|
|
|
|
|
class ScriptPostprocessingCreateFlippedCopies(scripts_postprocessing.ScriptPostprocessing):
|
|
|
|
name = "Create flipped copies"
|
2023-12-19 17:48:49 +08:00
|
|
|
order = 4030
|
2023-12-02 23:01:11 +08:00
|
|
|
|
|
|
|
def ui(self):
|
|
|
|
with ui_components.InputAccordion(False, label="Create flipped copies") as enable:
|
|
|
|
with gr.Row():
|
|
|
|
option = gr.CheckboxGroup(value=["Horizontal"], choices=["Horizontal", "Vertical", "Both"], show_label=False)
|
|
|
|
|
|
|
|
return {
|
|
|
|
"enable": enable,
|
|
|
|
"option": option,
|
|
|
|
}
|
|
|
|
|
|
|
|
def process(self, pp: scripts_postprocessing.PostprocessedImage, enable, option):
|
|
|
|
if not enable:
|
|
|
|
return
|
|
|
|
|
|
|
|
if "Horizontal" in option:
|
|
|
|
pp.extra_images.append(ImageOps.mirror(pp.image))
|
|
|
|
|
|
|
|
if "Vertical" in option:
|
|
|
|
pp.extra_images.append(pp.image.transpose(Image.Transpose.FLIP_TOP_BOTTOM))
|
|
|
|
|
|
|
|
if "Both" in option:
|
|
|
|
pp.extra_images.append(pp.image.transpose(Image.Transpose.FLIP_TOP_BOTTOM).transpose(Image.Transpose.FLIP_LEFT_RIGHT))
|