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),