happyneishon commited on
Commit
a57c749
·
verified ·
1 Parent(s): c08d802

Upload 5 files

Browse files
Files changed (5) hide show
  1. Revision by XpucT.py +163 -0
  2. config.json +417 -0
  3. ui-config.json +0 -0
  4. user.css +256 -0
  5. user.js +53 -0
Revision by XpucT.py ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Author: XpucT
2
+ # Script's homepage: https://boosty.to/xpuct
3
+
4
+ import modules.scripts as scripts
5
+ import gradio as gr
6
+ import numpy as np
7
+ import cv2
8
+
9
+ from PIL import Image
10
+ from modules.processing import process_images, Processed
11
+ from PIL import ImageEnhance, Image, ImageDraw, ImageFilter, ImageChops, ImageOps
12
+ from blendmodes.blend import blendLayers, BlendType
13
+
14
+
15
+ def resetValues(saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider):
16
+ saturationSlider = 1
17
+ temperatureSlider = 1
18
+ brightnessSlider = 1
19
+ contrastSlider = 1
20
+ sharpnessSlider = 0
21
+ blurSlider = 0
22
+ noiseSlider = 0
23
+ vignetteSlider = 0
24
+ exposureOffsetSlider = 0
25
+ hdrSlider = 0
26
+ return [saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider]
27
+
28
+
29
+ def bestChoiceValues(saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider):
30
+ saturationSlider = .98
31
+ temperatureSlider = 1.04
32
+ brightnessSlider = 1.01
33
+ contrastSlider = .97
34
+ sharpnessSlider = .02
35
+ blurSlider = 0
36
+ noiseSlider = .03
37
+ vignetteSlider = .05
38
+ exposureOffsetSlider = .1
39
+ hdrSlider = .16
40
+ return [saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider]
41
+
42
+
43
+ class Script(scripts.Script):
44
+ def title(self):
45
+ return 'Revision'
46
+
47
+ def ui(self, is_img2img):
48
+ saturationSlider = gr.Slider(0, 2, 1, label='Saturation')
49
+ temperatureSlider = gr.Slider(0, 2, 1, label='Temperature')
50
+ brightnessSlider = gr.Slider(0, 2, 1, label='Brightness')
51
+ contrastSlider = gr.Slider(0, 2, 1, label='Contrast')
52
+ sharpnessSlider = gr.Slider(0, 1, 0, label='Sharpness')
53
+ blurSlider = gr.Slider(0, 1, 0, label='Blur')
54
+ noiseSlider = gr.Slider(0, 1, 0, label='Noise')
55
+ vignetteSlider = gr.Slider(0, 1, 0, step=.05, label='Vignette')
56
+ exposureOffsetSlider = gr.Slider(
57
+ 0, 1, 0, step=.05, label='Exposure offset')
58
+ hdrSlider = gr.Slider(0, 1, 0, label='HDR')
59
+
60
+ bestChoiceButton = gr.Button(value="Best Choice")
61
+ bestChoiceButton.click(bestChoiceValues, inputs=[saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider],
62
+ outputs=[saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider])
63
+
64
+ resetSlidersButton = gr.Button(value="Reset Sliders")
65
+ resetSlidersButton.click(resetValues, inputs=[saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider],
66
+ outputs=[saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider])
67
+
68
+ clearEXIFCheckbox = gr.Checkbox(label="Clear EXIF (all metadata)")
69
+ flipImageCheckbox = gr.Checkbox(label="Flip image")
70
+ dontShowOriginalCheckbox = gr.Checkbox(
71
+ label="Don't show original image")
72
+
73
+ return [saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider,
74
+ clearEXIFCheckbox, flipImageCheckbox, dontShowOriginalCheckbox]
75
+
76
+ def run(self, p, saturationSlider, temperatureSlider, brightnessSlider, contrastSlider, sharpnessSlider, blurSlider, noiseSlider, vignetteSlider, exposureOffsetSlider, hdrSlider,
77
+ clearEXIFCheckbox, flipImageCheckbox, dontShowOriginalCheckbox):
78
+ proc = process_images(p)
79
+ image = proc.images[0]
80
+ img = ImageEnhance.Color(image).enhance(saturationSlider)
81
+ img = ImageEnhance.Brightness(img).enhance(brightnessSlider)
82
+ img = ImageEnhance.Contrast(img).enhance(contrastSlider)
83
+
84
+ if vignetteSlider > 0:
85
+ width, height = img.size
86
+ mask = Image.new("L", (width, height), 0)
87
+ draw = ImageDraw.Draw(mask)
88
+ padding = 100 - vignetteSlider * 100
89
+ draw.ellipse((-padding, -padding, width +
90
+ padding, height + padding), fill=255)
91
+ mask = mask.filter(ImageFilter.GaussianBlur(radius=100))
92
+ img = Image.composite(img, Image.new(
93
+ "RGB", img.size, "black"), mask)
94
+
95
+ if hdrSlider > 0:
96
+ blurred = img.filter(ImageFilter.GaussianBlur(radius=2.8))
97
+ difference = ImageChops.difference(img, blurred)
98
+ sharpEdges = Image.blend(img, difference, 1)
99
+
100
+ convertedOriginalImage = np.array(
101
+ image)[:, :, ::-1].copy().astype('float32') / 255.0
102
+ convertedSharped = np.array(
103
+ sharpEdges)[:, :, ::-1].copy().astype('float32') / 255.0
104
+
105
+ colorDodge = convertedOriginalImage / (1 - convertedSharped)
106
+ convertedColorDodge = (
107
+ 255 * colorDodge).clip(0, 255).astype(np.uint8)
108
+
109
+ tempImage = Image.fromarray(cv2.cvtColor(
110
+ convertedColorDodge, cv2.COLOR_BGR2RGB))
111
+ invertedColorDodge = ImageOps.invert(tempImage)
112
+ blackWhiteColorDodge = ImageEnhance.Color(
113
+ invertedColorDodge).enhance(0)
114
+ hue = blendLayers(tempImage, blackWhiteColorDodge, BlendType.HUE)
115
+ hdrImage = blendLayers(hue, tempImage, BlendType.NORMAL, .7)
116
+
117
+ img = blendLayers(img, hdrImage, BlendType.NORMAL,
118
+ hdrSlider * 2).convert("RGB")
119
+
120
+ if sharpnessSlider > 0:
121
+ img = ImageEnhance.Sharpness(img).enhance(
122
+ (sharpnessSlider + 1) * 1.5)
123
+
124
+ if blurSlider > 0:
125
+ img = img.filter(ImageFilter.BoxBlur(blurSlider * 10))
126
+
127
+ if temperatureSlider != 1:
128
+ pixels = img.load()
129
+ for i in range(img.width):
130
+ for j in range(img.height):
131
+ (r, g, b) = pixels[i, j]
132
+ if temperatureSlider > 1:
133
+ r *= 1 + ((temperatureSlider - 1) / 4)
134
+ b *= 1 - (((temperatureSlider - 1) / 4))
135
+ else:
136
+ r *= 1 - (1 - temperatureSlider) / 4
137
+ b *= 1 + (((1 - temperatureSlider) / 4))
138
+ pixels[i, j] = (int(r), int(g), int(b))
139
+
140
+ if noiseSlider > 0:
141
+ noise = np.random.randint(0, noiseSlider * 100, img.size, np.uint8)
142
+ noise_img = Image.fromarray(noise, 'L').resize(
143
+ img.size).convert(img.mode)
144
+ img = ImageChops.add(img, noise_img)
145
+
146
+ if exposureOffsetSlider > 0:
147
+ np_img = np.array(img).astype(float) + exposureOffsetSlider * 75
148
+ np_img = np.clip(np_img, 0, 255).astype(np.uint8)
149
+ img = Image.fromarray(np_img)
150
+ img = ImageEnhance.Brightness(img).enhance(
151
+ brightnessSlider - exposureOffsetSlider / 4)
152
+
153
+ if flipImageCheckbox:
154
+ img = Image.fromarray(np.fliplr(np.array(img)))
155
+
156
+ if dontShowOriginalCheckbox:
157
+ proc.images.clear()
158
+
159
+ if not clearEXIFCheckbox:
160
+ img.info['parameters'] = proc.info
161
+
162
+ proc.images.insert(0, img)
163
+ return Processed(p, proc.images, p.seed, '')
config.json ADDED
@@ -0,0 +1,417 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "samples_save": true,
3
+ "samples_format": "png",
4
+ "samples_filename_pattern": "[seed]-[datetime<%M%S>]-[prompt_spaces]",
5
+ "save_images_add_number": true,
6
+ "save_images_replace_action": "Replace",
7
+ "grid_save": true,
8
+ "grid_format": "png",
9
+ "grid_extended_filename": true,
10
+ "grid_only_if_multiple": true,
11
+ "grid_prevent_empty_spots": false,
12
+ "grid_zip_filename_pattern": "",
13
+ "n_rows": -1,
14
+ "font": "Segoe UI Semilight",
15
+ "grid_text_active_color": "#d5d6d7",
16
+ "grid_text_inactive_color": "#999999",
17
+ "grid_background_color": "#121517",
18
+ "save_images_before_face_restoration": false,
19
+ "save_images_before_highres_fix": false,
20
+ "save_images_before_color_correction": false,
21
+ "save_mask": false,
22
+ "save_mask_composite": false,
23
+ "jpeg_quality": 80,
24
+ "webp_lossless": false,
25
+ "export_for_4chan": false,
26
+ "img_downscale_threshold": 4.0,
27
+ "target_side_length": 4000,
28
+ "img_max_size_mp": 1000.0,
29
+ "use_original_name_batch": true,
30
+ "use_upscaler_name_as_suffix": false,
31
+ "save_selected_only": true,
32
+ "save_init_img": false,
33
+ "temp_dir": "",
34
+ "clean_temp_dir_at_start": false,
35
+ "save_incomplete_images": false,
36
+ "notification_audio": true,
37
+ "notification_volume": 100,
38
+ "outdir_samples": "output",
39
+ "outdir_txt2img_samples": "output",
40
+ "outdir_img2img_samples": "",
41
+ "outdir_extras_samples": "",
42
+ "outdir_grids": "output",
43
+ "outdir_txt2img_grids": "output",
44
+ "outdir_img2img_grids": "output",
45
+ "outdir_save": "output",
46
+ "outdir_init_images": "output",
47
+ "save_to_dirs": false,
48
+ "grid_save_to_dirs": false,
49
+ "use_save_to_dirs_for_ui": false,
50
+ "directories_filename_pattern": "[date]",
51
+ "directories_max_prompt_words": 8,
52
+ "ESRGAN_tile": 192,
53
+ "ESRGAN_tile_overlap": 8,
54
+ "realesrgan_enabled_models": [],
55
+ "upscaler_for_img2img": "4x_NMKD-Siax_200k",
56
+ "face_restoration": false,
57
+ "face_restoration_model": "CodeFormer",
58
+ "code_former_weight": 0.5,
59
+ "face_restoration_unload": false,
60
+ "auto_launch_browser": "Local",
61
+ "enable_console_prompts": false,
62
+ "show_warnings": false,
63
+ "show_gradio_deprecation_warnings": true,
64
+ "memmon_poll_rate": 8,
65
+ "samples_log_stdout": false,
66
+ "multiple_tqdm": false,
67
+ "print_hypernet_extra": true,
68
+ "list_hidden_files": true,
69
+ "disable_mmap_load_safetensors": false,
70
+ "hide_ldm_prints": true,
71
+ "dump_stacks_on_signal": false,
72
+ "api_enable_requests": true,
73
+ "api_forbid_local_requests": true,
74
+ "api_useragent": "",
75
+ "unload_models_when_training": true,
76
+ "pin_memory": true,
77
+ "save_optimizer_state": false,
78
+ "save_training_settings_to_txt": false,
79
+ "dataset_filename_word_regex": "",
80
+ "dataset_filename_join_string": " ",
81
+ "training_image_repeats_per_epoch": 1,
82
+ "training_write_csv_every": 0.0,
83
+ "training_xattention_optimizations": true,
84
+ "training_enable_tensorboard": false,
85
+ "training_tensorboard_save_images": false,
86
+ "training_tensorboard_flush_every": 120,
87
+ "sd_model_checkpoint": "Deliberate_v5.safetensors [636fe404e3]",
88
+ "sd_checkpoints_limit": 3,
89
+ "sd_checkpoints_keep_in_cpu": false,
90
+ "sd_checkpoint_cache": 3,
91
+ "sd_unet": "Automatic",
92
+ "enable_quantization": true,
93
+ "enable_emphasis": true,
94
+ "enable_batch_seeds": true,
95
+ "comma_padding_backtrack": 20,
96
+ "CLIP_stop_at_last_layers": 1,
97
+ "upcast_attn": false,
98
+ "randn_source": "GPU",
99
+ "tiling": false,
100
+ "hires_fix_refiner_pass": "second pass",
101
+ "sdxl_crop_top": 0,
102
+ "sdxl_crop_left": 0,
103
+ "sdxl_refiner_low_aesthetic_score": 2.5,
104
+ "sdxl_refiner_high_aesthetic_score": 6.0,
105
+ "sd_vae_checkpoint_cache": 2,
106
+ "sd_vae": "None",
107
+ "sd_vae_overrides_per_model_preferences": true,
108
+ "auto_vae_precision": true,
109
+ "sd_vae_encode_method": "Full",
110
+ "sd_vae_decode_method": "Full",
111
+ "inpainting_mask_weight": 1.0,
112
+ "initial_noise_multiplier": 1.0,
113
+ "img2img_extra_noise": 0.0,
114
+ "img2img_color_correction": false,
115
+ "img2img_fix_steps": false,
116
+ "img2img_background_color": "#ffffff",
117
+ "img2img_editor_height": 720,
118
+ "img2img_sketch_default_brush_color": "#ffffff",
119
+ "img2img_inpaint_mask_brush_color": "#ff0000",
120
+ "img2img_inpaint_sketch_default_brush_color": "#ffffff",
121
+ "return_mask": false,
122
+ "return_mask_composite": false,
123
+ "img2img_batch_show_results_limit": 32,
124
+ "cross_attention_optimization": "Automatic",
125
+ "s_min_uncond": 0.0,
126
+ "token_merging_ratio": 0.0,
127
+ "token_merging_ratio_img2img": 0.0,
128
+ "token_merging_ratio_hr": 0.0,
129
+ "pad_cond_uncond": false,
130
+ "persistent_cond_cache": true,
131
+ "batch_cond_uncond": true,
132
+ "use_old_emphasis_implementation": false,
133
+ "use_old_karras_scheduler_sigmas": false,
134
+ "no_dpmpp_sde_batch_determinism": false,
135
+ "use_old_hires_fix_width_height": false,
136
+ "dont_fix_second_order_samplers_schedule": false,
137
+ "hires_fix_use_firstpass_conds": false,
138
+ "use_old_scheduling": false,
139
+ "interrogate_keep_models_in_memory": false,
140
+ "interrogate_return_ranks": false,
141
+ "interrogate_clip_num_beams": 1,
142
+ "interrogate_clip_min_length": 24,
143
+ "interrogate_clip_max_length": 48,
144
+ "interrogate_clip_dict_limit": 1500,
145
+ "interrogate_clip_skip_categories": [
146
+ "artists"
147
+ ],
148
+ "interrogate_deepbooru_score_threshold": 0.5,
149
+ "deepbooru_sort_alpha": true,
150
+ "deepbooru_use_spaces": true,
151
+ "deepbooru_escape": true,
152
+ "deepbooru_filter_tags": "",
153
+ "extra_networks_show_hidden_directories": true,
154
+ "extra_networks_dir_button_function": false,
155
+ "extra_networks_hidden_models": "When searched",
156
+ "extra_networks_default_multiplier": 0.9,
157
+ "extra_networks_card_width": 140.0,
158
+ "extra_networks_card_height": 210.0,
159
+ "extra_networks_card_text_scale": 1.0,
160
+ "extra_networks_card_show_desc": true,
161
+ "extra_networks_card_order_field": "Path",
162
+ "extra_networks_card_order": "Ascending",
163
+ "extra_networks_add_text_separator": " ",
164
+ "ui_extra_networks_tab_reorder": "Lora",
165
+ "textual_inversion_print_at_load": false,
166
+ "textual_inversion_add_hashes_to_infotext": true,
167
+ "sd_hypernetwork": "None",
168
+ "keyedit_precision_attention": 0.1,
169
+ "keyedit_precision_extra": 0.1,
170
+ "keyedit_delimiters": " .,\\/!?%^*;:{}=`~() ",
171
+ "keyedit_delimiters_whitespace": [
172
+ "Tab",
173
+ "Carriage Return",
174
+ "Line Feed"
175
+ ],
176
+ "keyedit_move": true,
177
+ "disable_token_counters": false,
178
+ "return_grid": false,
179
+ "do_not_show_images": false,
180
+ "js_modal_lightbox": true,
181
+ "js_modal_lightbox_initially_zoomed": false,
182
+ "js_modal_lightbox_gamepad": false,
183
+ "js_modal_lightbox_gamepad_repeat": 250,
184
+ "gallery_height": "",
185
+ "compact_prompt_box": false,
186
+ "samplers_in_dropdown": true,
187
+ "dimensions_and_batch_together": true,
188
+ "sd_checkpoint_dropdown_use_short": false,
189
+ "hires_fix_show_sampler": true,
190
+ "hires_fix_show_prompts": false,
191
+ "txt2img_settings_accordion": false,
192
+ "img2img_settings_accordion": false,
193
+ "localization": "None",
194
+ "quicksettings_list": [
195
+ "sd_model_checkpoint"
196
+ ],
197
+ "ui_tab_order": [],
198
+ "hidden_tabs": [
199
+ "Train"
200
+ ],
201
+ "ui_reorder_list": [
202
+ "prompt",
203
+ "image",
204
+ "inpaint",
205
+ "sampler",
206
+ "accordions",
207
+ "checkboxes",
208
+ "dimensions",
209
+ "cfg",
210
+ "denoising",
211
+ "seed",
212
+ "batch",
213
+ "override_settings",
214
+ "scripts",
215
+ "extra_options"
216
+ ],
217
+ "gradio_theme": "Default",
218
+ "gradio_themes_cache": true,
219
+ "show_progress_in_title": true,
220
+ "send_seed": true,
221
+ "send_size": true,
222
+ "enable_pnginfo": true,
223
+ "save_txt": false,
224
+ "add_model_name_to_info": true,
225
+ "add_model_hash_to_info": true,
226
+ "add_vae_name_to_info": true,
227
+ "add_vae_hash_to_info": true,
228
+ "add_user_name_to_info": false,
229
+ "add_version_to_infotext": true,
230
+ "disable_weights_auto_swap": true,
231
+ "infotext_skip_pasting": [],
232
+ "infotext_styles": "Apply if any",
233
+ "show_progressbar": true,
234
+ "live_previews_enable": true,
235
+ "live_previews_image_format": "jpeg",
236
+ "show_progress_grid": true,
237
+ "show_progress_every_n_steps": 1,
238
+ "show_progress_type": "Approx NN",
239
+ "live_preview_allow_lowvram_full": false,
240
+ "live_preview_content": "Prompt",
241
+ "live_preview_refresh_period": 100.0,
242
+ "live_preview_fast_interrupt": true,
243
+ "js_live_preview_in_modal_lightbox": false,
244
+ "hide_samplers": [
245
+ "DPM++ SDE Karras",
246
+ "DPM++ 2M SDE Exponential",
247
+ "DPM++ 2M SDE Karras",
248
+ "Euler",
249
+ "LMS",
250
+ "DPM2",
251
+ "DPM2 a",
252
+ "DPM++ 2S a",
253
+ "DPM++ 2M SDE",
254
+ "DPM++ 2M SDE Heun",
255
+ "DPM++ 2M SDE Heun Karras",
256
+ "DPM++ 2M SDE Heun Exponential",
257
+ "DPM++ 3M SDE",
258
+ "DPM++ 3M SDE Karras",
259
+ "DPM++ 3M SDE Exponential",
260
+ "DPM fast",
261
+ "DPM adaptive",
262
+ "LMS Karras",
263
+ "DPM2 Karras",
264
+ "DPM2 a Karras",
265
+ "DPM++ 2S a Karras",
266
+ "DDIM",
267
+ "PLMS",
268
+ "LCM"
269
+ ],
270
+ "eta_ddim": 0.0,
271
+ "eta_ancestral": 1.0,
272
+ "ddim_discretize": "uniform",
273
+ "s_churn": 0.0,
274
+ "s_tmin": 0.0,
275
+ "s_tmax": 0.0,
276
+ "s_noise": 1.0,
277
+ "k_sched_type": "Automatic",
278
+ "sigma_min": 0.0,
279
+ "sigma_max": 0.0,
280
+ "rho": 0.0,
281
+ "eta_noise_seed_delta": 31337,
282
+ "always_discard_next_to_last_sigma": false,
283
+ "sgm_noise_multiplier": false,
284
+ "uni_pc_variant": "bh2",
285
+ "uni_pc_skip_type": "time_uniform",
286
+ "uni_pc_order": 3,
287
+ "uni_pc_lower_order_final": true,
288
+ "postprocessing_enable_in_main_ui": [],
289
+ "postprocessing_operation_order": [],
290
+ "upscaling_max_images_in_cache": 5,
291
+ "postprocessing_existing_caption_action": "Ignore",
292
+ "disabled_extensions": [
293
+ "canvas-zoom-and-pan"
294
+ ],
295
+ "disable_all_extensions": "none",
296
+ "restore_config_state_file": "",
297
+ "sd_checkpoint_hash": "636fe404e3fd0c612ea3f2bd5d6f66fe8f005c026fac4fb54ee5c811ecd0da2c",
298
+ "ldsr_steps": 100,
299
+ "ldsr_cached": false,
300
+ "SCUNET_tile": 256,
301
+ "SCUNET_tile_overlap": 8,
302
+ "SWIN_tile": 192,
303
+ "SWIN_tile_overlap": 8,
304
+ "hypertile_enable_unet": true,
305
+ "hypertile_enable_unet_secondpass": true,
306
+ "hypertile_max_depth_unet": 3,
307
+ "hypertile_max_tile_unet": 256,
308
+ "hypertile_swap_size_unet": 3,
309
+ "hypertile_enable_vae": false,
310
+ "hypertile_max_depth_vae": 3,
311
+ "hypertile_max_tile_vae": 128,
312
+ "hypertile_swap_size_vae": 3,
313
+ "ad_max_models": 2,
314
+ "ad_extra_models_dir": "",
315
+ "ad_save_previews": false,
316
+ "ad_save_images_before": false,
317
+ "ad_only_seleted_scripts": true,
318
+ "ad_script_names": "dynamic_prompting,dynamic_thresholding,wildcard_recursive,wildcards,lora_block_weight,negpip",
319
+ "ad_bbox_sortby": "None",
320
+ "ad_same_seed_for_each_tap": false,
321
+ "control_net_detectedmap_dir": "detected_maps",
322
+ "control_net_models_path": "",
323
+ "control_net_modules_path": "",
324
+ "control_net_unit_count": 3,
325
+ "control_net_model_cache_size": 1,
326
+ "control_net_inpaint_blur_sigma": 7,
327
+ "control_net_no_high_res_fix": false,
328
+ "control_net_no_detectmap": true,
329
+ "control_net_detectmap_autosaving": false,
330
+ "control_net_allow_script_control": true,
331
+ "control_net_sync_field_args": true,
332
+ "controlnet_show_batch_images_in_ui": false,
333
+ "controlnet_increment_seed_during_batch": false,
334
+ "controlnet_disable_openpose_edit": false,
335
+ "controlnet_ignore_noninpaint_mask": false,
336
+ "lora_functional": false,
337
+ "sd_lora": "None",
338
+ "lora_preferred_name": "Alias from file",
339
+ "lora_add_hashes_to_infotext": true,
340
+ "lora_show_all": false,
341
+ "lora_hide_unknown_for_versions": [],
342
+ "lora_in_memory_limit": 2,
343
+ "extra_options_txt2img": [
344
+ "tiling",
345
+ "CLIP_stop_at_last_layers"
346
+ ],
347
+ "extra_options_img2img": [],
348
+ "extra_options_cols": 1,
349
+ "extra_options_accordion": false,
350
+ "canvas_disabled_functions": [
351
+ "Overlap"
352
+ ],
353
+ "canvas_hotkey_zoom": "Alt",
354
+ "canvas_hotkey_adjust": "Ctrl",
355
+ "canvas_hotkey_move": "F",
356
+ "canvas_hotkey_fullscreen": "S",
357
+ "canvas_hotkey_reset": "R",
358
+ "canvas_hotkey_overlap": "O",
359
+ "canvas_show_tooltip": true,
360
+ "canvas_auto_expand": true,
361
+ "canvas_blur_prompt": true,
362
+ "canvas_zoom_undo_extra_key": "Ctrl",
363
+ "canvas_zoom_hotkey_undo": "Z",
364
+ "canvas_zoom_inc_brush_size": "]",
365
+ "canvas_zoom_dec_brush_size": "[",
366
+ "canvas_zoom_hotkey_open_colorpanel": "Q",
367
+ "canvas_zoom_hotkey_pin_colorpanel": "T",
368
+ "canvas_zoom_hotkey_dropper": "A",
369
+ "canvas_zoom_hotkey_fill": "X",
370
+ "canvas_zoom_hotkey_transparency": "C",
371
+ "canvas_zoom_hide_btn": true,
372
+ "canvas_zoom_mask_clear": true,
373
+ "canvas_zoom_enable_integration": true,
374
+ "canvas_zoom_brush_size": 250,
375
+ "canvas_zoom_brush_size_change": 5,
376
+ "canvas_zoom_transparency_level": 60,
377
+ "canvas_zoom_brush_opacity": true,
378
+ "canvas_zoom_inpaint_label": false,
379
+ "canvas_zoom_inpaint_warning": true,
380
+ "canvas_zoom_inpaint_change_btn_color": true,
381
+ "canvas_zoom_inpaint_btn_color": "#ff1486",
382
+ "canvas_zoom_brush_outline": true,
383
+ "canvas_zoom_add_buttons": false,
384
+ "canvas_zoom_draw_staight_lines": true,
385
+ "canvas_zoom_inpaint_brushcolor": "#ff0000",
386
+ "canvas_zoom_disabled_functions": [
387
+ "Overlap"
388
+ ],
389
+ "SWIN_torch_compile": false,
390
+ "auto_backcompat": true,
391
+ "use_downcasted_alpha_bar": false,
392
+ "extra_networks_card_description_is_html": false,
393
+ "extra_networks_tree_view_default_enabled": false,
394
+ "lora_not_found_warning_console": false,
395
+ "lora_not_found_gradio_warning": false,
396
+ "pad_cond_uncond_v0": false,
397
+ "fp8_storage": "Disable",
398
+ "cache_fp16_weight": false,
399
+ "sd_noise_schedule": "Default",
400
+ "emphasis": "Original",
401
+ "enable_prompt_comments": true,
402
+ "auto_vae_precision_bfloat16": false,
403
+ "overlay_inpaint": true,
404
+ "sd_webui_modal_lightbox_icon_opacity": 1,
405
+ "sd_webui_modal_lightbox_toolbar_opacity": 0.9,
406
+ "open_dir_button_choice": "Subdirectory",
407
+ "include_styles_into_token_counters": true,
408
+ "interrupt_after_current": false,
409
+ "enable_upscale_progressbar": true,
410
+ "dat_enabled_models": [
411
+ "DAT x2",
412
+ "DAT x3",
413
+ "DAT x4"
414
+ ],
415
+ "DAT_tile": 192,
416
+ "DAT_tile_overlap": 8
417
+ }
ui-config.json ADDED
The diff for this file is too large to render. See raw diff
 
user.css ADDED
@@ -0,0 +1,256 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ font-family: Arial !important;
3
+ }
4
+
5
+ div#txt2img_prompt > label > textarea,
6
+ div#img2img_prompt > label > textarea {
7
+ font: 20px Arimo, Arial !important;
8
+ color: #a7b4c4 !important;
9
+ }
10
+
11
+ div#txt2img_gallery,
12
+ div#img2img_gallery
13
+ {
14
+ height: 512px;
15
+ }
16
+
17
+ .livePreview img {
18
+ height: 452px;
19
+ }
20
+
21
+
22
+ div#txt2img_neg_prompt > label > textarea,
23
+ div#img2img_neg_prompt > label > textarea {
24
+ font-size: 14px !important;
25
+ color: #4d5967 !important;
26
+ }
27
+
28
+ .dark {
29
+ --body-background-fill: #131a25;
30
+ }
31
+
32
+ .gradio-container-3-28-1 .prose * {
33
+ color: #9fa8b6;
34
+ }
35
+
36
+ div#html_info_txt2img,
37
+ div#html_info_img2img,
38
+ button#txt2img_clear_prompt,
39
+ button#img2img_clear_prompt
40
+ {
41
+ display: none;
42
+ }
43
+
44
+ .primary.svelte-cmf5ev {
45
+ border: none;
46
+ }
47
+
48
+ .primary.svelte-cmf5ev {
49
+ border: none;
50
+ background: #2772c3;
51
+ border-radius: 5px;
52
+ }
53
+ .primary.svelte-cmf5ev:hover {
54
+ background: #266ab4;
55
+ }
56
+
57
+ button#txt2img_generate {
58
+ background: #2772c3;
59
+ }
60
+
61
+ .dark .panel.svelte-vt1mxs {
62
+ background: #131a25;
63
+ padding: 0;
64
+ }
65
+
66
+ .dark .preview.svelte-1b19cri.svelte-1b19cri,
67
+ .dark .preview.svelte-1b19cri img.svelte-1b19cri {
68
+ background: #1f2937;
69
+ }
70
+
71
+ .livePreview {
72
+ background: transparent;
73
+ }
74
+
75
+ .selected.svelte-1g805jl {
76
+ background: #131a25;
77
+ }
78
+
79
+ #context-menu {
80
+ border: 1px solid rgba(255, 255, 255, 0.1);
81
+ box-shadow: 0px 1px 1px black !important;
82
+ background: #18212d !important;
83
+ }
84
+
85
+ .context-menu-items a {
86
+ padding: 8px;
87
+ }
88
+
89
+ .context-menu-items a:hover {
90
+ background: #226bb954;
91
+ transition: 0.1s;
92
+ }
93
+
94
+ .thumbnail-small.selected.svelte-1b19cri.svelte-1b19cri,
95
+ .thumbnail-item.svelte-1b19cri.svelte-1b19cri:hover {
96
+ --ring-color: none;
97
+ border-color: transparent;
98
+ }
99
+
100
+ #settings > div.tab-nav {
101
+ width: 14em;
102
+ }
103
+
104
+ .progressDiv .progress {
105
+ font-family: Verdana !important;
106
+ font-size: 12px;
107
+ font-weight: normal;
108
+ background: #0d4f7e;
109
+ color: #9ecfe9;
110
+ border-radius: 5px;
111
+ }
112
+ #txt2img_progressbar {
113
+ width: 118.4% !important;
114
+ }
115
+
116
+ .progressDiv {
117
+ z-index: 9999;
118
+ }
119
+
120
+ .dark .progressDiv {
121
+ background: #1d2938;
122
+ }
123
+
124
+ .block.border_focus {
125
+ border-color: #5290bd !important;
126
+ }
127
+
128
+ #txt2img_interrupt,
129
+ #img2img_interrupt,
130
+ #txt2img_skip {
131
+ background: #718396;
132
+ }
133
+
134
+ #lightboxModal {
135
+ background-color: #090b0df7;
136
+ }
137
+
138
+ #txt2img_preview {
139
+ margin-right: 0 !important;
140
+ }
141
+
142
+ .dark #txt2img_settings {
143
+ background: #1f2937 !important;
144
+ }
145
+
146
+ div#txt2img_settings {
147
+ padding: 10px !important;
148
+ }
149
+
150
+ button#save_txt2img,
151
+ button#save_zip_txt2img,
152
+ button#save_img2img,
153
+ button#save_zip_img2img {
154
+ display: none;
155
+ }
156
+
157
+ .gradio-container {
158
+ line-height: 1.15;
159
+ }
160
+
161
+ #settings > div.flex-wrap {
162
+ width: 13em;
163
+ }
164
+
165
+ .extra-network-cards .card .actions .name {
166
+ font-size: 1.3em;
167
+ font-weight: 100;
168
+ }
169
+
170
+ .extra-network-cards .card .metadata-button:hover,
171
+ .extra-network-cards .card ul a:hover {
172
+ color: #5bffa8;
173
+ }
174
+
175
+ #footer {
176
+ display: none;
177
+ }
178
+
179
+ .unpadded_box.large.svelte-1u5vjgs {
180
+ min-height: 450px;
181
+ }
182
+
183
+ .dark .options.svelte-1aonegi {
184
+ background: #131a25;
185
+ }
186
+ .dark .item.svelte-1aonegi:hover {
187
+ background: #17202d;
188
+ }
189
+ .dark .gradio-dropdown ul.options li.item.selected {
190
+ background: #1b2533;
191
+ }
192
+
193
+ .eta-bar.svelte-j1gjts {
194
+ background: #2c394b;
195
+ }
196
+
197
+ svg.svelte-zyxd38 path.svelte-zyxd38 {
198
+ fill: #6a9cd2;
199
+ }
200
+
201
+ .wrap.svelte-j1gjts {
202
+ background: #1f2937;
203
+ }
204
+
205
+ .block.token-counter span,
206
+ .block.token-counter.error span {
207
+ box-shadow: none;
208
+ }
209
+
210
+ .dark .svelte-116rqfv.center.boundedheight.flex {
211
+ background: #131a25;
212
+ }
213
+
214
+ .error.svelte-j1gjts {
215
+ border: solid 1px #de8ab175;
216
+ border-radius: 7px;
217
+ background: #181622de;
218
+ color: #f57cb4;
219
+ }
220
+
221
+ div#txt2img_column_size {
222
+ min-width: min(200px, 100%) !important;
223
+ }
224
+
225
+ button#arc_show_calculator_button,
226
+ div#arc_empty_space {
227
+ display: none;
228
+ }
229
+
230
+ #txt2img_row_resolutions button,
231
+ #img2img_row_resolutions button,
232
+ #txt2img_row_aspect_ratio button,
233
+ #img2img_row_aspect_ratio button {
234
+ max-width: 100% !important;
235
+ }
236
+
237
+ a {
238
+ font-weight: normal;
239
+ }
240
+
241
+ .panel.svelte-15lo0d8 {
242
+ background: none;
243
+ }
244
+
245
+ .extra-network-cards {
246
+ height: 100% !important;
247
+ max-height: 800px !important;
248
+ }
249
+
250
+ .selected.svelte-kqij2n {
251
+ background: transparent;
252
+ }
253
+
254
+ .extra-networks > div.tab-nav {
255
+ min-height: auto;
256
+ }
user.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Custom scripts by XpucT
2
+ // Homepage: https://boosty.to/xpuct
3
+
4
+
5
+ document.addEventListener('keydown', function (e) {
6
+
7
+ // Reload UI по F2
8
+ if (e.code === 'F2') {
9
+ document.querySelector('#settings_restart_gradio').click()
10
+ e.preventDefault()
11
+
12
+ // Показать предыдущую генерацию по клавише Shift
13
+ } else if (e.keyCode === 16 && document.querySelector('.livePreview'))
14
+ document.querySelector('.livePreview').style.display = 'none'
15
+ });
16
+
17
+ document.addEventListener('keyup', function (e) {
18
+ if (e.keyCode === 16 && document.querySelector('.livePreview')) {
19
+ document.querySelector('.livePreview').style.display = 'block'
20
+ }
21
+ });
22
+
23
+ onUiLoaded(function () {
24
+
25
+ // Удаление рекламы в Photopea (работает не всегда)
26
+ const result = document.evaluate("//div[@class='flexrow app']/div[2]", document, null, XPathResult.ANY_TYPE, null)
27
+ var ad = result.iterateNext()
28
+ while (ad) {
29
+ ad.parentNode.removeChild(ad)
30
+ ad = result.iterateNext()
31
+ }
32
+
33
+ // Граница в txt2img немного левее, а не посередине
34
+ document.querySelector('gradio-app .resize-handle-row').style.gridTemplateColumns = '676px 16px 1fr'
35
+
36
+ // Вставить выбранные стили колесом
37
+ document.querySelectorAll('button[id$=_styles_edit_button]').forEach(x =>
38
+ x.addEventListener('mousedown', e =>
39
+ e.button === 1 && get_uiCurrentTabContent().querySelector('button[id$=_style_apply]').click()))
40
+ })
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+