sd-webui-color-enhance/mmaker_color_enhance_core.py

15 lines
602 B
Python
Raw Normal View History

2023-11-15 19:58:17 -05:00
import numpy as np
import skimage.color
from PIL import Image
import imageio.core.util
imageio.core.util._precision_warn = lambda *args, **kwargs: None
def color_enhance(arr, strength: float = 1) -> Image.Image:
2023-11-15 20:24:16 -05:00
lch = skimage.color.lab2lch(lab=skimage.color.rgb2lab(rgb=np.array(arr, dtype=np.uint8)))
lch[:, :, 1] *= 100/(lerp(100, lch[:, :, 1].max(), strength)) # Normalize chroma component
return Image.fromarray(np.array(skimage.color.lab2rgb(lab=skimage.color.lch2lab(lch=lch)) * 255, dtype=np.uint8))
2023-11-15 19:58:17 -05:00
def lerp(a: float, b: float, t: float) -> float:
2023-11-15 20:24:16 -05:00
return (1 - t) * a + t * b