89 lines
1.8 KiB
Python
89 lines
1.8 KiB
Python
from modules.shared import opts
|
|
import gradio as gr
|
|
import random
|
|
|
|
|
|
class Param:
|
|
|
|
def __init__(self, minimum: float, maximum: float, default: float):
|
|
self.minimum = minimum
|
|
self.maximum = maximum
|
|
self.default = default
|
|
|
|
def rand(self) -> float:
|
|
return round(random.uniform(self.minimum, self.maximum), 2)
|
|
|
|
|
|
Brightness: Param
|
|
Contrast: Param
|
|
Saturation: Param
|
|
Color: Param
|
|
|
|
|
|
def init():
|
|
global Brightness
|
|
Brightness = Param(
|
|
getattr(opts, "cc_brightness_min", -5.0),
|
|
getattr(opts, "cc_brightness_max", 5.0),
|
|
0.0,
|
|
)
|
|
|
|
global Contrast
|
|
Contrast = Param(
|
|
getattr(opts, "cc_contrast_min", -5.0),
|
|
getattr(opts, "cc_contrast_max", 5.0),
|
|
0.0,
|
|
)
|
|
|
|
global Saturation
|
|
Saturation = Param(
|
|
getattr(opts, "cc_saturation_min", 0.25),
|
|
getattr(opts, "cc_saturation_max", 1.75),
|
|
1.0,
|
|
)
|
|
|
|
global Color
|
|
Color = Param(
|
|
getattr(opts, "cc_color_min", -4.0),
|
|
getattr(opts, "cc_color_max", 4.0),
|
|
0.0,
|
|
)
|
|
|
|
|
|
def rand_method(*, orig=None):
|
|
if not opts.cc_rand_method:
|
|
return gr.update() if orig is None else orig
|
|
|
|
v = random.choice(
|
|
(
|
|
"Straight",
|
|
"Straight Abs.",
|
|
"Cross",
|
|
"Cross Abs.",
|
|
"Ones",
|
|
"N.Random",
|
|
"U.Random",
|
|
"Multi-Res",
|
|
"Multi-Res Abs.",
|
|
)
|
|
)
|
|
|
|
return gr.update(value=v) if orig is None else v
|
|
|
|
|
|
def rand_scaling(*, orig=None):
|
|
if not opts.cc_rand_scaling:
|
|
return gr.update() if orig is None else orig
|
|
|
|
v = random.choice(
|
|
(
|
|
"Flat",
|
|
"Cos",
|
|
"Sin",
|
|
"1 - Cos",
|
|
"1 - Sin",
|
|
)
|
|
)
|
|
|
|
return gr.update(value=v) if orig is None else v
|