Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -61,6 +61,9 @@ load_diffusers_format_model = [
|
|
61 |
'GraydientPlatformAPI/realcartoon-pony-diffusion',
|
62 |
'John6666/nova-anime-xl-pony-v5-sdxl',
|
63 |
'John6666/autismmix-sdxl-autismmix-pony-sdxl',
|
|
|
|
|
|
|
64 |
'yodayo-ai/kivotos-xl-2.0',
|
65 |
'yodayo-ai/holodayo-xl-2.1',
|
66 |
'yodayo-ai/clandestine-xl-1.0',
|
@@ -104,14 +107,14 @@ PREPROCESSOR_CONTROLNET = {
|
|
104 |
],
|
105 |
"scribble": [
|
106 |
"HED",
|
107 |
-
"
|
108 |
"None",
|
109 |
],
|
110 |
"softedge": [
|
111 |
-
"
|
112 |
"HED",
|
113 |
"HED safe",
|
114 |
-
"
|
115 |
"None",
|
116 |
],
|
117 |
"segmentation": [
|
@@ -464,6 +467,7 @@ class GuiSD:
|
|
464 |
retain_task_model_in_cache=False,
|
465 |
device="cpu",
|
466 |
)
|
|
|
467 |
|
468 |
def load_new_model(self, model_name, vae_model, task, progress=gr.Progress(track_tqdm=True)):
|
469 |
|
@@ -777,7 +781,7 @@ class GuiSD:
|
|
777 |
if msg_lora:
|
778 |
info_state += msg_lora
|
779 |
|
780 |
-
info_state = info_state + "<br>" + "GENERATION DATA:<br>" +
|
781 |
|
782 |
download_links = "<br>".join(
|
783 |
[
|
@@ -899,10 +903,10 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
899 |
prompt_gui = gr.Textbox(lines=5, placeholder="Enter prompt", label="Prompt")
|
900 |
neg_prompt_gui = gr.Textbox(lines=3, placeholder="Enter Neg prompt", label="Negative prompt")
|
901 |
with gr.Row(equal_height=False):
|
902 |
-
set_params_gui = gr.Button(value="↙️")
|
903 |
-
clear_prompt_gui = gr.Button(value="🗑️")
|
904 |
-
set_random_seed = gr.Button(value="🎲")
|
905 |
-
generate_button = gr.Button(value="GENERATE", variant="primary")
|
906 |
|
907 |
model_name_gui.change(
|
908 |
update_task_options,
|
@@ -935,7 +939,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
935 |
|
936 |
with gr.Column(scale=1):
|
937 |
steps_gui = gr.Slider(minimum=1, maximum=100, step=1, value=30, label="Steps")
|
938 |
-
cfg_gui = gr.Slider(minimum=0, maximum=30, step=0.5, value=7
|
939 |
sampler_gui = gr.Dropdown(label="Sampler", choices=scheduler_names, value="Euler a")
|
940 |
img_width_gui = gr.Slider(minimum=64, maximum=4096, step=8, value=1024, label="Img Width")
|
941 |
img_height_gui = gr.Slider(minimum=64, maximum=4096, step=8, value=1024, label="Img Height")
|
@@ -943,11 +947,11 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
943 |
pag_scale_gui = gr.Slider(minimum=0.0, maximum=10.0, step=0.1, value=0.0, label="PAG Scale")
|
944 |
with gr.Row():
|
945 |
clip_skip_gui = gr.Checkbox(value=True, label="Layer 2 Clip Skip")
|
946 |
-
free_u_gui = gr.Checkbox(value=
|
947 |
|
948 |
with gr.Row(equal_height=False):
|
949 |
|
950 |
-
def run_set_params_gui(base_prompt):
|
951 |
valid_receptors = { # default values
|
952 |
"prompt": gr.update(value=base_prompt),
|
953 |
"neg_prompt": gr.update(value=""),
|
@@ -956,12 +960,14 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
956 |
"height": gr.update(value=1024),
|
957 |
"Seed": gr.update(value=-1),
|
958 |
"Sampler": gr.update(value="Euler a"),
|
959 |
-
"scale": gr.update(value=7.
|
960 |
"skip": gr.update(value=True),
|
|
|
961 |
}
|
962 |
valid_keys = list(valid_receptors.keys())
|
963 |
|
964 |
parameters = extract_parameters(base_prompt)
|
|
|
965 |
for key, val in parameters.items():
|
966 |
# print(val)
|
967 |
if key in valid_keys:
|
@@ -969,6 +975,8 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
969 |
if val not in scheduler_names:
|
970 |
continue
|
971 |
elif key == "skip":
|
|
|
|
|
972 |
if int(val) >= 2:
|
973 |
val = True
|
974 |
if key == "prompt":
|
@@ -981,6 +989,12 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
981 |
val = int(val)
|
982 |
if key == "scale":
|
983 |
val = float(val)
|
|
|
|
|
|
|
|
|
|
|
|
|
984 |
if key == "Seed":
|
985 |
continue
|
986 |
valid_receptors[key] = gr.update(value=val)
|
@@ -989,7 +1003,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
989 |
return [value for value in valid_receptors.values()]
|
990 |
|
991 |
set_params_gui.click(
|
992 |
-
run_set_params_gui, [prompt_gui], [
|
993 |
prompt_gui,
|
994 |
neg_prompt_gui,
|
995 |
steps_gui,
|
@@ -999,6 +1013,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
999 |
sampler_gui,
|
1000 |
cfg_gui,
|
1001 |
clip_skip_gui,
|
|
|
1002 |
],
|
1003 |
)
|
1004 |
|
@@ -1014,7 +1029,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
1014 |
run_set_random_seed, [], seed_gui
|
1015 |
)
|
1016 |
|
1017 |
-
num_images_gui = gr.Slider(minimum=1, maximum=
|
1018 |
prompt_s_options = [
|
1019 |
("Compel format: (word)weight", "Compel"),
|
1020 |
("Classic format: (word:weight)", "Classic"),
|
@@ -1024,7 +1039,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
1024 |
("None", "None"),
|
1025 |
]
|
1026 |
prompt_syntax_gui = gr.Dropdown(label="Prompt Syntax", choices=prompt_s_options, value=prompt_s_options[1][1])
|
1027 |
-
vae_model_gui = gr.Dropdown(label="VAE Model", choices=vae_model_list)
|
1028 |
|
1029 |
with gr.Accordion("Hires fix", open=False, visible=True):
|
1030 |
|
@@ -1116,7 +1131,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
1116 |
control_net_start_threshold_gui = gr.Slider(minimum=0, maximum=1, step=0.01, value=0, label="ControlNet Start Threshold (%)")
|
1117 |
control_net_stop_threshold_gui = gr.Slider(minimum=0, maximum=1, step=0.01, value=1, label="ControlNet Stop Threshold (%)")
|
1118 |
|
1119 |
-
with gr.Accordion("T2I adapter", open=False, visible=
|
1120 |
t2i_adapter_preprocessor_gui = gr.Checkbox(value=True, label="T2i Adapter Preprocessor")
|
1121 |
adapter_conditioning_scale_gui = gr.Slider(minimum=0, maximum=5., step=0.1, value=1, label="Adapter Conditioning Scale")
|
1122 |
adapter_conditioning_factor_gui = gr.Slider(minimum=0, maximum=1., step=0.01, value=0.55, label="Adapter Conditioning Factor (%)")
|
@@ -1403,6 +1418,12 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
|
|
1403 |
outputs=[result_images, actual_task_info],
|
1404 |
cache_examples=False,
|
1405 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
1406 |
|
1407 |
with gr.Tab("Inpaint mask maker", render=True):
|
1408 |
|
@@ -1597,4 +1618,4 @@ app.launch(
|
|
1597 |
show_error=True,
|
1598 |
debug=True,
|
1599 |
allowed_paths=["./images/"],
|
1600 |
-
)
|
|
|
61 |
'GraydientPlatformAPI/realcartoon-pony-diffusion',
|
62 |
'John6666/nova-anime-xl-pony-v5-sdxl',
|
63 |
'John6666/autismmix-sdxl-autismmix-pony-sdxl',
|
64 |
+
'John6666/aimz-dream-real-pony-mix-v3-sdxl',
|
65 |
+
'John6666/duchaiten-pony-real-v11fix-sdxl',
|
66 |
+
'John6666/duchaiten-pony-real-v20-sdxl',
|
67 |
'yodayo-ai/kivotos-xl-2.0',
|
68 |
'yodayo-ai/holodayo-xl-2.1',
|
69 |
'yodayo-ai/clandestine-xl-1.0',
|
|
|
107 |
],
|
108 |
"scribble": [
|
109 |
"HED",
|
110 |
+
"PidiNet",
|
111 |
"None",
|
112 |
],
|
113 |
"softedge": [
|
114 |
+
"PidiNet",
|
115 |
"HED",
|
116 |
"HED safe",
|
117 |
+
"PidiNet safe",
|
118 |
"None",
|
119 |
],
|
120 |
"segmentation": [
|
|
|
467 |
retain_task_model_in_cache=False,
|
468 |
device="cpu",
|
469 |
)
|
470 |
+
self.model.load_beta_styles()
|
471 |
|
472 |
def load_new_model(self, model_name, vae_model, task, progress=gr.Progress(track_tqdm=True)):
|
473 |
|
|
|
781 |
if msg_lora:
|
782 |
info_state += msg_lora
|
783 |
|
784 |
+
info_state = info_state + "<br>" + "GENERATION DATA:<br>" + metadata[0].replace("\n", "<br>") + "<br>-------<br>"
|
785 |
|
786 |
download_links = "<br>".join(
|
787 |
[
|
|
|
903 |
prompt_gui = gr.Textbox(lines=5, placeholder="Enter prompt", label="Prompt")
|
904 |
neg_prompt_gui = gr.Textbox(lines=3, placeholder="Enter Neg prompt", label="Negative prompt")
|
905 |
with gr.Row(equal_height=False):
|
906 |
+
set_params_gui = gr.Button(value="↙️", variant="secondary", size="sm")
|
907 |
+
clear_prompt_gui = gr.Button(value="🗑️", variant="secondary", size="sm")
|
908 |
+
set_random_seed = gr.Button(value="🎲", variant="secondary", size="sm")
|
909 |
+
generate_button = gr.Button(value="GENERATE IMAGE", variant="primary")
|
910 |
|
911 |
model_name_gui.change(
|
912 |
update_task_options,
|
|
|
939 |
|
940 |
with gr.Column(scale=1):
|
941 |
steps_gui = gr.Slider(minimum=1, maximum=100, step=1, value=30, label="Steps")
|
942 |
+
cfg_gui = gr.Slider(minimum=0, maximum=30, step=0.5, value=7., label="CFG")
|
943 |
sampler_gui = gr.Dropdown(label="Sampler", choices=scheduler_names, value="Euler a")
|
944 |
img_width_gui = gr.Slider(minimum=64, maximum=4096, step=8, value=1024, label="Img Width")
|
945 |
img_height_gui = gr.Slider(minimum=64, maximum=4096, step=8, value=1024, label="Img Height")
|
|
|
947 |
pag_scale_gui = gr.Slider(minimum=0.0, maximum=10.0, step=0.1, value=0.0, label="PAG Scale")
|
948 |
with gr.Row():
|
949 |
clip_skip_gui = gr.Checkbox(value=True, label="Layer 2 Clip Skip")
|
950 |
+
free_u_gui = gr.Checkbox(value=False, label="FreeU")
|
951 |
|
952 |
with gr.Row(equal_height=False):
|
953 |
|
954 |
+
def run_set_params_gui(base_prompt, name_model):
|
955 |
valid_receptors = { # default values
|
956 |
"prompt": gr.update(value=base_prompt),
|
957 |
"neg_prompt": gr.update(value=""),
|
|
|
960 |
"height": gr.update(value=1024),
|
961 |
"Seed": gr.update(value=-1),
|
962 |
"Sampler": gr.update(value="Euler a"),
|
963 |
+
"scale": gr.update(value=7.), # cfg
|
964 |
"skip": gr.update(value=True),
|
965 |
+
"Model": gr.update(value=name_model),
|
966 |
}
|
967 |
valid_keys = list(valid_receptors.keys())
|
968 |
|
969 |
parameters = extract_parameters(base_prompt)
|
970 |
+
|
971 |
for key, val in parameters.items():
|
972 |
# print(val)
|
973 |
if key in valid_keys:
|
|
|
975 |
if val not in scheduler_names:
|
976 |
continue
|
977 |
elif key == "skip":
|
978 |
+
if "," in str(val):
|
979 |
+
val = val.replace(",", "")
|
980 |
if int(val) >= 2:
|
981 |
val = True
|
982 |
if key == "prompt":
|
|
|
989 |
val = int(val)
|
990 |
if key == "scale":
|
991 |
val = float(val)
|
992 |
+
if key == "Model":
|
993 |
+
filtered_models = [m for m in model_list if val in m]
|
994 |
+
if filtered_models:
|
995 |
+
val = filtered_models[0]
|
996 |
+
else:
|
997 |
+
val = name_model
|
998 |
if key == "Seed":
|
999 |
continue
|
1000 |
valid_receptors[key] = gr.update(value=val)
|
|
|
1003 |
return [value for value in valid_receptors.values()]
|
1004 |
|
1005 |
set_params_gui.click(
|
1006 |
+
run_set_params_gui, [prompt_gui, model_name_gui], [
|
1007 |
prompt_gui,
|
1008 |
neg_prompt_gui,
|
1009 |
steps_gui,
|
|
|
1013 |
sampler_gui,
|
1014 |
cfg_gui,
|
1015 |
clip_skip_gui,
|
1016 |
+
model_name_gui,
|
1017 |
],
|
1018 |
)
|
1019 |
|
|
|
1029 |
run_set_random_seed, [], seed_gui
|
1030 |
)
|
1031 |
|
1032 |
+
num_images_gui = gr.Slider(minimum=1, maximum=5, step=1, value=1, label="Images")
|
1033 |
prompt_s_options = [
|
1034 |
("Compel format: (word)weight", "Compel"),
|
1035 |
("Classic format: (word:weight)", "Classic"),
|
|
|
1039 |
("None", "None"),
|
1040 |
]
|
1041 |
prompt_syntax_gui = gr.Dropdown(label="Prompt Syntax", choices=prompt_s_options, value=prompt_s_options[1][1])
|
1042 |
+
vae_model_gui = gr.Dropdown(label="VAE Model", choices=vae_model_list, value=vae_model_list[0])
|
1043 |
|
1044 |
with gr.Accordion("Hires fix", open=False, visible=True):
|
1045 |
|
|
|
1131 |
control_net_start_threshold_gui = gr.Slider(minimum=0, maximum=1, step=0.01, value=0, label="ControlNet Start Threshold (%)")
|
1132 |
control_net_stop_threshold_gui = gr.Slider(minimum=0, maximum=1, step=0.01, value=1, label="ControlNet Stop Threshold (%)")
|
1133 |
|
1134 |
+
with gr.Accordion("T2I adapter", open=False, visible=False):
|
1135 |
t2i_adapter_preprocessor_gui = gr.Checkbox(value=True, label="T2i Adapter Preprocessor")
|
1136 |
adapter_conditioning_scale_gui = gr.Slider(minimum=0, maximum=5., step=0.1, value=1, label="Adapter Conditioning Scale")
|
1137 |
adapter_conditioning_factor_gui = gr.Slider(minimum=0, maximum=1., step=0.01, value=0.55, label="Adapter Conditioning Factor (%)")
|
|
|
1418 |
outputs=[result_images, actual_task_info],
|
1419 |
cache_examples=False,
|
1420 |
)
|
1421 |
+
gr.Markdown(
|
1422 |
+
"""### Resources
|
1423 |
+
- John6666's space has some great features you might find helpful [link](https://huggingface.co/spaces/John6666/DiffuseCraftMod).
|
1424 |
+
- You can also try the image generator in Colab’s free tier, which provides free GPU [link](https://github.com/R3gm/SD_diffusers_interactive).
|
1425 |
+
"""
|
1426 |
+
)
|
1427 |
|
1428 |
with gr.Tab("Inpaint mask maker", render=True):
|
1429 |
|
|
|
1618 |
show_error=True,
|
1619 |
debug=True,
|
1620 |
allowed_paths=["./images/"],
|
1621 |
+
)
|