artificialguybr commited on
Commit
00c4b7f
1 Parent(s): d58e89b

Delete scripts

Browse files
scripts/__pycache__/pixelart.cpython-310.pyc DELETED
Binary file (4.38 kB)
 
scripts/__pycache__/postprocessing_pixelart.cpython-310.pyc DELETED
Binary file (4.33 kB)
 
scripts/__pycache__/utils.cpython-310.pyc DELETED
Binary file (2.2 kB)
 
scripts/pixelart.py DELETED
@@ -1,148 +0,0 @@
1
- import gradio as gr
2
-
3
- import modules.scripts as scripts
4
- from modules import images
5
- from modules.shared import opts
6
-
7
- from sd_webui_pixelart.utils import DITHER_METHODS, QUANTIZATION_METHODS, downscale_image, limit_colors, resize_image, convert_to_black_and_white, convert_to_grayscale
8
-
9
- class Script(scripts.Script):
10
- def title(self):
11
- return "Pixel art"
12
-
13
-
14
- def show(self, is_img2img):
15
- return scripts.AlwaysVisible
16
-
17
-
18
- def ui(self, is_img2img):
19
- quantization_methods = ['Median cut', 'Maximum coverage', 'Fast octree']
20
- dither_methods = ['None', 'Floyd-Steinberg']
21
-
22
- with gr.Accordion("Pixel art", open=False):
23
- with gr.Row():
24
- enabled = gr.Checkbox(label="Enable", value=False)
25
-
26
- with gr.Column():
27
- with gr.Row():
28
- downscale = gr.Slider(label="Downscale", minimum=1, maximum=32, step=2, value=8)
29
- need_rescale = gr.Checkbox(label="Rescale to original size", value=True)
30
- with gr.Tabs():
31
- with gr.TabItem("Color"):
32
- enable_color_limit = gr.Checkbox(label="Enable", value=False)
33
- number_of_colors = gr.Slider(label="Palette Size", minimum=1, maximum=256, step=1, value=16)
34
- quantization_method = gr.Radio(choices=quantization_methods, value=quantization_methods[0], label='Colors quantization method')
35
- dither_method = gr.Radio(choices=dither_methods, value=dither_methods[0], label='Colors dither method')
36
- use_k_means = gr.Checkbox(label="Enable k-means for color quantization", value=True)
37
- with gr.TabItem("Grayscale"):
38
- is_grayscale = gr.Checkbox(label="Enable", value=False)
39
- number_of_shades = gr.Slider(label="Palette Size", minimum=1, maximum=256, step=1, value=16)
40
- quantization_method_grayscale = gr.Radio(choices=quantization_methods, value=quantization_methods[0], label='Colors quantization method')
41
- dither_method_grayscale = gr.Radio(choices=dither_methods, value=dither_methods[0], label='Colors dither method')
42
- use_k_means_grayscale = gr.Checkbox(label="Enable k-means for color quantization", value=True)
43
- with gr.TabItem("Black and white"):
44
- with gr.Row():
45
- is_black_and_white = gr.Checkbox(label="Enable", value=False)
46
- is_inversed_black_and_white = gr.Checkbox(label="Inverse", value=False)
47
- with gr.Row():
48
- black_and_white_threshold = gr.Slider(label="Threshold", minimum=1, maximum=256, step=1, value=128)
49
- with gr.TabItem("Custom color palette"):
50
- use_color_palette = gr.Checkbox(label="Enable", value=False)
51
- palette_image=gr.Image(label="Color palette image", type="pil")
52
- palette_colors = gr.Slider(label="Palette Size (only for complex images)", minimum=1, maximum=256, step=1, value=16)
53
- dither_method_palette = gr.Radio(choices=dither_methods, value=dither_methods[0], label='Colors dither method')
54
-
55
- return [enabled, downscale, need_rescale, enable_color_limit, number_of_colors, quantization_method, dither_method, use_k_means, is_grayscale, number_of_shades, quantization_method_grayscale, dither_method_grayscale, use_k_means_grayscale, is_black_and_white, is_inversed_black_and_white, black_and_white_threshold, use_color_palette, palette_image, palette_colors, dither_method_palette]
56
-
57
- def postprocess(
58
- self,
59
- p,
60
- processed,
61
- enabled,
62
-
63
- downscale,
64
- need_rescale,
65
-
66
- enable_color_limit,
67
- number_of_colors,
68
- quantization_method,
69
- dither_method,
70
- use_k_means,
71
-
72
- is_grayscale,
73
- number_of_shades,
74
- quantization_method_grayscale,
75
- dither_method_grayscale,
76
- use_k_means_grayscale,
77
-
78
- is_black_and_white,
79
- is_inversed_black_and_white,
80
- black_and_white_threshold,
81
-
82
- use_color_palette,
83
- palette_image,
84
- palette_colors,
85
- dither_method_palette
86
- ):
87
- if not enabled:
88
- return
89
-
90
- dither = DITHER_METHODS[dither_method]
91
- quantize = QUANTIZATION_METHODS[quantization_method]
92
- dither_grayscale = DITHER_METHODS[dither_method_grayscale]
93
- quantize_grayscale = QUANTIZATION_METHODS[quantization_method_grayscale]
94
- dither_palette = DITHER_METHODS[dither_method_palette]
95
-
96
- def process_image(original_image):
97
- original_width, original_height = original_image.size
98
-
99
- if original_image.mode != "RGB":
100
- new_image = original_image.convert("RGB")
101
- else:
102
- new_image = original_image
103
-
104
- new_image = downscale_image(new_image, downscale)
105
-
106
- if use_color_palette:
107
- new_image = limit_colors(
108
- image=new_image,
109
- palette=palette_image,
110
- palette_colors=palette_colors,
111
- dither=dither_palette
112
- )
113
-
114
- if is_black_and_white:
115
- new_image = convert_to_black_and_white(new_image, black_and_white_threshold, is_inversed_black_and_white)
116
-
117
- if is_grayscale:
118
- new_image = convert_to_grayscale(new_image)
119
- new_image = limit_colors(
120
- image=new_image,
121
- limit=int(number_of_shades),
122
- quantize=quantize_grayscale,
123
- dither=dither_grayscale,
124
- use_k_means=use_k_means_grayscale
125
- )
126
-
127
- if enable_color_limit:
128
- new_image = limit_colors(
129
- image=new_image,
130
- limit=int(number_of_colors),
131
- quantize=quantize,
132
- dither=dither,
133
- use_k_means=use_k_means
134
- )
135
-
136
- if need_rescale:
137
- new_image = resize_image(new_image, (original_width, original_height))
138
-
139
- return new_image.convert('RGBA')
140
-
141
- for i in range(len(processed.images)):
142
- pixel_image = process_image(processed.images[i])
143
- processed.images.append(pixel_image)
144
-
145
- images.save_image(pixel_image, p.outpath_samples, "pixel",
146
- processed.seed + i, processed.prompt, opts.samples_format, info= processed.info, p=p)
147
-
148
- return processed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/postprocessing_pixelart.py DELETED
@@ -1,166 +0,0 @@
1
- import gradio as gr
2
- from PIL import features
3
-
4
- from modules import scripts_postprocessing
5
- from modules.shared import opts
6
-
7
- from sd_webui_pixelart.utils import DITHER_METHODS, QUANTIZATION_METHODS, downscale_image, limit_colors, resize_image, convert_to_grayscale, convert_to_black_and_white
8
-
9
-
10
- class ScriptPostprocessingUpscale(scripts_postprocessing.ScriptPostprocessing):
11
- name = "Pixel art"
12
- order = 20005
13
- model = None
14
-
15
- def ui(self):
16
- quantization_methods = ['Median cut', 'Maximum coverage', 'Fast octree']
17
- dither_methods = ['None', 'Floyd-Steinberg']
18
-
19
- if features.check_feature("libimagequant"):
20
- quantization_methods.insert(0, "libimagequant")
21
-
22
- with gr.Blocks():
23
- with gr.Accordion(label="Pixel art", open=False):
24
- enabled = gr.Checkbox(label="Enable", value=False)
25
- with gr.Row():
26
- downscale = gr.Slider(label="Downscale", minimum=1, maximum=32, step=2, value=8)
27
- need_rescale = gr.Checkbox(label="Rescale to original size", value=True)
28
- with gr.Tabs():
29
- with gr.TabItem("Color"):
30
- enable_color_limit = gr.Checkbox(label="Enable", value=False)
31
- number_of_colors = gr.Slider(label="Palette Size", minimum=1, maximum=256, step=1, value=16)
32
- quantization_method = gr.Radio(choices=quantization_methods, value=quantization_methods[0], label='Colors quantization method')
33
- dither_method = gr.Radio(choices=dither_methods, value=dither_methods[0], label='Colors dither method')
34
- use_k_means = gr.Checkbox(label="Enable k-means for color quantization", value=True)
35
- with gr.TabItem("Grayscale"):
36
- is_grayscale = gr.Checkbox(label="Enable", value=False)
37
- number_of_shades = gr.Slider(label="Palette Size", minimum=1, maximum=256, step=1, value=16)
38
- quantization_method_grayscale = gr.Radio(choices=quantization_methods, value=quantization_methods[0], label='Colors quantization method')
39
- dither_method_grayscale = gr.Radio(choices=dither_methods, value=dither_methods[0], label='Colors dither method')
40
- use_k_means_grayscale = gr.Checkbox(label="Enable k-means for color quantization", value=True)
41
- with gr.TabItem("Black and white"):
42
- with gr.Row():
43
- black_and_white = gr.Checkbox(label="Enable", value=False)
44
- inversed_black_and_white = gr.Checkbox(label="Inverse", value=False)
45
- with gr.Row():
46
- black_and_white_threshold = gr.Slider(label="Threshold", minimum=1, maximum=256, step=1, value=128)
47
- with gr.TabItem("Custom color palette"):
48
- use_color_palette = gr.Checkbox(label="Enable", value=False)
49
- palette_image=gr.Image(label="Color palette image", type="pil")
50
- palette_colors = gr.Slider(label="Palette Size (only for complex images)", minimum=1, maximum=256, step=1, value=16)
51
- dither_method_palette = gr.Radio(choices=dither_methods, value=dither_methods[0], label='Colors dither method')
52
-
53
- return {
54
- "enabled": enabled,
55
-
56
- "downscale": downscale,
57
- "need_rescale": need_rescale,
58
-
59
- "enable_color_limit": enable_color_limit,
60
- "number_of_colors": number_of_colors,
61
- "quantization_method": quantization_method,
62
- "dither_method": dither_method,
63
- "use_k_means": use_k_means,
64
-
65
- "is_grayscale": is_grayscale,
66
- "number_of_shades": number_of_shades,
67
- "quantization_method_grayscale": quantization_method_grayscale,
68
- "dither_method_grayscale": dither_method_grayscale,
69
- "use_k_means_grayscale": use_k_means_grayscale,
70
-
71
- "use_color_palette": use_color_palette,
72
- "palette_image": palette_image,
73
- "palette_colors": palette_colors,
74
- "dither_method_palette": dither_method_palette,
75
-
76
- "black_and_white": black_and_white,
77
- "inversed_black_and_white": inversed_black_and_white,
78
- "black_and_white_threshold": black_and_white_threshold,
79
- }
80
-
81
-
82
- def process(
83
- self,
84
- pp: scripts_postprocessing.PostprocessedImage,
85
-
86
- enabled,
87
-
88
- downscale,
89
- need_rescale,
90
-
91
- enable_color_limit,
92
- number_of_colors,
93
- quantization_method,
94
- dither_method,
95
- use_k_means,
96
-
97
- is_grayscale,
98
- number_of_shades,
99
- quantization_method_grayscale,
100
- dither_method_grayscale,
101
- use_k_means_grayscale,
102
-
103
- use_color_palette,
104
- palette_image,
105
- palette_colors,
106
- dither_method_palette,
107
-
108
- black_and_white,
109
- inversed_black_and_white,
110
- black_and_white_threshold
111
- ):
112
- dither = DITHER_METHODS[dither_method]
113
- quantize = QUANTIZATION_METHODS[quantization_method]
114
- dither_grayscale = DITHER_METHODS[dither_method_grayscale]
115
- quantize_grayscale = QUANTIZATION_METHODS[quantization_method_grayscale]
116
- dither_palette = DITHER_METHODS[dither_method_palette]
117
-
118
- if not enabled:
119
- return
120
-
121
- def process_image(original_image):
122
- original_width, original_height = original_image.size
123
-
124
- if original_image.mode != "RGB":
125
- new_image = original_image.convert("RGB")
126
- else:
127
- new_image = original_image
128
-
129
- new_image = downscale_image(new_image, downscale)
130
-
131
- if use_color_palette:
132
- new_image = limit_colors(
133
- image=new_image,
134
- palette=palette_image,
135
- palette_colors=palette_colors,
136
- dither=dither_palette
137
- )
138
-
139
- if black_and_white:
140
- new_image = convert_to_black_and_white(new_image, black_and_white_threshold, inversed_black_and_white)
141
-
142
- if is_grayscale:
143
- new_image = convert_to_grayscale(new_image)
144
- new_image = limit_colors(
145
- image=new_image,
146
- limit=int(number_of_shades),
147
- quantize=quantize_grayscale,
148
- dither=dither_grayscale,
149
- use_k_means=use_k_means_grayscale
150
- )
151
-
152
- if enable_color_limit:
153
- new_image = limit_colors(
154
- image=new_image,
155
- limit=int(number_of_colors),
156
- quantize=quantize,
157
- dither=dither,
158
- use_k_means=use_k_means
159
- )
160
-
161
- if need_rescale:
162
- new_image = resize_image(new_image, (original_width, original_height))
163
-
164
- return new_image.convert('RGBA')
165
-
166
- pp.image = process_image(pp.image)