r3gm commited on
Commit
897a02d
1 Parent(s): 58ab105

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +136 -57
app.py CHANGED
@@ -1,6 +1,3 @@
1
- #######################
2
- # UTILS
3
- #######################
4
  import spaces
5
  import os
6
  from stablepy import Model_Diffusers
@@ -25,6 +22,7 @@ from stablepy import (
25
  SD15_TASKS,
26
  SDXL_TASKS,
27
  )
 
28
 
29
  preprocessor_controlnet = {
30
  "openpose": [
@@ -59,7 +57,7 @@ preprocessor_controlnet = {
59
  "lineart": [
60
  "Lineart",
61
  "Lineart coarse",
62
- "LineartAnime",
63
  "None",
64
  "None (anime)",
65
  ],
@@ -96,7 +94,7 @@ task_stablepy = {
96
  'depth ControlNet': 'depth',
97
  'normalbae ControlNet': 'normalbae',
98
  'lineart ControlNet': 'lineart',
99
- 'lineart_anime ControlNet': 'lineart_anime',
100
  'shuffle ControlNet': 'shuffle',
101
  'ip2p ControlNet': 'ip2p',
102
  'optical pattern ControlNet': 'pattern',
@@ -108,7 +106,7 @@ task_model_list = list(task_stablepy.keys())
108
 
109
  def download_things(directory, url, hf_token="", civitai_api_key=""):
110
  url = url.strip()
111
-
112
  if "drive.google.com" in url:
113
  original_dir = os.getcwd()
114
  os.chdir(directory)
@@ -116,6 +114,7 @@ def download_things(directory, url, hf_token="", civitai_api_key=""):
116
  os.chdir(original_dir)
117
  elif "huggingface.co" in url:
118
  url = url.replace("?download=true", "")
 
119
  if "/blob/" in url:
120
  url = url.replace("/blob/", "/resolve/")
121
  user_header = f'"Authorization: Bearer {hf_token}"'
@@ -169,24 +168,43 @@ directory_vaes = 'vaes'
169
  os.makedirs(directory_vaes, exist_ok=True)
170
 
171
  # - **Download SD 1.5 Models**
172
- download_model = "https://huggingface.co/frankjoshua/toonyou_beta6/resolve/main/toonyou_beta6.safetensors"
173
  # - **Download VAEs**
174
- download_vae = "https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl.vae.safetensors?download=true, https://huggingface.co/nubby/blessed-sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16fix-c-1.1-b-0.5.safetensors?download=true, https://huggingface.co/nubby/blessed-sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16fix-blessed.safetensors?download=true, https://huggingface.co/digiplay/VAE/resolve/main/vividReal_v20.safetensors?download=true, https://huggingface.co/fp16-guy/anything_kl-f8-anime2_vae-ft-mse-840000-ema-pruned_blessed_clearvae_fp16_cleaned/resolve/main/vae-ft-mse-840000-ema-pruned_fp16.safetensors?download=true"
175
  # - **Download LoRAs**
176
- download_lora = "https://civitai.com/api/download/models/135867, https://civitai.com/api/download/models/135931, https://civitai.com/api/download/models/177492, https://civitai.com/api/download/models/145907, https://huggingface.co/Linaqruf/anime-detailer-xl-lora/resolve/main/anime-detailer-xl.safetensors?download=true, https://huggingface.co/Linaqruf/style-enhancer-xl-lora/resolve/main/style-enhancer-xl.safetensors?download=true, https://civitai.com/api/download/models/28609, https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-CFG-lora.safetensors?download=true, https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-CFG-lora.safetensors?download=true"
177
  load_diffusers_format_model = [
178
  'stabilityai/stable-diffusion-xl-base-1.0',
 
179
  'misri/epicrealismXL_v7FinalDestination',
180
  'misri/juggernautXL_juggernautX',
181
- 'misri/anima_pencil-XL-v4.0.0',
182
- 'cagliostrolab/animagine-xl-3.1',
183
- 'misri/kohakuXLEpsilon_rev1',
 
 
 
184
  'kitty7779/ponyDiffusionV6XL',
 
 
 
 
 
185
  'digiplay/majicMIX_realistic_v6',
186
  'digiplay/majicMIX_realistic_v7',
187
  'digiplay/DreamShaper_8',
188
  'digiplay/BeautifulArt_v1',
189
  'digiplay/DarkSushi2.5D_v1',
 
 
 
 
 
 
 
 
 
 
190
  ]
191
 
192
  CIVITAI_API_KEY = os.environ.get("CIVITAI_API_KEY")
@@ -225,6 +243,25 @@ lora_model_list.insert(0, "None")
225
  vae_model_list = get_model_list(directory_vaes)
226
  vae_model_list.insert(0, "None")
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  print('\033[33m🏁 Download and listing of valid models completed.\033[0m')
229
 
230
  upscaler_dict_gui = {
@@ -308,6 +345,17 @@ warnings.filterwarnings(action="ignore", category=FutureWarning, module="transfo
308
  from stablepy import logger
309
  logger.setLevel(logging.DEBUG)
310
 
 
 
 
 
 
 
 
 
 
 
 
311
  class GuiSD:
312
  def __init__(self, stream=True):
313
  self.model = None
@@ -321,18 +369,12 @@ class GuiSD:
321
  retain_task_model_in_cache=False,
322
  )
323
 
324
- @spaces.GPU(duration=120)
325
- def infer(self, model, pipe_params):
326
- images, image_list = model(**pipe_params)
327
- return images
328
-
329
  def load_new_model(self, model_name, vae_model, task, progress=gr.Progress(track_tqdm=True)):
330
 
331
  yield f"Loading model: {model_name}"
332
 
333
  vae_model = vae_model if vae_model != "None" else None
334
 
335
-
336
  if model_name in model_list:
337
  model_is_xl = "xl" in model_name.lower()
338
  sdxl_in_vae = vae_model and "sdxl" in vae_model.lower()
@@ -350,7 +392,7 @@ class GuiSD:
350
  type_model_precision=torch.float16,
351
  retain_task_model_in_cache=False,
352
  )
353
- yield f"Model loaded: {model_name} {vae_model if vae_model else ''}"
354
 
355
  @spaces.GPU
356
  def generate_pipeline(
@@ -456,15 +498,14 @@ class GuiSD:
456
  model_ip2,
457
  mode_ip2,
458
  scale_ip2,
459
- # progress=gr.Progress(track_tqdm=True),
460
- # progress=gr.Progress()
461
  ):
462
-
463
- # progress(0.01, desc="Loading model...")
464
 
465
  vae_model = vae_model if vae_model != "None" else None
466
  loras_list = [lora1, lora2, lora3, lora4, lora5]
 
 
467
 
 
468
  if model_name in model_list:
469
  model_is_xl = "xl" in model_name.lower()
470
  sdxl_in_vae = vae_model and "sdxl" in vae_model.lower()
@@ -472,19 +513,23 @@ class GuiSD:
472
  incompatible_vae = (model_is_xl and vae_model and not sdxl_in_vae) or (not model_is_xl and sdxl_in_vae)
473
 
474
  if incompatible_vae:
475
- gr.Info(
476
  f"The selected VAE is for a { 'SD 1.5' if model_is_xl else 'SDXL' } model, but you"
477
  f" are using a { model_type } model. The default VAE "
478
  "will be used."
479
  )
 
 
480
  vae_model = None
481
 
482
  for la in loras_list:
483
- if la is not None and la != "None":
484
  print(la)
485
  lora_type = ("animetarot" in la.lower() or "Hyper-SD15-8steps".lower() in la.lower())
486
  if (model_is_xl and lora_type) or (not model_is_xl and not lora_type):
487
- gr.Info(f"The LoRA {la} is for { 'SD 1.5' if model_is_xl else 'SDXL' }, but you are using { model_type }.")
 
 
488
 
489
  task = task_stablepy[task]
490
 
@@ -669,12 +714,18 @@ class GuiSD:
669
  pipe_params["num_images"] = num_images
670
  gr.Info("Num images x 2 🎉")
671
 
672
- # print("Inference 1")
673
- # yield self.infer_short(self.model, pipe_params)
 
 
674
  for img, seed, data in self.model(**pipe_params):
675
- info_state = f"PROCESSING..."
676
  if data:
677
- info_state = f"COMPLETE: seeds={str(seed)}"
 
 
 
 
678
  yield img, info_state
679
 
680
 
@@ -868,6 +919,15 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
868
  lora5_gui = gr.Dropdown(label="Lora5", choices=lora_model_list)
869
  lora_scale_5_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 5")
870
 
 
 
 
 
 
 
 
 
 
871
  with gr.Accordion("IP-Adapter", open=False, visible=True):##############
872
 
873
  IP_MODELS = sorted(list(set(IP_ADAPTERS_SD + IP_ADAPTERS_SDXL)))
@@ -1011,7 +1071,26 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1011
  retain_hires_model_previous_load_gui = gr.Checkbox(value=False, label="Retain Hires Model Previous Load")
1012
  xformers_memory_efficient_attention_gui = gr.Checkbox(value=False, label="Xformers Memory Efficient Attention")
1013
 
1014
- with gr.Accordion("Examples", open=False, visible=True):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1015
  gr.Examples(
1016
  examples=[
1017
  [
@@ -1022,7 +1101,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1022
  7.5,
1023
  True,
1024
  -1,
1025
- None,
1026
  1.0,
1027
  None,
1028
  1.0,
@@ -1065,7 +1144,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1065
  5.,
1066
  True,
1067
  -1,
1068
- None,
1069
  1.0,
1070
  None,
1071
  1.0,
@@ -1108,7 +1187,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1108
  3.5,
1109
  True,
1110
  -1,
1111
- None,
1112
  1.0,
1113
  None,
1114
  1.0,
@@ -1144,14 +1223,14 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1144
  None,
1145
  ],
1146
  [
1147
- "masterpiece,high resolution,japanese town street background,fantasy world,magical,mountains forest background,stairs,(torii:1.2),masterpiece,cinematic,visual key,best quality,by hayao miyazaki,by makoto shinkai,soft dim lighting,pastel colors,night,stars",
1148
- "(low quality, worst quality:1.4), (bad_prompt:0.8), (monochrome:1.1), (greyscale), painting, cartoon, comic, anime, manga, drawing, 2d, flat, crayon, sketch",
1149
  1,
1150
  50,
1151
  4.,
1152
  True,
1153
  -1,
1154
- None,
1155
  1.0,
1156
  None,
1157
  1.0,
@@ -1161,13 +1240,13 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1161
  1.0,
1162
  None,
1163
  1.0,
1164
- "DPM++ 2M Karras",
1165
  1024,
1166
  1024,
1167
  "misri/juggernautXL_juggernautX",
1168
  None, # vae
1169
- "txt2img",
1170
- None, # img conttol
1171
  "Canny", # preprocessor
1172
  512, # preproc resolution
1173
  1024, # img resolution
@@ -1180,21 +1259,21 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1180
  0.1, # value mstd
1181
  0.1, # distance mstd
1182
  1.0, # cn scale
1183
- 0., # cn start
1184
- 1., # cn end
1185
  False, # ti
1186
  "Classic",
1187
  None,
1188
  ],
1189
  [
1190
- "1girl, solo, black dress, black hair, black theme, dress, eyelashes, jewelry, makeup, parted lips, purple eyes, ring, short hair, silk, silver hair, snake, masterpiece, best quality",
1191
- "(low quality, worst quality:1.4), (bad_prompt:0.8), (monochrome:1.1), (greyscale), painting, cartoon, comic, anime, manga, drawing, 2d, flat, crayon, sketch",
1192
  1,
1193
- 50,
1194
  4.,
1195
  True,
1196
  -1,
1197
- None,
1198
  1.0,
1199
  None,
1200
  1.0,
@@ -1204,16 +1283,16 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1204
  1.0,
1205
  None,
1206
  1.0,
1207
- "DPM++ 2M Karras",
1208
- 1344,
1209
- 896,
1210
- "misri/anima_pencil-XL-v4.0.0",
1211
  None, # vae
1212
- "txt2img",
1213
- None, # img conttol
1214
- "Canny", # preprocessor
1215
  512, # preproc resolution
1216
- 1024, # img resolution
1217
  None, # Style prompt
1218
  None, # Style json
1219
  None, # img Mask
@@ -1226,7 +1305,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1226
  0., # cn start
1227
  1., # cn end
1228
  False, # ti
1229
- "Classic",
1230
  None,
1231
  ],
1232
  [
@@ -1237,7 +1316,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1237
  5.,
1238
  True,
1239
  -1,
1240
- None,
1241
  1.0,
1242
  None,
1243
  1.0,
@@ -1267,7 +1346,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1267
  0.1, # distance mstd
1268
  1.0, # cn scale
1269
  0., # cn start
1270
- 1., # cn end
1271
  False, # ti
1272
  "Compel",
1273
  "Nearest",
 
 
 
 
1
  import spaces
2
  import os
3
  from stablepy import Model_Diffusers
 
22
  SD15_TASKS,
23
  SDXL_TASKS,
24
  )
25
+ import urllib.parse
26
 
27
  preprocessor_controlnet = {
28
  "openpose": [
 
57
  "lineart": [
58
  "Lineart",
59
  "Lineart coarse",
60
+ "Lineart (anime)",
61
  "None",
62
  "None (anime)",
63
  ],
 
94
  'depth ControlNet': 'depth',
95
  'normalbae ControlNet': 'normalbae',
96
  'lineart ControlNet': 'lineart',
97
+ # 'lineart_anime ControlNet': 'lineart_anime',
98
  'shuffle ControlNet': 'shuffle',
99
  'ip2p ControlNet': 'ip2p',
100
  'optical pattern ControlNet': 'pattern',
 
106
 
107
  def download_things(directory, url, hf_token="", civitai_api_key=""):
108
  url = url.strip()
109
+
110
  if "drive.google.com" in url:
111
  original_dir = os.getcwd()
112
  os.chdir(directory)
 
114
  os.chdir(original_dir)
115
  elif "huggingface.co" in url:
116
  url = url.replace("?download=true", "")
117
+ # url = urllib.parse.quote(url, safe=':/') # fix encoding
118
  if "/blob/" in url:
119
  url = url.replace("/blob/", "/resolve/")
120
  user_header = f'"Authorization: Bearer {hf_token}"'
 
168
  os.makedirs(directory_vaes, exist_ok=True)
169
 
170
  # - **Download SD 1.5 Models**
171
+ download_model = "https://civitai.com/api/download/models/574369, https://huggingface.co/TechnoByte/MilkyWonderland/resolve/main/milkyWonderland_v40.safetensors"
172
  # - **Download VAEs**
173
+ download_vae = "https://huggingface.co/nubby/blessed-sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16fix-c-1.1-b-0.5.safetensors?download=true, https://huggingface.co/nubby/blessed-sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16fix-blessed.safetensors?download=true, https://huggingface.co/digiplay/VAE/resolve/main/vividReal_v20.safetensors?download=true, https://huggingface.co/fp16-guy/anything_kl-f8-anime2_vae-ft-mse-840000-ema-pruned_blessed_clearvae_fp16_cleaned/resolve/main/vae-ft-mse-840000-ema-pruned_fp16.safetensors?download=true"
174
  # - **Download LoRAs**
175
+ download_lora = "https://civitai.com/api/download/models/311558, https://huggingface.co/Leopain/color/resolve/main/Coloring_book_-_LineArt.safetensors, https://civitai.com/api/download/models/135867, https://civitai.com/api/download/models/145907, https://huggingface.co/Linaqruf/anime-detailer-xl-lora/resolve/main/anime-detailer-xl.safetensors?download=true, https://huggingface.co/Linaqruf/style-enhancer-xl-lora/resolve/main/style-enhancer-xl.safetensors?download=true, https://civitai.com/api/download/models/28609, https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-CFG-lora.safetensors?download=true, https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-CFG-lora.safetensors?download=true"
176
  load_diffusers_format_model = [
177
  'stabilityai/stable-diffusion-xl-base-1.0',
178
+ 'cagliostrolab/animagine-xl-3.1',
179
  'misri/epicrealismXL_v7FinalDestination',
180
  'misri/juggernautXL_juggernautX',
181
+ 'misri/zavychromaxl_v80',
182
+ 'SG161222/RealVisXL_V4.0',
183
+ 'misri/newrealityxlAllInOne_Newreality40',
184
+ 'eienmojiki/Anything-XL',
185
+ 'eienmojiki/Starry-XL-v5.2',
186
+ 'gsdf/CounterfeitXL',
187
  'kitty7779/ponyDiffusionV6XL',
188
+ 'John6666/ebara-mfcg-pony-mix-v12-sdxl',
189
+ 'John6666/t-ponynai3-v51-sdxl',
190
+ 'yodayo-ai/kivotos-xl-2.0',
191
+ 'yodayo-ai/holodayo-xl-2.1',
192
+ 'digiplay/majicMIX_sombre_v2',
193
  'digiplay/majicMIX_realistic_v6',
194
  'digiplay/majicMIX_realistic_v7',
195
  'digiplay/DreamShaper_8',
196
  'digiplay/BeautifulArt_v1',
197
  'digiplay/DarkSushi2.5D_v1',
198
+ 'digiplay/darkphoenix3D_v1.1',
199
+ 'digiplay/BeenYouLiteL11_diffusers',
200
+ 'rubbrband/revAnimated_v2Rebirth',
201
+ 'youknownothing/cyberrealistic_v50',
202
+ 'votepurchase/counterfeitV30_v30',
203
+ 'Meina/MeinaMix_V11',
204
+ 'Meina/MeinaUnreal_V5',
205
+ 'Meina/MeinaPastel_V7',
206
+ 'rubbrband/realcartoon3d_v16',
207
+ 'rubbrband/realcartoonRealistic_v14',
208
  ]
209
 
210
  CIVITAI_API_KEY = os.environ.get("CIVITAI_API_KEY")
 
243
  vae_model_list = get_model_list(directory_vaes)
244
  vae_model_list.insert(0, "None")
245
 
246
+ def get_my_lora(link_url):
247
+ for url in [url.strip() for url in link_url.split(',')]:
248
+ if not os.path.exists(f"./loras/{url.split('/')[-1]}"):
249
+ download_things(directory_loras, url, hf_token, CIVITAI_API_KEY)
250
+ new_lora_model_list = get_model_list(directory_loras)
251
+ new_lora_model_list.insert(0, "None")
252
+
253
+ return gr.update(
254
+ choices=new_lora_model_list
255
+ ), gr.update(
256
+ choices=new_lora_model_list
257
+ ), gr.update(
258
+ choices=new_lora_model_list
259
+ ), gr.update(
260
+ choices=new_lora_model_list
261
+ ), gr.update(
262
+ choices=new_lora_model_list
263
+ ),
264
+
265
  print('\033[33m🏁 Download and listing of valid models completed.\033[0m')
266
 
267
  upscaler_dict_gui = {
 
345
  from stablepy import logger
346
  logger.setLevel(logging.DEBUG)
347
 
348
+ def info_html(json_data, title, subtitle):
349
+ return f"""
350
+ <div style='padding: 0; border-radius: 10px;'>
351
+ <p style='margin: 0; font-weight: bold;'>{title}</p>
352
+ <details>
353
+ <summary>Details</summary>
354
+ <p style='margin: 0; font-weight: bold;'>{subtitle}</p>
355
+ </details>
356
+ </div>
357
+ """
358
+
359
  class GuiSD:
360
  def __init__(self, stream=True):
361
  self.model = None
 
369
  retain_task_model_in_cache=False,
370
  )
371
 
 
 
 
 
 
372
  def load_new_model(self, model_name, vae_model, task, progress=gr.Progress(track_tqdm=True)):
373
 
374
  yield f"Loading model: {model_name}"
375
 
376
  vae_model = vae_model if vae_model != "None" else None
377
 
 
378
  if model_name in model_list:
379
  model_is_xl = "xl" in model_name.lower()
380
  sdxl_in_vae = vae_model and "sdxl" in vae_model.lower()
 
392
  type_model_precision=torch.float16,
393
  retain_task_model_in_cache=False,
394
  )
395
+ yield f"Model loaded: {model_name}"
396
 
397
  @spaces.GPU
398
  def generate_pipeline(
 
498
  model_ip2,
499
  mode_ip2,
500
  scale_ip2,
 
 
501
  ):
 
 
502
 
503
  vae_model = vae_model if vae_model != "None" else None
504
  loras_list = [lora1, lora2, lora3, lora4, lora5]
505
+ vae_msg = f"VAE: {vae_model}" if vae_model else ""
506
+ msg_lora = []
507
 
508
+
509
  if model_name in model_list:
510
  model_is_xl = "xl" in model_name.lower()
511
  sdxl_in_vae = vae_model and "sdxl" in vae_model.lower()
 
513
  incompatible_vae = (model_is_xl and vae_model and not sdxl_in_vae) or (not model_is_xl and sdxl_in_vae)
514
 
515
  if incompatible_vae:
516
+ msg_inc_vae = (
517
  f"The selected VAE is for a { 'SD 1.5' if model_is_xl else 'SDXL' } model, but you"
518
  f" are using a { model_type } model. The default VAE "
519
  "will be used."
520
  )
521
+ gr.Info(msg_inc_vae)
522
+ vae_msg = msg_inc_vae
523
  vae_model = None
524
 
525
  for la in loras_list:
526
+ if la is not None and la != "None" and la in lora_model_list:
527
  print(la)
528
  lora_type = ("animetarot" in la.lower() or "Hyper-SD15-8steps".lower() in la.lower())
529
  if (model_is_xl and lora_type) or (not model_is_xl and not lora_type):
530
+ msg_inc_lora = f"The LoRA {la} is for { 'SD 1.5' if model_is_xl else 'SDXL' }, but you are using { model_type }."
531
+ gr.Info(msg_inc_lora)
532
+ msg_lora.append(msg_inc_lora)
533
 
534
  task = task_stablepy[task]
535
 
 
714
  pipe_params["num_images"] = num_images
715
  gr.Info("Num images x 2 🎉")
716
 
717
+ # Maybe fix lora issue: 'Cannot copy out of meta tensor; no data!''
718
+ self.model.pipe.to("cuda:0" if torch.cuda.is_available() else "cpu")
719
+
720
+ info_state = f"PROCESSING "
721
  for img, seed, data in self.model(**pipe_params):
722
+ info_state += ">"
723
  if data:
724
+ info_state = f"COMPLETED. Seeds: {str(seed)}"
725
+ if vae_msg:
726
+ info_state = info_state + "<br>" + vae_msg
727
+ if msg_lora:
728
+ info_state = info_state + "<br>" + "<br>".join(msg_lora)
729
  yield img, info_state
730
 
731
 
 
919
  lora5_gui = gr.Dropdown(label="Lora5", choices=lora_model_list)
920
  lora_scale_5_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 5")
921
 
922
+ with gr.Accordion("From URL", open=False, visible=True):
923
+ text_lora = gr.Textbox(label="URL", placeholder="http://...my_lora_url.safetensors", lines=1)
924
+ button_lora = gr.Button("Get and update lists of LoRAs")
925
+ button_lora.click(
926
+ get_my_lora,
927
+ [text_lora],
928
+ [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui]
929
+ )
930
+
931
  with gr.Accordion("IP-Adapter", open=False, visible=True):##############
932
 
933
  IP_MODELS = sorted(list(set(IP_ADAPTERS_SD + IP_ADAPTERS_SDXL)))
 
1071
  retain_hires_model_previous_load_gui = gr.Checkbox(value=False, label="Retain Hires Model Previous Load")
1072
  xformers_memory_efficient_attention_gui = gr.Checkbox(value=False, label="Xformers Memory Efficient Attention")
1073
 
1074
+ with gr.Accordion("Examples and help", open=False, visible=True):
1075
+ gr.Markdown(
1076
+ """### Help:
1077
+ - The current space runs on a ZERO GPU which is assigned for approximately 60 seconds; Therefore, if you submit expensive tasks, the operation may be canceled upon reaching the maximum allowed time with 'GPU TASK ABORTED'.
1078
+ - Distorted or strange images often result from high prompt weights, so it's best to use low weights and scales, and consider using Classic variants like 'Classic-original'.
1079
+ - For better results with Pony Diffusion, try using sampler DPM++ 1s or DPM2 with Compel or Classic prompt weights.
1080
+ """
1081
+ )
1082
+ gr.Markdown(
1083
+ """### The following examples perform specific tasks:
1084
+ 1. Generation with SDXL and upscale
1085
+ 2. Generation with SDXL
1086
+ 3. ControlNet Canny SDXL
1087
+ 4. Optical pattern (Optical illusion) SDXL
1088
+ 5. Convert an image to a coloring drawing
1089
+ 6. ControlNet OpenPose SD 1.5
1090
+
1091
+ - Different tasks can be performed, such as img2img or using the IP adapter, to preserve a person's appearance or a specific style based on an image.
1092
+ """
1093
+ )
1094
  gr.Examples(
1095
  examples=[
1096
  [
 
1101
  7.5,
1102
  True,
1103
  -1,
1104
+ "None",
1105
  1.0,
1106
  None,
1107
  1.0,
 
1144
  5.,
1145
  True,
1146
  -1,
1147
+ "None",
1148
  1.0,
1149
  None,
1150
  1.0,
 
1187
  3.5,
1188
  True,
1189
  -1,
1190
+ "None",
1191
  1.0,
1192
  None,
1193
  1.0,
 
1223
  None,
1224
  ],
1225
  [
1226
+ "cinematic scenery old city ruins",
1227
+ "(worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch), (illustration, 3d, 2d, painting, cartoons, sketch, blurry, film grain, noise), (low quality, worst quality:1.2)",
1228
  1,
1229
  50,
1230
  4.,
1231
  True,
1232
  -1,
1233
+ "None",
1234
  1.0,
1235
  None,
1236
  1.0,
 
1240
  1.0,
1241
  None,
1242
  1.0,
1243
+ "Euler a",
1244
  1024,
1245
  1024,
1246
  "misri/juggernautXL_juggernautX",
1247
  None, # vae
1248
+ "optical pattern ControlNet",
1249
+ "spiral_no_transparent.png", # img conttol
1250
  "Canny", # preprocessor
1251
  512, # preproc resolution
1252
  1024, # img resolution
 
1259
  0.1, # value mstd
1260
  0.1, # distance mstd
1261
  1.0, # cn scale
1262
+ 0.05, # cn start
1263
+ 0.75, # cn end
1264
  False, # ti
1265
  "Classic",
1266
  None,
1267
  ],
1268
  [
1269
+ "black and white, line art, coloring drawing, clean line art, black strokes, no background, white, black, free lines, black scribbles, on paper, A blend of comic book art and lineart full of black and white color, masterpiece, high-resolution, trending on Pixiv fan box, palette knife, brush strokes, two-dimensional, planar vector, T-shirt design, stickers, and T-shirt design, vector art, fantasy art, Adobe Illustrator, hand-painted, digital painting, low polygon, soft lighting, aerial view, isometric style, retro aesthetics, 8K resolution, black sketch lines, monochrome, invert color",
1270
+ "color, red, green, yellow, colored, duplicate, blurry, abstract, disfigured, deformed, animated, toy, figure, framed, 3d, bad art, poorly drawn, extra limbs, close up, b&w, weird colors, blurry, watermark, blur haze, 2 heads, long neck, watermark, elongated body, cropped image, out of frame, draft, deformed hands, twisted fingers, double image, malformed hands, multiple heads, extra limb, ugly, poorly drawn hands, missing limb, cut-off, over satured, grain, lowères, bad anatomy, poorly drawn face, mutation, mutated, floating limbs, disconnected limbs, out of focus, long body, disgusting, extra fingers, groos proportions, missing arms, mutated hands, cloned face, missing legs, ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft, deformed, blurry, bad anatomy, disfigured, poorly drawn face, mutation, bluelish, blue",
1271
  1,
1272
+ 20,
1273
  4.,
1274
  True,
1275
  -1,
1276
+ "loras/Coloring_book_-_LineArt.safetensors",
1277
  1.0,
1278
  None,
1279
  1.0,
 
1283
  1.0,
1284
  None,
1285
  1.0,
1286
+ "DPM++ 2M SDE Karras",
1287
+ 1024,
1288
+ 1024,
1289
+ "cagliostrolab/animagine-xl-3.1",
1290
  None, # vae
1291
+ "lineart ControlNet",
1292
+ "color_image.png", # img conttol
1293
+ "Lineart", # preprocessor
1294
  512, # preproc resolution
1295
+ 896, # img resolution
1296
  None, # Style prompt
1297
  None, # Style json
1298
  None, # img Mask
 
1305
  0., # cn start
1306
  1., # cn end
1307
  False, # ti
1308
+ "Compel",
1309
  None,
1310
  ],
1311
  [
 
1316
  5.,
1317
  True,
1318
  -1,
1319
+ "None",
1320
  1.0,
1321
  None,
1322
  1.0,
 
1346
  0.1, # distance mstd
1347
  1.0, # cn scale
1348
  0., # cn start
1349
+ 0.9, # cn end
1350
  False, # ti
1351
  "Compel",
1352
  "Nearest",