diff --git a/args_manager.py b/args_manager.py index d063a5e1..e5e76753 100644 --- a/args_manager.py +++ b/args_manager.py @@ -34,5 +34,7 @@ args_parser.args.always_offload_from_vram = not args_parser.args.disable_offload if args_parser.args.disable_analytics: import os os.environ["GRADIO_ANALYTICS_ENABLED"] = "False" +if args_parser.args.disable_in_browser: + args_parser.args.in_browser = False args = args_parser.args diff --git a/css/style.css b/css/style.css index b87b20a7..010c8e7f 100644 --- a/css/style.css +++ b/css/style.css @@ -196,3 +196,25 @@ pointer-events: none; display: none; } + +#stylePreviewOverlay { + opacity: 0; + pointer-events: none; + width: 128px; + height: 128px; + position: fixed; + top: 0px; + left: 0px; + border: solid 1px lightgrey; + transform: translate(-140px, 20px); + background-size: cover; + background-position: center; + background-color: rgba(0, 0, 0, 0.3); + border-radius: 5px; + z-index: 100; + transition: transform 0.1s ease, opacity 0.3s ease; +} + +#stylePreviewOverlay.lower-half { + transform: translate(-140px, -140px); +} diff --git a/extras/preprocessors.py b/extras/preprocessors.py index 798fe15d..0aa83109 100644 --- a/extras/preprocessors.py +++ b/extras/preprocessors.py @@ -1,27 +1,26 @@ import cv2 import numpy as np -import modules.advanced_parameters as advanced_parameters -def centered_canny(x: np.ndarray): +def centered_canny(x: np.ndarray, canny_low_threshold, canny_high_threshold): assert isinstance(x, np.ndarray) assert x.ndim == 2 and x.dtype == np.uint8 - y = cv2.Canny(x, int(advanced_parameters.canny_low_threshold), int(advanced_parameters.canny_high_threshold)) + y = cv2.Canny(x, int(canny_low_threshold), int(canny_high_threshold)) y = y.astype(np.float32) / 255.0 return y -def centered_canny_color(x: np.ndarray): +def centered_canny_color(x: np.ndarray, canny_low_threshold, canny_high_threshold): assert isinstance(x, np.ndarray) assert x.ndim == 3 and x.shape[2] == 3 - result = [centered_canny(x[..., i]) for i in range(3)] + result = [centered_canny(x[..., i], canny_low_threshold, canny_high_threshold) for i in range(3)] result = np.stack(result, axis=2) return result -def pyramid_canny_color(x: np.ndarray): +def pyramid_canny_color(x: np.ndarray, canny_low_threshold, canny_high_threshold): assert isinstance(x, np.ndarray) assert x.ndim == 3 and x.shape[2] == 3 @@ -31,7 +30,7 @@ def pyramid_canny_color(x: np.ndarray): for k in [0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]: Hs, Ws = int(H * k), int(W * k) small = cv2.resize(x, (Ws, Hs), interpolation=cv2.INTER_AREA) - edge = centered_canny_color(small) + edge = centered_canny_color(small, canny_low_threshold, canny_high_threshold) if acc_edge is None: acc_edge = edge else: @@ -54,11 +53,11 @@ def norm255(x, low=4, high=96): return x * 255.0 -def canny_pyramid(x): +def canny_pyramid(x, canny_low_threshold, canny_high_threshold): # For some reasons, SAI's Control-lora Canny seems to be trained on canny maps with non-standard resolutions. # Then we use pyramid to use all resolutions to avoid missing any structure in specific resolutions. - color_canny = pyramid_canny_color(x) + color_canny = pyramid_canny_color(x, canny_low_threshold, canny_high_threshold) result = np.sum(color_canny, axis=2) return norm255(result, low=1, high=99).clip(0, 255).astype(np.uint8) diff --git a/fooocus_version.py b/fooocus_version.py index 482cc12c..efe3b925 100644 --- a/fooocus_version.py +++ b/fooocus_version.py @@ -1 +1 @@ -version = '2.1.860' +version = '2.1.862' diff --git a/javascript/localization.js b/javascript/localization.js index 8fda68e2..0a8394ca 100644 --- a/javascript/localization.js +++ b/javascript/localization.js @@ -45,6 +45,9 @@ function processTextNode(node) { var tl = getTranslation(text); if (tl !== undefined) { node.textContent = tl; + if (text && node.parentElement) { + node.parentElement.setAttribute("data-original-text", text); + } } } diff --git a/javascript/script.js b/javascript/script.js index 593d8c36..8f4cac58 100644 --- a/javascript/script.js +++ b/javascript/script.js @@ -119,6 +119,7 @@ document.addEventListener("DOMContentLoaded", function() { } }); mutationObserver.observe(gradioApp(), {childList: true, subtree: true}); + initStylePreviewOverlay(); }); /** @@ -145,6 +146,40 @@ document.addEventListener('keydown', function(e) { } }); +function initStylePreviewOverlay() { + let overlayVisible = false; + const samplesPath = document.querySelector("meta[name='samples-path']").getAttribute("content") + const overlay = document.createElement('div'); + overlay.id = 'stylePreviewOverlay'; + document.body.appendChild(overlay); + document.addEventListener('mouseover', function(e) { + const label = e.target.closest('.style_selections label'); + if (!label) return; + label.removeEventListener("mouseout", onMouseLeave); + label.addEventListener("mouseout", onMouseLeave); + overlayVisible = true; + overlay.style.opacity = "1"; + const originalText = label.querySelector("span").getAttribute("data-original-text"); + const name = originalText || label.querySelector("span").textContent; + overlay.style.backgroundImage = `url("${samplesPath.replace( + "fooocus_v2", + name.toLowerCase().replaceAll(" ", "_") + ).replaceAll("\\", "\\\\")}")`; + function onMouseLeave() { + overlayVisible = false; + overlay.style.opacity = "0"; + overlay.style.backgroundImage = ""; + label.removeEventListener("mouseout", onMouseLeave); + } + }); + document.addEventListener('mousemove', function(e) { + if(!overlayVisible) return; + overlay.style.left = `${e.clientX}px`; + overlay.style.top = `${e.clientY}px`; + overlay.className = e.clientY > window.innerHeight / 2 ? "lower-half" : "upper-half"; + }); +} + /** * checks that a UI element is not in another hidden element or tab content */ diff --git a/modules/advanced_parameters.py b/modules/advanced_parameters.py deleted file mode 100644 index 0caa3eec..00000000 --- a/modules/advanced_parameters.py +++ /dev/null @@ -1,33 +0,0 @@ -disable_preview, adm_scaler_positive, adm_scaler_negative, adm_scaler_end, adaptive_cfg, sampler_name, \ - scheduler_name, generate_image_grid, overwrite_step, overwrite_switch, overwrite_width, overwrite_height, \ - overwrite_vary_strength, overwrite_upscale_strength, \ - mixing_image_prompt_and_vary_upscale, mixing_image_prompt_and_inpaint, \ - debugging_cn_preprocessor, skipping_cn_preprocessor, controlnet_softness, canny_low_threshold, canny_high_threshold, \ - refiner_swap_method, \ - freeu_enabled, freeu_b1, freeu_b2, freeu_s1, freeu_s2, \ - debugging_inpaint_preprocessor, inpaint_disable_initial_latent, inpaint_engine, inpaint_strength, inpaint_respective_field, \ - inpaint_mask_upload_checkbox, invert_mask_checkbox, inpaint_erode_or_dilate = [None] * 35 - - -def set_all_advanced_parameters(*args): - global disable_preview, adm_scaler_positive, adm_scaler_negative, adm_scaler_end, adaptive_cfg, sampler_name, \ - scheduler_name, generate_image_grid, overwrite_step, overwrite_switch, overwrite_width, overwrite_height, \ - overwrite_vary_strength, overwrite_upscale_strength, \ - mixing_image_prompt_and_vary_upscale, mixing_image_prompt_and_inpaint, \ - debugging_cn_preprocessor, skipping_cn_preprocessor, controlnet_softness, canny_low_threshold, canny_high_threshold, \ - refiner_swap_method, \ - freeu_enabled, freeu_b1, freeu_b2, freeu_s1, freeu_s2, \ - debugging_inpaint_preprocessor, inpaint_disable_initial_latent, inpaint_engine, inpaint_strength, inpaint_respective_field, \ - inpaint_mask_upload_checkbox, invert_mask_checkbox, inpaint_erode_or_dilate - - disable_preview, adm_scaler_positive, adm_scaler_negative, adm_scaler_end, adaptive_cfg, sampler_name, \ - scheduler_name, generate_image_grid, overwrite_step, overwrite_switch, overwrite_width, overwrite_height, \ - overwrite_vary_strength, overwrite_upscale_strength, \ - mixing_image_prompt_and_vary_upscale, mixing_image_prompt_and_inpaint, \ - debugging_cn_preprocessor, skipping_cn_preprocessor, controlnet_softness, canny_low_threshold, canny_high_threshold, \ - refiner_swap_method, \ - freeu_enabled, freeu_b1, freeu_b2, freeu_s1, freeu_s2, \ - debugging_inpaint_preprocessor, inpaint_disable_initial_latent, inpaint_engine, inpaint_strength, inpaint_respective_field, \ - inpaint_mask_upload_checkbox, invert_mask_checkbox, inpaint_erode_or_dilate = args - - return diff --git a/modules/async_worker.py b/modules/async_worker.py index bf21efa5..9eec49fb 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -1,4 +1,8 @@ import threading +import os +from modules.patch import PatchSettings, patch_settings, patch_all + +patch_all() class AsyncTask: @@ -33,7 +37,6 @@ def worker(): import extras.preprocessors as preprocessors import modules.inpaint_worker as inpaint_worker import modules.constants as constants - import modules.advanced_parameters as advanced_parameters import extras.ip_adapter as ip_adapter import extras.face_crop import fooocus_version @@ -45,6 +48,9 @@ def worker(): get_image_shape_ceil, set_image_shape_ceil, get_shape_ceil, resample_image, erode_or_dilate from modules.upscaler import perform_upscale + pid = os.getpid() + print(f'Started worker with PID {pid}') + try: async_gradio_app = shared.gradio_root flag = f'''App started successful. Use the app with {str(async_gradio_app.local_url)} or {str(async_gradio_app.server_name)}:{str(async_gradio_app.server_port)}''' @@ -71,9 +77,6 @@ def worker(): return def build_image_wall(async_task): - if not advanced_parameters.generate_image_grid: - return - results = async_task.results if len(results) < 2: @@ -143,6 +146,40 @@ def worker(): inpaint_input_image = args.pop() inpaint_additional_prompt = args.pop() inpaint_mask_image_upload = args.pop() + disable_preview = args.pop() + adm_scaler_positive = args.pop() + adm_scaler_negative = args.pop() + adm_scaler_end = args.pop() + adaptive_cfg = args.pop() + sampler_name = args.pop() + scheduler_name = args.pop() + overwrite_step = args.pop() + overwrite_switch = args.pop() + overwrite_width = args.pop() + overwrite_height = args.pop() + overwrite_vary_strength = args.pop() + overwrite_upscale_strength = args.pop() + mixing_image_prompt_and_vary_upscale = args.pop() + mixing_image_prompt_and_inpaint = args.pop() + debugging_cn_preprocessor = args.pop() + skipping_cn_preprocessor = args.pop() + canny_low_threshold = args.pop() + canny_high_threshold = args.pop() + refiner_swap_method = args.pop() + controlnet_softness = args.pop() + freeu_enabled = args.pop() + freeu_b1 = args.pop() + freeu_b2 = args.pop() + freeu_s1 = args.pop() + freeu_s2 = args.pop() + debugging_inpaint_preprocessor = args.pop() + inpaint_disable_initial_latent = args.pop() + inpaint_engine = args.pop() + inpaint_strength = args.pop() + inpaint_respective_field = args.pop() + inpaint_mask_upload_checkbox = args.pop() + invert_mask_checkbox = args.pop() + inpaint_erode_or_dilate = args.pop() cn_tasks = {x: [] for x in flags.ip_list} for _ in range(4): @@ -189,30 +226,33 @@ def worker(): print(f'Refiner disabled in LCM mode.') refiner_model_name = 'None' - sampler_name = advanced_parameters.sampler_name = 'lcm' - scheduler_name = advanced_parameters.scheduler_name = 'lcm' - modules.patch.sharpness = sharpness = 0.0 - cfg_scale = guidance_scale = 1.0 - modules.patch.adaptive_cfg = advanced_parameters.adaptive_cfg = 1.0 + sampler_name = 'lcm' + scheduler_name = 'lcm' + sharpness = 0.0 + guidance_scale = 1.0 + adaptive_cfg = 1.0 refiner_switch = 1.0 - modules.patch.positive_adm_scale = advanced_parameters.adm_scaler_positive = 1.0 - modules.patch.negative_adm_scale = advanced_parameters.adm_scaler_negative = 1.0 - modules.patch.adm_scaler_end = advanced_parameters.adm_scaler_end = 0.0 + adm_scaler_positive = 1.0 + adm_scaler_negative = 1.0 + adm_scaler_end = 0.0 steps = 8 - modules.patch.adaptive_cfg = advanced_parameters.adaptive_cfg - print(f'[Parameters] Adaptive CFG = {modules.patch.adaptive_cfg}') - - modules.patch.sharpness = sharpness - print(f'[Parameters] Sharpness = {modules.patch.sharpness}') - - modules.patch.positive_adm_scale = advanced_parameters.adm_scaler_positive - modules.patch.negative_adm_scale = advanced_parameters.adm_scaler_negative - modules.patch.adm_scaler_end = advanced_parameters.adm_scaler_end + print(f'[Parameters] Adaptive CFG = {adaptive_cfg}') + print(f'[Parameters] Sharpness = {sharpness}') + print(f'[Parameters] ControlNet Softness = {controlnet_softness}') print(f'[Parameters] ADM Scale = ' - f'{modules.patch.positive_adm_scale} : ' - f'{modules.patch.negative_adm_scale} : ' - f'{modules.patch.adm_scaler_end}') + f'{adm_scaler_positive} : ' + f'{adm_scaler_negative} : ' + f'{adm_scaler_end}') + + patch_settings[pid] = PatchSettings( + sharpness, + adm_scaler_end, + adm_scaler_positive, + adm_scaler_negative, + controlnet_softness, + adaptive_cfg + ) cfg_scale = float(guidance_scale) print(f'[Parameters] CFG = {cfg_scale}') @@ -225,10 +265,9 @@ def worker(): width, height = int(width), int(height) skip_prompt_processing = False - refiner_swap_method = advanced_parameters.refiner_swap_method inpaint_worker.current_task = None - inpaint_parameterized = advanced_parameters.inpaint_engine != 'None' + inpaint_parameterized = inpaint_engine != 'None' inpaint_image = None inpaint_mask = None inpaint_head_model_path = None @@ -242,15 +281,12 @@ def worker(): seed = int(image_seed) print(f'[Parameters] Seed = {seed}') - sampler_name = advanced_parameters.sampler_name - scheduler_name = advanced_parameters.scheduler_name - goals = [] tasks = [] if input_image_checkbox: if (current_tab == 'uov' or ( - current_tab == 'ip' and advanced_parameters.mixing_image_prompt_and_vary_upscale)) \ + current_tab == 'ip' and mixing_image_prompt_and_vary_upscale)) \ and uov_method != flags.disabled and uov_input_image is not None: uov_input_image = HWC3(uov_input_image) if 'vary' in uov_method: @@ -274,12 +310,12 @@ def worker(): progressbar(async_task, 1, 'Downloading upscale models ...') modules.config.downloading_upscale_model() if (current_tab == 'inpaint' or ( - current_tab == 'ip' and advanced_parameters.mixing_image_prompt_and_inpaint)) \ + current_tab == 'ip' and mixing_image_prompt_and_inpaint)) \ and isinstance(inpaint_input_image, dict): inpaint_image = inpaint_input_image['image'] inpaint_mask = inpaint_input_image['mask'][:, :, 0] - - if advanced_parameters.inpaint_mask_upload_checkbox: + + if inpaint_mask_upload_checkbox: if isinstance(inpaint_mask_image_upload, np.ndarray): if inpaint_mask_image_upload.ndim == 3: H, W, C = inpaint_image.shape @@ -288,10 +324,10 @@ def worker(): inpaint_mask_image_upload = (inpaint_mask_image_upload > 127).astype(np.uint8) * 255 inpaint_mask = np.maximum(inpaint_mask, inpaint_mask_image_upload) - if int(advanced_parameters.inpaint_erode_or_dilate) != 0: - inpaint_mask = erode_or_dilate(inpaint_mask, advanced_parameters.inpaint_erode_or_dilate) + if int(inpaint_erode_or_dilate) != 0: + inpaint_mask = erode_or_dilate(inpaint_mask, inpaint_erode_or_dilate) - if advanced_parameters.invert_mask_checkbox: + if invert_mask_checkbox: inpaint_mask = 255 - inpaint_mask inpaint_image = HWC3(inpaint_image) @@ -302,7 +338,7 @@ def worker(): if inpaint_parameterized: progressbar(async_task, 1, 'Downloading inpainter ...') inpaint_head_model_path, inpaint_patch_model_path = modules.config.downloading_inpaint_models( - advanced_parameters.inpaint_engine) + inpaint_engine) base_model_additional_loras += [(inpaint_patch_model_path, 1.0)] print(f'[Inpaint] Current inpaint model is {inpaint_patch_model_path}') if refiner_model_name == 'None': @@ -318,8 +354,8 @@ def worker(): prompt = inpaint_additional_prompt + '\n' + prompt goals.append('inpaint') if current_tab == 'ip' or \ - advanced_parameters.mixing_image_prompt_and_inpaint or \ - advanced_parameters.mixing_image_prompt_and_vary_upscale: + mixing_image_prompt_and_vary_upscale or \ + mixing_image_prompt_and_inpaint: goals.append('cn') progressbar(async_task, 1, 'Downloading control models ...') if len(cn_tasks[flags.cn_canny]) > 0: @@ -340,17 +376,17 @@ def worker(): switch = int(round(steps * refiner_switch)) - if advanced_parameters.overwrite_step > 0: - steps = advanced_parameters.overwrite_step + if overwrite_step > 0: + steps = overwrite_step - if advanced_parameters.overwrite_switch > 0: - switch = advanced_parameters.overwrite_switch + if overwrite_switch > 0: + switch = overwrite_switch - if advanced_parameters.overwrite_width > 0: - width = advanced_parameters.overwrite_width + if overwrite_width > 0: + width = overwrite_width - if advanced_parameters.overwrite_height > 0: - height = advanced_parameters.overwrite_height + if overwrite_height > 0: + height = overwrite_height print(f'[Parameters] Sampler = {sampler_name} - {scheduler_name}') print(f'[Parameters] Steps = {steps} - {switch}') @@ -449,8 +485,8 @@ def worker(): denoising_strength = 0.5 if 'strong' in uov_method: denoising_strength = 0.85 - if advanced_parameters.overwrite_vary_strength > 0: - denoising_strength = advanced_parameters.overwrite_vary_strength + if overwrite_vary_strength > 0: + denoising_strength = overwrite_vary_strength shape_ceil = get_image_shape_ceil(uov_input_image) if shape_ceil < 1024: @@ -521,8 +557,8 @@ def worker(): tiled = True denoising_strength = 0.382 - if advanced_parameters.overwrite_upscale_strength > 0: - denoising_strength = advanced_parameters.overwrite_upscale_strength + if overwrite_upscale_strength > 0: + denoising_strength = overwrite_upscale_strength initial_pixels = core.numpy_to_pytorch(uov_input_image) progressbar(async_task, 13, 'VAE encoding ...') @@ -566,19 +602,19 @@ def worker(): inpaint_image = np.ascontiguousarray(inpaint_image.copy()) inpaint_mask = np.ascontiguousarray(inpaint_mask.copy()) - advanced_parameters.inpaint_strength = 1.0 - advanced_parameters.inpaint_respective_field = 1.0 + inpaint_strength = 1.0 + inpaint_respective_field = 1.0 - denoising_strength = advanced_parameters.inpaint_strength + denoising_strength = inpaint_strength inpaint_worker.current_task = inpaint_worker.InpaintWorker( image=inpaint_image, mask=inpaint_mask, use_fill=denoising_strength > 0.99, - k=advanced_parameters.inpaint_respective_field + k=inpaint_respective_field ) - if advanced_parameters.debugging_inpaint_preprocessor: + if debugging_inpaint_preprocessor: yield_result(async_task, inpaint_worker.current_task.visualize_mask_processing(), do_not_show_finished_images=True) return @@ -624,7 +660,7 @@ def worker(): model=pipeline.final_unet ) - if not advanced_parameters.inpaint_disable_initial_latent: + if not inpaint_disable_initial_latent: initial_latent = {'samples': latent_fill} B, C, H, W = latent_fill.shape @@ -637,24 +673,24 @@ def worker(): cn_img, cn_stop, cn_weight = task cn_img = resize_image(HWC3(cn_img), width=width, height=height) - if not advanced_parameters.skipping_cn_preprocessor: - cn_img = preprocessors.canny_pyramid(cn_img) + if not skipping_cn_preprocessor: + cn_img = preprocessors.canny_pyramid(cn_img, canny_low_threshold, canny_high_threshold) cn_img = HWC3(cn_img) task[0] = core.numpy_to_pytorch(cn_img) - if advanced_parameters.debugging_cn_preprocessor: + if debugging_cn_preprocessor: yield_result(async_task, cn_img, do_not_show_finished_images=True) return for task in cn_tasks[flags.cn_cpds]: cn_img, cn_stop, cn_weight = task cn_img = resize_image(HWC3(cn_img), width=width, height=height) - if not advanced_parameters.skipping_cn_preprocessor: + if not skipping_cn_preprocessor: cn_img = preprocessors.cpds(cn_img) cn_img = HWC3(cn_img) task[0] = core.numpy_to_pytorch(cn_img) - if advanced_parameters.debugging_cn_preprocessor: + if debugging_cn_preprocessor: yield_result(async_task, cn_img, do_not_show_finished_images=True) return for task in cn_tasks[flags.cn_ip]: @@ -665,21 +701,21 @@ def worker(): cn_img = resize_image(cn_img, width=224, height=224, resize_mode=0) task[0] = ip_adapter.preprocess(cn_img, ip_adapter_path=ip_adapter_path) - if advanced_parameters.debugging_cn_preprocessor: + if debugging_cn_preprocessor: yield_result(async_task, cn_img, do_not_show_finished_images=True) return for task in cn_tasks[flags.cn_ip_face]: cn_img, cn_stop, cn_weight = task cn_img = HWC3(cn_img) - if not advanced_parameters.skipping_cn_preprocessor: + if not skipping_cn_preprocessor: cn_img = extras.face_crop.crop_image(cn_img) # https://github.com/tencent-ailab/IP-Adapter/blob/d580c50a291566bbf9fc7ac0f760506607297e6d/README.md?plain=1#L75 cn_img = resize_image(cn_img, width=224, height=224, resize_mode=0) task[0] = ip_adapter.preprocess(cn_img, ip_adapter_path=ip_adapter_face_path) - if advanced_parameters.debugging_cn_preprocessor: + if debugging_cn_preprocessor: yield_result(async_task, cn_img, do_not_show_finished_images=True) return @@ -688,14 +724,14 @@ def worker(): if len(all_ip_tasks) > 0: pipeline.final_unet = ip_adapter.patch_model(pipeline.final_unet, all_ip_tasks) - if advanced_parameters.freeu_enabled: + if freeu_enabled: print(f'FreeU is enabled!') pipeline.final_unet = core.apply_freeu( pipeline.final_unet, - advanced_parameters.freeu_b1, - advanced_parameters.freeu_b2, - advanced_parameters.freeu_s1, - advanced_parameters.freeu_s2 + freeu_b1, + freeu_b2, + freeu_s1, + freeu_s2 ) all_steps = steps * image_number @@ -771,7 +807,8 @@ def worker(): denoise=denoising_strength, tiled=tiled, cfg_scale=cfg_scale, - refiner_swap_method=refiner_swap_method + refiner_swap_method=refiner_swap_method, + disable_preview=disable_preview ) del task['c'], task['uc'], positive_cond, negative_cond # Save memory @@ -790,9 +827,9 @@ def worker(): ('Sharpness', sharpness), ('Guidance Scale', guidance_scale), ('ADM Guidance', str(( - modules.patch.positive_adm_scale, - modules.patch.negative_adm_scale, - modules.patch.adm_scaler_end))), + modules.patch.patch_settings[pid].positive_adm_scale, + modules.patch.patch_settings[pid].negative_adm_scale, + modules.patch.patch_settings[pid].adm_scaler_end))), ('Base Model', base_model_name), ('Refiner Model', refiner_model_name), ('Refiner Switch', refiner_switch), @@ -825,14 +862,20 @@ def worker(): time.sleep(0.01) if len(async_tasks) > 0: task = async_tasks.pop(0) + generate_image_grid = task.args.pop(0) + try: handler(task) - build_image_wall(task) + if generate_image_grid: + build_image_wall(task) task.yields.append(['finish', task.results]) pipeline.prepare_text_encoder(async_call=True) except: traceback.print_exc() task.yields.append(['finish', task.results]) + finally: + if pid in modules.patch.patch_settings: + del modules.patch.patch_settings[pid] pass diff --git a/modules/core.py b/modules/core.py index 989b8e32..7a29d988 100644 --- a/modules/core.py +++ b/modules/core.py @@ -1,8 +1,3 @@ -from modules.patch import patch_all - -patch_all() - - import os import einops import torch @@ -16,7 +11,6 @@ import ldm_patched.modules.controlnet import modules.sample_hijack import ldm_patched.modules.samplers import ldm_patched.modules.latent_formats -import modules.advanced_parameters from ldm_patched.modules.sd import load_checkpoint_guess_config from ldm_patched.contrib.external import VAEDecode, EmptyLatentImage, VAEEncode, VAEEncodeTiled, VAEDecodeTiled, \ @@ -268,7 +262,7 @@ def get_previewer(model): def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sampler_name='dpmpp_2m_sde_gpu', scheduler='karras', denoise=1.0, disable_noise=False, start_step=None, last_step=None, force_full_denoise=False, callback_function=None, refiner=None, refiner_switch=-1, - previewer_start=None, previewer_end=None, sigmas=None, noise_mean=None): + previewer_start=None, previewer_end=None, sigmas=None, noise_mean=None, disable_preview=False): if sigmas is not None: sigmas = sigmas.clone().to(ldm_patched.modules.model_management.get_torch_device()) @@ -299,7 +293,7 @@ def ksampler(model, positive, negative, latent, seed=None, steps=30, cfg=7.0, sa def callback(step, x0, x, total_steps): ldm_patched.modules.model_management.throw_exception_if_processing_interrupted() y = None - if previewer is not None and not modules.advanced_parameters.disable_preview: + if previewer is not None and not disable_preview: y = previewer(x0, previewer_start + step, previewer_end) if callback_function is not None: callback_function(previewer_start + step, x0, x, previewer_end, y) diff --git a/modules/default_pipeline.py b/modules/default_pipeline.py index 6001d97f..2f45667c 100644 --- a/modules/default_pipeline.py +++ b/modules/default_pipeline.py @@ -315,7 +315,7 @@ def get_candidate_vae(steps, switch, denoise=1.0, refiner_swap_method='joint'): @torch.no_grad() @torch.inference_mode() -def process_diffusion(positive_cond, negative_cond, steps, switch, width, height, image_seed, callback, sampler_name, scheduler_name, latent=None, denoise=1.0, tiled=False, cfg_scale=7.0, refiner_swap_method='joint'): +def process_diffusion(positive_cond, negative_cond, steps, switch, width, height, image_seed, callback, sampler_name, scheduler_name, latent=None, denoise=1.0, tiled=False, cfg_scale=7.0, refiner_swap_method='joint', disable_preview=False): target_unet, target_vae, target_refiner_unet, target_refiner_vae, target_clip \ = final_unet, final_vae, final_refiner_unet, final_refiner_vae, final_clip @@ -374,6 +374,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height refiner_switch=switch, previewer_start=0, previewer_end=steps, + disable_preview=disable_preview ) decoded_latent = core.decode_vae(vae=target_vae, latent_image=sampled_latent, tiled=tiled) @@ -392,6 +393,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height scheduler=scheduler_name, previewer_start=0, previewer_end=steps, + disable_preview=disable_preview ) print('Refiner swapped by changing ksampler. Noise preserved.') @@ -414,6 +416,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height scheduler=scheduler_name, previewer_start=switch, previewer_end=steps, + disable_preview=disable_preview ) target_model = target_refiner_vae @@ -422,7 +425,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height decoded_latent = core.decode_vae(vae=target_model, latent_image=sampled_latent, tiled=tiled) if refiner_swap_method == 'vae': - modules.patch.eps_record = 'vae' + modules.patch.patch_settings[os.getpid()].eps_record = 'vae' if modules.inpaint_worker.current_task is not None: modules.inpaint_worker.current_task.unswap() @@ -440,7 +443,8 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height sampler_name=sampler_name, scheduler=scheduler_name, previewer_start=0, - previewer_end=steps + previewer_end=steps, + disable_preview=disable_preview ) print('Fooocus VAE-based swap.') @@ -459,7 +463,7 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height denoise=denoise)[switch:] * k_sigmas len_sigmas = len(sigmas) - 1 - noise_mean = torch.mean(modules.patch.eps_record, dim=1, keepdim=True) + noise_mean = torch.mean(modules.patch.patch_settings[os.getpid()].eps_record, dim=1, keepdim=True) if modules.inpaint_worker.current_task is not None: modules.inpaint_worker.current_task.swap() @@ -479,7 +483,8 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height previewer_start=switch, previewer_end=steps, sigmas=sigmas, - noise_mean=noise_mean + noise_mean=noise_mean, + disable_preview=disable_preview ) target_model = target_refiner_vae @@ -488,5 +493,5 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height decoded_latent = core.decode_vae(vae=target_model, latent_image=sampled_latent, tiled=tiled) images = core.pytorch_to_numpy(decoded_latent) - modules.patch.eps_record = None + modules.patch.patch_settings[os.getpid()].eps_record = None return images diff --git a/modules/patch.py b/modules/patch.py index 2e2409c5..3c2dd8f4 100644 --- a/modules/patch.py +++ b/modules/patch.py @@ -17,7 +17,6 @@ import ldm_patched.controlnet.cldm import ldm_patched.modules.model_patcher import ldm_patched.modules.samplers import ldm_patched.modules.args_parser -import modules.advanced_parameters as advanced_parameters import warnings import safetensors.torch import modules.constants as constants @@ -29,15 +28,25 @@ from modules.patch_precision import patch_all_precision from modules.patch_clip import patch_all_clip -sharpness = 2.0 +class PatchSettings: + def __init__(self, + sharpness=2.0, + adm_scaler_end=0.3, + positive_adm_scale=1.5, + negative_adm_scale=0.8, + controlnet_softness=0.25, + adaptive_cfg=7.0): + self.sharpness = sharpness + self.adm_scaler_end = adm_scaler_end + self.positive_adm_scale = positive_adm_scale + self.negative_adm_scale = negative_adm_scale + self.controlnet_softness = controlnet_softness + self.adaptive_cfg = adaptive_cfg + self.global_diffusion_progress = 0 + self.eps_record = None -adm_scaler_end = 0.3 -positive_adm_scale = 1.5 -negative_adm_scale = 0.8 -adaptive_cfg = 7.0 -global_diffusion_progress = 0 -eps_record = None +patch_settings = {} def calculate_weight_patched(self, patches, weight, key): @@ -201,14 +210,13 @@ class BrownianTreeNoiseSamplerPatched: def compute_cfg(uncond, cond, cfg_scale, t): - global adaptive_cfg - - mimic_cfg = float(adaptive_cfg) + pid = os.getpid() + mimic_cfg = float(patch_settings[pid].adaptive_cfg) real_cfg = float(cfg_scale) real_eps = uncond + real_cfg * (cond - uncond) - if cfg_scale > adaptive_cfg: + if cfg_scale > patch_settings[pid].adaptive_cfg: mimicked_eps = uncond + mimic_cfg * (cond - uncond) return real_eps * t + mimicked_eps * (1 - t) else: @@ -216,13 +224,13 @@ def compute_cfg(uncond, cond, cfg_scale, t): def patched_sampling_function(model, x, timestep, uncond, cond, cond_scale, model_options=None, seed=None): - global eps_record + pid = os.getpid() if math.isclose(cond_scale, 1.0) and not model_options.get("disable_cfg1_optimization", False): final_x0 = calc_cond_uncond_batch(model, cond, None, x, timestep, model_options)[0] - if eps_record is not None: - eps_record = ((x - final_x0) / timestep).cpu() + if patch_settings[pid].eps_record is not None: + patch_settings[pid].eps_record = ((x - final_x0) / timestep).cpu() return final_x0 @@ -231,16 +239,16 @@ def patched_sampling_function(model, x, timestep, uncond, cond, cond_scale, mode positive_eps = x - positive_x0 negative_eps = x - negative_x0 - alpha = 0.001 * sharpness * global_diffusion_progress + alpha = 0.001 * patch_settings[pid].sharpness * patch_settings[pid].global_diffusion_progress positive_eps_degraded = anisotropic.adaptive_anisotropic_filter(x=positive_eps, g=positive_x0) positive_eps_degraded_weighted = positive_eps_degraded * alpha + positive_eps * (1.0 - alpha) final_eps = compute_cfg(uncond=negative_eps, cond=positive_eps_degraded_weighted, - cfg_scale=cond_scale, t=global_diffusion_progress) + cfg_scale=cond_scale, t=patch_settings[pid].global_diffusion_progress) - if eps_record is not None: - eps_record = (final_eps / timestep).cpu() + if patch_settings[pid].eps_record is not None: + patch_settings[pid].eps_record = (final_eps / timestep).cpu() return x - final_eps @@ -255,20 +263,19 @@ def round_to_64(x): def sdxl_encode_adm_patched(self, **kwargs): - global positive_adm_scale, negative_adm_scale - clip_pooled = ldm_patched.modules.model_base.sdxl_pooled(kwargs, self.noise_augmentor) width = kwargs.get("width", 1024) height = kwargs.get("height", 1024) target_width = width target_height = height + pid = os.getpid() if kwargs.get("prompt_type", "") == "negative": - width = float(width) * negative_adm_scale - height = float(height) * negative_adm_scale + width = float(width) * patch_settings[pid].negative_adm_scale + height = float(height) * patch_settings[pid].negative_adm_scale elif kwargs.get("prompt_type", "") == "positive": - width = float(width) * positive_adm_scale - height = float(height) * positive_adm_scale + width = float(width) * patch_settings[pid].positive_adm_scale + height = float(height) * patch_settings[pid].positive_adm_scale def embedder(number_list): h = self.embedder(torch.tensor(number_list, dtype=torch.float32)) @@ -322,7 +329,7 @@ def patched_KSamplerX0Inpaint_forward(self, x, sigma, uncond, cond, cond_scale, def timed_adm(y, timesteps): if isinstance(y, torch.Tensor) and int(y.dim()) == 2 and int(y.shape[1]) == 5632: - y_mask = (timesteps > 999.0 * (1.0 - float(adm_scaler_end))).to(y)[..., None] + y_mask = (timesteps > 999.0 * (1.0 - float(patch_settings[os.getpid()].adm_scaler_end))).to(y)[..., None] y_with_adm = y[..., :2816].clone() y_without_adm = y[..., 2816:].clone() return y_with_adm * y_mask + y_without_adm * (1.0 - y_mask) @@ -332,6 +339,7 @@ def timed_adm(y, timesteps): def patched_cldm_forward(self, x, hint, timesteps, context, y=None, **kwargs): t_emb = ldm_patched.ldm.modules.diffusionmodules.openaimodel.timestep_embedding(timesteps, self.model_channels, repeat_only=False).to(x.dtype) emb = self.time_embed(t_emb) + pid = os.getpid() guided_hint = self.input_hint_block(hint, emb, context) @@ -357,19 +365,17 @@ def patched_cldm_forward(self, x, hint, timesteps, context, y=None, **kwargs): h = self.middle_block(h, emb, context) outs.append(self.middle_block_out(h, emb, context)) - if advanced_parameters.controlnet_softness > 0: + if patch_settings[pid].controlnet_softness > 0: for i in range(10): k = 1.0 - float(i) / 9.0 - outs[i] = outs[i] * (1.0 - advanced_parameters.controlnet_softness * k) + outs[i] = outs[i] * (1.0 - patch_settings[pid].controlnet_softness * k) return outs def patched_unet_forward(self, x, timesteps=None, context=None, y=None, control=None, transformer_options={}, **kwargs): - global global_diffusion_progress - self.current_step = 1.0 - timesteps.to(x) / 999.0 - global_diffusion_progress = float(self.current_step.detach().cpu().numpy().tolist()[0]) + patch_settings[os.getpid()].global_diffusion_progress = float(self.current_step.detach().cpu().numpy().tolist()[0]) y = timed_adm(y, timesteps) @@ -483,7 +489,7 @@ def patch_all(): if ldm_patched.modules.model_management.directml_enabled: ldm_patched.modules.model_management.lowvram_available = True ldm_patched.modules.model_management.OOM_EXCEPTION = Exception - + patch_all_precision() patch_all_clip() diff --git a/modules/ui_gradio_extensions.py b/modules/ui_gradio_extensions.py index e59b151b..bebf9f8c 100644 --- a/modules/ui_gradio_extensions.py +++ b/modules/ui_gradio_extensions.py @@ -30,6 +30,7 @@ def javascript_html(): edit_attention_js_path = webpath('javascript/edit-attention.js') viewer_js_path = webpath('javascript/viewer.js') image_viewer_js_path = webpath('javascript/imageviewer.js') + samples_path = webpath(os.path.abspath('./sdxl_styles/samples/fooocus_v2.jpg')) head = f'\n' head += f'\n' head += f'\n' @@ -38,6 +39,7 @@ def javascript_html(): head += f'\n' head += f'\n' head += f'\n' + head += f'\n' if args_manager.args.theme: head += f'\n' diff --git a/sdxl_styles/samples/abstract_expressionism.jpg b/sdxl_styles/samples/abstract_expressionism.jpg new file mode 100644 index 00000000..226b8fa7 Binary files /dev/null and b/sdxl_styles/samples/abstract_expressionism.jpg differ diff --git a/sdxl_styles/samples/academia.jpg b/sdxl_styles/samples/academia.jpg new file mode 100644 index 00000000..26a700d0 Binary files /dev/null and b/sdxl_styles/samples/academia.jpg differ diff --git a/sdxl_styles/samples/action_figure.jpg b/sdxl_styles/samples/action_figure.jpg new file mode 100644 index 00000000..fcd1c092 Binary files /dev/null and b/sdxl_styles/samples/action_figure.jpg differ diff --git a/sdxl_styles/samples/adorable_3d_character.jpg b/sdxl_styles/samples/adorable_3d_character.jpg new file mode 100644 index 00000000..493bfb8f Binary files /dev/null and b/sdxl_styles/samples/adorable_3d_character.jpg differ diff --git a/sdxl_styles/samples/adorable_kawaii.jpg b/sdxl_styles/samples/adorable_kawaii.jpg new file mode 100644 index 00000000..52bc7733 Binary files /dev/null and b/sdxl_styles/samples/adorable_kawaii.jpg differ diff --git a/sdxl_styles/samples/ads_advertising.jpg b/sdxl_styles/samples/ads_advertising.jpg new file mode 100644 index 00000000..40631d4c Binary files /dev/null and b/sdxl_styles/samples/ads_advertising.jpg differ diff --git a/sdxl_styles/samples/ads_automotive.jpg b/sdxl_styles/samples/ads_automotive.jpg new file mode 100644 index 00000000..ceea6c4d Binary files /dev/null and b/sdxl_styles/samples/ads_automotive.jpg differ diff --git a/sdxl_styles/samples/ads_corporate.jpg b/sdxl_styles/samples/ads_corporate.jpg new file mode 100644 index 00000000..1d590743 Binary files /dev/null and b/sdxl_styles/samples/ads_corporate.jpg differ diff --git a/sdxl_styles/samples/ads_fashion_editorial.jpg b/sdxl_styles/samples/ads_fashion_editorial.jpg new file mode 100644 index 00000000..22fdd232 Binary files /dev/null and b/sdxl_styles/samples/ads_fashion_editorial.jpg differ diff --git a/sdxl_styles/samples/ads_food_photography.jpg b/sdxl_styles/samples/ads_food_photography.jpg new file mode 100644 index 00000000..64c38aff Binary files /dev/null and b/sdxl_styles/samples/ads_food_photography.jpg differ diff --git a/sdxl_styles/samples/ads_gourmet_food_photography.jpg b/sdxl_styles/samples/ads_gourmet_food_photography.jpg new file mode 100644 index 00000000..305770b0 Binary files /dev/null and b/sdxl_styles/samples/ads_gourmet_food_photography.jpg differ diff --git a/sdxl_styles/samples/ads_luxury.jpg b/sdxl_styles/samples/ads_luxury.jpg new file mode 100644 index 00000000..54248568 Binary files /dev/null and b/sdxl_styles/samples/ads_luxury.jpg differ diff --git a/sdxl_styles/samples/ads_real_estate.jpg b/sdxl_styles/samples/ads_real_estate.jpg new file mode 100644 index 00000000..438b9fd1 Binary files /dev/null and b/sdxl_styles/samples/ads_real_estate.jpg differ diff --git a/sdxl_styles/samples/ads_retail.jpg b/sdxl_styles/samples/ads_retail.jpg new file mode 100644 index 00000000..93aea1e7 Binary files /dev/null and b/sdxl_styles/samples/ads_retail.jpg differ diff --git a/sdxl_styles/samples/art_deco.jpg b/sdxl_styles/samples/art_deco.jpg new file mode 100644 index 00000000..7a37c722 Binary files /dev/null and b/sdxl_styles/samples/art_deco.jpg differ diff --git a/sdxl_styles/samples/art_nouveau.jpg b/sdxl_styles/samples/art_nouveau.jpg new file mode 100644 index 00000000..e318db83 Binary files /dev/null and b/sdxl_styles/samples/art_nouveau.jpg differ diff --git a/sdxl_styles/samples/artstyle_abstract.jpg b/sdxl_styles/samples/artstyle_abstract.jpg new file mode 100644 index 00000000..d1c3223b Binary files /dev/null and b/sdxl_styles/samples/artstyle_abstract.jpg differ diff --git a/sdxl_styles/samples/artstyle_abstract_expressionism.jpg b/sdxl_styles/samples/artstyle_abstract_expressionism.jpg new file mode 100644 index 00000000..c2a9db02 Binary files /dev/null and b/sdxl_styles/samples/artstyle_abstract_expressionism.jpg differ diff --git a/sdxl_styles/samples/artstyle_art_deco.jpg b/sdxl_styles/samples/artstyle_art_deco.jpg new file mode 100644 index 00000000..d466541e Binary files /dev/null and b/sdxl_styles/samples/artstyle_art_deco.jpg differ diff --git a/sdxl_styles/samples/artstyle_art_nouveau.jpg b/sdxl_styles/samples/artstyle_art_nouveau.jpg new file mode 100644 index 00000000..1f34ae95 Binary files /dev/null and b/sdxl_styles/samples/artstyle_art_nouveau.jpg differ diff --git a/sdxl_styles/samples/artstyle_constructivist.jpg b/sdxl_styles/samples/artstyle_constructivist.jpg new file mode 100644 index 00000000..161161a5 Binary files /dev/null and b/sdxl_styles/samples/artstyle_constructivist.jpg differ diff --git a/sdxl_styles/samples/artstyle_cubist.jpg b/sdxl_styles/samples/artstyle_cubist.jpg new file mode 100644 index 00000000..016cce7d Binary files /dev/null and b/sdxl_styles/samples/artstyle_cubist.jpg differ diff --git a/sdxl_styles/samples/artstyle_expressionist.jpg b/sdxl_styles/samples/artstyle_expressionist.jpg new file mode 100644 index 00000000..40eec1db Binary files /dev/null and b/sdxl_styles/samples/artstyle_expressionist.jpg differ diff --git a/sdxl_styles/samples/artstyle_graffiti.jpg b/sdxl_styles/samples/artstyle_graffiti.jpg new file mode 100644 index 00000000..12c6c5fa Binary files /dev/null and b/sdxl_styles/samples/artstyle_graffiti.jpg differ diff --git a/sdxl_styles/samples/artstyle_hyperrealism.jpg b/sdxl_styles/samples/artstyle_hyperrealism.jpg new file mode 100644 index 00000000..8ab9e619 Binary files /dev/null and b/sdxl_styles/samples/artstyle_hyperrealism.jpg differ diff --git a/sdxl_styles/samples/artstyle_impressionist.jpg b/sdxl_styles/samples/artstyle_impressionist.jpg new file mode 100644 index 00000000..a932fb99 Binary files /dev/null and b/sdxl_styles/samples/artstyle_impressionist.jpg differ diff --git a/sdxl_styles/samples/artstyle_pointillism.jpg b/sdxl_styles/samples/artstyle_pointillism.jpg new file mode 100644 index 00000000..902ee1c7 Binary files /dev/null and b/sdxl_styles/samples/artstyle_pointillism.jpg differ diff --git a/sdxl_styles/samples/artstyle_pop_art.jpg b/sdxl_styles/samples/artstyle_pop_art.jpg new file mode 100644 index 00000000..1c9864b0 Binary files /dev/null and b/sdxl_styles/samples/artstyle_pop_art.jpg differ diff --git a/sdxl_styles/samples/artstyle_psychedelic.jpg b/sdxl_styles/samples/artstyle_psychedelic.jpg new file mode 100644 index 00000000..42b7c990 Binary files /dev/null and b/sdxl_styles/samples/artstyle_psychedelic.jpg differ diff --git a/sdxl_styles/samples/artstyle_renaissance.jpg b/sdxl_styles/samples/artstyle_renaissance.jpg new file mode 100644 index 00000000..322b758d Binary files /dev/null and b/sdxl_styles/samples/artstyle_renaissance.jpg differ diff --git a/sdxl_styles/samples/artstyle_steampunk.jpg b/sdxl_styles/samples/artstyle_steampunk.jpg new file mode 100644 index 00000000..0ecf4ff9 Binary files /dev/null and b/sdxl_styles/samples/artstyle_steampunk.jpg differ diff --git a/sdxl_styles/samples/artstyle_surrealist.jpg b/sdxl_styles/samples/artstyle_surrealist.jpg new file mode 100644 index 00000000..44c48215 Binary files /dev/null and b/sdxl_styles/samples/artstyle_surrealist.jpg differ diff --git a/sdxl_styles/samples/artstyle_typography.jpg b/sdxl_styles/samples/artstyle_typography.jpg new file mode 100644 index 00000000..5a36ae50 Binary files /dev/null and b/sdxl_styles/samples/artstyle_typography.jpg differ diff --git a/sdxl_styles/samples/artstyle_watercolor.jpg b/sdxl_styles/samples/artstyle_watercolor.jpg new file mode 100644 index 00000000..f7d9cc30 Binary files /dev/null and b/sdxl_styles/samples/artstyle_watercolor.jpg differ diff --git a/sdxl_styles/samples/astral_aura.jpg b/sdxl_styles/samples/astral_aura.jpg new file mode 100644 index 00000000..e13f8493 Binary files /dev/null and b/sdxl_styles/samples/astral_aura.jpg differ diff --git a/sdxl_styles/samples/avant_garde.jpg b/sdxl_styles/samples/avant_garde.jpg new file mode 100644 index 00000000..f1e29b89 Binary files /dev/null and b/sdxl_styles/samples/avant_garde.jpg differ diff --git a/sdxl_styles/samples/baroque.jpg b/sdxl_styles/samples/baroque.jpg new file mode 100644 index 00000000..718aef7a Binary files /dev/null and b/sdxl_styles/samples/baroque.jpg differ diff --git a/sdxl_styles/samples/bauhaus_style_poster.jpg b/sdxl_styles/samples/bauhaus_style_poster.jpg new file mode 100644 index 00000000..087fe3b5 Binary files /dev/null and b/sdxl_styles/samples/bauhaus_style_poster.jpg differ diff --git a/sdxl_styles/samples/blueprint_schematic_drawing.jpg b/sdxl_styles/samples/blueprint_schematic_drawing.jpg new file mode 100644 index 00000000..e3012010 Binary files /dev/null and b/sdxl_styles/samples/blueprint_schematic_drawing.jpg differ diff --git a/sdxl_styles/samples/caricature.jpg b/sdxl_styles/samples/caricature.jpg new file mode 100644 index 00000000..2ff3ee35 Binary files /dev/null and b/sdxl_styles/samples/caricature.jpg differ diff --git a/sdxl_styles/samples/cel_shaded_art.jpg b/sdxl_styles/samples/cel_shaded_art.jpg new file mode 100644 index 00000000..8a69ac22 Binary files /dev/null and b/sdxl_styles/samples/cel_shaded_art.jpg differ diff --git a/sdxl_styles/samples/character_design_sheet.jpg b/sdxl_styles/samples/character_design_sheet.jpg new file mode 100644 index 00000000..6f8fb665 Binary files /dev/null and b/sdxl_styles/samples/character_design_sheet.jpg differ diff --git a/sdxl_styles/samples/cinematic_diva.jpg b/sdxl_styles/samples/cinematic_diva.jpg new file mode 100644 index 00000000..74483019 Binary files /dev/null and b/sdxl_styles/samples/cinematic_diva.jpg differ diff --git a/sdxl_styles/samples/classicism_art.jpg b/sdxl_styles/samples/classicism_art.jpg new file mode 100644 index 00000000..bf8e7033 Binary files /dev/null and b/sdxl_styles/samples/classicism_art.jpg differ diff --git a/sdxl_styles/samples/color_field_painting.jpg b/sdxl_styles/samples/color_field_painting.jpg new file mode 100644 index 00000000..92b4e098 Binary files /dev/null and b/sdxl_styles/samples/color_field_painting.jpg differ diff --git a/sdxl_styles/samples/colored_pencil_art.jpg b/sdxl_styles/samples/colored_pencil_art.jpg new file mode 100644 index 00000000..1a7c590e Binary files /dev/null and b/sdxl_styles/samples/colored_pencil_art.jpg differ diff --git a/sdxl_styles/samples/conceptual_art.jpg b/sdxl_styles/samples/conceptual_art.jpg new file mode 100644 index 00000000..06882a20 Binary files /dev/null and b/sdxl_styles/samples/conceptual_art.jpg differ diff --git a/sdxl_styles/samples/constructivism.jpg b/sdxl_styles/samples/constructivism.jpg new file mode 100644 index 00000000..d49c6828 Binary files /dev/null and b/sdxl_styles/samples/constructivism.jpg differ diff --git a/sdxl_styles/samples/cubism.jpg b/sdxl_styles/samples/cubism.jpg new file mode 100644 index 00000000..2ca0f286 Binary files /dev/null and b/sdxl_styles/samples/cubism.jpg differ diff --git a/sdxl_styles/samples/dadaism.jpg b/sdxl_styles/samples/dadaism.jpg new file mode 100644 index 00000000..5573cb07 Binary files /dev/null and b/sdxl_styles/samples/dadaism.jpg differ diff --git a/sdxl_styles/samples/dark_fantasy.jpg b/sdxl_styles/samples/dark_fantasy.jpg new file mode 100644 index 00000000..7d60f6dd Binary files /dev/null and b/sdxl_styles/samples/dark_fantasy.jpg differ diff --git a/sdxl_styles/samples/dark_moody_atmosphere.jpg b/sdxl_styles/samples/dark_moody_atmosphere.jpg new file mode 100644 index 00000000..38921c62 Binary files /dev/null and b/sdxl_styles/samples/dark_moody_atmosphere.jpg differ diff --git a/sdxl_styles/samples/dmt_art_style.jpg b/sdxl_styles/samples/dmt_art_style.jpg new file mode 100644 index 00000000..a7ffae0b Binary files /dev/null and b/sdxl_styles/samples/dmt_art_style.jpg differ diff --git a/sdxl_styles/samples/doodle_art.jpg b/sdxl_styles/samples/doodle_art.jpg new file mode 100644 index 00000000..8944eb0b Binary files /dev/null and b/sdxl_styles/samples/doodle_art.jpg differ diff --git a/sdxl_styles/samples/double_exposure.jpg b/sdxl_styles/samples/double_exposure.jpg new file mode 100644 index 00000000..15b6fbb4 Binary files /dev/null and b/sdxl_styles/samples/double_exposure.jpg differ diff --git a/sdxl_styles/samples/dripping_paint_splatter_art.jpg b/sdxl_styles/samples/dripping_paint_splatter_art.jpg new file mode 100644 index 00000000..697c4438 Binary files /dev/null and b/sdxl_styles/samples/dripping_paint_splatter_art.jpg differ diff --git a/sdxl_styles/samples/expressionism.jpg b/sdxl_styles/samples/expressionism.jpg new file mode 100644 index 00000000..df5e7770 Binary files /dev/null and b/sdxl_styles/samples/expressionism.jpg differ diff --git a/sdxl_styles/samples/faded_polaroid_photo.jpg b/sdxl_styles/samples/faded_polaroid_photo.jpg new file mode 100644 index 00000000..51b2a135 Binary files /dev/null and b/sdxl_styles/samples/faded_polaroid_photo.jpg differ diff --git a/sdxl_styles/samples/fauvism.jpg b/sdxl_styles/samples/fauvism.jpg new file mode 100644 index 00000000..5afaaf5e Binary files /dev/null and b/sdxl_styles/samples/fauvism.jpg differ diff --git a/sdxl_styles/samples/flat_2d_art.jpg b/sdxl_styles/samples/flat_2d_art.jpg new file mode 100644 index 00000000..9fba930e Binary files /dev/null and b/sdxl_styles/samples/flat_2d_art.jpg differ diff --git a/sdxl_styles/samples/fooocus_cinematic.jpg b/sdxl_styles/samples/fooocus_cinematic.jpg new file mode 100644 index 00000000..1521f740 Binary files /dev/null and b/sdxl_styles/samples/fooocus_cinematic.jpg differ diff --git a/sdxl_styles/samples/fooocus_enhance.jpg b/sdxl_styles/samples/fooocus_enhance.jpg new file mode 100644 index 00000000..20e5ba2f Binary files /dev/null and b/sdxl_styles/samples/fooocus_enhance.jpg differ diff --git a/sdxl_styles/samples/fooocus_masterpiece.jpg b/sdxl_styles/samples/fooocus_masterpiece.jpg new file mode 100644 index 00000000..e57b1fd0 Binary files /dev/null and b/sdxl_styles/samples/fooocus_masterpiece.jpg differ diff --git a/sdxl_styles/samples/fooocus_negative.jpg b/sdxl_styles/samples/fooocus_negative.jpg new file mode 100644 index 00000000..b025c43f Binary files /dev/null and b/sdxl_styles/samples/fooocus_negative.jpg differ diff --git a/sdxl_styles/samples/fooocus_photograph.jpg b/sdxl_styles/samples/fooocus_photograph.jpg new file mode 100644 index 00000000..3f28b857 Binary files /dev/null and b/sdxl_styles/samples/fooocus_photograph.jpg differ diff --git a/sdxl_styles/samples/fooocus_sharp.jpg b/sdxl_styles/samples/fooocus_sharp.jpg new file mode 100644 index 00000000..12f7145c Binary files /dev/null and b/sdxl_styles/samples/fooocus_sharp.jpg differ diff --git a/sdxl_styles/samples/fooocus_v2.jpg b/sdxl_styles/samples/fooocus_v2.jpg new file mode 100644 index 00000000..6e94d5b0 Binary files /dev/null and b/sdxl_styles/samples/fooocus_v2.jpg differ diff --git a/sdxl_styles/samples/fortnite_art_style.jpg b/sdxl_styles/samples/fortnite_art_style.jpg new file mode 100644 index 00000000..e90a4f64 Binary files /dev/null and b/sdxl_styles/samples/fortnite_art_style.jpg differ diff --git a/sdxl_styles/samples/futurism.jpg b/sdxl_styles/samples/futurism.jpg new file mode 100644 index 00000000..85267a62 Binary files /dev/null and b/sdxl_styles/samples/futurism.jpg differ diff --git a/sdxl_styles/samples/futuristic_biomechanical.jpg b/sdxl_styles/samples/futuristic_biomechanical.jpg new file mode 100644 index 00000000..f8c5c082 Binary files /dev/null and b/sdxl_styles/samples/futuristic_biomechanical.jpg differ diff --git a/sdxl_styles/samples/futuristic_biomechanical_cyberpunk.jpg b/sdxl_styles/samples/futuristic_biomechanical_cyberpunk.jpg new file mode 100644 index 00000000..e29a9b5b Binary files /dev/null and b/sdxl_styles/samples/futuristic_biomechanical_cyberpunk.jpg differ diff --git a/sdxl_styles/samples/futuristic_cybernetic.jpg b/sdxl_styles/samples/futuristic_cybernetic.jpg new file mode 100644 index 00000000..f8042285 Binary files /dev/null and b/sdxl_styles/samples/futuristic_cybernetic.jpg differ diff --git a/sdxl_styles/samples/futuristic_cybernetic_robot.jpg b/sdxl_styles/samples/futuristic_cybernetic_robot.jpg new file mode 100644 index 00000000..6f988b78 Binary files /dev/null and b/sdxl_styles/samples/futuristic_cybernetic_robot.jpg differ diff --git a/sdxl_styles/samples/futuristic_cyberpunk_cityscape.jpg b/sdxl_styles/samples/futuristic_cyberpunk_cityscape.jpg new file mode 100644 index 00000000..c05280b7 Binary files /dev/null and b/sdxl_styles/samples/futuristic_cyberpunk_cityscape.jpg differ diff --git a/sdxl_styles/samples/futuristic_futuristic.jpg b/sdxl_styles/samples/futuristic_futuristic.jpg new file mode 100644 index 00000000..da8d4ccf Binary files /dev/null and b/sdxl_styles/samples/futuristic_futuristic.jpg differ diff --git a/sdxl_styles/samples/futuristic_retro_cyberpunk.jpg b/sdxl_styles/samples/futuristic_retro_cyberpunk.jpg new file mode 100644 index 00000000..7686243e Binary files /dev/null and b/sdxl_styles/samples/futuristic_retro_cyberpunk.jpg differ diff --git a/sdxl_styles/samples/futuristic_retro_futurism.jpg b/sdxl_styles/samples/futuristic_retro_futurism.jpg new file mode 100644 index 00000000..f0fa6e94 Binary files /dev/null and b/sdxl_styles/samples/futuristic_retro_futurism.jpg differ diff --git a/sdxl_styles/samples/futuristic_sci_fi.jpg b/sdxl_styles/samples/futuristic_sci_fi.jpg new file mode 100644 index 00000000..571c6141 Binary files /dev/null and b/sdxl_styles/samples/futuristic_sci_fi.jpg differ diff --git a/sdxl_styles/samples/futuristic_vaporwave.jpg b/sdxl_styles/samples/futuristic_vaporwave.jpg new file mode 100644 index 00000000..f8a77fe6 Binary files /dev/null and b/sdxl_styles/samples/futuristic_vaporwave.jpg differ diff --git a/sdxl_styles/samples/game_bubble_bobble.jpg b/sdxl_styles/samples/game_bubble_bobble.jpg new file mode 100644 index 00000000..1111de9e Binary files /dev/null and b/sdxl_styles/samples/game_bubble_bobble.jpg differ diff --git a/sdxl_styles/samples/game_cyberpunk_game.jpg b/sdxl_styles/samples/game_cyberpunk_game.jpg new file mode 100644 index 00000000..e87451de Binary files /dev/null and b/sdxl_styles/samples/game_cyberpunk_game.jpg differ diff --git a/sdxl_styles/samples/game_fighting_game.jpg b/sdxl_styles/samples/game_fighting_game.jpg new file mode 100644 index 00000000..b12c07d3 Binary files /dev/null and b/sdxl_styles/samples/game_fighting_game.jpg differ diff --git a/sdxl_styles/samples/game_gta.jpg b/sdxl_styles/samples/game_gta.jpg new file mode 100644 index 00000000..6458c6d8 Binary files /dev/null and b/sdxl_styles/samples/game_gta.jpg differ diff --git a/sdxl_styles/samples/game_mario.jpg b/sdxl_styles/samples/game_mario.jpg new file mode 100644 index 00000000..17cff4c4 Binary files /dev/null and b/sdxl_styles/samples/game_mario.jpg differ diff --git a/sdxl_styles/samples/game_minecraft.jpg b/sdxl_styles/samples/game_minecraft.jpg new file mode 100644 index 00000000..4e20641f Binary files /dev/null and b/sdxl_styles/samples/game_minecraft.jpg differ diff --git a/sdxl_styles/samples/game_pokemon.jpg b/sdxl_styles/samples/game_pokemon.jpg new file mode 100644 index 00000000..20071f80 Binary files /dev/null and b/sdxl_styles/samples/game_pokemon.jpg differ diff --git a/sdxl_styles/samples/game_retro_arcade.jpg b/sdxl_styles/samples/game_retro_arcade.jpg new file mode 100644 index 00000000..c3836dc8 Binary files /dev/null and b/sdxl_styles/samples/game_retro_arcade.jpg differ diff --git a/sdxl_styles/samples/game_retro_game.jpg b/sdxl_styles/samples/game_retro_game.jpg new file mode 100644 index 00000000..ff81488a Binary files /dev/null and b/sdxl_styles/samples/game_retro_game.jpg differ diff --git a/sdxl_styles/samples/game_rpg_fantasy_game.jpg b/sdxl_styles/samples/game_rpg_fantasy_game.jpg new file mode 100644 index 00000000..c32a2cc7 Binary files /dev/null and b/sdxl_styles/samples/game_rpg_fantasy_game.jpg differ diff --git a/sdxl_styles/samples/game_strategy_game.jpg b/sdxl_styles/samples/game_strategy_game.jpg new file mode 100644 index 00000000..a55eff5c Binary files /dev/null and b/sdxl_styles/samples/game_strategy_game.jpg differ diff --git a/sdxl_styles/samples/game_streetfighter.jpg b/sdxl_styles/samples/game_streetfighter.jpg new file mode 100644 index 00000000..f389e0d3 Binary files /dev/null and b/sdxl_styles/samples/game_streetfighter.jpg differ diff --git a/sdxl_styles/samples/game_zelda.jpg b/sdxl_styles/samples/game_zelda.jpg new file mode 100644 index 00000000..f9b875d7 Binary files /dev/null and b/sdxl_styles/samples/game_zelda.jpg differ diff --git a/sdxl_styles/samples/glitchcore.jpg b/sdxl_styles/samples/glitchcore.jpg new file mode 100644 index 00000000..3122cda8 Binary files /dev/null and b/sdxl_styles/samples/glitchcore.jpg differ diff --git a/sdxl_styles/samples/glo_fi.jpg b/sdxl_styles/samples/glo_fi.jpg new file mode 100644 index 00000000..816b2244 Binary files /dev/null and b/sdxl_styles/samples/glo_fi.jpg differ diff --git a/sdxl_styles/samples/googie_art_style.jpg b/sdxl_styles/samples/googie_art_style.jpg new file mode 100644 index 00000000..e9a08c20 Binary files /dev/null and b/sdxl_styles/samples/googie_art_style.jpg differ diff --git a/sdxl_styles/samples/graffiti_art.jpg b/sdxl_styles/samples/graffiti_art.jpg new file mode 100644 index 00000000..87aebdda Binary files /dev/null and b/sdxl_styles/samples/graffiti_art.jpg differ diff --git a/sdxl_styles/samples/harlem_renaissance_art.jpg b/sdxl_styles/samples/harlem_renaissance_art.jpg new file mode 100644 index 00000000..bd335494 Binary files /dev/null and b/sdxl_styles/samples/harlem_renaissance_art.jpg differ diff --git a/sdxl_styles/samples/high_fashion.jpg b/sdxl_styles/samples/high_fashion.jpg new file mode 100644 index 00000000..4dfc404d Binary files /dev/null and b/sdxl_styles/samples/high_fashion.jpg differ diff --git a/sdxl_styles/samples/idyllic.jpg b/sdxl_styles/samples/idyllic.jpg new file mode 100644 index 00000000..660e9cac Binary files /dev/null and b/sdxl_styles/samples/idyllic.jpg differ diff --git a/sdxl_styles/samples/impressionism.jpg b/sdxl_styles/samples/impressionism.jpg new file mode 100644 index 00000000..52522233 Binary files /dev/null and b/sdxl_styles/samples/impressionism.jpg differ diff --git a/sdxl_styles/samples/infographic_drawing.jpg b/sdxl_styles/samples/infographic_drawing.jpg new file mode 100644 index 00000000..41fdf2e9 Binary files /dev/null and b/sdxl_styles/samples/infographic_drawing.jpg differ diff --git a/sdxl_styles/samples/ink_dripping_drawing.jpg b/sdxl_styles/samples/ink_dripping_drawing.jpg new file mode 100644 index 00000000..6b88b62d Binary files /dev/null and b/sdxl_styles/samples/ink_dripping_drawing.jpg differ diff --git a/sdxl_styles/samples/japanese_ink_drawing.jpg b/sdxl_styles/samples/japanese_ink_drawing.jpg new file mode 100644 index 00000000..ec90c8d0 Binary files /dev/null and b/sdxl_styles/samples/japanese_ink_drawing.jpg differ diff --git a/sdxl_styles/samples/knolling_photography.jpg b/sdxl_styles/samples/knolling_photography.jpg new file mode 100644 index 00000000..2f1b7f1e Binary files /dev/null and b/sdxl_styles/samples/knolling_photography.jpg differ diff --git a/sdxl_styles/samples/light_cheery_atmosphere.jpg b/sdxl_styles/samples/light_cheery_atmosphere.jpg new file mode 100644 index 00000000..e769c892 Binary files /dev/null and b/sdxl_styles/samples/light_cheery_atmosphere.jpg differ diff --git a/sdxl_styles/samples/logo_design.jpg b/sdxl_styles/samples/logo_design.jpg new file mode 100644 index 00000000..8d71ea76 Binary files /dev/null and b/sdxl_styles/samples/logo_design.jpg differ diff --git a/sdxl_styles/samples/luxurious_elegance.jpg b/sdxl_styles/samples/luxurious_elegance.jpg new file mode 100644 index 00000000..515a01d8 Binary files /dev/null and b/sdxl_styles/samples/luxurious_elegance.jpg differ diff --git a/sdxl_styles/samples/macro_photography.jpg b/sdxl_styles/samples/macro_photography.jpg new file mode 100644 index 00000000..c775121a Binary files /dev/null and b/sdxl_styles/samples/macro_photography.jpg differ diff --git a/sdxl_styles/samples/mandola_art.jpg b/sdxl_styles/samples/mandola_art.jpg new file mode 100644 index 00000000..1d9619b5 Binary files /dev/null and b/sdxl_styles/samples/mandola_art.jpg differ diff --git a/sdxl_styles/samples/marker_drawing.jpg b/sdxl_styles/samples/marker_drawing.jpg new file mode 100644 index 00000000..37f37fe1 Binary files /dev/null and b/sdxl_styles/samples/marker_drawing.jpg differ diff --git a/sdxl_styles/samples/medievalism.jpg b/sdxl_styles/samples/medievalism.jpg new file mode 100644 index 00000000..f26e28cf Binary files /dev/null and b/sdxl_styles/samples/medievalism.jpg differ diff --git a/sdxl_styles/samples/minimalism.jpg b/sdxl_styles/samples/minimalism.jpg new file mode 100644 index 00000000..5c4f1848 Binary files /dev/null and b/sdxl_styles/samples/minimalism.jpg differ diff --git a/sdxl_styles/samples/misc_architectural.jpg b/sdxl_styles/samples/misc_architectural.jpg new file mode 100644 index 00000000..8db96999 Binary files /dev/null and b/sdxl_styles/samples/misc_architectural.jpg differ diff --git a/sdxl_styles/samples/misc_disco.jpg b/sdxl_styles/samples/misc_disco.jpg new file mode 100644 index 00000000..665dc347 Binary files /dev/null and b/sdxl_styles/samples/misc_disco.jpg differ diff --git a/sdxl_styles/samples/misc_dreamscape.jpg b/sdxl_styles/samples/misc_dreamscape.jpg new file mode 100644 index 00000000..cb2c6021 Binary files /dev/null and b/sdxl_styles/samples/misc_dreamscape.jpg differ diff --git a/sdxl_styles/samples/misc_dystopian.jpg b/sdxl_styles/samples/misc_dystopian.jpg new file mode 100644 index 00000000..2a8e21ca Binary files /dev/null and b/sdxl_styles/samples/misc_dystopian.jpg differ diff --git a/sdxl_styles/samples/misc_fairy_tale.jpg b/sdxl_styles/samples/misc_fairy_tale.jpg new file mode 100644 index 00000000..effaa2ea Binary files /dev/null and b/sdxl_styles/samples/misc_fairy_tale.jpg differ diff --git a/sdxl_styles/samples/misc_gothic.jpg b/sdxl_styles/samples/misc_gothic.jpg new file mode 100644 index 00000000..e47b38dc Binary files /dev/null and b/sdxl_styles/samples/misc_gothic.jpg differ diff --git a/sdxl_styles/samples/misc_grunge.jpg b/sdxl_styles/samples/misc_grunge.jpg new file mode 100644 index 00000000..db85f75d Binary files /dev/null and b/sdxl_styles/samples/misc_grunge.jpg differ diff --git a/sdxl_styles/samples/misc_horror.jpg b/sdxl_styles/samples/misc_horror.jpg new file mode 100644 index 00000000..f188b854 Binary files /dev/null and b/sdxl_styles/samples/misc_horror.jpg differ diff --git a/sdxl_styles/samples/misc_kawaii.jpg b/sdxl_styles/samples/misc_kawaii.jpg new file mode 100644 index 00000000..6897ed0a Binary files /dev/null and b/sdxl_styles/samples/misc_kawaii.jpg differ diff --git a/sdxl_styles/samples/misc_lovecraftian.jpg b/sdxl_styles/samples/misc_lovecraftian.jpg new file mode 100644 index 00000000..835848e2 Binary files /dev/null and b/sdxl_styles/samples/misc_lovecraftian.jpg differ diff --git a/sdxl_styles/samples/misc_macabre.jpg b/sdxl_styles/samples/misc_macabre.jpg new file mode 100644 index 00000000..eeeb14c5 Binary files /dev/null and b/sdxl_styles/samples/misc_macabre.jpg differ diff --git a/sdxl_styles/samples/misc_manga.jpg b/sdxl_styles/samples/misc_manga.jpg new file mode 100644 index 00000000..aaecd109 Binary files /dev/null and b/sdxl_styles/samples/misc_manga.jpg differ diff --git a/sdxl_styles/samples/misc_metropolis.jpg b/sdxl_styles/samples/misc_metropolis.jpg new file mode 100644 index 00000000..51390016 Binary files /dev/null and b/sdxl_styles/samples/misc_metropolis.jpg differ diff --git a/sdxl_styles/samples/misc_minimalist.jpg b/sdxl_styles/samples/misc_minimalist.jpg new file mode 100644 index 00000000..45c70f62 Binary files /dev/null and b/sdxl_styles/samples/misc_minimalist.jpg differ diff --git a/sdxl_styles/samples/misc_monochrome.jpg b/sdxl_styles/samples/misc_monochrome.jpg new file mode 100644 index 00000000..9230e2e1 Binary files /dev/null and b/sdxl_styles/samples/misc_monochrome.jpg differ diff --git a/sdxl_styles/samples/misc_nautical.jpg b/sdxl_styles/samples/misc_nautical.jpg new file mode 100644 index 00000000..76ce3ac6 Binary files /dev/null and b/sdxl_styles/samples/misc_nautical.jpg differ diff --git a/sdxl_styles/samples/misc_space.jpg b/sdxl_styles/samples/misc_space.jpg new file mode 100644 index 00000000..b57c161f Binary files /dev/null and b/sdxl_styles/samples/misc_space.jpg differ diff --git a/sdxl_styles/samples/misc_stained_glass.jpg b/sdxl_styles/samples/misc_stained_glass.jpg new file mode 100644 index 00000000..c2edf80c Binary files /dev/null and b/sdxl_styles/samples/misc_stained_glass.jpg differ diff --git a/sdxl_styles/samples/misc_techwear_fashion.jpg b/sdxl_styles/samples/misc_techwear_fashion.jpg new file mode 100644 index 00000000..abdef86a Binary files /dev/null and b/sdxl_styles/samples/misc_techwear_fashion.jpg differ diff --git a/sdxl_styles/samples/misc_tribal.jpg b/sdxl_styles/samples/misc_tribal.jpg new file mode 100644 index 00000000..436af144 Binary files /dev/null and b/sdxl_styles/samples/misc_tribal.jpg differ diff --git a/sdxl_styles/samples/misc_zentangle.jpg b/sdxl_styles/samples/misc_zentangle.jpg new file mode 100644 index 00000000..0aea7d40 Binary files /dev/null and b/sdxl_styles/samples/misc_zentangle.jpg differ diff --git a/sdxl_styles/samples/mk_adnate_style.jpg b/sdxl_styles/samples/mk_adnate_style.jpg new file mode 100644 index 00000000..642ea85b Binary files /dev/null and b/sdxl_styles/samples/mk_adnate_style.jpg differ diff --git a/sdxl_styles/samples/mk_afrofuturism.jpg b/sdxl_styles/samples/mk_afrofuturism.jpg new file mode 100644 index 00000000..279c1db1 Binary files /dev/null and b/sdxl_styles/samples/mk_afrofuturism.jpg differ diff --git a/sdxl_styles/samples/mk_albumen_print.jpg b/sdxl_styles/samples/mk_albumen_print.jpg new file mode 100644 index 00000000..9bc89526 Binary files /dev/null and b/sdxl_styles/samples/mk_albumen_print.jpg differ diff --git a/sdxl_styles/samples/mk_alcohol_ink_art.jpg b/sdxl_styles/samples/mk_alcohol_ink_art.jpg new file mode 100644 index 00000000..daac2c95 Binary files /dev/null and b/sdxl_styles/samples/mk_alcohol_ink_art.jpg differ diff --git a/sdxl_styles/samples/mk_andy_warhol.jpg b/sdxl_styles/samples/mk_andy_warhol.jpg new file mode 100644 index 00000000..bfdd38e4 Binary files /dev/null and b/sdxl_styles/samples/mk_andy_warhol.jpg differ diff --git a/sdxl_styles/samples/mk_anthotype_print.jpg b/sdxl_styles/samples/mk_anthotype_print.jpg new file mode 100644 index 00000000..8de4085b Binary files /dev/null and b/sdxl_styles/samples/mk_anthotype_print.jpg differ diff --git a/sdxl_styles/samples/mk_aquatint_print.jpg b/sdxl_styles/samples/mk_aquatint_print.jpg new file mode 100644 index 00000000..6f0f0e15 Binary files /dev/null and b/sdxl_styles/samples/mk_aquatint_print.jpg differ diff --git a/sdxl_styles/samples/mk_atompunk.jpg b/sdxl_styles/samples/mk_atompunk.jpg new file mode 100644 index 00000000..7da970ad Binary files /dev/null and b/sdxl_styles/samples/mk_atompunk.jpg differ diff --git a/sdxl_styles/samples/mk_basquiat.jpg b/sdxl_styles/samples/mk_basquiat.jpg new file mode 100644 index 00000000..20a67367 Binary files /dev/null and b/sdxl_styles/samples/mk_basquiat.jpg differ diff --git a/sdxl_styles/samples/mk_bauhaus_style.jpg b/sdxl_styles/samples/mk_bauhaus_style.jpg new file mode 100644 index 00000000..be1b7820 Binary files /dev/null and b/sdxl_styles/samples/mk_bauhaus_style.jpg differ diff --git a/sdxl_styles/samples/mk_blacklight_paint.jpg b/sdxl_styles/samples/mk_blacklight_paint.jpg new file mode 100644 index 00000000..f185b904 Binary files /dev/null and b/sdxl_styles/samples/mk_blacklight_paint.jpg differ diff --git a/sdxl_styles/samples/mk_bromoil_print.jpg b/sdxl_styles/samples/mk_bromoil_print.jpg new file mode 100644 index 00000000..14445691 Binary files /dev/null and b/sdxl_styles/samples/mk_bromoil_print.jpg differ diff --git a/sdxl_styles/samples/mk_calotype_print.jpg b/sdxl_styles/samples/mk_calotype_print.jpg new file mode 100644 index 00000000..13a5f310 Binary files /dev/null and b/sdxl_styles/samples/mk_calotype_print.jpg differ diff --git a/sdxl_styles/samples/mk_carnival_glass.jpg b/sdxl_styles/samples/mk_carnival_glass.jpg new file mode 100644 index 00000000..62428739 Binary files /dev/null and b/sdxl_styles/samples/mk_carnival_glass.jpg differ diff --git a/sdxl_styles/samples/mk_chicano_art.jpg b/sdxl_styles/samples/mk_chicano_art.jpg new file mode 100644 index 00000000..66d29311 Binary files /dev/null and b/sdxl_styles/samples/mk_chicano_art.jpg differ diff --git a/sdxl_styles/samples/mk_chromolithography.jpg b/sdxl_styles/samples/mk_chromolithography.jpg new file mode 100644 index 00000000..27163c79 Binary files /dev/null and b/sdxl_styles/samples/mk_chromolithography.jpg differ diff --git a/sdxl_styles/samples/mk_cibulak_porcelain.jpg b/sdxl_styles/samples/mk_cibulak_porcelain.jpg new file mode 100644 index 00000000..30ae6205 Binary files /dev/null and b/sdxl_styles/samples/mk_cibulak_porcelain.jpg differ diff --git a/sdxl_styles/samples/mk_color_sketchnote.jpg b/sdxl_styles/samples/mk_color_sketchnote.jpg new file mode 100644 index 00000000..e8d2e4d9 Binary files /dev/null and b/sdxl_styles/samples/mk_color_sketchnote.jpg differ diff --git a/sdxl_styles/samples/mk_coloring_book.jpg b/sdxl_styles/samples/mk_coloring_book.jpg new file mode 100644 index 00000000..377f7c74 Binary files /dev/null and b/sdxl_styles/samples/mk_coloring_book.jpg differ diff --git a/sdxl_styles/samples/mk_constructivism.jpg b/sdxl_styles/samples/mk_constructivism.jpg new file mode 100644 index 00000000..374a62dc Binary files /dev/null and b/sdxl_styles/samples/mk_constructivism.jpg differ diff --git a/sdxl_styles/samples/mk_cross_processing_print.jpg b/sdxl_styles/samples/mk_cross_processing_print.jpg new file mode 100644 index 00000000..234d809c Binary files /dev/null and b/sdxl_styles/samples/mk_cross_processing_print.jpg differ diff --git a/sdxl_styles/samples/mk_cross_stitching.jpg b/sdxl_styles/samples/mk_cross_stitching.jpg new file mode 100644 index 00000000..07c7e352 Binary files /dev/null and b/sdxl_styles/samples/mk_cross_stitching.jpg differ diff --git a/sdxl_styles/samples/mk_cyanotype_print.jpg b/sdxl_styles/samples/mk_cyanotype_print.jpg new file mode 100644 index 00000000..9327227b Binary files /dev/null and b/sdxl_styles/samples/mk_cyanotype_print.jpg differ diff --git a/sdxl_styles/samples/mk_dayak_art.jpg b/sdxl_styles/samples/mk_dayak_art.jpg new file mode 100644 index 00000000..3d27b0f0 Binary files /dev/null and b/sdxl_styles/samples/mk_dayak_art.jpg differ diff --git a/sdxl_styles/samples/mk_de_stijl.jpg b/sdxl_styles/samples/mk_de_stijl.jpg new file mode 100644 index 00000000..1260553a Binary files /dev/null and b/sdxl_styles/samples/mk_de_stijl.jpg differ diff --git a/sdxl_styles/samples/mk_dufaycolor_photograph.jpg b/sdxl_styles/samples/mk_dufaycolor_photograph.jpg new file mode 100644 index 00000000..e18942b2 Binary files /dev/null and b/sdxl_styles/samples/mk_dufaycolor_photograph.jpg differ diff --git a/sdxl_styles/samples/mk_embroidery.jpg b/sdxl_styles/samples/mk_embroidery.jpg new file mode 100644 index 00000000..63f4e7c7 Binary files /dev/null and b/sdxl_styles/samples/mk_embroidery.jpg differ diff --git a/sdxl_styles/samples/mk_encaustic_paint.jpg b/sdxl_styles/samples/mk_encaustic_paint.jpg new file mode 100644 index 00000000..5c9844cf Binary files /dev/null and b/sdxl_styles/samples/mk_encaustic_paint.jpg differ diff --git a/sdxl_styles/samples/mk_fayum_portrait.jpg b/sdxl_styles/samples/mk_fayum_portrait.jpg new file mode 100644 index 00000000..26427929 Binary files /dev/null and b/sdxl_styles/samples/mk_fayum_portrait.jpg differ diff --git a/sdxl_styles/samples/mk_gond_painting.jpg b/sdxl_styles/samples/mk_gond_painting.jpg new file mode 100644 index 00000000..3947f6cd Binary files /dev/null and b/sdxl_styles/samples/mk_gond_painting.jpg differ diff --git a/sdxl_styles/samples/mk_gyotaku.jpg b/sdxl_styles/samples/mk_gyotaku.jpg new file mode 100644 index 00000000..650b4553 Binary files /dev/null and b/sdxl_styles/samples/mk_gyotaku.jpg differ diff --git a/sdxl_styles/samples/mk_halftone_print.jpg b/sdxl_styles/samples/mk_halftone_print.jpg new file mode 100644 index 00000000..37d977db Binary files /dev/null and b/sdxl_styles/samples/mk_halftone_print.jpg differ diff --git a/sdxl_styles/samples/mk_herbarium.jpg b/sdxl_styles/samples/mk_herbarium.jpg new file mode 100644 index 00000000..01209be2 Binary files /dev/null and b/sdxl_styles/samples/mk_herbarium.jpg differ diff --git a/sdxl_styles/samples/mk_illuminated_manuscript.jpg b/sdxl_styles/samples/mk_illuminated_manuscript.jpg new file mode 100644 index 00000000..2b3765ac Binary files /dev/null and b/sdxl_styles/samples/mk_illuminated_manuscript.jpg differ diff --git a/sdxl_styles/samples/mk_inuit_carving.jpg b/sdxl_styles/samples/mk_inuit_carving.jpg new file mode 100644 index 00000000..2cadd30a Binary files /dev/null and b/sdxl_styles/samples/mk_inuit_carving.jpg differ diff --git a/sdxl_styles/samples/mk_kalighat_painting.jpg b/sdxl_styles/samples/mk_kalighat_painting.jpg new file mode 100644 index 00000000..7049b499 Binary files /dev/null and b/sdxl_styles/samples/mk_kalighat_painting.jpg differ diff --git a/sdxl_styles/samples/mk_lite_brite_art.jpg b/sdxl_styles/samples/mk_lite_brite_art.jpg new file mode 100644 index 00000000..0d348dfb Binary files /dev/null and b/sdxl_styles/samples/mk_lite_brite_art.jpg differ diff --git a/sdxl_styles/samples/mk_luminogram.jpg b/sdxl_styles/samples/mk_luminogram.jpg new file mode 100644 index 00000000..011ce9b9 Binary files /dev/null and b/sdxl_styles/samples/mk_luminogram.jpg differ diff --git a/sdxl_styles/samples/mk_madhubani_painting.jpg b/sdxl_styles/samples/mk_madhubani_painting.jpg new file mode 100644 index 00000000..f959a0e5 Binary files /dev/null and b/sdxl_styles/samples/mk_madhubani_painting.jpg differ diff --git a/sdxl_styles/samples/mk_mokume_gane.jpg b/sdxl_styles/samples/mk_mokume_gane.jpg new file mode 100644 index 00000000..91bf90c7 Binary files /dev/null and b/sdxl_styles/samples/mk_mokume_gane.jpg differ diff --git a/sdxl_styles/samples/mk_mosaic.jpg b/sdxl_styles/samples/mk_mosaic.jpg new file mode 100644 index 00000000..f9d83075 Binary files /dev/null and b/sdxl_styles/samples/mk_mosaic.jpg differ diff --git a/sdxl_styles/samples/mk_one_line_art.jpg b/sdxl_styles/samples/mk_one_line_art.jpg new file mode 100644 index 00000000..62fb3593 Binary files /dev/null and b/sdxl_styles/samples/mk_one_line_art.jpg differ diff --git a/sdxl_styles/samples/mk_palekh.jpg b/sdxl_styles/samples/mk_palekh.jpg new file mode 100644 index 00000000..2c4453a7 Binary files /dev/null and b/sdxl_styles/samples/mk_palekh.jpg differ diff --git a/sdxl_styles/samples/mk_patachitra_painting.jpg b/sdxl_styles/samples/mk_patachitra_painting.jpg new file mode 100644 index 00000000..1fd21ea9 Binary files /dev/null and b/sdxl_styles/samples/mk_patachitra_painting.jpg differ diff --git a/sdxl_styles/samples/mk_pichwai_painting.jpg b/sdxl_styles/samples/mk_pichwai_painting.jpg new file mode 100644 index 00000000..3212f195 Binary files /dev/null and b/sdxl_styles/samples/mk_pichwai_painting.jpg differ diff --git a/sdxl_styles/samples/mk_pictorialism.jpg b/sdxl_styles/samples/mk_pictorialism.jpg new file mode 100644 index 00000000..7ed77422 Binary files /dev/null and b/sdxl_styles/samples/mk_pictorialism.jpg differ diff --git a/sdxl_styles/samples/mk_pollock.jpg b/sdxl_styles/samples/mk_pollock.jpg new file mode 100644 index 00000000..ecad511a Binary files /dev/null and b/sdxl_styles/samples/mk_pollock.jpg differ diff --git a/sdxl_styles/samples/mk_punk_collage.jpg b/sdxl_styles/samples/mk_punk_collage.jpg new file mode 100644 index 00000000..5704a0f3 Binary files /dev/null and b/sdxl_styles/samples/mk_punk_collage.jpg differ diff --git a/sdxl_styles/samples/mk_ron_english_style.jpg b/sdxl_styles/samples/mk_ron_english_style.jpg new file mode 100644 index 00000000..14cc3ce5 Binary files /dev/null and b/sdxl_styles/samples/mk_ron_english_style.jpg differ diff --git a/sdxl_styles/samples/mk_samoan_art_inspired.jpg b/sdxl_styles/samples/mk_samoan_art_inspired.jpg new file mode 100644 index 00000000..570481d4 Binary files /dev/null and b/sdxl_styles/samples/mk_samoan_art_inspired.jpg differ diff --git a/sdxl_styles/samples/mk_scrimshaw.jpg b/sdxl_styles/samples/mk_scrimshaw.jpg new file mode 100644 index 00000000..cad08a21 Binary files /dev/null and b/sdxl_styles/samples/mk_scrimshaw.jpg differ diff --git a/sdxl_styles/samples/mk_shepard_fairey_style.jpg b/sdxl_styles/samples/mk_shepard_fairey_style.jpg new file mode 100644 index 00000000..7e5d1c17 Binary files /dev/null and b/sdxl_styles/samples/mk_shepard_fairey_style.jpg differ diff --git a/sdxl_styles/samples/mk_shibori.jpg b/sdxl_styles/samples/mk_shibori.jpg new file mode 100644 index 00000000..6dff3a6f Binary files /dev/null and b/sdxl_styles/samples/mk_shibori.jpg differ diff --git a/sdxl_styles/samples/mk_singer_sargent.jpg b/sdxl_styles/samples/mk_singer_sargent.jpg new file mode 100644 index 00000000..1cef543e Binary files /dev/null and b/sdxl_styles/samples/mk_singer_sargent.jpg differ diff --git a/sdxl_styles/samples/mk_suminagashi.jpg b/sdxl_styles/samples/mk_suminagashi.jpg new file mode 100644 index 00000000..5294cb9b Binary files /dev/null and b/sdxl_styles/samples/mk_suminagashi.jpg differ diff --git a/sdxl_styles/samples/mk_tlingit_art.jpg b/sdxl_styles/samples/mk_tlingit_art.jpg new file mode 100644 index 00000000..60695e7a Binary files /dev/null and b/sdxl_styles/samples/mk_tlingit_art.jpg differ diff --git a/sdxl_styles/samples/mk_ukiyo_e.jpg b/sdxl_styles/samples/mk_ukiyo_e.jpg new file mode 100644 index 00000000..2205c806 Binary files /dev/null and b/sdxl_styles/samples/mk_ukiyo_e.jpg differ diff --git a/sdxl_styles/samples/mk_van_gogh.jpg b/sdxl_styles/samples/mk_van_gogh.jpg new file mode 100644 index 00000000..96109a28 Binary files /dev/null and b/sdxl_styles/samples/mk_van_gogh.jpg differ diff --git a/sdxl_styles/samples/mk_vintage_airline_poster.jpg b/sdxl_styles/samples/mk_vintage_airline_poster.jpg new file mode 100644 index 00000000..e4c1fd5d Binary files /dev/null and b/sdxl_styles/samples/mk_vintage_airline_poster.jpg differ diff --git a/sdxl_styles/samples/mk_vintage_travel_poster.jpg b/sdxl_styles/samples/mk_vintage_travel_poster.jpg new file mode 100644 index 00000000..bd3f2b7d Binary files /dev/null and b/sdxl_styles/samples/mk_vintage_travel_poster.jpg differ diff --git a/sdxl_styles/samples/mk_vitreous_enamel.jpg b/sdxl_styles/samples/mk_vitreous_enamel.jpg new file mode 100644 index 00000000..afc5d14a Binary files /dev/null and b/sdxl_styles/samples/mk_vitreous_enamel.jpg differ diff --git a/sdxl_styles/samples/mre_ancient_illustration.jpg b/sdxl_styles/samples/mre_ancient_illustration.jpg new file mode 100644 index 00000000..1583b72c Binary files /dev/null and b/sdxl_styles/samples/mre_ancient_illustration.jpg differ diff --git a/sdxl_styles/samples/mre_anime.jpg b/sdxl_styles/samples/mre_anime.jpg new file mode 100644 index 00000000..be9a4058 Binary files /dev/null and b/sdxl_styles/samples/mre_anime.jpg differ diff --git a/sdxl_styles/samples/mre_artistic_vision.jpg b/sdxl_styles/samples/mre_artistic_vision.jpg new file mode 100644 index 00000000..eebd9fb6 Binary files /dev/null and b/sdxl_styles/samples/mre_artistic_vision.jpg differ diff --git a/sdxl_styles/samples/mre_bad_dream.jpg b/sdxl_styles/samples/mre_bad_dream.jpg new file mode 100644 index 00000000..125a27b4 Binary files /dev/null and b/sdxl_styles/samples/mre_bad_dream.jpg differ diff --git a/sdxl_styles/samples/mre_brave_art.jpg b/sdxl_styles/samples/mre_brave_art.jpg new file mode 100644 index 00000000..7b6ab272 Binary files /dev/null and b/sdxl_styles/samples/mre_brave_art.jpg differ diff --git a/sdxl_styles/samples/mre_cinematic_dynamic.jpg b/sdxl_styles/samples/mre_cinematic_dynamic.jpg new file mode 100644 index 00000000..46b6b845 Binary files /dev/null and b/sdxl_styles/samples/mre_cinematic_dynamic.jpg differ diff --git a/sdxl_styles/samples/mre_comic.jpg b/sdxl_styles/samples/mre_comic.jpg new file mode 100644 index 00000000..710208a8 Binary files /dev/null and b/sdxl_styles/samples/mre_comic.jpg differ diff --git a/sdxl_styles/samples/mre_dark_cyberpunk.jpg b/sdxl_styles/samples/mre_dark_cyberpunk.jpg new file mode 100644 index 00000000..18614e53 Binary files /dev/null and b/sdxl_styles/samples/mre_dark_cyberpunk.jpg differ diff --git a/sdxl_styles/samples/mre_dark_dream.jpg b/sdxl_styles/samples/mre_dark_dream.jpg new file mode 100644 index 00000000..af61310b Binary files /dev/null and b/sdxl_styles/samples/mre_dark_dream.jpg differ diff --git a/sdxl_styles/samples/mre_dynamic_illustration.jpg b/sdxl_styles/samples/mre_dynamic_illustration.jpg new file mode 100644 index 00000000..66c78b3b Binary files /dev/null and b/sdxl_styles/samples/mre_dynamic_illustration.jpg differ diff --git a/sdxl_styles/samples/mre_elemental_art.jpg b/sdxl_styles/samples/mre_elemental_art.jpg new file mode 100644 index 00000000..b55f9515 Binary files /dev/null and b/sdxl_styles/samples/mre_elemental_art.jpg differ diff --git a/sdxl_styles/samples/mre_gloomy_art.jpg b/sdxl_styles/samples/mre_gloomy_art.jpg new file mode 100644 index 00000000..9dbe72a4 Binary files /dev/null and b/sdxl_styles/samples/mre_gloomy_art.jpg differ diff --git a/sdxl_styles/samples/mre_heroic_fantasy.jpg b/sdxl_styles/samples/mre_heroic_fantasy.jpg new file mode 100644 index 00000000..7eff049e Binary files /dev/null and b/sdxl_styles/samples/mre_heroic_fantasy.jpg differ diff --git a/sdxl_styles/samples/mre_lyrical_geometry.jpg b/sdxl_styles/samples/mre_lyrical_geometry.jpg new file mode 100644 index 00000000..fdd23018 Binary files /dev/null and b/sdxl_styles/samples/mre_lyrical_geometry.jpg differ diff --git a/sdxl_styles/samples/mre_manga.jpg b/sdxl_styles/samples/mre_manga.jpg new file mode 100644 index 00000000..891cadc0 Binary files /dev/null and b/sdxl_styles/samples/mre_manga.jpg differ diff --git a/sdxl_styles/samples/mre_space_art.jpg b/sdxl_styles/samples/mre_space_art.jpg new file mode 100644 index 00000000..f5cb31ab Binary files /dev/null and b/sdxl_styles/samples/mre_space_art.jpg differ diff --git a/sdxl_styles/samples/mre_spontaneous_picture.jpg b/sdxl_styles/samples/mre_spontaneous_picture.jpg new file mode 100644 index 00000000..74cbcd39 Binary files /dev/null and b/sdxl_styles/samples/mre_spontaneous_picture.jpg differ diff --git a/sdxl_styles/samples/mre_sumi_e_detailed.jpg b/sdxl_styles/samples/mre_sumi_e_detailed.jpg new file mode 100644 index 00000000..bea50fa2 Binary files /dev/null and b/sdxl_styles/samples/mre_sumi_e_detailed.jpg differ diff --git a/sdxl_styles/samples/mre_sumi_e_symbolic.jpg b/sdxl_styles/samples/mre_sumi_e_symbolic.jpg new file mode 100644 index 00000000..81e4aa3b Binary files /dev/null and b/sdxl_styles/samples/mre_sumi_e_symbolic.jpg differ diff --git a/sdxl_styles/samples/mre_surreal_painting.jpg b/sdxl_styles/samples/mre_surreal_painting.jpg new file mode 100644 index 00000000..82fa66db Binary files /dev/null and b/sdxl_styles/samples/mre_surreal_painting.jpg differ diff --git a/sdxl_styles/samples/mre_undead_art.jpg b/sdxl_styles/samples/mre_undead_art.jpg new file mode 100644 index 00000000..d306d2cb Binary files /dev/null and b/sdxl_styles/samples/mre_undead_art.jpg differ diff --git a/sdxl_styles/samples/mre_underground.jpg b/sdxl_styles/samples/mre_underground.jpg new file mode 100644 index 00000000..d01bc6cd Binary files /dev/null and b/sdxl_styles/samples/mre_underground.jpg differ diff --git a/sdxl_styles/samples/neo_baroque.jpg b/sdxl_styles/samples/neo_baroque.jpg new file mode 100644 index 00000000..05ee36da Binary files /dev/null and b/sdxl_styles/samples/neo_baroque.jpg differ diff --git a/sdxl_styles/samples/neo_byzantine.jpg b/sdxl_styles/samples/neo_byzantine.jpg new file mode 100644 index 00000000..f0d50aac Binary files /dev/null and b/sdxl_styles/samples/neo_byzantine.jpg differ diff --git a/sdxl_styles/samples/neo_futurism.jpg b/sdxl_styles/samples/neo_futurism.jpg new file mode 100644 index 00000000..44cfa98e Binary files /dev/null and b/sdxl_styles/samples/neo_futurism.jpg differ diff --git a/sdxl_styles/samples/neo_impressionism.jpg b/sdxl_styles/samples/neo_impressionism.jpg new file mode 100644 index 00000000..d11554df Binary files /dev/null and b/sdxl_styles/samples/neo_impressionism.jpg differ diff --git a/sdxl_styles/samples/neo_rococo.jpg b/sdxl_styles/samples/neo_rococo.jpg new file mode 100644 index 00000000..0de1eaee Binary files /dev/null and b/sdxl_styles/samples/neo_rococo.jpg differ diff --git a/sdxl_styles/samples/neoclassicism.jpg b/sdxl_styles/samples/neoclassicism.jpg new file mode 100644 index 00000000..cffc679b Binary files /dev/null and b/sdxl_styles/samples/neoclassicism.jpg differ diff --git a/sdxl_styles/samples/op_art.jpg b/sdxl_styles/samples/op_art.jpg new file mode 100644 index 00000000..ee70c23b Binary files /dev/null and b/sdxl_styles/samples/op_art.jpg differ diff --git a/sdxl_styles/samples/ornate_and_intricate.jpg b/sdxl_styles/samples/ornate_and_intricate.jpg new file mode 100644 index 00000000..765fec01 Binary files /dev/null and b/sdxl_styles/samples/ornate_and_intricate.jpg differ diff --git a/sdxl_styles/samples/papercraft_collage.jpg b/sdxl_styles/samples/papercraft_collage.jpg new file mode 100644 index 00000000..dba524c9 Binary files /dev/null and b/sdxl_styles/samples/papercraft_collage.jpg differ diff --git a/sdxl_styles/samples/papercraft_flat_papercut.jpg b/sdxl_styles/samples/papercraft_flat_papercut.jpg new file mode 100644 index 00000000..3608636c Binary files /dev/null and b/sdxl_styles/samples/papercraft_flat_papercut.jpg differ diff --git a/sdxl_styles/samples/papercraft_kirigami.jpg b/sdxl_styles/samples/papercraft_kirigami.jpg new file mode 100644 index 00000000..f8a8c6f1 Binary files /dev/null and b/sdxl_styles/samples/papercraft_kirigami.jpg differ diff --git a/sdxl_styles/samples/papercraft_paper_mache.jpg b/sdxl_styles/samples/papercraft_paper_mache.jpg new file mode 100644 index 00000000..90122cac Binary files /dev/null and b/sdxl_styles/samples/papercraft_paper_mache.jpg differ diff --git a/sdxl_styles/samples/papercraft_paper_quilling.jpg b/sdxl_styles/samples/papercraft_paper_quilling.jpg new file mode 100644 index 00000000..0b017ff3 Binary files /dev/null and b/sdxl_styles/samples/papercraft_paper_quilling.jpg differ diff --git a/sdxl_styles/samples/papercraft_papercut_collage.jpg b/sdxl_styles/samples/papercraft_papercut_collage.jpg new file mode 100644 index 00000000..0d0d60db Binary files /dev/null and b/sdxl_styles/samples/papercraft_papercut_collage.jpg differ diff --git a/sdxl_styles/samples/papercraft_papercut_shadow_box.jpg b/sdxl_styles/samples/papercraft_papercut_shadow_box.jpg new file mode 100644 index 00000000..da088610 Binary files /dev/null and b/sdxl_styles/samples/papercraft_papercut_shadow_box.jpg differ diff --git a/sdxl_styles/samples/papercraft_stacked_papercut.jpg b/sdxl_styles/samples/papercraft_stacked_papercut.jpg new file mode 100644 index 00000000..503d78bf Binary files /dev/null and b/sdxl_styles/samples/papercraft_stacked_papercut.jpg differ diff --git a/sdxl_styles/samples/papercraft_thick_layered_papercut.jpg b/sdxl_styles/samples/papercraft_thick_layered_papercut.jpg new file mode 100644 index 00000000..cd649505 Binary files /dev/null and b/sdxl_styles/samples/papercraft_thick_layered_papercut.jpg differ diff --git a/sdxl_styles/samples/pebble_art.jpg b/sdxl_styles/samples/pebble_art.jpg new file mode 100644 index 00000000..12e8c184 Binary files /dev/null and b/sdxl_styles/samples/pebble_art.jpg differ diff --git a/sdxl_styles/samples/pencil_sketch_drawing.jpg b/sdxl_styles/samples/pencil_sketch_drawing.jpg new file mode 100644 index 00000000..dc753e45 Binary files /dev/null and b/sdxl_styles/samples/pencil_sketch_drawing.jpg differ diff --git a/sdxl_styles/samples/photo_alien.jpg b/sdxl_styles/samples/photo_alien.jpg new file mode 100644 index 00000000..5fea0abb Binary files /dev/null and b/sdxl_styles/samples/photo_alien.jpg differ diff --git a/sdxl_styles/samples/photo_film_noir.jpg b/sdxl_styles/samples/photo_film_noir.jpg new file mode 100644 index 00000000..961009af Binary files /dev/null and b/sdxl_styles/samples/photo_film_noir.jpg differ diff --git a/sdxl_styles/samples/photo_glamour.jpg b/sdxl_styles/samples/photo_glamour.jpg new file mode 100644 index 00000000..9e136066 Binary files /dev/null and b/sdxl_styles/samples/photo_glamour.jpg differ diff --git a/sdxl_styles/samples/photo_hdr.jpg b/sdxl_styles/samples/photo_hdr.jpg new file mode 100644 index 00000000..a36bb175 Binary files /dev/null and b/sdxl_styles/samples/photo_hdr.jpg differ diff --git a/sdxl_styles/samples/photo_iphone_photographic.jpg b/sdxl_styles/samples/photo_iphone_photographic.jpg new file mode 100644 index 00000000..5e1830d4 Binary files /dev/null and b/sdxl_styles/samples/photo_iphone_photographic.jpg differ diff --git a/sdxl_styles/samples/photo_long_exposure.jpg b/sdxl_styles/samples/photo_long_exposure.jpg new file mode 100644 index 00000000..7a747fd1 Binary files /dev/null and b/sdxl_styles/samples/photo_long_exposure.jpg differ diff --git a/sdxl_styles/samples/photo_neon_noir.jpg b/sdxl_styles/samples/photo_neon_noir.jpg new file mode 100644 index 00000000..6e6d093b Binary files /dev/null and b/sdxl_styles/samples/photo_neon_noir.jpg differ diff --git a/sdxl_styles/samples/photo_silhouette.jpg b/sdxl_styles/samples/photo_silhouette.jpg new file mode 100644 index 00000000..cf0a13c1 Binary files /dev/null and b/sdxl_styles/samples/photo_silhouette.jpg differ diff --git a/sdxl_styles/samples/photo_tilt_shift.jpg b/sdxl_styles/samples/photo_tilt_shift.jpg new file mode 100644 index 00000000..85fc2ba2 Binary files /dev/null and b/sdxl_styles/samples/photo_tilt_shift.jpg differ diff --git a/sdxl_styles/samples/pop_art_2.jpg b/sdxl_styles/samples/pop_art_2.jpg new file mode 100644 index 00000000..77c9a853 Binary files /dev/null and b/sdxl_styles/samples/pop_art_2.jpg differ diff --git a/sdxl_styles/samples/rococo.jpg b/sdxl_styles/samples/rococo.jpg new file mode 100644 index 00000000..63a97bd3 Binary files /dev/null and b/sdxl_styles/samples/rococo.jpg differ diff --git a/sdxl_styles/samples/sai_3d_model.jpg b/sdxl_styles/samples/sai_3d_model.jpg new file mode 100644 index 00000000..273ab40c Binary files /dev/null and b/sdxl_styles/samples/sai_3d_model.jpg differ diff --git a/sdxl_styles/samples/sai_analog_film.jpg b/sdxl_styles/samples/sai_analog_film.jpg new file mode 100644 index 00000000..7dea7a69 Binary files /dev/null and b/sdxl_styles/samples/sai_analog_film.jpg differ diff --git a/sdxl_styles/samples/sai_anime.jpg b/sdxl_styles/samples/sai_anime.jpg new file mode 100644 index 00000000..a26f57e0 Binary files /dev/null and b/sdxl_styles/samples/sai_anime.jpg differ diff --git a/sdxl_styles/samples/sai_cinematic.jpg b/sdxl_styles/samples/sai_cinematic.jpg new file mode 100644 index 00000000..e6546d5e Binary files /dev/null and b/sdxl_styles/samples/sai_cinematic.jpg differ diff --git a/sdxl_styles/samples/sai_comic_book.jpg b/sdxl_styles/samples/sai_comic_book.jpg new file mode 100644 index 00000000..2b82ed27 Binary files /dev/null and b/sdxl_styles/samples/sai_comic_book.jpg differ diff --git a/sdxl_styles/samples/sai_craft_clay.jpg b/sdxl_styles/samples/sai_craft_clay.jpg new file mode 100644 index 00000000..ad75d09f Binary files /dev/null and b/sdxl_styles/samples/sai_craft_clay.jpg differ diff --git a/sdxl_styles/samples/sai_digital_art.jpg b/sdxl_styles/samples/sai_digital_art.jpg new file mode 100644 index 00000000..55af0120 Binary files /dev/null and b/sdxl_styles/samples/sai_digital_art.jpg differ diff --git a/sdxl_styles/samples/sai_enhance.jpg b/sdxl_styles/samples/sai_enhance.jpg new file mode 100644 index 00000000..f44c9000 Binary files /dev/null and b/sdxl_styles/samples/sai_enhance.jpg differ diff --git a/sdxl_styles/samples/sai_fantasy_art.jpg b/sdxl_styles/samples/sai_fantasy_art.jpg new file mode 100644 index 00000000..1792de0e Binary files /dev/null and b/sdxl_styles/samples/sai_fantasy_art.jpg differ diff --git a/sdxl_styles/samples/sai_isometric.jpg b/sdxl_styles/samples/sai_isometric.jpg new file mode 100644 index 00000000..34a75225 Binary files /dev/null and b/sdxl_styles/samples/sai_isometric.jpg differ diff --git a/sdxl_styles/samples/sai_line_art.jpg b/sdxl_styles/samples/sai_line_art.jpg new file mode 100644 index 00000000..f137c033 Binary files /dev/null and b/sdxl_styles/samples/sai_line_art.jpg differ diff --git a/sdxl_styles/samples/sai_lowpoly.jpg b/sdxl_styles/samples/sai_lowpoly.jpg new file mode 100644 index 00000000..058dfe94 Binary files /dev/null and b/sdxl_styles/samples/sai_lowpoly.jpg differ diff --git a/sdxl_styles/samples/sai_neonpunk.jpg b/sdxl_styles/samples/sai_neonpunk.jpg new file mode 100644 index 00000000..4c32008f Binary files /dev/null and b/sdxl_styles/samples/sai_neonpunk.jpg differ diff --git a/sdxl_styles/samples/sai_origami.jpg b/sdxl_styles/samples/sai_origami.jpg new file mode 100644 index 00000000..c5c5ffd2 Binary files /dev/null and b/sdxl_styles/samples/sai_origami.jpg differ diff --git a/sdxl_styles/samples/sai_photographic.jpg b/sdxl_styles/samples/sai_photographic.jpg new file mode 100644 index 00000000..5086895d Binary files /dev/null and b/sdxl_styles/samples/sai_photographic.jpg differ diff --git a/sdxl_styles/samples/sai_pixel_art.jpg b/sdxl_styles/samples/sai_pixel_art.jpg new file mode 100644 index 00000000..dbb6f9fc Binary files /dev/null and b/sdxl_styles/samples/sai_pixel_art.jpg differ diff --git a/sdxl_styles/samples/sai_texture.jpg b/sdxl_styles/samples/sai_texture.jpg new file mode 100644 index 00000000..cd34f537 Binary files /dev/null and b/sdxl_styles/samples/sai_texture.jpg differ diff --git a/sdxl_styles/samples/silhouette_art.jpg b/sdxl_styles/samples/silhouette_art.jpg new file mode 100644 index 00000000..e28c6616 Binary files /dev/null and b/sdxl_styles/samples/silhouette_art.jpg differ diff --git a/sdxl_styles/samples/simple_vector_art.jpg b/sdxl_styles/samples/simple_vector_art.jpg new file mode 100644 index 00000000..cecdf09c Binary files /dev/null and b/sdxl_styles/samples/simple_vector_art.jpg differ diff --git a/sdxl_styles/samples/sketchup.jpg b/sdxl_styles/samples/sketchup.jpg new file mode 100644 index 00000000..c077400e Binary files /dev/null and b/sdxl_styles/samples/sketchup.jpg differ diff --git a/sdxl_styles/samples/steampunk_2.jpg b/sdxl_styles/samples/steampunk_2.jpg new file mode 100644 index 00000000..b636c620 Binary files /dev/null and b/sdxl_styles/samples/steampunk_2.jpg differ diff --git a/sdxl_styles/samples/sticker_designs.jpg b/sdxl_styles/samples/sticker_designs.jpg new file mode 100644 index 00000000..1e03d7ae Binary files /dev/null and b/sdxl_styles/samples/sticker_designs.jpg differ diff --git a/sdxl_styles/samples/suprematism.jpg b/sdxl_styles/samples/suprematism.jpg new file mode 100644 index 00000000..b8ddc3ad Binary files /dev/null and b/sdxl_styles/samples/suprematism.jpg differ diff --git a/sdxl_styles/samples/surrealism.jpg b/sdxl_styles/samples/surrealism.jpg new file mode 100644 index 00000000..12a7cac0 Binary files /dev/null and b/sdxl_styles/samples/surrealism.jpg differ diff --git a/sdxl_styles/samples/terragen.jpg b/sdxl_styles/samples/terragen.jpg new file mode 100644 index 00000000..f83417f6 Binary files /dev/null and b/sdxl_styles/samples/terragen.jpg differ diff --git a/sdxl_styles/samples/tranquil_relaxing_atmosphere.jpg b/sdxl_styles/samples/tranquil_relaxing_atmosphere.jpg new file mode 100644 index 00000000..52ae6f5c Binary files /dev/null and b/sdxl_styles/samples/tranquil_relaxing_atmosphere.jpg differ diff --git a/sdxl_styles/samples/vibrant_rim_light.jpg b/sdxl_styles/samples/vibrant_rim_light.jpg new file mode 100644 index 00000000..47b47316 Binary files /dev/null and b/sdxl_styles/samples/vibrant_rim_light.jpg differ diff --git a/sdxl_styles/samples/volumetric_lighting.jpg b/sdxl_styles/samples/volumetric_lighting.jpg new file mode 100644 index 00000000..b6fb6958 Binary files /dev/null and b/sdxl_styles/samples/volumetric_lighting.jpg differ diff --git a/sdxl_styles/samples/watercolor_2.jpg b/sdxl_styles/samples/watercolor_2.jpg new file mode 100644 index 00000000..1afb96e2 Binary files /dev/null and b/sdxl_styles/samples/watercolor_2.jpg differ diff --git a/sdxl_styles/samples/whimsical_and_playful.jpg b/sdxl_styles/samples/whimsical_and_playful.jpg new file mode 100644 index 00000000..d5afcb47 Binary files /dev/null and b/sdxl_styles/samples/whimsical_and_playful.jpg differ diff --git a/update_log.md b/update_log.md index e9a829be..1e8914d1 100644 --- a/update_log.md +++ b/update_log.md @@ -1,5 +1,9 @@ **(2023 Dec 21) Hi all, the feature updating of Fooocus will be paused for about two or three weeks because we have some other workloads. See you soon and we will come back in mid or late Jan. However, you may still see updates if other collaborators are fixing bugs or solving problems.** +# 2.1.861 (requested update) + +* Show image preview in Style when mouse hover. + # 2.1.860 (requested update) * Allow upload inpaint mask in developer mode. diff --git a/webui.py b/webui.py index 86940981..9ab497f1 100644 --- a/webui.py +++ b/webui.py @@ -11,7 +11,6 @@ import modules.async_worker as worker import modules.constants as constants import modules.flags as flags import modules.gradio_hijack as grh -import modules.advanced_parameters as advanced_parameters import modules.style_sorter as style_sorter import modules.meta_parser import args_manager @@ -24,9 +23,9 @@ from modules.auth import auth_enabled, check_auth def get_task(*args): args = list(args) - currentTask = args.pop(0) - currentTask = worker.AsyncTask(args=args) - return currentTask + args.pop(0) + + return worker.AsyncTask(args=args) def generate_clicked(task): import ldm_patched.modules.model_management as model_management @@ -260,7 +259,7 @@ with shared.gradio_root: queue=False, show_progress=False) if not args_manager.args.disable_image_log: - gr.HTML(f'\U0001F4DA History Log') + gr.HTML(f'\U0001F4DA History Log') with gr.Tab(label='Style'): style_sorter.try_load_sorted_styles( @@ -433,7 +432,7 @@ with shared.gradio_root: '(default is 0, always process before any mask invert)') inpaint_mask_upload_checkbox = gr.Checkbox(label='Enable Mask Upload', value=False) invert_mask_checkbox = gr.Checkbox(label='Invert Mask', value=False) - + inpaint_ctrls = [debugging_inpaint_preprocessor, inpaint_disable_initial_latent, inpaint_engine, inpaint_strength, inpaint_respective_field, inpaint_mask_upload_checkbox, invert_mask_checkbox, inpaint_erode_or_dilate] @@ -450,15 +449,6 @@ with shared.gradio_root: freeu_s2 = gr.Slider(label='S2', minimum=0, maximum=4, step=0.01, value=0.95) freeu_ctrls = [freeu_enabled, freeu_b1, freeu_b2, freeu_s1, freeu_s2] - adps = [disable_preview, adm_scaler_positive, adm_scaler_negative, adm_scaler_end, adaptive_cfg, sampler_name, - scheduler_name, generate_image_grid, overwrite_step, overwrite_switch, overwrite_width, overwrite_height, - overwrite_vary_strength, overwrite_upscale_strength, - mixing_image_prompt_and_vary_upscale, mixing_image_prompt_and_inpaint, - debugging_cn_preprocessor, skipping_cn_preprocessor, controlnet_softness, - canny_low_threshold, canny_high_threshold, refiner_swap_method] - adps += freeu_ctrls - adps += inpaint_ctrls - def dev_mode_checked(r): return gr.update(visible=r) @@ -523,8 +513,9 @@ with shared.gradio_root: inpaint_strength, inpaint_respective_field ], show_progress=False, queue=False) - ctrls = [ - currentTask, prompt, negative_prompt, style_selections, + ctrls = [currentTask, generate_image_grid] + ctrls += [ + prompt, negative_prompt, style_selections, performance_selection, aspect_ratios_selection, image_number, image_seed, sharpness, guidance_scale ] @@ -532,6 +523,14 @@ with shared.gradio_root: ctrls += [input_image_checkbox, current_tab] ctrls += [uov_method, uov_input_image] ctrls += [outpaint_selections, inpaint_input_image, inpaint_additional_prompt, inpaint_mask_image] + ctrls += [disable_preview, adm_scaler_positive, adm_scaler_negative, adm_scaler_end, adaptive_cfg] + ctrls += [sampler_name, scheduler_name] + ctrls += [overwrite_step, overwrite_switch, overwrite_width, overwrite_height, overwrite_vary_strength] + ctrls += [overwrite_upscale_strength, mixing_image_prompt_and_vary_upscale, mixing_image_prompt_and_inpaint] + ctrls += [debugging_cn_preprocessor, skipping_cn_preprocessor, canny_low_threshold, canny_high_threshold] + ctrls += [refiner_swap_method, controlnet_softness] + ctrls += freeu_ctrls + ctrls += inpaint_ctrls ctrls += ip_ctrls state_is_generating = gr.State(False) @@ -586,7 +585,6 @@ with shared.gradio_root: generate_button.click(lambda: (gr.update(visible=True, interactive=True), gr.update(visible=True, interactive=True), gr.update(visible=False, interactive=False), [], True), outputs=[stop_button, skip_button, generate_button, gallery, state_is_generating]) \ .then(fn=refresh_seed, inputs=[seed_random, image_seed], outputs=image_seed) \ - .then(advanced_parameters.set_all_advanced_parameters, inputs=adps) \ .then(fn=get_task, inputs=ctrls, outputs=currentTask) \ .then(fn=generate_clicked, inputs=currentTask, outputs=[progress_html, progress_window, progress_gallery, gallery]) \ .then(lambda: (gr.update(visible=True, interactive=True), gr.update(visible=False, interactive=False), gr.update(visible=False, interactive=False), False),