r3gm commited on
Commit
e10b013
1 Parent(s): c28cabc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -29
app.py CHANGED
@@ -61,6 +61,13 @@ preprocessor_controlnet = {
61
  "None",
62
  "None (anime)",
63
  ],
 
 
 
 
 
 
 
64
  "shuffle": [
65
  "ContentShuffle",
66
  "None",
@@ -190,8 +197,9 @@ load_diffusers_format_model = [
190
  'eienmojiki/Starry-XL-v5.2',
191
  'gsdf/CounterfeitXL',
192
  'KBlueLeaf/Kohaku-XL-Zeta',
193
- 'kitty7779/ponyDiffusionV6XL',
194
  'WhiteAiZ/autismmixSDXL_autismmixConfetti_diffusers',
 
195
  'GraydientPlatformAPI/aniverse-pony',
196
  'John6666/mistoon-anime-ponyalpha-sdxl',
197
  'John6666/ebara-mfcg-pony-mix-v12-sdxl',
@@ -201,10 +209,10 @@ load_diffusers_format_model = [
201
  'John6666/cyberrealistic-pony-v63-sdxl',
202
  'GraydientPlatformAPI/realcartoon-pony-diffusion',
203
  'John6666/nova-anime-xl-pony-v5-sdxl',
 
204
  'yodayo-ai/kivotos-xl-2.0',
205
  'yodayo-ai/holodayo-xl-2.1',
206
  'yodayo-ai/clandestine-xl-1.0',
207
- 'John6666/silvermoon-mix-01xl-v11-sdxl',
208
  'digiplay/majicMIX_sombre_v2',
209
  'digiplay/majicMIX_realistic_v6',
210
  'digiplay/majicMIX_realistic_v7',
@@ -266,6 +274,7 @@ lora_model_list.insert(0, "None")
266
  vae_model_list = get_model_list(directory_vaes)
267
  vae_model_list.insert(0, "None")
268
 
 
269
  def get_my_lora(link_url):
270
  for url in [url.strip() for url in link_url.split(',')]:
271
  if not os.path.exists(f"./loras/{url.split('/')[-1]}"):
@@ -298,20 +307,20 @@ upscaler_dict_gui = {
298
  'Latent (bicubic antialiased)': 'Latent (bicubic antialiased)',
299
  'Latent (nearest)': 'Latent (nearest)',
300
  'Latent (nearest-exact)': 'Latent (nearest-exact)',
301
- "RealESRGAN_x4plus" : "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth",
302
- "RealESRNet_x4plus" : "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.1/RealESRNet_x4plus.pth",
303
  "RealESRGAN_x4plus_anime_6B": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth",
304
  "RealESRGAN_x2plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth",
305
  "realesr-animevideov3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-animevideov3.pth",
306
  "realesr-general-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth",
307
- "realesr-general-wdn-x4v3" : "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-wdn-x4v3.pth",
308
  "4x-UltraSharp" : "https://huggingface.co/Shandypur/ESRGAN-4x-UltraSharp/resolve/main/4x-UltraSharp.pth",
309
- "4x_foolhardy_Remacri" : "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth",
310
- "Remacri4xExtraSmoother" : "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/Remacri%204x%20ExtraSmoother.pth",
311
- "AnimeSharp4x" : "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/AnimeSharp%204x.pth",
312
  "lollypop" : "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/lollypop.pth",
313
- "RealisticRescaler4x" : "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/RealisticRescaler%204x.pth",
314
- "NickelbackFS4x" : "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/NickelbackFS%204x.pth"
315
  }
316
 
317
  upscaler_keys = list(upscaler_dict_gui.keys())
@@ -376,6 +385,7 @@ warnings.filterwarnings(action="ignore", category=FutureWarning, module="transfo
376
  from stablepy import logger
377
  logger.setLevel(logging.DEBUG)
378
 
 
379
  def info_html(json_data, title, subtitle):
380
  return f"""
381
  <div style='padding: 0; border-radius: 10px;'>
@@ -387,6 +397,7 @@ def info_html(json_data, title, subtitle):
387
  </div>
388
  """
389
 
 
390
  class GuiSD:
391
  def __init__(self, stream=True):
392
  self.model = None
@@ -590,10 +601,8 @@ class GuiSD:
590
  model_precision = torch.float16
591
  self.model.device = torch.device("cuda:0")
592
  if not self.model:
593
- from modelstream import Model_Diffusers2
594
-
595
  print("Loading model...")
596
- self.model = Model_Diffusers2(
597
  base_model_id=model_name,
598
  task_name=task,
599
  vae_model=vae_model if vae_model != "None" else None,
@@ -760,6 +769,14 @@ class GuiSD:
760
 
761
  info_state = info_state + "<br>" + "GENERATION DATA:<br>" + "<br>-------<br>".join(metadata).replace("\n", "<br>")
762
 
 
 
 
 
 
 
 
 
763
  yield img, info_state
764
 
765
 
@@ -808,7 +825,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
808
  clear_prompt_gui = gr.Button(value="🗑️")
809
  set_random_seed = gr.Button(value="🎲")
810
  generate_button = gr.Button(value="GENERATE", variant="primary")
811
-
812
  model_name_gui.change(
813
  update_task_options,
814
  [model_name_gui, task_gui],
@@ -816,7 +833,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
816
  )
817
 
818
  load_model_gui = gr.HTML()
819
-
820
  result_images = gr.Gallery(
821
  label="Generated images",
822
  show_label=False,
@@ -922,7 +939,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
922
  ("Classic-ignore", "Classic-ignore"),
923
  ("None", "None"),
924
  ]
925
- prompt_syntax_gui = gr.Dropdown(label="Prompt Syntax", choices=prompt_s_options, value=prompt_s_options[0][1])
926
  vae_model_gui = gr.Dropdown(label="VAE Model", choices=vae_model_list)
927
 
928
  with gr.Accordion("Hires fix", open=False, visible=True):
@@ -938,19 +955,26 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
938
  hires_negative_prompt_gui = gr.Textbox(label="Hires Negative Prompt", placeholder="Main negative prompt will be use", lines=3)
939
 
940
  with gr.Accordion("LoRA", open=False, visible=True):
941
- lora1_gui = gr.Dropdown(label="Lora1", choices=lora_model_list)
942
- lora_scale_1_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 1")
943
- lora2_gui = gr.Dropdown(label="Lora2", choices=lora_model_list)
944
- lora_scale_2_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 2")
945
- lora3_gui = gr.Dropdown(label="Lora3", choices=lora_model_list)
946
- lora_scale_3_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 3")
947
- lora4_gui = gr.Dropdown(label="Lora4", choices=lora_model_list)
948
- lora_scale_4_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 4")
949
- lora5_gui = gr.Dropdown(label="Lora5", choices=lora_model_list)
950
- lora_scale_5_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label="Lora Scale 5")
 
 
 
 
 
 
 
951
 
952
  with gr.Accordion("From URL", open=False, visible=True):
953
- text_lora = gr.Textbox(label="URL", placeholder="http://...my_lora_url.safetensors", lines=1)
954
  button_lora = gr.Button("Get and update lists of LoRAs")
955
  button_lora.click(
956
  get_my_lora,
@@ -958,7 +982,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
958
  [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui]
959
  )
960
 
961
- with gr.Accordion("IP-Adapter", open=False, visible=True):##############
962
 
963
  IP_MODELS = sorted(list(set(IP_ADAPTERS_SD + IP_ADAPTERS_SDXL)))
964
  MODE_IP_OPTIONS = ["original", "style", "layout", "style+layout"]
@@ -1094,7 +1118,7 @@ with gr.Blocks(theme="NoCrypt/miku", css=CSS) as app:
1094
  leave_progress_bar_gui = gr.Checkbox(value=True, label="Leave Progress Bar")
1095
  disable_progress_bar_gui = gr.Checkbox(value=False, label="Disable Progress Bar")
1096
  display_images_gui = gr.Checkbox(value=True, label="Display Images")
1097
- save_generated_images_gui = gr.Checkbox(value=False, label="Save Generated Images")
1098
  image_storage_location_gui = gr.Textbox(value="./images", label="Image Storage Location")
1099
  retain_compel_previous_load_gui = gr.Checkbox(value=False, label="Retain Compel Previous Load")
1100
  retain_detailfix_model_previous_load_gui = gr.Checkbox(value=False, label="Retain Detailfix Model Previous Load")
@@ -1619,4 +1643,5 @@ app.queue()
1619
  app.launch(
1620
  show_error=True,
1621
  debug=True,
 
1622
  )
 
61
  "None",
62
  "None (anime)",
63
  ],
64
+ "lineart_anime": [
65
+ "Lineart",
66
+ "Lineart coarse",
67
+ "Lineart (anime)",
68
+ "None",
69
+ "None (anime)",
70
+ ],
71
  "shuffle": [
72
  "ContentShuffle",
73
  "None",
 
197
  'eienmojiki/Starry-XL-v5.2',
198
  'gsdf/CounterfeitXL',
199
  'KBlueLeaf/Kohaku-XL-Zeta',
200
+ 'John6666/silvermoon-mix-01xl-v11-sdxl',
201
  'WhiteAiZ/autismmixSDXL_autismmixConfetti_diffusers',
202
+ 'kitty7779/ponyDiffusionV6XL',
203
  'GraydientPlatformAPI/aniverse-pony',
204
  'John6666/mistoon-anime-ponyalpha-sdxl',
205
  'John6666/ebara-mfcg-pony-mix-v12-sdxl',
 
209
  'John6666/cyberrealistic-pony-v63-sdxl',
210
  'GraydientPlatformAPI/realcartoon-pony-diffusion',
211
  'John6666/nova-anime-xl-pony-v5-sdxl',
212
+ 'John6666/autismmix-sdxl-autismmix-pony-sdxl',
213
  'yodayo-ai/kivotos-xl-2.0',
214
  'yodayo-ai/holodayo-xl-2.1',
215
  'yodayo-ai/clandestine-xl-1.0',
 
216
  'digiplay/majicMIX_sombre_v2',
217
  'digiplay/majicMIX_realistic_v6',
218
  'digiplay/majicMIX_realistic_v7',
 
274
  vae_model_list = get_model_list(directory_vaes)
275
  vae_model_list.insert(0, "None")
276
 
277
+
278
  def get_my_lora(link_url):
279
  for url in [url.strip() for url in link_url.split(',')]:
280
  if not os.path.exists(f"./loras/{url.split('/')[-1]}"):
 
307
  'Latent (bicubic antialiased)': 'Latent (bicubic antialiased)',
308
  'Latent (nearest)': 'Latent (nearest)',
309
  'Latent (nearest-exact)': 'Latent (nearest-exact)',
310
+ "RealESRGAN_x4plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth",
311
+ "RealESRNet_x4plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.1/RealESRNet_x4plus.pth",
312
  "RealESRGAN_x4plus_anime_6B": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth",
313
  "RealESRGAN_x2plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth",
314
  "realesr-animevideov3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-animevideov3.pth",
315
  "realesr-general-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth",
316
+ "realesr-general-wdn-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-wdn-x4v3.pth",
317
  "4x-UltraSharp" : "https://huggingface.co/Shandypur/ESRGAN-4x-UltraSharp/resolve/main/4x-UltraSharp.pth",
318
+ "4x_foolhardy_Remacri": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth",
319
+ "Remacri4xExtraSmoother": "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/Remacri%204x%20ExtraSmoother.pth",
320
+ "AnimeSharp4x": "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/AnimeSharp%204x.pth",
321
  "lollypop" : "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/lollypop.pth",
322
+ "RealisticRescaler4x": "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/RealisticRescaler%204x.pth",
323
+ "NickelbackFS4x": "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/NickelbackFS%204x.pth"
324
  }
325
 
326
  upscaler_keys = list(upscaler_dict_gui.keys())
 
385
  from stablepy import logger
386
  logger.setLevel(logging.DEBUG)
387
 
388
+
389
  def info_html(json_data, title, subtitle):
390
  return f"""
391
  <div style='padding: 0; border-radius: 10px;'>
 
397
  </div>
398
  """
399
 
400
+
401
  class GuiSD:
402
  def __init__(self, stream=True):
403
  self.model = None
 
601
  model_precision = torch.float16
602
  self.model.device = torch.device("cuda:0")
603
  if not self.model:
 
 
604
  print("Loading model...")
605
+ self.model = Model_Diffusers(
606
  base_model_id=model_name,
607
  task_name=task,
608
  vae_model=vae_model if vae_model != "None" else None,
 
769
 
770
  info_state = info_state + "<br>" + "GENERATION DATA:<br>" + "<br>-------<br>".join(metadata).replace("\n", "<br>")
771
 
772
+ download_links = "<br>".join(
773
+ [
774
+ f'<a href="{path.replace("/images/", "/file=/home/user/app/images/")}" download="{os.path.basename(path)}">Download Image {i + 1}</a>'
775
+ for i, path in enumerate(image_path)
776
+ ]
777
+ )
778
+ info_state += f"<br>{download_links}"
779
+
780
  yield img, info_state
781
 
782
 
 
825
  clear_prompt_gui = gr.Button(value="🗑️")
826
  set_random_seed = gr.Button(value="🎲")
827
  generate_button = gr.Button(value="GENERATE", variant="primary")
828
+
829
  model_name_gui.change(
830
  update_task_options,
831
  [model_name_gui, task_gui],
 
833
  )
834
 
835
  load_model_gui = gr.HTML()
836
+
837
  result_images = gr.Gallery(
838
  label="Generated images",
839
  show_label=False,
 
939
  ("Classic-ignore", "Classic-ignore"),
940
  ("None", "None"),
941
  ]
942
+ prompt_syntax_gui = gr.Dropdown(label="Prompt Syntax", choices=prompt_s_options, value=prompt_s_options[1][1])
943
  vae_model_gui = gr.Dropdown(label="VAE Model", choices=vae_model_list)
944
 
945
  with gr.Accordion("Hires fix", open=False, visible=True):
 
955
  hires_negative_prompt_gui = gr.Textbox(label="Hires Negative Prompt", placeholder="Main negative prompt will be use", lines=3)
956
 
957
  with gr.Accordion("LoRA", open=False, visible=True):
958
+
959
+ def lora_dropdown(label):
960
+ return gr.Dropdown(label=label, choices=lora_model_list, allow_custom_value=True)
961
+
962
+ def lora_scale_slider(label):
963
+ return gr.Slider(minimum=-2, maximum=2, step=0.01, value=0.33, label=label)
964
+
965
+ lora1_gui = lora_dropdown("Lora1")
966
+ lora_scale_1_gui = lora_scale_slider("Lora Scale 1")
967
+ lora2_gui = lora_dropdown("Lora2")
968
+ lora_scale_2_gui = lora_scale_slider("Lora Scale 2")
969
+ lora3_gui = lora_dropdown("Lora3")
970
+ lora_scale_3_gui = lora_scale_slider("Lora Scale 3")
971
+ lora4_gui = lora_dropdown("Lora4")
972
+ lora_scale_4_gui = lora_scale_slider("Lora Scale 4")
973
+ lora5_gui = lora_dropdown("Lora5")
974
+ lora_scale_5_gui = lora_scale_slider("Lora Scale 5")
975
 
976
  with gr.Accordion("From URL", open=False, visible=True):
977
+ text_lora = gr.Textbox(label="LoRA URL", placeholder="https://civitai.com/api/download/models/28907", lines=1)
978
  button_lora = gr.Button("Get and update lists of LoRAs")
979
  button_lora.click(
980
  get_my_lora,
 
982
  [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui]
983
  )
984
 
985
+ with gr.Accordion("IP-Adapter", open=False, visible=True):
986
 
987
  IP_MODELS = sorted(list(set(IP_ADAPTERS_SD + IP_ADAPTERS_SDXL)))
988
  MODE_IP_OPTIONS = ["original", "style", "layout", "style+layout"]
 
1118
  leave_progress_bar_gui = gr.Checkbox(value=True, label="Leave Progress Bar")
1119
  disable_progress_bar_gui = gr.Checkbox(value=False, label="Disable Progress Bar")
1120
  display_images_gui = gr.Checkbox(value=True, label="Display Images")
1121
+ save_generated_images_gui = gr.Checkbox(value=True, label="Save Generated Images")
1122
  image_storage_location_gui = gr.Textbox(value="./images", label="Image Storage Location")
1123
  retain_compel_previous_load_gui = gr.Checkbox(value=False, label="Retain Compel Previous Load")
1124
  retain_detailfix_model_previous_load_gui = gr.Checkbox(value=False, label="Retain Detailfix Model Previous Load")
 
1643
  app.launch(
1644
  show_error=True,
1645
  debug=True,
1646
+ allowed_paths=["./images/"],
1647
  )