from PIL import Image, ImageEnhance from ..utils import random, get_colour_lut, apply_pixel_shader from ..operations import add_noise, add_random_colour_spill import numpy as np def random_edit(img: Image, seed: int = 42) -> Image: np.random.seed(seed) img = add_noise(img, random(0, 0.2)) img = ImageEnhance.Contrast(img).enhance(random(0.5, 2)) img = add_random_colour_spill(img, 1.3) img = img.convert("HSV") saturation_lut = get_colour_lut(variance=0.3, count=5, type="linear") brightness_lut = get_colour_lut(variance=0.3, count=5, type="cubic") img = apply_pixel_shader( img, lambda h, s, v: (h, saturation_lut[s], brightness_lut[v]) ) img = img.convert("RGB") return img