File size: 900 Bytes
e5e58b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import random
import cv2
from .guided_filter import FastGuidedFilter


class TileDetector:
    # https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0
    def __init__(self):
        pass

    def __call__(self, image):
        blur_strength = random.sample([i / 10. for i in range(10, 201, 2)], k=1)[0]
        radius = random.sample([i for i in range(1, 40, 2)], k=1)[0]
        eps = random.sample([i / 1000. for i in range(1, 101, 2)], k=1)[0]
        scale_factor = random.sample([i / 10. for i in range(10, 181, 5)], k=1)[0]

        ksize = int(blur_strength)
        if ksize % 2 == 0:
            ksize += 1

        if random.random() > 0.5:
            image = cv2.GaussianBlur(image, (ksize, ksize), blur_strength / 2)
        if random.random() > 0.5:
            filter = FastGuidedFilter(image, radius, eps, scale_factor)
            image = filter.filter(image)
        return image