John6666 commited on
Commit
4917b55
·
verified ·
1 Parent(s): 823549f

Upload 11 files

Browse files
Files changed (7) hide show
  1. app.py +52 -14
  2. dc.py +78 -59
  3. env.py +25 -0
  4. llmdolphin.py +176 -0
  5. lora_dict.json +455 -0
  6. modutils.py +193 -58
  7. requirements.txt +1 -0
app.py CHANGED
@@ -4,11 +4,11 @@ import numpy as np
4
 
5
  # DiffuseCraft
6
  from dc import (infer, _infer, pass_result, get_diffusers_model_list, get_samplers,
7
- get_vaes, enable_model_recom_prompt, enable_diffusers_model_detail,
8
- get_t2i_model_info, get_all_lora_tupled_list, update_loras,
9
- apply_lora_prompt, download_my_lora, search_civitai_lora,
10
- select_civitai_lora, search_civitai_lora_json,
11
  preset_quality, preset_styles, process_style_prompt)
 
 
 
12
  # Translator
13
  from llmdolphin import (dolphin_respond_auto, dolphin_parse_simple,
14
  get_llm_formats, get_dolphin_model_format, get_dolphin_models,
@@ -41,10 +41,13 @@ css = """
41
  #col-container { margin: 0 auto; !important; }
42
  #result { max-width: 520px; max-height: 520px; margin: 0px auto; !important; }
43
  .lora { min-width: 480px; !important; }
44
- #model-info { text-align: center; !important; }
 
 
45
  """
46
 
47
  with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, 3600)) as demo:
 
48
  with gr.Tab("Image Generator"):
49
  with gr.Column(elem_id="col-container"):
50
  with gr.Row():
@@ -78,7 +81,7 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60,
78
  model_name = gr.Dropdown(label="Model", info="You can enter a huggingface model repo_id to want to use.",
79
  choices=get_diffusers_model_list(), value=get_diffusers_model_list()[0],
80
  allow_custom_value=True, interactive=True, min_width=320)
81
- model_info = gr.Markdown(elem_id="model-info")
82
  with gr.Column(scale=1):
83
  model_detail = gr.Checkbox(label="Show detail of model in list", value=False)
84
 
@@ -140,16 +143,19 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60,
140
  with gr.Accordion("From URL", open=True, visible=True):
141
  with gr.Row():
142
  lora_search_civitai_basemodel = gr.CheckboxGroup(label="Search LoRA for", choices=["Pony", "SD 1.5", "SDXL 1.0", "Flux.1 D", "Flux.1 S"], value=["Pony", "SDXL 1.0"])
143
- lora_search_civitai_sort = gr.Radio(label="Sort", choices=["Highest Rated", "Most Downloaded", "Newest"], value="Highest Rated")
144
- lora_search_civitai_period = gr.Radio(label="Period", choices=["AllTime", "Year", "Month", "Week", "Day"], value="AllTime")
145
  with gr.Row():
146
  lora_search_civitai_query = gr.Textbox(label="Query", placeholder="oomuro sakurako...", lines=1)
147
- lora_search_civitai_tag = gr.Textbox(label="Tag", lines=1)
148
- lora_search_civitai_submit = gr.Button("Search on Civitai")
 
149
  with gr.Row():
150
- lora_search_civitai_result = gr.Dropdown(label="Search Results", choices=[("", "")], value="", allow_custom_value=True, visible=False)
151
  lora_search_civitai_json = gr.JSON(value={}, visible=False)
152
  lora_search_civitai_desc = gr.Markdown(value="", visible=False)
 
 
 
153
  lora_download_url = gr.Textbox(label="LoRA URL", placeholder="https://civitai.com/api/download/models/28907", lines=1)
154
  lora_download = gr.Button("Get and set LoRA and apply to prompt")
155
 
@@ -252,10 +258,10 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60,
252
  lora5_copy.click(apply_lora_prompt, [prompt, lora5_info], [prompt], queue=False, show_api=False)
253
 
254
  gr.on(
255
- triggers=[lora_search_civitai_submit.click, lora_search_civitai_query.submit, lora_search_civitai_tag.submit],
256
  fn=search_civitai_lora,
257
- inputs=[lora_search_civitai_query, lora_search_civitai_basemodel, lora_search_civitai_sort, lora_search_civitai_period, lora_search_civitai_tag],
258
- outputs=[lora_search_civitai_result, lora_search_civitai_desc, lora_search_civitai_submit, lora_search_civitai_query],
259
  scroll_to_output=True,
260
  queue=True,
261
  show_api=False,
@@ -271,6 +277,7 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60,
271
  queue=True,
272
  show_api=False,
273
  )
 
274
 
275
  recom_prompt.change(enable_model_recom_prompt, [recom_prompt], [recom_prompt], queue=False, show_api=False)
276
  gr.on(
@@ -384,6 +391,37 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60,
384
  copy_prompt_btn.click(gradio_copy_prompt, inputs=[output_text], outputs=[prompt], show_api=False)
385
  copy_prompt_btn_pony.click(gradio_copy_prompt, inputs=[output_text_pony], outputs=[prompt], show_api=False)
386
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
  gr.LoginButton()
388
  gr.DuplicateButton(value="Duplicate Space for private use (This demo does not work on CPU. Requires GPU Space)")
389
 
 
4
 
5
  # DiffuseCraft
6
  from dc import (infer, _infer, pass_result, get_diffusers_model_list, get_samplers,
7
+ get_vaes, enable_model_recom_prompt, enable_diffusers_model_detail, extract_exif_data, esrgan_upscale, UPSCALER_KEYS,
 
 
 
8
  preset_quality, preset_styles, process_style_prompt)
9
+ from modutils import (get_t2i_model_info, get_all_lora_tupled_list, update_loras,
10
+ apply_lora_prompt, download_my_lora, search_civitai_lora, update_civitai_selection, get_civitai_tag, CIVITAI_SORT, CIVITAI_PERIOD,
11
+ select_civitai_lora, search_civitai_lora_json)
12
  # Translator
13
  from llmdolphin import (dolphin_respond_auto, dolphin_parse_simple,
14
  get_llm_formats, get_dolphin_model_format, get_dolphin_models,
 
41
  #col-container { margin: 0 auto; !important; }
42
  #result { max-width: 520px; max-height: 520px; margin: 0px auto; !important; }
43
  .lora { min-width: 480px; !important; }
44
+ .title { font-size: 3em; align-items: center; text-align: center; }
45
+ .info { align-items: center; text-align: center; }
46
+ .desc [src$='#float'] { float: right; margin: 20px; }
47
  """
48
 
49
  with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, 3600)) as demo:
50
+ gr.Markdown("# Votepurchase Multiple Model", elem_classes="title")
51
  with gr.Tab("Image Generator"):
52
  with gr.Column(elem_id="col-container"):
53
  with gr.Row():
 
81
  model_name = gr.Dropdown(label="Model", info="You can enter a huggingface model repo_id to want to use.",
82
  choices=get_diffusers_model_list(), value=get_diffusers_model_list()[0],
83
  allow_custom_value=True, interactive=True, min_width=320)
84
+ model_info = gr.Markdown(elem_classes="info")
85
  with gr.Column(scale=1):
86
  model_detail = gr.Checkbox(label="Show detail of model in list", value=False)
87
 
 
143
  with gr.Accordion("From URL", open=True, visible=True):
144
  with gr.Row():
145
  lora_search_civitai_basemodel = gr.CheckboxGroup(label="Search LoRA for", choices=["Pony", "SD 1.5", "SDXL 1.0", "Flux.1 D", "Flux.1 S"], value=["Pony", "SDXL 1.0"])
146
+ lora_search_civitai_sort = gr.Radio(label="Sort", choices=CIVITAI_SORT, value="Highest Rated")
147
+ lora_search_civitai_period = gr.Radio(label="Period", choices=CIVITAI_PERIOD, value="AllTime")
148
  with gr.Row():
149
  lora_search_civitai_query = gr.Textbox(label="Query", placeholder="oomuro sakurako...", lines=1)
150
+ lora_search_civitai_tag = gr.Dropdown(label="Tag", choices=get_civitai_tag(), value=get_civitai_tag()[0], allow_custom_value=True)
151
+ lora_search_civitai_user = gr.Textbox(label="Username", lines=1)
152
+ lora_search_civitai_submit = gr.Button("Search on Civitai")
153
  with gr.Row():
 
154
  lora_search_civitai_json = gr.JSON(value={}, visible=False)
155
  lora_search_civitai_desc = gr.Markdown(value="", visible=False)
156
+ with gr.Accordion("Select from Gallery", open=False):
157
+ lora_search_civitai_gallery = gr.Gallery([], label="Results", allow_preview=False, columns=5, elem_id="gallery", show_share_button=False, interactive=False)
158
+ lora_search_civitai_result = gr.Dropdown(label="Search Results", choices=[("", "")], value="", allow_custom_value=True, visible=False)
159
  lora_download_url = gr.Textbox(label="LoRA URL", placeholder="https://civitai.com/api/download/models/28907", lines=1)
160
  lora_download = gr.Button("Get and set LoRA and apply to prompt")
161
 
 
258
  lora5_copy.click(apply_lora_prompt, [prompt, lora5_info], [prompt], queue=False, show_api=False)
259
 
260
  gr.on(
261
+ triggers=[lora_search_civitai_submit.click, lora_search_civitai_query.submit],
262
  fn=search_civitai_lora,
263
+ inputs=[lora_search_civitai_query, lora_search_civitai_basemodel, lora_search_civitai_sort, lora_search_civitai_period, lora_search_civitai_tag, lora_search_civitai_user, lora_search_civitai_gallery],
264
+ outputs=[lora_search_civitai_result, lora_search_civitai_desc, lora_search_civitai_submit, lora_search_civitai_query, lora_search_civitai_gallery],
265
  scroll_to_output=True,
266
  queue=True,
267
  show_api=False,
 
277
  queue=True,
278
  show_api=False,
279
  )
280
+ lora_search_civitai_gallery.select(update_civitai_selection, None, [lora_search_civitai_result], queue=False, show_api=False)
281
 
282
  recom_prompt.change(enable_model_recom_prompt, [recom_prompt], [recom_prompt], queue=False, show_api=False)
283
  gr.on(
 
391
  copy_prompt_btn.click(gradio_copy_prompt, inputs=[output_text], outputs=[prompt], show_api=False)
392
  copy_prompt_btn_pony.click(gradio_copy_prompt, inputs=[output_text_pony], outputs=[prompt], show_api=False)
393
 
394
+ with gr.Tab("PNG Info"):
395
+ with gr.Row():
396
+ with gr.Column():
397
+ image_metadata = gr.Image(label="Image with metadata", type="pil", sources=["upload"])
398
+
399
+ with gr.Column():
400
+ result_metadata = gr.Textbox(label="Metadata", show_label=True, show_copy_button=True, interactive=False, container=True, max_lines=99)
401
+
402
+ image_metadata.change(
403
+ fn=extract_exif_data,
404
+ inputs=[image_metadata],
405
+ outputs=[result_metadata],
406
+ )
407
+
408
+ with gr.Tab("Upscaler"):
409
+ with gr.Row():
410
+ with gr.Column():
411
+ image_up_tab = gr.Image(label="Image", type="pil", sources=["upload"])
412
+ upscaler_tab = gr.Dropdown(label="Upscaler", choices=UPSCALER_KEYS[9:], value=UPSCALER_KEYS[11])
413
+ upscaler_size_tab = gr.Slider(minimum=1., maximum=4., step=0.1, value=1.1, label="Upscale by")
414
+ generate_button_up_tab = gr.Button(value="START UPSCALE", variant="primary")
415
+
416
+ with gr.Column():
417
+ result_up_tab = gr.Image(label="Result", type="pil", interactive=False, format="png")
418
+
419
+ generate_button_up_tab.click(
420
+ fn=esrgan_upscale,
421
+ inputs=[image_up_tab, upscaler_tab, upscaler_size_tab],
422
+ outputs=[result_up_tab],
423
+ )
424
+
425
  gr.LoginButton()
426
  gr.DuplicateButton(value="Duplicate Space for private use (This demo does not work on CPU. Requires GPU Space)")
427
 
dc.py CHANGED
@@ -22,7 +22,12 @@ from stablepy import (
22
  SDXL_TASKS,
23
  )
24
  import time
 
25
  #import urllib.parse
 
 
 
 
26
  import gradio as gr
27
  import logging
28
  logging.getLogger("diffusers").setLevel(logging.ERROR)
@@ -52,14 +57,14 @@ PREPROCESSOR_CONTROLNET = {
52
  ],
53
  "scribble": [
54
  "HED",
55
- "Pidinet",
56
  "None",
57
  ],
58
  "softedge": [
59
- "Pidinet",
60
  "HED",
61
  "HED safe",
62
- "Pidinet safe",
63
  "None",
64
  ],
65
  "segmentation": [
@@ -173,34 +178,6 @@ UPSCALER_DICT_GUI = {
173
 
174
  UPSCALER_KEYS = list(UPSCALER_DICT_GUI.keys())
175
 
176
- def download_things(directory, url, hf_token="", civitai_api_key=""):
177
- url = url.strip()
178
-
179
- if "drive.google.com" in url:
180
- original_dir = os.getcwd()
181
- os.chdir(directory)
182
- os.system(f"gdown --fuzzy {url}")
183
- os.chdir(original_dir)
184
- elif "huggingface.co" in url:
185
- url = url.replace("?download=true", "")
186
- # url = urllib.parse.quote(url, safe=':/') # fix encoding
187
- if "/blob/" in url:
188
- url = url.replace("/blob/", "/resolve/")
189
- user_header = f'"Authorization: Bearer {hf_token}"'
190
- if hf_token:
191
- os.system(f"aria2c --console-log-level=error --summary-interval=10 --header={user_header} -c -x 16 -k 1M -s 16 {url} -d {directory} -o {url.split('/')[-1]}")
192
- else:
193
- os.system(f"aria2c --optimize-concurrent-downloads --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 {url} -d {directory} -o {url.split('/')[-1]}")
194
- elif "civitai.com" in url:
195
- if "?" in url:
196
- url = url.split("?")[0]
197
- if civitai_api_key:
198
- url = url + f"?token={civitai_api_key}"
199
- os.system(f"aria2c --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 -d {directory} {url}")
200
- else:
201
- print("\033[91mYou need an API key to download Civitai models.\033[0m")
202
- else:
203
- os.system(f"aria2c --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 -d {directory} {url}")
204
 
205
  def get_model_list(directory_path):
206
  model_list = []
@@ -217,7 +194,7 @@ def get_model_list(directory_path):
217
 
218
  ## BEGIN MOD
219
  from modutils import (to_list, list_uniq, list_sub, get_model_id_list, get_tupled_embed_list,
220
- get_tupled_model_list, get_lora_model_list, download_private_repo)
221
 
222
  # - **Download Models**
223
  download_model = ", ".join(download_model_list)
@@ -295,18 +272,21 @@ def extract_parameters(input_string):
295
  input_string = input_string.replace("\n", "")
296
 
297
  if "Negative prompt:" not in input_string:
298
- print("Negative prompt not detected")
299
- parameters["prompt"] = input_string
300
- return parameters
 
 
 
301
 
302
  parm = input_string.split("Negative prompt:")
303
- parameters["prompt"] = parm[0]
304
  if "Steps:" not in parm[1]:
305
  print("Steps not detected")
306
- parameters["neg_prompt"] = parm[1]
307
  return parameters
308
  parm = parm[1].split("Steps:")
309
- parameters["neg_prompt"] = parm[0]
310
  input_string = "Steps:" + parm[1]
311
 
312
  # Extracting Steps
@@ -355,12 +335,13 @@ class GuiSD:
355
  retain_task_model_in_cache=False,
356
  device="cpu",
357
  )
358
- self.model.device = torch.device("cpu") #
 
359
 
360
  def infer_short(self, model, pipe_params, progress=gr.Progress(track_tqdm=True)):
361
- progress(0, desc="Start inference...")
362
  images, seed, image_list, metadata = model(**pipe_params)
363
- progress(1, desc="Inference completed.")
364
  if not isinstance(images, list): images = [images]
365
  images = save_images(images, metadata)
366
  img = []
@@ -498,9 +479,9 @@ class GuiSD:
498
  mode_ip2,
499
  scale_ip2,
500
  pag_scale,
501
- progress=gr.Progress(track_tqdm=True),
502
  ):
503
- progress(0, desc="Preparing inference...")
504
 
505
  vae_model = vae_model if vae_model != "None" else None
506
  loras_list = [lora1, lora2, lora3, lora4, lora5]
@@ -608,15 +589,15 @@ class GuiSD:
608
  "high_threshold": high_threshold,
609
  "value_threshold": value_threshold,
610
  "distance_threshold": distance_threshold,
611
- "lora_A": lora1 if lora1 != "None" else None,
612
  "lora_scale_A": lora_scale1,
613
- "lora_B": lora2 if lora2 != "None" else None,
614
  "lora_scale_B": lora_scale2,
615
- "lora_C": lora3 if lora3 != "None" else None,
616
  "lora_scale_C": lora_scale3,
617
- "lora_D": lora4 if lora4 != "None" else None,
618
  "lora_scale_D": lora_scale4,
619
- "lora_E": lora5 if lora5 != "None" else None,
620
  "lora_scale_E": lora_scale5,
621
  ## BEGIN MOD
622
  "textual_inversion": get_embed_list(self.model.class_name) if textual_inversion else [],
@@ -666,21 +647,21 @@ class GuiSD:
666
  }
667
 
668
  self.model.device = torch.device("cuda:0")
669
- if hasattr(self.model.pipe, "transformer") and loras_list != ["None"] * 5:
670
  self.model.pipe.transformer.to(self.model.device)
671
  print("transformer to cuda")
672
 
673
- progress(1, desc="Inference preparation completed. Starting inference...")
674
 
675
  info_state = "" # for yield version
676
- return self.infer_short(self.model, pipe_params, progress), info_state
677
  ## END MOD
678
 
679
  def dynamic_gpu_duration(func, duration, *args):
680
 
681
  @spaces.GPU(duration=duration)
682
  def wrapped_func():
683
- yield from func(*args)
684
 
685
  return wrapped_func()
686
 
@@ -706,8 +687,8 @@ def sd_gen_generate_pipeline(*args):
706
  if load_lora_cpu:
707
  msg_load_lora = "Updating LoRAs in CPU (Slow but saves GPU usage)..."
708
 
709
- if lora_list != sd_gen.model.lora_memory and lora_list != [None] * 5:
710
- yield None, msg_load_lora
711
 
712
  # Load lora in CPU
713
  if load_lora_cpu:
@@ -741,7 +722,7 @@ def sd_gen_generate_pipeline(*args):
741
 
742
  start_time = time.time()
743
 
744
- yield from dynamic_gpu_duration(
745
  sd_gen.generate_pipeline,
746
  gpu_duration_arg,
747
  *generation_args,
@@ -757,6 +738,42 @@ def sd_gen_generate_pipeline(*args):
757
  gr.Info(msg_task_complete)
758
  print(msg_task_complete)
759
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
760
 
761
  dynamic_gpu_duration.zerogpu = True
762
  sd_gen_generate_pipeline.zerogpu = True
@@ -805,9 +822,12 @@ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance
805
  lora3 = get_valid_lora_path(lora3)
806
  lora4 = get_valid_lora_path(lora4)
807
  lora5 = get_valid_lora_path(lora5)
808
- progress(1, desc="Preparation completed. Starting inference preparation...")
809
 
810
- sd_gen.load_new_model(model_name, vae, TASK_MODEL_LIST[0], progress)
 
 
 
811
  images, info = sd_gen_generate_pipeline(prompt, negative_prompt, 1, num_inference_steps,
812
  guidance_scale, True, generator, lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt,
813
  lora4, lora4_wt, lora5, lora5_wt, sampler,
@@ -820,7 +840,6 @@ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance
820
  True, None, None, "plus_face", "original", 0.7, None, None, "base", "style", 0.7, 0.0,
821
  load_lora_cpu, verbose_info, gpu_duration
822
  )
823
-
824
  progress(1, desc="Inference completed.")
825
  output_image = images[0][0] if images else None
826
 
@@ -1023,7 +1042,7 @@ def download_lora(dl_urls: str):
1023
  for url in [url.strip() for url in dl_urls.split(',')]:
1024
  local_path = f"{directory_loras}/{url.split('/')[-1]}"
1025
  if not Path(local_path).exists():
1026
- download_things(directory_loras, url, hf_token, CIVITAI_API_KEY)
1027
  urls.append(url)
1028
  after = get_local_model_list(directory_loras)
1029
  new_files = list_sub(after, before)
 
22
  SDXL_TASKS,
23
  )
24
  import time
25
+ from PIL import ImageFile
26
  #import urllib.parse
27
+
28
+ ImageFile.LOAD_TRUNCATED_IMAGES = True
29
+ print(os.getenv("SPACES_ZERO_GPU"))
30
+
31
  import gradio as gr
32
  import logging
33
  logging.getLogger("diffusers").setLevel(logging.ERROR)
 
57
  ],
58
  "scribble": [
59
  "HED",
60
+ "PidiNet",
61
  "None",
62
  ],
63
  "softedge": [
64
+ "PidiNet",
65
  "HED",
66
  "HED safe",
67
+ "PidiNet safe",
68
  "None",
69
  ],
70
  "segmentation": [
 
178
 
179
  UPSCALER_KEYS = list(UPSCALER_DICT_GUI.keys())
180
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
 
182
  def get_model_list(directory_path):
183
  model_list = []
 
194
 
195
  ## BEGIN MOD
196
  from modutils import (to_list, list_uniq, list_sub, get_model_id_list, get_tupled_embed_list,
197
+ get_tupled_model_list, get_lora_model_list, download_private_repo, download_things)
198
 
199
  # - **Download Models**
200
  download_model = ", ".join(download_model_list)
 
272
  input_string = input_string.replace("\n", "")
273
 
274
  if "Negative prompt:" not in input_string:
275
+ if "Steps:" in input_string:
276
+ input_string = input_string.replace("Steps:", "Negative prompt: Steps:")
277
+ else:
278
+ print("Invalid metadata")
279
+ parameters["prompt"] = input_string
280
+ return parameters
281
 
282
  parm = input_string.split("Negative prompt:")
283
+ parameters["prompt"] = parm[0].strip()
284
  if "Steps:" not in parm[1]:
285
  print("Steps not detected")
286
+ parameters["neg_prompt"] = parm[1].strip()
287
  return parameters
288
  parm = parm[1].split("Steps:")
289
+ parameters["neg_prompt"] = parm[0].strip()
290
  input_string = "Steps:" + parm[1]
291
 
292
  # Extracting Steps
 
335
  retain_task_model_in_cache=False,
336
  device="cpu",
337
  )
338
+ self.model.load_beta_styles()
339
+ #self.model.device = torch.device("cpu") #
340
 
341
  def infer_short(self, model, pipe_params, progress=gr.Progress(track_tqdm=True)):
342
+ #progress(0, desc="Start inference...")
343
  images, seed, image_list, metadata = model(**pipe_params)
344
+ #progress(1, desc="Inference completed.")
345
  if not isinstance(images, list): images = [images]
346
  images = save_images(images, metadata)
347
  img = []
 
479
  mode_ip2,
480
  scale_ip2,
481
  pag_scale,
482
+ #progress=gr.Progress(track_tqdm=True),
483
  ):
484
+ #progress(0, desc="Preparing inference...")
485
 
486
  vae_model = vae_model if vae_model != "None" else None
487
  loras_list = [lora1, lora2, lora3, lora4, lora5]
 
589
  "high_threshold": high_threshold,
590
  "value_threshold": value_threshold,
591
  "distance_threshold": distance_threshold,
592
+ "lora_A": lora1 if lora1 != "None" and lora1 != "" else None,
593
  "lora_scale_A": lora_scale1,
594
+ "lora_B": lora2 if lora2 != "None" and lora2 != "" else None,
595
  "lora_scale_B": lora_scale2,
596
+ "lora_C": lora3 if lora3 != "None" and lora3 != "" else None,
597
  "lora_scale_C": lora_scale3,
598
+ "lora_D": lora4 if lora4 != "None" and lora4 != "" else None,
599
  "lora_scale_D": lora_scale4,
600
+ "lora_E": lora5 if lora5 != "None" and lora5 != "" else None,
601
  "lora_scale_E": lora_scale5,
602
  ## BEGIN MOD
603
  "textual_inversion": get_embed_list(self.model.class_name) if textual_inversion else [],
 
647
  }
648
 
649
  self.model.device = torch.device("cuda:0")
650
+ if hasattr(self.model.pipe, "transformer") and loras_list != ["None"] * 5 and loras_list != [""] * 5:
651
  self.model.pipe.transformer.to(self.model.device)
652
  print("transformer to cuda")
653
 
654
+ #progress(1, desc="Inference preparation completed. Starting inference...")
655
 
656
  info_state = "" # for yield version
657
+ return self.infer_short(self.model, pipe_params), info_state
658
  ## END MOD
659
 
660
  def dynamic_gpu_duration(func, duration, *args):
661
 
662
  @spaces.GPU(duration=duration)
663
  def wrapped_func():
664
+ return func(*args)
665
 
666
  return wrapped_func()
667
 
 
687
  if load_lora_cpu:
688
  msg_load_lora = "Updating LoRAs in CPU (Slow but saves GPU usage)..."
689
 
690
+ #if lora_list != sd_gen.model.lora_memory and lora_list != [None] * 5:
691
+ # yield None, msg_load_lora
692
 
693
  # Load lora in CPU
694
  if load_lora_cpu:
 
722
 
723
  start_time = time.time()
724
 
725
+ return dynamic_gpu_duration(
726
  sd_gen.generate_pipeline,
727
  gpu_duration_arg,
728
  *generation_args,
 
738
  gr.Info(msg_task_complete)
739
  print(msg_task_complete)
740
 
741
+ def extract_exif_data(image):
742
+ if image is None: return ""
743
+
744
+ try:
745
+ metadata_keys = ['parameters', 'metadata', 'prompt', 'Comment']
746
+
747
+ for key in metadata_keys:
748
+ if key in image.info:
749
+ return image.info[key]
750
+
751
+ return str(image.info)
752
+
753
+ except Exception as e:
754
+ return f"Error extracting metadata: {str(e)}"
755
+
756
+ @spaces.GPU(duration=20)
757
+ def esrgan_upscale(image, upscaler_name, upscaler_size):
758
+ if image is None: return None
759
+
760
+ from stablepy.diffusers_vanilla.utils import save_pil_image_with_metadata
761
+ from stablepy import UpscalerESRGAN
762
+
763
+ exif_image = extract_exif_data(image)
764
+
765
+ url_upscaler = UPSCALER_DICT_GUI[upscaler_name]
766
+ directory_upscalers = 'upscalers'
767
+ os.makedirs(directory_upscalers, exist_ok=True)
768
+ if not os.path.exists(f"./upscalers/{url_upscaler.split('/')[-1]}"):
769
+ download_things(directory_upscalers, url_upscaler, HF_TOKEN)
770
+
771
+ scaler_beta = UpscalerESRGAN(0, 0)
772
+ image_up = scaler_beta.upscale(image, upscaler_size, f"./upscalers/{url_upscaler.split('/')[-1]}")
773
+
774
+ image_path = save_pil_image_with_metadata(image_up, f'{os.getcwd()}/up_images', exif_image)
775
+
776
+ return image_path
777
 
778
  dynamic_gpu_duration.zerogpu = True
779
  sd_gen_generate_pipeline.zerogpu = True
 
822
  lora3 = get_valid_lora_path(lora3)
823
  lora4 = get_valid_lora_path(lora4)
824
  lora5 = get_valid_lora_path(lora5)
825
+ progress(1, desc="Preparation completed. Starting inference...")
826
 
827
+ progress(0, desc="Loading model...")
828
+ sd_gen.load_new_model(model_name, vae, TASK_MODEL_LIST[0])
829
+ progress(1, desc="Model loaded.")
830
+ progress(0, desc="Starting Inference...")
831
  images, info = sd_gen_generate_pipeline(prompt, negative_prompt, 1, num_inference_steps,
832
  guidance_scale, True, generator, lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt,
833
  lora4, lora4_wt, lora5, lora5_wt, sampler,
 
840
  True, None, None, "plus_face", "original", 0.7, None, None, "base", "style", 0.7, 0.0,
841
  load_lora_cpu, verbose_info, gpu_duration
842
  )
 
843
  progress(1, desc="Inference completed.")
844
  output_image = images[0][0] if images else None
845
 
 
1042
  for url in [url.strip() for url in dl_urls.split(',')]:
1043
  local_path = f"{directory_loras}/{url.split('/')[-1]}"
1044
  if not Path(local_path).exists():
1045
+ download_things(directory_loras, url, HF_TOKEN, CIVITAI_API_KEY)
1046
  urls.append(url)
1047
  after = get_local_model_list(directory_loras)
1048
  new_files = list_sub(after, before)
env.py CHANGED
@@ -39,6 +39,11 @@ load_diffusers_format_model = [
39
  'votepurchase/juggernautXL_hyper_8step_sfw',
40
  'votepurchase/ponyRealism_v21MainVAE',
41
  'stabilityai/stable-diffusion-xl-base-1.0',
 
 
 
 
 
42
  'cagliostrolab/animagine-xl-3.1',
43
  'John6666/epicrealism-xl-v8kiss-sdxl',
44
  'misri/epicrealismXL_v7FinalDestination',
@@ -54,15 +59,30 @@ load_diffusers_format_model = [
54
  'WhiteAiZ/autismmixSDXL_autismmixConfetti_diffusers',
55
  'kitty7779/ponyDiffusionV6XL',
56
  'GraydientPlatformAPI/aniverse-pony',
 
 
57
  'John6666/mistoon-anime-ponyalpha-sdxl',
 
 
58
  'John6666/ebara-mfcg-pony-mix-v12-sdxl',
59
  'John6666/t-ponynai3-v51-sdxl',
 
 
60
  'John6666/mala-anime-mix-nsfw-pony-xl-v5-sdxl',
61
  'John6666/wai-real-mix-v11-sdxl',
 
 
 
 
 
62
  'John6666/cyberrealistic-pony-v63-sdxl',
 
63
  'GraydientPlatformAPI/realcartoon-pony-diffusion',
64
  'John6666/nova-anime-xl-pony-v5-sdxl',
65
  'John6666/autismmix-sdxl-autismmix-pony-sdxl',
 
 
 
66
  'yodayo-ai/kivotos-xl-2.0',
67
  'yodayo-ai/holodayo-xl-2.1',
68
  'yodayo-ai/clandestine-xl-1.0',
@@ -81,6 +101,8 @@ load_diffusers_format_model = [
81
  'GraydientPlatformAPI/picx-real',
82
  'GraydientPlatformAPI/perfectworld6',
83
  'emilianJR/epiCRealism',
 
 
84
  'Meina/MeinaMix_V11',
85
  'Meina/MeinaUnreal_V5',
86
  'Meina/MeinaPastel_V7',
@@ -92,8 +114,11 @@ load_diffusers_format_model = [
92
  'KBlueLeaf/Kohaku-XL-Zeta',
93
  'kayfahaarukku/UrangDiffusion-1.4',
94
  'Eugeoter/artiwaifu-diffusion-2.0',
 
 
95
  'Raelina/Rae-Diffusion-XL-V2',
96
  'Raelina/Raemu-XL-V4',
 
97
  "camenduru/FLUX.1-dev-diffusers",
98
  "black-forest-labs/FLUX.1-schnell",
99
  "sayakpaul/FLUX.1-merged",
 
39
  'votepurchase/juggernautXL_hyper_8step_sfw',
40
  'votepurchase/ponyRealism_v21MainVAE',
41
  'stabilityai/stable-diffusion-xl-base-1.0',
42
+ 'John6666/blue-pencil-flux1-v021-fp8-flux',
43
+ 'John6666/wai-ani-flux-v10forfp8-fp8-flux',
44
+ 'John6666/xe-anime-flux-v04-fp8-flux',
45
+ 'John6666/lyh-anime-flux-v2a1-fp8-flux',
46
+ 'John6666/carnival-unchained-v10-fp8-flux',
47
  'cagliostrolab/animagine-xl-3.1',
48
  'John6666/epicrealism-xl-v8kiss-sdxl',
49
  'misri/epicrealismXL_v7FinalDestination',
 
59
  'WhiteAiZ/autismmixSDXL_autismmixConfetti_diffusers',
60
  'kitty7779/ponyDiffusionV6XL',
61
  'GraydientPlatformAPI/aniverse-pony',
62
+ 'John6666/ras-real-anime-screencap-v1-sdxl',
63
+ 'John6666/duchaiten-pony-xl-no-score-v60-sdxl',
64
  'John6666/mistoon-anime-ponyalpha-sdxl',
65
+ 'John6666/3x3x3mixxl-v2-sdxl',
66
+ 'John6666/3x3x3mixxl-3dv01-sdxl',
67
  'John6666/ebara-mfcg-pony-mix-v12-sdxl',
68
  'John6666/t-ponynai3-v51-sdxl',
69
+ 'John6666/t-ponynai3-v65-sdxl',
70
+ 'John6666/prefect-pony-xl-v3-sdxl',
71
  'John6666/mala-anime-mix-nsfw-pony-xl-v5-sdxl',
72
  'John6666/wai-real-mix-v11-sdxl',
73
+ 'John6666/wai-c-v6-sdxl',
74
+ 'John6666/iniverse-mix-xl-sfwnsfw-pony-guofeng-v43-sdxl',
75
+ 'John6666/photo-realistic-pony-v5-sdxl',
76
+ 'John6666/pony-realism-v21main-sdxl',
77
+ 'John6666/pony-realism-v22main-sdxl',
78
  'John6666/cyberrealistic-pony-v63-sdxl',
79
+ 'John6666/cyberrealistic-pony-v64-sdxl',
80
  'GraydientPlatformAPI/realcartoon-pony-diffusion',
81
  'John6666/nova-anime-xl-pony-v5-sdxl',
82
  'John6666/autismmix-sdxl-autismmix-pony-sdxl',
83
+ 'John6666/aimz-dream-real-pony-mix-v3-sdxl',
84
+ 'John6666/duchaiten-pony-real-v11fix-sdxl',
85
+ 'John6666/duchaiten-pony-real-v20-sdxl',
86
  'yodayo-ai/kivotos-xl-2.0',
87
  'yodayo-ai/holodayo-xl-2.1',
88
  'yodayo-ai/clandestine-xl-1.0',
 
101
  'GraydientPlatformAPI/picx-real',
102
  'GraydientPlatformAPI/perfectworld6',
103
  'emilianJR/epiCRealism',
104
+ 'votepurchase/counterfeitV30_v30',
105
+ 'votepurchase/ChilloutMix',
106
  'Meina/MeinaMix_V11',
107
  'Meina/MeinaUnreal_V5',
108
  'Meina/MeinaPastel_V7',
 
114
  'KBlueLeaf/Kohaku-XL-Zeta',
115
  'kayfahaarukku/UrangDiffusion-1.4',
116
  'Eugeoter/artiwaifu-diffusion-2.0',
117
+ 'comin/IterComp',
118
+ 'OnomaAIResearch/Illustrious-xl-early-release-v0',
119
  'Raelina/Rae-Diffusion-XL-V2',
120
  'Raelina/Raemu-XL-V4',
121
+ 'Raelina/Raehoshi-illust-XL',
122
  "camenduru/FLUX.1-dev-diffusers",
123
  "black-forest-labs/FLUX.1-schnell",
124
  "sayakpaul/FLUX.1-merged",
llmdolphin.py CHANGED
@@ -20,9 +20,11 @@ llm_models = {
20
  #"": ["", MessagesFormatterType.PHI_3],
21
  "mn-12b-lyra-v2a1-q5_k_m.gguf": ["HalleyStarbun/MN-12B-Lyra-v2a1-Q5_K_M-GGUF", MessagesFormatterType.CHATML],
22
  "L3-8B-Tamamo-v1.i1-Q5_K_M.gguf": ["mradermacher/L3-8B-Tamamo-v1-i1-GGUF", MessagesFormatterType.LLAMA_3],
 
23
  "MN-12B-Mag-Mell-Q4_K_M.gguf": ["inflatebot/MN-12B-Mag-Mell-R1-GGUF", MessagesFormatterType.MISTRAL],
24
  "Qwen2.5-14B-Instruct-Q4_K_M.gguf": ["bartowski/Qwen2.5-14B-Instruct-GGUF", MessagesFormatterType.OPEN_CHAT],
25
  "Instant-RP-Noodles-12B-v1.3.Q4_K_M.gguf": ["mradermacher/Instant-RP-Noodles-12B-v1.3-GGUF", MessagesFormatterType.MISTRAL],
 
26
  "MN-12B-Lyra-v4-Q4_K_M.gguf": ["bartowski/MN-12B-Lyra-v4-GGUF", MessagesFormatterType.CHATML],
27
  "Lyra4-Gutenberg-12B.Q4_K_M.gguf": ["mradermacher/Lyra4-Gutenberg-12B-GGUF", MessagesFormatterType.CHATML],
28
  "Llama-3.1-8B-EZO-1.1-it.Q5_K_M.gguf": ["mradermacher/Llama-3.1-8B-EZO-1.1-it-GGUF", MessagesFormatterType.MISTRAL],
@@ -55,9 +57,181 @@ llm_models = {
55
  "mn-maghin-12b-q6_k.gguf": ["rityak/MN-Maghin-12B-Q6_K-GGUF", MessagesFormatterType.MISTRAL],
56
  "qwen2.5-lumen-14b-q4_k_m.gguf": ["Lambent/Qwen2.5-Lumen-14B-Q4_K_M-GGUF", MessagesFormatterType.OPEN_CHAT],
57
  "Qwen2.5-14B_Uncensored_Instruct.Q4_K_M.gguf": ["mradermacher/Qwen2.5-14B_Uncensored_Instruct-GGUF", MessagesFormatterType.OPEN_CHAT],
 
 
 
58
  "Trinas_Nectar-8B-model_stock.i1-Q4_K_M.gguf": ["mradermacher/Trinas_Nectar-8B-model_stock-i1-GGUF", MessagesFormatterType.MISTRAL],
 
 
59
  "ChatWaifu_v1.4.Q5_K_M.gguf": ["mradermacher/ChatWaifu_v1.4-GGUF", MessagesFormatterType.MISTRAL],
60
  "ChatWaifu_v1.3.1.Q4_K_M.gguf": ["mradermacher/ChatWaifu_v1.3.1-GGUF", MessagesFormatterType.MISTRAL],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  "Collaiborator-MEDLLM-Llama-3-8B-v1.i1-Q5_K_M.gguf": ["mradermacher/Collaiborator-MEDLLM-Llama-3-8B-v1-i1-GGUF", MessagesFormatterType.LLAMA_3],
62
  "Chili_Dog_8B.i1-Q4_K_M.gguf": ["mradermacher/Chili_Dog_8B-i1-GGUF", MessagesFormatterType.CHATML],
63
  "astra-v1-12b-q5_k_m.gguf": ["P0x0/Astra-v1-12B-GGUF", MessagesFormatterType.MISTRAL],
@@ -585,6 +759,8 @@ llm_models = {
585
  "tifa-7b-qwen2-v0.1.q4_k_m.gguf": ["Tifa-RP/Tifa-7B-Qwen2-v0.1-GGUF", MessagesFormatterType.OPEN_CHAT],
586
  "Holland-Magnum-Merge-R2.i1-Q5_K_M.gguf": ["mradermacher/Holland-Magnum-Merge-R2-i1-GGUF", MessagesFormatterType.LLAMA_3],
587
  "Oumuamua-7b-RP_Q5_K_M.gguf": ["Aratako/Oumuamua-7b-RP-GGUF", MessagesFormatterType.MISTRAL],
 
 
588
  "Berghof-NSFW-7B.Q5_K_M.gguf": ["QuantFactory/Berghof-NSFW-7B-GGUF", MessagesFormatterType.MISTRAL],
589
  "Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf": ["dddump/Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW-gguf", MessagesFormatterType.VICUNA],
590
  "ChatWaifu_v1.2.1.Q5_K_M.gguf": ["mradermacher/ChatWaifu_v1.2.1-GGUF", MessagesFormatterType.MISTRAL],
 
20
  #"": ["", MessagesFormatterType.PHI_3],
21
  "mn-12b-lyra-v2a1-q5_k_m.gguf": ["HalleyStarbun/MN-12B-Lyra-v2a1-Q5_K_M-GGUF", MessagesFormatterType.CHATML],
22
  "L3-8B-Tamamo-v1.i1-Q5_K_M.gguf": ["mradermacher/L3-8B-Tamamo-v1-i1-GGUF", MessagesFormatterType.LLAMA_3],
23
+ "Mahou-1.5-mistral-nemo-12B.i1-Q4_K_M.gguf": ["mradermacher/Mahou-1.5-mistral-nemo-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
24
  "MN-12B-Mag-Mell-Q4_K_M.gguf": ["inflatebot/MN-12B-Mag-Mell-R1-GGUF", MessagesFormatterType.MISTRAL],
25
  "Qwen2.5-14B-Instruct-Q4_K_M.gguf": ["bartowski/Qwen2.5-14B-Instruct-GGUF", MessagesFormatterType.OPEN_CHAT],
26
  "Instant-RP-Noodles-12B-v1.3.Q4_K_M.gguf": ["mradermacher/Instant-RP-Noodles-12B-v1.3-GGUF", MessagesFormatterType.MISTRAL],
27
+ "MN-BackyardAI-Party-12B-v1.i1-Q5_K_M.gguf": ["mradermacher/MN-BackyardAI-Party-12B-v1-i1-GGUF", MessagesFormatterType.MISTRAL],
28
  "MN-12B-Lyra-v4-Q4_K_M.gguf": ["bartowski/MN-12B-Lyra-v4-GGUF", MessagesFormatterType.CHATML],
29
  "Lyra4-Gutenberg-12B.Q4_K_M.gguf": ["mradermacher/Lyra4-Gutenberg-12B-GGUF", MessagesFormatterType.CHATML],
30
  "Llama-3.1-8B-EZO-1.1-it.Q5_K_M.gguf": ["mradermacher/Llama-3.1-8B-EZO-1.1-it-GGUF", MessagesFormatterType.MISTRAL],
 
57
  "mn-maghin-12b-q6_k.gguf": ["rityak/MN-Maghin-12B-Q6_K-GGUF", MessagesFormatterType.MISTRAL],
58
  "qwen2.5-lumen-14b-q4_k_m.gguf": ["Lambent/Qwen2.5-Lumen-14B-Q4_K_M-GGUF", MessagesFormatterType.OPEN_CHAT],
59
  "Qwen2.5-14B_Uncensored_Instruct.Q4_K_M.gguf": ["mradermacher/Qwen2.5-14B_Uncensored_Instruct-GGUF", MessagesFormatterType.OPEN_CHAT],
60
+ "EVA-Qwen2.5-14B-v0.0.i1-IQ4_XS.gguf": ["mradermacher/EVA-Qwen2.5-14B-v0.0-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
61
+ "MN-12B-Vespa-x1.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Vespa-x1-i1-GGUF", MessagesFormatterType.CHATML],
62
+ "Mistral-Nemo-12B-ArliAI-RPMax-v1.1.i1-Q4_K_M.gguf": ["mradermacher/Mistral-Nemo-12B-ArliAI-RPMax-v1.1-i1-GGUF", MessagesFormatterType.MISTRAL],
63
  "Trinas_Nectar-8B-model_stock.i1-Q4_K_M.gguf": ["mradermacher/Trinas_Nectar-8B-model_stock-i1-GGUF", MessagesFormatterType.MISTRAL],
64
+ "ChatWaifu_12B_v2.0.Q5_K_M.gguf": ["mradermacher/ChatWaifu_12B_v2.0-GGUF", MessagesFormatterType.MISTRAL],
65
+ "ChatWaifu_22B_v2.0_preview.Q4_K_S.gguf": ["mradermacher/ChatWaifu_22B_v2.0_preview-GGUF", MessagesFormatterType.MISTRAL],
66
  "ChatWaifu_v1.4.Q5_K_M.gguf": ["mradermacher/ChatWaifu_v1.4-GGUF", MessagesFormatterType.MISTRAL],
67
  "ChatWaifu_v1.3.1.Q4_K_M.gguf": ["mradermacher/ChatWaifu_v1.3.1-GGUF", MessagesFormatterType.MISTRAL],
68
+ "Aster-G2-9B-v1.Q4_K_S.gguf": ["mradermacher/Aster-G2-9B-v1-GGUF", MessagesFormatterType.ALPACA],
69
+ "nemo-12b-rp-merge.Q4_K_S.gguf": ["mradermacher/nemo-12b-rp-merge-GGUF", MessagesFormatterType.MISTRAL],
70
+ "SthenoMix3.3.Q5_K_M.gguf": ["mradermacher/SthenoMix3.3-GGUF", MessagesFormatterType.LLAMA_3],
71
+ "Celestial-Harmony-14b-v1.0-Experimental-1016-Q4_K_M.gguf": ["bartowski/Celestial-Harmony-14b-v1.0-Experimental-1016-GGUF", MessagesFormatterType.MISTRAL],
72
+ "Gemma-2-Ataraxy-v4c-9B.Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v4c-9B-GGUF", MessagesFormatterType.ALPACA],
73
+ "Gemma-2-Ataraxy-v4b-9B.Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v4b-9B-GGUF", MessagesFormatterType.ALPACA],
74
+ "L3.1-EtherealRainbow-v1.0-rc1-8B.Q5_K_M.gguf": ["mradermacher/L3.1-EtherealRainbow-v1.0-rc1-8B-GGUF", MessagesFormatterType.LLAMA_3],
75
+ "MN-Lulanum-12B-FIX.i1-Q4_K_M.gguf": ["mradermacher/MN-Lulanum-12B-FIX-i1-GGUF", MessagesFormatterType.MISTRAL],
76
+ "Ministral-8B-Instruct-2410-HF-Q4_K_M.gguf": ["bartowski/Ministral-8B-Instruct-2410-HF-GGUF-TEST", MessagesFormatterType.MISTRAL],
77
+ "QevaCoT-7B-Stock.Q5_K_M.gguf": ["mradermacher/QevaCoT-7B-Stock-GGUF", MessagesFormatterType.OPEN_CHAT],
78
+ "Mixtronix-8B.i1-Q4_K_M.gguf": ["mradermacher/Mixtronix-8B-i1-GGUF", MessagesFormatterType.CHATML],
79
+ "Tsunami-0.5x-7B-Instruct.i1-Q5_K_M.gguf": ["mradermacher/Tsunami-0.5x-7B-Instruct-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
80
+ "mt3-gemma-2-9b-q6_k.gguf": ["zelk12/MT3-gemma-2-9B-Q6_K-GGUF", MessagesFormatterType.ALPACA],
81
+ "NeuralDaredevil-SuperNova-Lite-7B-DARETIES-abliterated.Q5_K_M.gguf": ["mradermacher/NeuralDaredevil-SuperNova-Lite-7B-DARETIES-abliterated-GGUF", MessagesFormatterType.LLAMA_3],
82
+ "MadMix-Unleashed-12B.Q4_K_M.gguf": ["mradermacher/MadMix-Unleashed-12B-GGUF", MessagesFormatterType.MISTRAL],
83
+ "Gemma-2-Ataraxy-v4a-Advanced-9B.i1-Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v4a-Advanced-9B-i1-GGUF", MessagesFormatterType.ALPACA],
84
+ "writing-roleplay-20k-context-nemo-12b-v1.0.i1-Q4_K_M.gguf": ["mradermacher/writing-roleplay-20k-context-nemo-12b-v1.0-i1-GGUF", MessagesFormatterType.MISTRAL],
85
+ "GEMMA2-9b-Pollux-exp.Q4_K_M.gguf": ["mradermacher/GEMMA2-9b-Pollux-exp-GGUF", MessagesFormatterType.ALPACA],
86
+ "Gemma-2-Ataraxy-v4a-Advanced-9B.Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v4a-Advanced-9B-GGUF", MessagesFormatterType.ALPACA],
87
+ "llama-3.1-8b-titanfusion-mix-2.1-q4_k_m-imat.gguf": ["bunnycore/Llama-3.1-8B-TitanFusion-Mix-2.1-Q4_K_M-GGUF", MessagesFormatterType.LLAMA_3],
88
+ "Gemma-2-Ataraxy-v4-Advanced-9B.Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v4-Advanced-9B-GGUF", MessagesFormatterType.ALPACA],
89
+ "Gemma-2-9B-ArliAI-RPMax-v1.1.i1-Q4_K_S.gguf": ["mradermacher/Gemma-2-9B-ArliAI-RPMax-v1.1-i1-GGUF", MessagesFormatterType.ALPACA],
90
+ "SuperNeuralDreadDevil-8b.Q5_K_M.gguf": ["mradermacher/SuperNeuralDreadDevil-8b-GGUF", MessagesFormatterType.LLAMA_3],
91
+ "astral-fusion-neural-happy-l3.1-8b-q4_0.gguf": ["ZeroXClem/Astral-Fusion-Neural-Happy-L3.1-8B-Q4_0-GGUF", MessagesFormatterType.LLAMA_3],
92
+ "LexiMaid-L3-8B.Q5_K_M.gguf": ["mradermacher/LexiMaid-L3-8B-GGUF", MessagesFormatterType.LLAMA_3],
93
+ "ModeliCo-8B.i1-Q5_K_M.gguf": ["mradermacher/ModeliCo-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
94
+ "Llama3-8B-function-calling-dpo-slerp.i1-Q5_K_M.gguf": ["mradermacher/Llama3-8B-function-calling-dpo-slerp-i1-GGUF", MessagesFormatterType.LLAMA_3],
95
+ "Aspire1.2-8B-TIES.i1-Q5_K_M.gguf": ["mradermacher/Aspire1.2-8B-TIES-i1-GGUF", MessagesFormatterType.LLAMA_3],
96
+ "Rombos-LLM-V2.6-Qwen-14b.Q4_K_M.gguf": ["mradermacher/Rombos-LLM-V2.6-Qwen-14b-GGUF", MessagesFormatterType.OPEN_CHAT],
97
+ "Moonlight-L3-15B-v2-64k.Q4_K_M.gguf": ["mradermacher/Moonlight-L3-15B-v2-64k-GGUF", MessagesFormatterType.LLAMA_3],
98
+ "mistral-7b-ppo-hermes-v0.3.Q5_K_M.gguf": ["mradermacher/mistral-7b-ppo-hermes-v0.3-GGUF", MessagesFormatterType.MISTRAL],
99
+ "Gemma-2-9B-ArliAI-RPMax-v1.1.Q4_K_M.gguf": ["mradermacher/Gemma-2-9B-ArliAI-RPMax-v1.1-GGUF", MessagesFormatterType.ALPACA],
100
+ "Mistral-Nemo-12B-ArliAI-RPMax-v1.1.Q4_K_M.gguf": ["mradermacher/Mistral-Nemo-12B-ArliAI-RPMax-v1.1-GGUF", MessagesFormatterType.MISTRAL],
101
+ "Odin-9B.i1-Q4_K_M.gguf": ["mradermacher/Odin-9B-i1-GGUF", MessagesFormatterType.ALPACA],
102
+ "writing-roleplay-20k-context-nemo-12b-v1.0-q4_k_m.gguf": ["openerotica/writing-roleplay-20k-context-nemo-12b-v1.0-gguf", MessagesFormatterType.CHATML],
103
+ "llama-3.2-3b-titanfusion-v2-q4_k_m.gguf": ["bunnycore/Llama-3.2-3B-TitanFusion-v2-Q4_K_M-GGUF", MessagesFormatterType.LLAMA_3],
104
+ "gemma-2-9b-it-function-calling-q4_k_m.gguf": ["NeuroWhAI/gemma-2-9b-it-function-calling-Q4_K_M-GGUF", MessagesFormatterType.ALPACA],
105
+ "mt-gemma-2-9b-q6_k.gguf": ["zelk12/MT-gemma-2-9B-Q6_K-GGUF", MessagesFormatterType.ALPACA],
106
+ "Halu-8B-Llama3-Blackroot-Q5_K_M.gguf": ["bartowski/Halu-8B-Llama3-Blackroot-GGUF", MessagesFormatterType.LLAMA_3],
107
+ "OpenO1-Qwen-7B-v0.1.i1-Q5_K_M.gguf": ["mradermacher/OpenO1-Qwen-7B-v0.1-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
108
+ "rombos_Llama3-8B-Instruct-Replete-Adapted.i1-Q5_K_M.gguf": ["mradermacher/rombos_Llama3-8B-Instruct-Replete-Adapted-i1-GGUF", MessagesFormatterType.LLAMA_3],
109
+ "Llama-3.1-8B-MagPie-Ultra.i1-Q5_K_M.gguf": ["mradermacher/Llama-3.1-8B-MagPie-Ultra-i1-GGUF", MessagesFormatterType.LLAMA_3],
110
+ "EdgeRunner-Command-Nested.Q5_K_M.gguf": ["mradermacher/EdgeRunner-Command-Nested-GGUF", MessagesFormatterType.OPEN_CHAT],
111
+ "CursorCore-QW2.5-7B.i1-Q5_K_M.gguf": ["mradermacher/CursorCore-QW2.5-7B-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
112
+ "Odins-Allseeing-Eye-9B.i1-Q4_K_M.gguf": ["mradermacher/Odins-Allseeing-Eye-9B-i1-GGUF", MessagesFormatterType.ALPACA],
113
+ "MN-GRAND-Gutenberg-Lyra4-Lyra-12B-MADNESS.i1-Q4_K_M.gguf": ["mradermacher/MN-GRAND-Gutenberg-Lyra4-Lyra-12B-MADNESS-i1-GGUF", MessagesFormatterType.MISTRAL],
114
+ "Zinakha-12b.Q4_K_M.gguf": ["mradermacher/Zinakha-12b-GGUF", MessagesFormatterType.MISTRAL],
115
+ "Gemma-2-Ataraxy-v3-Advanced-9B.i1-Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v3-Advanced-9B-i1-GGUF", MessagesFormatterType.ALPACA],
116
+ "MFANN-llama3.1-abliterated-SLERP-v3.1.Q5_K_M.gguf": ["mradermacher/MFANN-llama3.1-abliterated-SLERP-v3.1-GGUF", MessagesFormatterType.LLAMA_3],
117
+ "Magnolia-v2-Gemma2-8k-9B.Q4_K_M.gguf": ["mradermacher/Magnolia-v2-Gemma2-8k-9B-GGUF", MessagesFormatterType.ALPACA],
118
+ "gemma-2-aeria-infinity-9b-q5_k_m.gguf": ["AELLM/gemma-2-aeria-infinity-9b-Q5_K_M-GGUF", MessagesFormatterType.ALPACA],
119
+ "recoilme-gemma-2-ataraxy-9b-v0.1-t0.375-q6_k.gguf": ["zelk12/recoilme-gemma-2-Ataraxy-9B-v0.1-t0.375-Q6_K-GGUF", MessagesFormatterType.ALPACA],
120
+ "recoilme-gemma-2-ataraxy-9b-v0.2-q6_k.gguf": ["zelk12/recoilme-gemma-2-Ataraxy-9B-v0.2-Q6_K-GGUF", MessagesFormatterType.ALPACA],
121
+ "MN-Dark-Planet-TITAN-12B.Q4_K_M.gguf": ["QuantFactory/MN-Dark-Planet-TITAN-12B-GGUF", MessagesFormatterType.MISTRAL],
122
+ "gemma-2-inko-9b-q5_k_m.gguf": ["AELLM/gemma-2-inko-9b-Q5_K_M-GGUF", MessagesFormatterType.ALPACA],
123
+ "MN-GRAND-Gutenberg-Lyra4-Lyra-12B-MADNESS-D_AU-Q4_k_m.gguf": ["DavidAU/MN-GRAND-Gutenberg-Lyra4-Lyra-12B-MADNESS-GGUF", MessagesFormatterType.ALPACA],
124
+ "gemma-2-aeria-9b-q5_k_m.gguf": ["AELLM/gemma-2-aeria-9b-Q5_K_M-GGUF", MessagesFormatterType.ALPACA],
125
+ "MN-GRAND-Gutenburg-Lyra4-Lyra-12B-DARKNESS-D_AU-Q4_k_m.gguf": ["DavidAU/MN-GRAND-Gutenberg-Lyra4-Lyra-12B-DARKNESS-GGUF", MessagesFormatterType.MISTRAL],
126
+ "L3.1-Promissum_Mane-8B-Della-calc.i1-Q5_K_M.gguf": ["mradermacher/L3.1-Promissum_Mane-8B-Della-calc-i1-GGUF", MessagesFormatterType.LLAMA_3],
127
+ "Astral-Fusion-8b-v0.0.Q5_K_M.gguf": ["mradermacher/Astral-Fusion-8b-v0.0-GGUF", MessagesFormatterType.LLAMA_3],
128
+ "Magnolia-v1-Gemma2-8k-9B.Q4_K_M.gguf": ["mradermacher/Magnolia-v1-Gemma2-8k-9B-GGUF", MessagesFormatterType.ALPACA],
129
+ "MFANN-llama3.1-abliterated-SLERP-v3.i1-Q4_K_M.gguf": ["mradermacher/MFANN-llama3.1-abliterated-SLERP-v3-i1-GGUF", MessagesFormatterType.LLAMA_3],
130
+ "recoilme-gemma-2-ataraxy-9b-v0.1-t0.25-q6_k.gguf": ["zelk12/recoilme-gemma-2-Ataraxy-9B-v0.1-t0.25-Q6_K-GGUF", MessagesFormatterType.ALPACA],
131
+ "llama-jpsft-2.0-q4_k_m.gguf": ["ai-net/Llama-JPSFT-2.0-GGUF", MessagesFormatterType.LLAMA_3],
132
+ "Humanish-Qwen2.5-7B-Instruct-Q5_K_M.gguf": ["bartowski/Humanish-Qwen2.5-7B-Instruct-GGUF", MessagesFormatterType.OPEN_CHAT],
133
+ "FactAlign-LLaMA-3-8B.i1-Q4_K_M.gguf": ["mradermacher/FactAlign-LLaMA-3-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
134
+ "Magot-v3-Gemma2-8k-9B.i1-Q4_K_M.gguf": ["mradermacher/Magot-v3-Gemma2-8k-9B-i1-GGUF", MessagesFormatterType.ALPACA],
135
+ "EVA-Qwen2.5-14B-v0.1-Q4_K_M.gguf": ["bartowski/EVA-Qwen2.5-14B-v0.1-GGUF", MessagesFormatterType.OPEN_CHAT],
136
+ "Flammades-Mistral-Nemo-12B.i1-Q4_K_M.gguf": ["mradermacher/Flammades-Mistral-Nemo-12B-i1-GGUF", MessagesFormatterType.CHATML],
137
+ "Humanish-LLama3-8B-Instruct-Q5_K_M.gguf": ["bartowski/Humanish-LLama3-8B-Instruct-GGUF", MessagesFormatterType.LLAMA_3],
138
+ "Humanish-Mistral-Nemo-Instruct-2407-Q4_K_M.gguf": ["bartowski/Humanish-Mistral-Nemo-Instruct-2407-GGUF", MessagesFormatterType.MISTRAL],
139
+ "L3.1-Clouded-Uchtave-v0.1-8B.Q5_K_M.gguf": ["mradermacher/L3.1-Clouded-Uchtave-v0.1-8B-GGUF", MessagesFormatterType.LLAMA_3],
140
+ "Baldur-Q5_K_M.gguf": ["Delta-Vector/Baldur-8B-GGUF", MessagesFormatterType.LLAMA_3],
141
+ "llama-jpsft-q6_k.gguf": ["ai-net/Llama-JPSFT-GGUF", MessagesFormatterType.LLAMA_3],
142
+ "Gemma-2-Ataraxy-v3i-9B.Q5_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v3i-9B-GGUF", MessagesFormatterType.ALPACA],
143
+ "EVA-Qwen2.5-7B-v0.1.i1-Q5_K_M.gguf": ["mradermacher/EVA-Qwen2.5-7B-v0.1-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
144
+ "EZO-Llama-3.2-3B-Instruct-dpoE.Q4_K_S.gguf": ["mradermacher/EZO-Llama-3.2-3B-Instruct-dpoE-GGUF", MessagesFormatterType.LLAMA_3],
145
+ "Bezaliel_p1.1-12B.i1-Q4_K_M.gguf": ["mradermacher/Bezaliel_p1.1-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
146
+ "Ice0.7-29.09-RP.i1-Q5_K_M.gguf": ["mradermacher/Ice0.7-29.09-RP-i1-GGUF", MessagesFormatterType.MISTRAL],
147
+ "IceWhiskeyRP-7b.i1-Q5_K_M.gguf": ["mradermacher/IceWhiskeyRP-7b-i1-GGUF", MessagesFormatterType.ALPACA],
148
+ "L3.1-Purosani-2-8B.i1-Q4_K_M.gguf": ["mradermacher/L3.1-Purosani-2-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
149
+ "llama-3.2-3b-instruct-abliterated-q4_k_m.gguf": ["darkc0de/Llama-3.2-3B-Instruct-abliterated-Q4_K_M-GGUF", MessagesFormatterType.LLAMA_3],
150
+ "Daredevil-Aura-8B_uncensored_OAS_abliterated.i1-Q4_K_S.gguf": ["mradermacher/Daredevil-Aura-8B_uncensored_OAS_abliterated-i1-GGUF", MessagesFormatterType.LLAMA_3],
151
+ "Qwen-2.5-7b-TitanFusion-v3.Q5_K_M.gguf": ["mradermacher/Qwen-2.5-7b-TitanFusion-v3-GGUF", MessagesFormatterType.OPEN_CHAT],
152
+ "MixTAO-7Bx2-MoE-v8.1.Q4_K_M.gguf": ["mradermacher/MixTAO-7Bx2-MoE-v8.1-GGUF", MessagesFormatterType.ALPACA],
153
+ "Promissum_Mane-8B-LINEAR.i1-Q5_K_M.gguf": ["mradermacher/Promissum_Mane-8B-LINEAR-i1-GGUF", MessagesFormatterType.LLAMA_3],
154
+ "L3.1-Purosani-1.5-8B.Q5_K_M.gguf": ["mradermacher/L3.1-Purosani-1.5-8B-GGUF", MessagesFormatterType.LLAMA_3],
155
+ "SzilviaB-Daredevil-LongWriter-8B_abliterated.i1-Q5_K_M.gguf": ["mradermacher/SzilviaB-Daredevil-LongWriter-8B_abliterated-i1-GGUF", MessagesFormatterType.LLAMA_3],
156
+ "eidolon-v1-14b-q4_k_m.gguf": ["Lambent/Eidolon-v1-14B-Q4_K_M-GGUF", MessagesFormatterType.OPEN_CHAT],
157
+ "Mistral-Nemo-Gutenberg-Doppel-12B-v2.Q4_K_M.gguf": ["QuantFactory/Mistral-Nemo-Gutenberg-Doppel-12B-v2-GGUF", MessagesFormatterType.MISTRAL],
158
+ "MN-Dark-Planet-TITAN-12B-D_AU-Q4_k_s.gguf": ["DavidAU/MN-Dark-Planet-TITAN-12B-GGUF", MessagesFormatterType.CHATML],
159
+ "Gemma-2-Ataraxy-Remix-9B-Q8_0.gguf": ["lemon07r/Gemma-2-Ataraxy-Remix-9B-Q8_0-GGUF", MessagesFormatterType.ALPACA],
160
+ "recoilme-gemma-2-ataraxy-9b-v0.1-q6_k.gguf": ["zelk12/recoilme-gemma-2-Ataraxy-9B-v0.1-Q6_K-GGUF", MessagesFormatterType.ALPACA],
161
+ "qwen-2.5-7b-titanfusion-v3-iq4_nl-imat.gguf": ["bunnycore/Qwen-2.5-7b-TitanFusion-v3-IQ4_NL-GGUF", MessagesFormatterType.OPEN_CHAT],
162
+ "ExtremeFusion.Q5_K_M.gguf": ["pyhornet/ExtremeFusion-8B-GGUF", MessagesFormatterType.LLAMA_3],
163
+ "gemma-2-2b-jpn-it.Q6_K.iMatrix.gguf": ["MCZK/gemma-2-2b-jpn-it-GGUF", MessagesFormatterType.ALPACA],
164
+ "Qwen-2.5-7b-TitanFusion-v2.Q5_K_M.gguf": ["mradermacher/Qwen-2.5-7b-TitanFusion-v2-GGUF", MessagesFormatterType.OPEN_CHAT],
165
+ "Ice0.15-02.10-RP.Q5_K_M.gguf": ["mradermacher/Ice0.15-02.10-RP-GGUF", MessagesFormatterType.MISTRAL],
166
+ "Ice0.16-02.10-RP.Q5_K_M.gguf": ["mradermacher/Ice0.16-02.10-RP-GGUF", MessagesFormatterType.MISTRAL],
167
+ "Mistral-NeMo-Minitron-8B-Instruct.Q4_K_M.gguf": ["mradermacher/Mistral-NeMo-Minitron-8B-Instruct-GGUF", MessagesFormatterType.MISTRAL],
168
+ "Stellar-Odyssey-12b-v0.0.Q4_K_S.gguf": ["mradermacher/Stellar-Odyssey-12b-v0.0-GGUF", MessagesFormatterType.MISTRAL],
169
+ "NIHAPPY-L3.1-8B-v0.09.Q5_K_M.gguf": ["mradermacher/NIHAPPY-L3.1-8B-v0.09-GGUF", MessagesFormatterType.LLAMA_3],
170
+ "replete-llm-v2.5-qwen-14b-q4_k_m.gguf": ["Potatass/Replete-LLM-V2.5-Qwen-14b-Q4_K_M-GGUF", MessagesFormatterType.OPEN_CHAT],
171
+ "memory-9-q4_k_m-imat.gguf": ["ClaudioItaly/Memory-9-Q4_K_M-GGUF", MessagesFormatterType.ALPACA],
172
+ "felix_dies-mistral-7B-model_stock.Q5_K_M.gguf": ["mradermacher/felix_dies-mistral-7B-model_stock-GGUF", MessagesFormatterType.MISTRAL],
173
+ "Lyra4-Gutenberg2-12B.i1-Q4_K_M.gguf": ["mradermacher/Lyra4-Gutenberg2-12B-i1-GGUF", MessagesFormatterType.CHATML],
174
+ "Dans-Instruct-Mix-8b-ChatML-V0.2.0.Q5_K_M.gguf": ["mradermacher/Dans-Instruct-Mix-8b-ChatML-V0.2.0-GGUF", MessagesFormatterType.CHATML],
175
+ "Aspire1.1-8B-model_stock.i1-Q5_K_M.gguf": ["mradermacher/Aspire1.1-8B-model_stock-i1-GGUF", MessagesFormatterType.LLAMA_3],
176
+ "Dhenu2-India-2.1-Llama-3.1-8B-Instruct.Q5_K_M.gguf": ["mradermacher/Dhenu2-India-2.1-Llama-3.1-8B-Instruct-GGUF", MessagesFormatterType.LLAMA_3],
177
+ "Hermes2-Gutenberg2-Mistral-7B.Q5_K_M.gguf": ["mradermacher/Hermes2-Gutenberg2-Mistral-7B-GGUF", MessagesFormatterType.CHATML],
178
+ "ezo-humanities-9b-gemma-2-it-q8_0.gguf": ["mashima/EZO-Humanities-9B-gemma-2-it-Q8_0-GGUF", MessagesFormatterType.ALPACA],
179
+ "Gemma2-Gutenberg-Doppel-9B-Q4_K_M.gguf": ["bartowski/Gemma2-Gutenberg-Doppel-9B-GGUF", MessagesFormatterType.ALPACA],
180
+ "lyra4-gutenberg2-12b-q4_k_m.gguf": ["TheDrunkenSnail/Lyra4-Gutenberg2-12B-Q4_K_M-GGUF", MessagesFormatterType.CHATML],
181
+ "templare-12b-q4_k_m.gguf": ["ClaudioItaly/Templare-12B-Q4_K_M-GGUF", MessagesFormatterType.MISTRAL],
182
+ "Aurora_faustus-8B-LORABLATED.i1-Q5_K_M.gguf": ["mradermacher/Aurora_faustus-8B-LORABLATED-i1-GGUF", MessagesFormatterType.LLAMA_3],
183
+ "Aurora_faustus-8B-LORABLATED_ALT.Q5_K_M.gguf": ["mradermacher/Aurora_faustus-8B-LORABLATED_ALT-GGUF", MessagesFormatterType.LLAMA_3],
184
+ "Kainoverse-7b-v0.1-bangla.Q4_K_S.gguf": ["mradermacher/Kainoverse-7b-v0.1-bangla-GGUF", MessagesFormatterType.MISTRAL],
185
+ "Kainoverse-7b-v0.1.Q5_K_M.gguf": ["mradermacher/Kainoverse-7b-v0.1-GGUF", MessagesFormatterType.MISTRAL],
186
+ "Qwen2.5-7B-HyperMix.Q4_K_M.gguf": ["mradermacher/Qwen2.5-7B-HyperMix-GGUF", MessagesFormatterType.OPEN_CHAT],
187
+ "Spei_Meridiem-8B-model_stock.Q4_K_S.gguf": ["mradermacher/Spei_Meridiem-8B-model_stock-GGUF", MessagesFormatterType.LLAMA_3],
188
+ "Replete-LLM-V2.5-Qwen-7b-Q4_K_M.gguf": ["bartowski/Replete-LLM-V2.5-Qwen-7b-GGUF", MessagesFormatterType.OPEN_CHAT],
189
+ "EVA-Qwen2.5-7B-v0.0.Q4_K_S.gguf": ["mradermacher/EVA-Qwen2.5-7B-v0.0-GGUF", MessagesFormatterType.OPEN_CHAT],
190
+ "L3-8B-Stheno-v3.2-TASKBLATED.Q4_K_S.gguf": ["mradermacher/L3-8B-Stheno-v3.2-TASKBLATED-GGUF", MessagesFormatterType.LLAMA_3],
191
+ "Heart_Stolen1.1-8B-Model_Stock.Q4_K_S.gguf": ["mradermacher/Heart_Stolen1.1-8B-Model_Stock-GGUF", MessagesFormatterType.LLAMA_3],
192
+ "aurora_faustus-8b-lorablated_alt-q4_k_m.gguf": ["DreadPoor/Aurora_faustus-8B-LORABLATED_ALT-Q4_K_M-GGUF", MessagesFormatterType.LLAMA_3],
193
+ "L3.1-Suze-Vume-2-calc.Q5_K_M.gguf": ["mradermacher/L3.1-Suze-Vume-2-calc-GGUF", MessagesFormatterType.LLAMA_3],
194
+ "Gemma-2-Ataraxy-v2-9B.i1-Q4_K_M.gguf": ["mradermacher/Gemma-2-Ataraxy-v2-9B-i1-GGUF", MessagesFormatterType.ALPACA],
195
+ "DreamTeam-gemma2-9b-it-vision.Q4_K_M.gguf": ["mradermacher/DreamTeam-gemma2-9b-it-vision-GGUF", MessagesFormatterType.ALPACA],
196
+ "L3.1-Aglow-Vulca-v0.1-8B.Q5_K_M.gguf": ["mradermacher/L3.1-Aglow-Vulca-v0.1-8B-GGUF", MessagesFormatterType.LLAMA_3],
197
+ "L3.1-15B-EtherealMaid-t0.0001-alpha.Q4_K_M.gguf": ["mradermacher/L3.1-15B-EtherealMaid-t0.0001-alpha-GGUF", MessagesFormatterType.LLAMA_3],
198
+ "Llama-3.2-3B-Instruct-uncensored.i1-Q5_K_S.gguf": ["mradermacher/Llama-3.2-3B-Instruct-uncensored-i1-GGUF", MessagesFormatterType.LLAMA_3],
199
+ "L3-SthenoMaid-8B-V1-Q5_K_M.gguf": ["bartowski/L3-SthenoMaid-8B-V1-GGUF", MessagesFormatterType.LLAMA_3],
200
+ "Magot-v2-Gemma2-8k-9B.Q5_K_M.gguf": ["grimjim/Magot-v2-Gemma2-8k-9B-GGUF", MessagesFormatterType.ALPACA],
201
+ "Dante_9B.i1-Q4_K_M.gguf": ["mradermacher/Dante_9B-i1-GGUF", MessagesFormatterType.ALPACA],
202
+ "L3.1-Artemis-faustus-8B.i1-Q5_K_M.gguf": ["mradermacher/L3.1-Artemis-faustus-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
203
+ "EdgeRunner-Command-Nested-FC-v3.i1-Q4_K_M.gguf": ["mradermacher/EdgeRunner-Command-Nested-FC-v3-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
204
+ "Virgil_9B.i1-Q4_K_M.gguf": ["mradermacher/Virgil_9B-i1-GGUF", MessagesFormatterType.ALPACA],
205
+ "L3.1-Noraian.i1-Q5_K_M.gguf": ["mradermacher/L3.1-Noraian-i1-GGUF", MessagesFormatterType.LLAMA_3],
206
+ "DARKER-PLANET-Broken-Land-12.15B-D_AU-Q4_k_m.gguf": ["DavidAU/DARKER-PLANET-Broken-Land-12.15B-GGUF", MessagesFormatterType.LLAMA_3],
207
+ "L3.1-Purosani.i1-Q4_K_M.gguf": ["mradermacher/L3.1-Purosani-i1-GGUF", MessagesFormatterType.LLAMA_3],
208
+ "L3-Darker-Planet-12.15B.i1-Q4_K_S.gguf": ["mradermacher/L3-Darker-Planet-12.15B-i1-GGUF", MessagesFormatterType.LLAMA_3],
209
+ "MFANN-llama3.1-Abliterated-SLERP.i1-Q5_K_M.gguf": ["mradermacher/MFANN-llama3.1-Abliterated-SLERP-i1-GGUF", MessagesFormatterType.LLAMA_3],
210
+ "arsenic-v1-qwen2.5-14B.Q4_K_M.gguf": ["mradermacher/arsenic-v1-qwen2.5-14B-GGUF", MessagesFormatterType.OPEN_CHAT],
211
+ "Mistral-Nemo-Gutenberg-Doppel-12B.Q4_K_M.gguf": ["mradermacher/Mistral-Nemo-Gutenberg-Doppel-12B-GGUF", MessagesFormatterType.MISTRAL],
212
+ "Gemma-The-Writer-9B.Q4_K_M.gguf": ["mradermacher/Gemma-The-Writer-9B-GGUF", MessagesFormatterType.ALPACA],
213
+ "Qwen2.5-14B-Instruct-abliterated.i1-Q4_K_M.gguf": ["mradermacher/Qwen2.5-14B-Instruct-abliterated-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
214
+ "LongCite-llama3.1-8B-Q5_K_M.gguf": ["LPN64/LongCite-llama3.1-8b-GGUF", MessagesFormatterType.LLAMA_3],
215
+ "IceDrinkNameGoesHereV0RP-7b-Model_Stock.Q4_K_M.gguf": ["mradermacher/IceDrinkNameGoesHereV0RP-7b-Model_Stock-GGUF", MessagesFormatterType.MISTRAL],
216
+ "Magnum-Picaro-0.7-v2-12b.i1-Q4_K_M.gguf": ["mradermacher/Magnum-Picaro-0.7-v2-12b-i1-GGUF", MessagesFormatterType.CHATML],
217
+ "arsenic-v1-qwen2.5-14b-q4_k_m.gguf": ["Lambent/arsenic-v1-qwen2.5-14B-Q4_K_M-GGUF", MessagesFormatterType.OPEN_CHAT],
218
+ "magnum-v3-9b-chatml.i1-Q4_K_M.gguf": ["mradermacher/magnum-v3-9b-chatml-i1-GGUF", MessagesFormatterType.CHATML],
219
+ "Aether-12b.Q4_K_M.gguf": ["mradermacher/Aether-12b-GGUF", MessagesFormatterType.MISTRAL],
220
+ "Magnum-Picaro-0.7-v2-12b.Q4_K_M.gguf": ["mradermacher/Magnum-Picaro-0.7-v2-12b-GGUF", MessagesFormatterType.CHATML],
221
+ "IceMartiniV1RP-7b.i1-Q4_K_M.gguf": ["mradermacher/IceMartiniV1RP-7b-i1-GGUF", MessagesFormatterType.MISTRAL],
222
+ "L3-Darker-Planet-12.15B-D_AU-Q4_k_s.gguf": ["DavidAU/L3-Darker-Planet-12.15B-GGUF", MessagesFormatterType.LLAMA_3],
223
+ "Llama-3-8B-Stroganoff-4.0-Version-B.i1-Q4_K_M.gguf": ["mradermacher/Llama-3-8B-Stroganoff-4.0-Version-B-i1-GGUF", MessagesFormatterType.LLAMA_3],
224
+ "IceDrunkCherryV1RP-7b.Q5_K_S.gguf": ["mradermacher/IceDrunkCherryV1RP-7b-GGUF", MessagesFormatterType.MISTRAL],
225
+ "Llama-3-8B-Stroganoff-4.0-Version-A.i1-Q4_K_M.gguf": ["mradermacher/Llama-3-8B-Stroganoff-4.0-Version-A-i1-GGUF", MessagesFormatterType.LLAMA_3],
226
+ "vulca-reshapetesting-006.q8_0.gguf": ["kromquant/vulca-reshapetesting-006-GGUFs", MessagesFormatterType.MISTRAL],
227
+ "FatGirl_v2_DPO_v2_8B.Q4_K_M.gguf": ["mradermacher/FatGirl_v2_DPO_v2_8B-GGUF", MessagesFormatterType.MISTRAL],
228
+ "NemonsterExtreme-12b.Q4_K_M.gguf": ["mradermacher/NemonsterExtreme-12b-GGUF", MessagesFormatterType.MISTRAL],
229
+ "Magnum-Instruct-DPO-18B.Q4_K_M.gguf": ["mradermacher/Magnum-Instruct-DPO-18B-GGUF", MessagesFormatterType.MISTRAL],
230
+ "qwen2.5-reinstruct-alternate-lumen-14B.Q4_K_M.gguf": ["mradermacher/qwen2.5-reinstruct-alternate-lumen-14B-GGUF", MessagesFormatterType.OPEN_CHAT],
231
+ "SuperHeart.i1-Q5_K_M.gguf": ["mradermacher/SuperHeart-i1-GGUF", MessagesFormatterType.LLAMA_3],
232
+ "SuperHeartBerg.i1-Q4_K_M.gguf": ["mradermacher/SuperHeartBerg-i1-GGUF", MessagesFormatterType.LLAMA_3],
233
+ "gemma-2-9B-it-function-calling-Q5_K_M.gguf": ["DiTy/gemma-2-9b-it-function-calling-GGUF", MessagesFormatterType.ALPACA],
234
+ "Qwen2.5-7B-TitanFusion.Q5_K_M.gguf": ["mradermacher/Qwen2.5-7B-TitanFusion-GGUF", MessagesFormatterType.OPEN_CHAT],
235
  "Collaiborator-MEDLLM-Llama-3-8B-v1.i1-Q5_K_M.gguf": ["mradermacher/Collaiborator-MEDLLM-Llama-3-8B-v1-i1-GGUF", MessagesFormatterType.LLAMA_3],
236
  "Chili_Dog_8B.i1-Q4_K_M.gguf": ["mradermacher/Chili_Dog_8B-i1-GGUF", MessagesFormatterType.CHATML],
237
  "astra-v1-12b-q5_k_m.gguf": ["P0x0/Astra-v1-12B-GGUF", MessagesFormatterType.MISTRAL],
 
759
  "tifa-7b-qwen2-v0.1.q4_k_m.gguf": ["Tifa-RP/Tifa-7B-Qwen2-v0.1-GGUF", MessagesFormatterType.OPEN_CHAT],
760
  "Holland-Magnum-Merge-R2.i1-Q5_K_M.gguf": ["mradermacher/Holland-Magnum-Merge-R2-i1-GGUF", MessagesFormatterType.LLAMA_3],
761
  "Oumuamua-7b-RP_Q5_K_M.gguf": ["Aratako/Oumuamua-7b-RP-GGUF", MessagesFormatterType.MISTRAL],
762
+ "ContextualKunoichi_KTO-7B.Q5_K_M.gguf": ["mradermacher/ContextualKunoichi_KTO-7B-GGUF", MessagesFormatterType.MISTRAL],
763
+ "ContextualToppy_KTO-7B.Q5_K_M.gguf": ["mradermacher/ContextualToppy_KTO-7B-GGUF", MessagesFormatterType.MISTRAL],
764
  "Berghof-NSFW-7B.Q5_K_M.gguf": ["QuantFactory/Berghof-NSFW-7B-GGUF", MessagesFormatterType.MISTRAL],
765
  "Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf": ["dddump/Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW-gguf", MessagesFormatterType.VICUNA],
766
  "ChatWaifu_v1.2.1.Q5_K_M.gguf": ["mradermacher/ChatWaifu_v1.2.1-GGUF", MessagesFormatterType.MISTRAL],
lora_dict.json CHANGED
@@ -797,6 +797,20 @@
797
  "https://civitai.com/models/341353",
798
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/feeca0e9-029b-4c2d-b5b5-4764d621a3aa/width=450/7662228.jpeg"
799
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
800
  "Eyes_Lora_Pony_Perfect_eyes": [
801
  "eye_focus, close-up, solo, looking_at_viewer",
802
  "Pony",
@@ -818,6 +832,13 @@
818
  "https://civitai.com/models/585589",
819
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1aebedf5-e17f-471d-a11e-7de23a45cb5b/width=450/20316122.jpeg"
820
  ],
 
 
 
 
 
 
 
821
  "FComic_HardCore_Pony_V1": [
822
  "(comic:1.25),(Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect), 1girl, solo focus, breasts, navel, nipples, pussy, clitoris, vaginal, anus, ass, nude, torn clothes, pussy juice, female masturbation, 2boys, mmf threesome, erection, penis, multiple penises, testicles, cum, hetero, sex, group sex, oral, fellatio, irrumatio, paizuri, spread legs, spitroast, sweat, gangbang, double penetration, triple penetration",
823
  "Pony",
@@ -1189,6 +1210,13 @@
1189
  "https://civitai.com/models/105656",
1190
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c568ea15-1c6d-4a01-bd64-0a7fc20630ea/width=450/7656377.jpeg"
1191
  ],
 
 
 
 
 
 
 
1192
  "IngAnimePony": [
1193
  "",
1194
  "Pony",
@@ -1231,6 +1259,13 @@
1231
  "https://civitai.com/models/445113",
1232
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/79010fc1-3e9f-4fd3-9c5a-e56519264449/width=450/12296550.jpeg"
1233
  ],
 
 
 
 
 
 
 
1234
  "JAV_Cover_V2": [
1235
  "jav cover",
1236
  "Pony",
@@ -1245,6 +1280,13 @@
1245
  "https://civitai.com/models/645017",
1246
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5d4bc971-3c93-46ea-b8ad-5e1882c81a5c/width=450/24242183.jpeg"
1247
  ],
 
 
 
 
 
 
 
1248
  "JMT_SDXL_V2": [
1249
  "JMT",
1250
  "SDXL 1.0",
@@ -1329,6 +1371,13 @@
1329
  "https://civitai.com/models/350199",
1330
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/385edbe8-3fad-4278-bfed-43d551e8f78b/width=450/8901842.jpeg"
1331
  ],
 
 
 
 
 
 
 
1332
  "LapPillowXL": [
1333
  "LapPillowXL",
1334
  "Pony",
@@ -1434,6 +1483,13 @@
1434
  "https://civitai.com/models/566542",
1435
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e2daae6e-a9fb-43c5-b4ee-cfa264a6455d/width=450/19074383.jpeg"
1436
  ],
 
 
 
 
 
 
 
1437
  "MS_PDXL_AfterSex_Lite": [
1438
  "after sex, cum, lying, cumdrip, ass, on stomach, on back, fucked silly, sweat, cum pool, bukkake, trembling",
1439
  "Pony",
@@ -1476,6 +1532,13 @@
1476
  "https://civitai.com/models/607386",
1477
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/29cc59c1-f082-43b5-be83-0b240579175c/width=450/21837456.jpeg"
1478
  ],
 
 
 
 
 
 
 
1479
  "MdaStarouXL_ANI31_lokr_V43P1NF": [
1480
  "",
1481
  "SDXL 1.0",
@@ -1539,6 +1602,13 @@
1539
  "https://civitai.com/models/508749",
1540
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a2e50154-31d8-431b-a59e-f26590dad8a4/width=450/15452920.jpeg"
1541
  ],
 
 
 
 
 
 
 
1542
  "Naked_Sheet_Pony": [
1543
  "naked sheet",
1544
  "Pony",
@@ -1861,6 +1931,13 @@
1861
  "https://civitai.com/models/530390",
1862
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3bf960f6-578e-4dc4-93a9-a3fb96cc93e8/width=450/16749759.jpeg"
1863
  ],
 
 
 
 
 
 
 
1864
  "Pregao_v1_SDXL": [
1865
  "pregao, 1girl, pregnant, small breasts, big breasts, big areola, dark nipples, lactation, sex, vaginal,",
1866
  "SDXL 1.0",
@@ -1910,6 +1987,13 @@
1910
  "https://civitai.com/models/89005",
1911
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ad46540c-a4cf-4001-8d28-0ebd3ede352b/width=450/23668605.jpeg"
1912
  ],
 
 
 
 
 
 
 
1913
  "Pussy_on_Pussy": [
1914
  "Pussy on Pussy / Symmetrical Pussy",
1915
  "SDXL 1.0",
@@ -2365,6 +2449,27 @@
2365
  "https://civitai.com/models/421737",
2366
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3b87142d-9566-4d54-b0c9-e87f44c96097/width=450/16498196.jpeg"
2367
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2368
  "V_over_mouth_Pose_XL": [
2369
  "1woman, v_over_mouth, blush, detailed eyes, lips, smile, upper body, breasts, (v_over_mouth:1.4) / tongue_out , saliva, saliva_trail, naughty_face / cunnilingus_gesture / implied_yuri",
2370
  "SDXL 1.0",
@@ -2743,6 +2848,20 @@
2743
  "https://civitai.com/models/238419",
2744
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/74053ca5-9486-44ee-94d1-9cebcbbe7250/width=450/22207105.jpeg"
2745
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2746
  "akifn_pony_v2": [
2747
  "",
2748
  "Pony",
@@ -3002,6 +3121,27 @@
3002
  "https://civitai.com/models/557706",
3003
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/febb854e-af50-4b41-91fd-f3d91752a6b4/width=450/18508556.jpeg"
3004
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3005
  "belko-XL-v31-ep20": [
3006
  "",
3007
  "SDXL 1.0",
@@ -3037,6 +3177,20 @@
3037
  "https://civitai.com/models/413240",
3038
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/b70b41a8-6a37-4cc9-894a-904de8e1f238/width=450/10439295.jpeg"
3039
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3040
  "big_clitoris_pony_V1_0": [
3041
  "big clitoris / clitoris / erection",
3042
  "Pony",
@@ -3156,6 +3310,13 @@
3156
  "https://civitai.com/models/539285",
3157
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/03d304a7-fce1-4ed2-b254-1b82698d53f2/width=450/17279266.jpeg"
3158
  ],
 
 
 
 
 
 
 
3159
  "breast_open_bikini_pony_V1_0": [
3160
  "breast open bikini",
3161
  "Pony",
@@ -3282,6 +3443,20 @@
3282
  "https://civitai.com/models/388278",
3283
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4f67c762-36d9-4024-93d5-a5128f8d1190/width=450/16558171.jpeg"
3284
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3285
  "buruma_Pony_V1_0": [
3286
  "sgu,gym uniform / blue buruma / red buruma / green buruma",
3287
  "Pony",
@@ -3373,6 +3548,13 @@
3373
  "https://civitai.com/models/476691",
3374
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e2c7f23f-fa78-4121-9ed7-37944c025ada/width=450/13846218.jpeg"
3375
  ],
 
 
 
 
 
 
 
3376
  "charming_bulge_pony-v1_0": [
3377
  "nsfw,from behind,ass focus,nude,close-up,top-down_bottom-up,from below,",
3378
  "Pony",
@@ -3436,6 +3618,20 @@
3436
  "https://civitai.com/models/516752",
3437
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e73b7c72-0bdc-4a07-b05d-1ee95d3e9eaa/width=450/17239717.jpeg"
3438
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3439
  "china_dress_Pony_V1_0": [
3440
  "jyojifuku, china dress, skirt",
3441
  "Pony",
@@ -3625,6 +3821,13 @@
3625
  "https://civitai.com/models/145887",
3626
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d5944f71-a1a7-4dcc-927b-5ea70aa1ca5f/width=450/10955692.jpeg"
3627
  ],
 
 
 
 
 
 
 
3628
  "creepydoll": [
3629
  "doll / long arms, long legs",
3630
  "Pony",
@@ -3779,6 +3982,27 @@
3779
  "https://civitai.com/models/587903",
3780
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5cf842df-f4bc-4c05-a125-e5bd7ddb3192/width=450/20470483.jpeg"
3781
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3782
  "deflowered_pony": [
3783
  "1woman, perfect face, fully nude, imminent penetration:1.4, deflowered:1.1, blood on thighs, blood dripping, semen, cum, overflow:1.2, / 1male, huge penis, large testicles, / female pubic hair, uncensored pussy, hairy pussy, blush / <lora:deflowered_pony:0.7>,",
3784
  "Pony",
@@ -3856,6 +4080,20 @@
3856
  "https://civitai.com/models/603258",
3857
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a9862d57-c319-439a-a392-8b16d4adfc42/width=450/21484810.jpeg"
3858
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3859
  "doorFisheyeConceptPDXL_v10": [
3860
  "fisheye / outdoors / hallway",
3861
  "Pony",
@@ -4150,6 +4388,20 @@
4150
  "https://civitai.com/models/357976",
4151
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ead23075-e9ff-4378-b1b3-442b1abaef78/width=450/14593009.jpeg"
4152
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4153
  "girllikewipemouth_pony": [
4154
  "(((cum on mouth))), ((wipe mouth, napkin on lips, hand on mouth, profile, squinting eyes, frown, head down)), crying, drooling, parted lips, fever, sad, leftovers, plate, table, glass cup, potted plant, tree, bokeh, foggy sky, sweating profusely, teardrop, open-air restaurant, outdoors, building, street, cloud, crowd, 1girl, cute, choker, cleavage, medium tits, sideboob, shy, blush, petite figure,",
4155
  "Pony",
@@ -4185,6 +4437,13 @@
4185
  "https://civitai.com/models/576705",
4186
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/af821c46-6ce4-4726-921c-6cd723f66a0f/width=450/19739141.jpeg"
4187
  ],
 
 
 
 
 
 
 
4188
  "gm_meme": [
4189
  "sitting, girl on top, bed, downblouse",
4190
  "Pony",
@@ -4234,6 +4493,13 @@
4234
  "https://civitai.com/models/293472",
4235
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/86297f60-4594-461a-a142-ef8878a3f516/width=450/12847487.jpeg"
4236
  ],
 
 
 
 
 
 
 
4237
  "group_sex_pony_V1_0": [
4238
  "group sex",
4239
  "Pony",
@@ -4367,6 +4633,13 @@
4367
  "https://civitai.com/models/636110",
4368
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4ca030e3-b524-4a11-a5b7-a654a100e578/width=450/23624021.jpeg"
4369
  ],
 
 
 
 
 
 
 
4370
  "hanketsu_SDXL_V1": [
4371
  "MH2, 1girl, swimsuit, solo, bikini, brown hair, long hair, smile, grin, water, butt crack, white bikini, ass, side-tie bikini bottom, pool, brown eyes, sitting, looking at viewer, looking back,",
4372
  "SDXL 1.0",
@@ -4479,6 +4752,20 @@
4479
  "https://civitai.com/models/516752",
4480
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/29c835ca-5f12-43e8-ac93-b4fd1c234bce/width=450/15866815.jpeg"
4481
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4482
  "holding_panties_SDXL": [
4483
  "holding panties,stained panties,unworn panties,open hand,no panties",
4484
  "Pony",
@@ -4654,6 +4941,13 @@
4654
  "https://civitai.com/models/445063",
4655
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/bf48c337-2273-4e39-b8a6-088c386c0e86/width=450/11965557.jpeg"
4656
  ],
 
 
 
 
 
 
 
4657
  "jyojimizugi_Pony_V1_0": [
4658
  "jyojimizugi,bikini,frills",
4659
  "Pony",
@@ -4759,6 +5053,13 @@
4759
  "https://civitai.com/models/511064",
4760
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ac1f7ec5-bd8c-4694-9aa4-d158c1fa878a/width=450/21578898.jpeg"
4761
  ],
 
 
 
 
 
 
 
4762
  "kingyo_fukuro_SDXL_V1": [
4763
  "kingyofukuro, bagged fish, fish, bag, goldfish, ",
4764
  "SDXL 1.0",
@@ -5298,6 +5599,13 @@
5298
  "https://civitai.com/models/573056",
5299
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c3c99a9a-f2cf-4c20-ae4b-a03ded327311/width=450/19512503.jpeg"
5300
  ],
 
 
 
 
 
 
 
5301
  "multi_prolapse_ponyXL_v1": [
5302
  "anal prolapse / uterine prolapse / double prolapse / ovary prolapse",
5303
  "Pony",
@@ -5347,6 +5655,13 @@
5347
  "https://civitai.com/models/116480",
5348
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a1f95800-1982-4678-90ab-3d4b9dd88317/width=450/7839890.jpeg"
5349
  ],
 
 
 
 
 
 
 
5350
  "netcafe_SDXL_V1": [
5351
  "necafe, scenery, indoors, computer, door, chair, monitor, still life, mouse (computer), desk",
5352
  "SDXL 1.0",
@@ -5389,6 +5704,13 @@
5389
  "https://civitai.com/models/519082",
5390
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/62e358a7-eaf5-4e67-8c7f-2ca6080d9741/width=450/16011887.jpeg"
5391
  ],
 
 
 
 
 
 
 
5392
  "nipples_weights_pony_V1_0": [
5393
  "nipple piercing / nipples weights / Saggy breasts",
5394
  "Pony",
@@ -5669,6 +5991,13 @@
5669
  "https://civitai.com/models/471380",
5670
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e2937f26-1d39-4a1f-b4ec-1beb65a8eb2d/width=450/14088300.jpeg"
5671
  ],
 
 
 
 
 
 
 
5672
  "pantyhose_waist-000001": [
5673
  "",
5674
  "Pony",
@@ -5732,6 +6061,13 @@
5732
  "https://civitai.com/models/590441",
5733
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9b873e11-1066-41ac-94fc-da6cf7653345/width=450/22678594.jpeg"
5734
  ],
 
 
 
 
 
 
 
5735
  "peeing_underwater-05": [
5736
  "peeing underwater",
5737
  "Pony",
@@ -5781,6 +6117,13 @@
5781
  "https://civitai.com/models/470923",
5782
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9870ea43-5d3b-4403-8d3e-48bb122c3897/width=450/13800000.jpeg"
5783
  ],
 
 
 
 
 
 
 
5784
  "phallic_food_-_XL_Pony_V2_0": [
5785
  "Banana, half peeled, half peeled banana, / sausage, / sausage, sausage on stick, / Makizushi, sushi roll, ehomaki, / Hot dog, / ketchup, / mustard, / sucking, / holding, / eating, / biting, / licking, / saliva, / fork, / chocolate banana / sandwich / popsicle / cucumber / mushroom",
5786
  "Pony",
@@ -5942,6 +6285,13 @@
5942
  "https://civitai.com/models/460612",
5943
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/317fdc7f-6c93-4653-99db-11d85b027e03/width=450/12768924.jpeg"
5944
  ],
 
 
 
 
 
 
 
5945
  "ponyxl-small_penis_cross_section": [
5946
  "x-ray, cross-section / small penis / foreskin / internal cumshot / deficient cum(*might be meaningless? not sure....) / excessive cum(*for more cum?) / cum in cervix(*cum might be less, might not fill uterus at all. maybe? unstable) / cum in uterus(*cum might fill uterus. can be unstable) / tiny penis, short penis, poor penis(*optional. maybe have some effect...? not sure)",
5947
  "Pony",
@@ -5998,6 +6348,13 @@
5998
  "https://civitai.com/models/540509",
5999
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d233b85a-1dfd-48d1-98eb-b758ef5079af/width=450/17360529.jpeg"
6000
  ],
 
 
 
 
 
 
 
6001
  "povsit": [
6002
  "povsit / from below",
6003
  "Pony",
@@ -6117,6 +6474,13 @@
6117
  "https://civitai.com/models/575758",
6118
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/baccd194-7d91-4d04-858d-627c3ed263f9/width=450/19683271.jpeg"
6119
  ],
 
 
 
 
 
 
 
6120
  "ramune_SDXL_V1": [
6121
  "ramune, food, bottle, ",
6122
  "SDXL 1.0",
@@ -6208,6 +6572,13 @@
6208
  "https://civitai.com/models/498892",
6209
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9822ab8f-9832-4471-9ff7-3fe6a00714c8/width=450/14826239.jpeg"
6210
  ],
 
 
 
 
 
 
 
6211
  "revealing_forehead_concept-soralz": [
6212
  "revealing forehead, hand on own hair, forehead, head tilt",
6213
  "Pony",
@@ -6264,6 +6635,13 @@
6264
  "https://civitai.com/models/585342",
6265
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/b603d775-8004-4425-a85e-a754f9be2977/width=450/20290307.jpeg"
6266
  ],
 
 
 
 
 
 
 
6267
  "rukia": [
6268
  "",
6269
  "Pony",
@@ -6299,6 +6677,13 @@
6299
  "https://civitai.com/models/139131",
6300
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/41712367-efa2-4a3a-aca0-52b46352539f/width=450/5480410.jpeg"
6301
  ],
 
 
 
 
 
 
 
6302
  "sanitary_napkins_pony_V1_1": [
6303
  "sanitary napkins,panties",
6304
  "Pony",
@@ -6446,6 +6831,20 @@
6446
  "https://civitai.com/models/594617",
6447
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8598e698-88d1-4650-a447-a307a52ce7f4/width=450/20899405.jpeg"
6448
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6449
  "shibari_V3_sdxl": [
6450
  "shibari",
6451
  "SDXL 1.0",
@@ -6558,6 +6957,13 @@
6558
  "https://civitai.com/models/602418",
6559
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/cf5b0816-ccd6-49bb-8c5b-0fdc56a30dcf/width=450/21430280.jpeg"
6560
  ],
 
 
 
 
 
 
 
6561
  "smalldombigsubV3": [
6562
  "small dom big sub / size difference",
6563
  "Pony",
@@ -6607,6 +7013,13 @@
6607
  "https://civitai.com/models/717353",
6608
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/81be9bdf-990b-4a1f-92f4-2dd5ac78fe79/width=450/27574152.jpeg"
6609
  ],
 
 
 
 
 
 
 
6610
  "spagainstScreenXLPony": [
6611
  "against glass, breast press, cheek press",
6612
  "Pony",
@@ -6817,6 +7230,20 @@
6817
  "https://civitai.com/models/351660",
6818
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1086274d-eeda-4a61-8f25-17bfb4580ab7/width=450/7991149.jpeg"
6819
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6820
  "suntan_V1_0": [
6821
  "tanline",
6822
  "Pony",
@@ -7146,6 +7573,20 @@
7146
  "https://civitai.com/models/522462",
7147
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/73988a4c-c9df-4859-84d5-c88b36ce2b19/width=450/16298052.jpeg"
7148
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7149
  "triple_oral_-_triple_barrel_fellatio_-_triple_fellatio-000014": [
7150
  "tripplebj / read description",
7151
  "Pony",
@@ -7629,6 +8070,13 @@
7629
  "https://civitai.com/models/604327",
7630
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fd6814aa-e904-4dd6-bfa7-902879605860/width=450/21564766.jpeg"
7631
  ],
 
 
 
 
 
 
 
7632
  "yandere_XL_v1": [
7633
  "yandere",
7634
  "SDXL 1.0",
@@ -7670,5 +8118,12 @@
7670
  "\u0421olor palette enhancement",
7671
  "https://civitai.com/models/570834",
7672
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/45d05dab-397c-4bc7-8150-8530aa524899/width=450/19621390.jpeg"
 
 
 
 
 
 
 
7673
  ]
7674
  }
 
797
  "https://civitai.com/models/341353",
798
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/feeca0e9-029b-4c2d-b5b5-4764d621a3aa/width=450/7662228.jpeg"
799
  ],
800
+ "EyeLRslider": [
801
+ "",
802
+ "Pony",
803
+ "Eye movement control slider",
804
+ "https://civitai.com/models/795354",
805
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/76c7ac64-cc97-4370-bcb0-18ed183c6d95/width=450/31395741.jpeg"
806
+ ],
807
+ "EyesUDslider": [
808
+ "",
809
+ "Pony",
810
+ "Eye movement control slider",
811
+ "https://civitai.com/models/795354",
812
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1ba5d639-b097-4b57-b5f1-59b13c7fa585/width=450/31395564.jpeg"
813
+ ],
814
  "Eyes_Lora_Pony_Perfect_eyes": [
815
  "eye_focus, close-up, solo, looking_at_viewer",
816
  "Pony",
 
832
  "https://civitai.com/models/585589",
833
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1aebedf5-e17f-471d-a11e-7de23a45cb5b/width=450/20316122.jpeg"
834
  ],
835
+ "FComic_AllInOne_SDXL": [
836
+ "fcomicallinone / (1page:1.3), (clothes:1.3), comic, Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect,BREAK,1girl, solo focus, (full body:1.3), (cowboy shot), / (2page:1.3), nsfw, (comic:1.25),(Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect),BREAK,1girl, solo focus, skirt lift, shirt lift, show off nipple, show off pussy , nipple , pussy ,BREAK,hetero, oral, fellatio, irrumatio, (full body:1.3), (cowboy shot), / (3page:1.3),nsfw,(comic:1.25),(Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect),BREAK,1girl, solo focus, breasts, navel, nipples,BREAK, pussy, clitoris, vaginal, anus, ass, nude,BREAK, torn clothes, pussy juice, female masturbation,BREAK,hetero, paizuri,BREAK, irrumatio,BREAK, spread legs, (full body:1.3), (cowboy shot), / (mainpage),nsfw,(comic:1.25),(Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect),BREAK,1girl, solo focus, breasts, navel, nipples,BREAK, pussy, clitoris, vaginal, anus, ss, nude, torn clothes,BREAK, pussy juice, female masturbation,BREAK, 2boys, mmf threesome, erection, penis, multiple penises, testicles,BREAK, cum,hetero, sex, group sex,BREAK, oral, fellatio, irrumatio,BREAK, spread legs, spitroast, sweat, gangbang, double penetration, triple penetration,missionary sex, / (lastpage:1.3),nsfw,(comic:1.25), (Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect),BREAK,1girl, solo focus, breasts, navel, nipples,BREAK, pussy, clitoris, vaginal, anus, ass,BREAK, nude, torn clothes, pussy juice,BREAK, boy, hetero, cum, ,BREAK,(After Sex), orgasm, afterglow, spread legs,BREAK, (pillow talk:1.3), BREAK, (punch line),BREAK, (happy end:1.3), BREAK, (the end:1.3), / 1page / 2page / 3page / mainpage / lastpage",
837
+ "SDXL 1.0",
838
+ "[Animagine] Japanese Hentai Comic Generator (ALL in ONE) | \u30a8\u30ed\u6f2b\u753b\u751f\u6210\u5668\uff08\u5168\u90e8\u5165\u308a\uff09",
839
+ "https://civitai.com/models/753303",
840
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3a2a72df-4277-4f25-8330-5b333e12843a/width=450/29991827.jpeg"
841
+ ],
842
  "FComic_HardCore_Pony_V1": [
843
  "(comic:1.25),(Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect), 1girl, solo focus, breasts, navel, nipples, pussy, clitoris, vaginal, anus, ass, nude, torn clothes, pussy juice, female masturbation, 2boys, mmf threesome, erection, penis, multiple penises, testicles, cum, hetero, sex, group sex, oral, fellatio, irrumatio, paizuri, spread legs, spitroast, sweat, gangbang, double penetration, triple penetration",
844
  "Pony",
 
1210
  "https://civitai.com/models/105656",
1211
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c568ea15-1c6d-4a01-bd64-0a7fc20630ea/width=450/7656377.jpeg"
1212
  ],
1213
+ "Idealightbulb_XL_v1": [
1214
+ "Idea Light Bulb",
1215
+ "SDXL 1.0",
1216
+ "idea light bulb / \u3072\u3089\u3081\u304d / \u30a2\u30a4\u30c7\u30a3\u30a2 / \u96fb\u7403 / \u30d4\u30b3\u30fc\u30f3",
1217
+ "https://civitai.com/models/793420",
1218
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/038c0aa3-4af2-4e73-b98b-96c10dee7e94/width=450/31127077.jpeg"
1219
+ ],
1220
  "IngAnimePony": [
1221
  "",
1222
  "Pony",
 
1259
  "https://civitai.com/models/445113",
1260
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/79010fc1-3e9f-4fd3-9c5a-e56519264449/width=450/12296550.jpeg"
1261
  ],
1262
+ "JAV_BONY116_Pony_V1": [
1263
+ " bony116, 1girl, hetero, solo focus, tears, crying, saliva, snot, vomiting, drooling, abuse, dirty, drooling, 1boy, male pubic hair, Fat man, nude male, irrumatio , deepthroat , after blowjob, bukkake, facial, excessive cum , lying, on back , On all fours ,close-up mouth , pov penis, ",
1264
+ "Pony",
1265
+ "JAV HARD Irrumatio DeepThroat Generator2 Pony XL | \u30cf\u30fc\u30c9 \u30a4\u30e9\u30de\u30c1\u30aa \u30a2\u30c0\u30eb\u30c8\u30d3\u30c7\u30aa \u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u30fc\uff12",
1266
+ "https://civitai.com/models/763460",
1267
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/382b3824-12fa-4e04-bbb8-8c52a29bf071/width=450/29677035.jpeg"
1268
+ ],
1269
  "JAV_Cover_V2": [
1270
  "jav cover",
1271
  "Pony",
 
1280
  "https://civitai.com/models/645017",
1281
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5d4bc971-3c93-46ea-b8ad-5e1882c81a5c/width=450/24242183.jpeg"
1282
  ],
1283
+ "JAV_MIAA572_PONY_V1": [
1284
+ "JAV_MISS572, 1girl, hetero, solo focus, tears, crying, saliva, snot, vomiting, drooling 1boy, male pubic hair, Fat man, nude male, irrumatio , deepthroat , after blowjob, bukkake, facial, excessive cum , lying, on back , On all fours ,close-up mouth , pov penis, ",
1285
+ "Pony",
1286
+ "JAV HARD Irrumatio DeepThroat Generator Pony XL | \u30cf\u30fc\u30c9 \u30a4\u30e9\u30de\u30c1\u30aa \u30a2\u30c0\u30eb\u30c8\u30d3\u30c7\u30aa \u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u30fc",
1287
+ "https://civitai.com/models/728512",
1288
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/24fd4c55-477a-4ebf-8212-42e4a4f694b0/width=450/28131364.jpeg"
1289
+ ],
1290
  "JMT_SDXL_V2": [
1291
  "JMT",
1292
  "SDXL 1.0",
 
1371
  "https://civitai.com/models/350199",
1372
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/385edbe8-3fad-4278-bfed-43d551e8f78b/width=450/8901842.jpeg"
1373
  ],
1374
+ "LECO-mature_female_XL(ill)v10": [
1375
+ "mature female,",
1376
+ "SDXL 1.0",
1377
+ "[illustrious LECO] mature female...? / \u719f\u5973\u304b\u3089\u306a\u305c\u304b\u30ed\u30dc\u306b\u306a\u308bLECO",
1378
+ "https://civitai.com/models/846750",
1379
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/f9f14c8b-63cd-4590-872b-4108079b1cb2/width=450/34156304.jpeg"
1380
+ ],
1381
  "LapPillowXL": [
1382
  "LapPillowXL",
1383
  "Pony",
 
1483
  "https://civitai.com/models/566542",
1484
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e2daae6e-a9fb-43c5-b4ee-cfa264a6455d/width=450/19074383.jpeg"
1485
  ],
1486
+ "MORTARHEADD_like_mecha_v1": [
1487
+ "MORTARHEADD / MH-POSE / MH-BUSTER / MH-KOG / MH-LED-MIRAGE / MH-Engage-SR1 / MH-the-BANG / MH-Neptune / MH-BTK",
1488
+ "SDXL 1.0",
1489
+ "FSS Mortar headd Like mecha",
1490
+ "https://civitai.com/models/844457",
1491
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/0740f561-8808-425c-a4e0-90575f887262/width=450/34033551.jpeg"
1492
+ ],
1493
  "MS_PDXL_AfterSex_Lite": [
1494
  "after sex, cum, lying, cumdrip, ass, on stomach, on back, fucked silly, sweat, cum pool, bukkake, trembling",
1495
  "Pony",
 
1532
  "https://civitai.com/models/607386",
1533
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/29cc59c1-f082-43b5-be83-0b240579175c/width=450/21837456.jpeg"
1534
  ],
1535
+ "Masturbation-000018": [
1536
+ "clitoral stimulation / motion lines / masturbation lines",
1537
+ "Pony",
1538
+ "Masturbation+",
1539
+ "https://civitai.com/models/607386",
1540
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/414c50f3-97ad-4d4f-84cc-1e9c43620392/width=450/28989046.jpeg"
1541
+ ],
1542
  "MdaStarouXL_ANI31_lokr_V43P1NF": [
1543
  "",
1544
  "SDXL 1.0",
 
1602
  "https://civitai.com/models/508749",
1603
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a2e50154-31d8-431b-a59e-f26590dad8a4/width=450/15452920.jpeg"
1604
  ],
1605
+ "Morikoke_Pony_V1": [
1606
+ "morikoke, (comic:1.25), (Multi view, Frame, Text, speech bubble, frame, heart, trembling, focus line, vibrating line, comic expression, Sound effect) 2+girls, multiple girls, solo focus, breasts, navel, nipples, pussy, clitoris, vaginal, anus, ass, nude, torn clothes, pussy juice, female masturbation, 3+boys, multiple boys, erection, penis, multiple penises, (Orcs, goblins, other races, green skin, monster, penis, tusks), chain, chain leash, collar, restrained, saliva, testicles, cum, hetero, sex, group sex, oral, fellatio, spread legs, spitroast, irrumatio, sweat, gangbang, double penetration, bangs, folded, thick thighs, ",
1607
+ "Pony",
1608
+ "Hentai Comic Random Generator (Orcs Goblins) (Morikoke Art Style) Pony XL | \u30a8\u30ed\u6f2b\u753b\u30e9\u30f3\u30c0\u30e0\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u30fc (\u30aa\u30fc\u30af \u30b4\u30d6\u30ea\u30f3) (\u3082\u308a\u82d4 \u30a2\u30fc\u30c8 \u30b9\u30bf\u30a4\u30eb)",
1609
+ "https://civitai.com/models/773022",
1610
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/05d94d19-f606-4d0c-9953-dd951bdfac6f/width=450/30113880.jpeg"
1611
+ ],
1612
  "Naked_Sheet_Pony": [
1613
  "naked sheet",
1614
  "Pony",
 
1931
  "https://civitai.com/models/530390",
1932
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3bf960f6-578e-4dc4-93a9-a3fb96cc93e8/width=450/16749759.jpeg"
1933
  ],
1934
+ "Precure_Maker_Pony": [
1935
+ "pretty cure",
1936
+ "Pony",
1937
+ "Precure Maker [Pony]",
1938
+ "https://civitai.com/models/766973",
1939
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a3d3feb4-7706-4350-9ed0-48d97ccd5d1e/width=450/31565381.jpeg"
1940
+ ],
1941
  "Pregao_v1_SDXL": [
1942
  "pregao, 1girl, pregnant, small breasts, big breasts, big areola, dark nipples, lactation, sex, vaginal,",
1943
  "SDXL 1.0",
 
1987
  "https://civitai.com/models/89005",
1988
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ad46540c-a4cf-4001-8d28-0ebd3ede352b/width=450/23668605.jpeg"
1989
  ],
1990
+ "Pussy_Peach_Front_v7_XL": [
1991
+ "pussy_scale1 / pussy_scale2 / pussy_scale3",
1992
+ "SDXL 1.0",
1993
+ "Real Pussy - Peach",
1994
+ "https://civitai.com/models/99174",
1995
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8a21b139-513e-4105-a6a5-c98309f2dd1c/width=450/28177027.jpeg"
1996
+ ],
1997
  "Pussy_on_Pussy": [
1998
  "Pussy on Pussy / Symmetrical Pussy",
1999
  "SDXL 1.0",
 
2449
  "https://civitai.com/models/421737",
2450
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3b87142d-9566-4d54-b0c9-e87f44c96097/width=450/16498196.jpeg"
2451
  ],
2452
+ "VMAG_MAGKAN_Pony_V1": [
2453
+ "(vmag magkan),((huge clitoris)), clitoral foreskin, cute pussy, enlarged labia, developed inner labia, urethra, / (vmag magkan),(huge clitoris), spread pussy,pussy juice trail, pussy juice puddle, (close-up clitoris), (close-up layers),(Multiple layers), (multiple views), simple bacground, zoom layer, close-up layer,",
2454
+ "Pony",
2455
+ "Hentai Huge Clitoris Spread Pussy (V-MAG | MAG KAN Art Style) Pony XL | \u5de8\u5927\u30af\u30ea\u30c8\u30ea\u30b9 \u307e\u3093\u3053\u304f\u3071\u3041",
2456
+ "https://civitai.com/models/782388",
2457
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/cdb5d1db-da0f-455a-ad60-47cc69499024/width=450/30564542.jpeg"
2458
+ ],
2459
+ "VPR02-000001": [
2460
+ "",
2461
+ "Flux.1 D",
2462
+ "Virgin Report",
2463
+ "https://civitai.com/models/730734",
2464
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/f295fe5c-8e00-4d82-9e58-799ca8294b3b/width=450/29412568.jpeg"
2465
+ ],
2466
+ "VRP-000012": [
2467
+ "VRP01,multiple views, uncensored, solo, 1girl,",
2468
+ "Pony",
2469
+ "Virgin Report",
2470
+ "https://civitai.com/models/730734",
2471
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ecf226c6-9f23-435e-b745-5b3c31704838/width=450/28242369.jpeg"
2472
+ ],
2473
  "V_over_mouth_Pose_XL": [
2474
  "1woman, v_over_mouth, blush, detailed eyes, lips, smile, upper body, breasts, (v_over_mouth:1.4) / tongue_out , saliva, saliva_trail, naughty_face / cunnilingus_gesture / implied_yuri",
2475
  "SDXL 1.0",
 
2848
  "https://civitai.com/models/238419",
2849
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/74053ca5-9486-44ee-94d1-9cebcbbe7250/width=450/22207105.jpeg"
2850
  ],
2851
+ "airguitar_XL_v2": [
2852
+ "airgui",
2853
+ "SDXL 1.0",
2854
+ "air guitar / \u30a8\u30a2\u30ae\u30bf\u30fc",
2855
+ "https://civitai.com/models/827890",
2856
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/bd10aea5-edc4-4e24-9b3d-58651faf5892/width=450/33009474.jpeg"
2857
+ ],
2858
+ "akanbe-ponyxl-lora-nochekaiser": [
2859
+ "<lora:akanbe-ponyxl-lora-nochekaiser:1>, akanbe, eyelid pull, finger to eye, tongue out, :p, tongue, ;p,",
2860
+ "Pony",
2861
+ "Akanbe (\u3042\u3063\u304b\u3093\u3079\u30fc) - Concept",
2862
+ "https://civitai.com/models/828913",
2863
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/f3cfd5c3-725a-4397-ab71-531baeb28533/width=450/33420099.jpeg"
2864
+ ],
2865
  "akifn_pony_v2": [
2866
  "",
2867
  "Pony",
 
3121
  "https://civitai.com/models/557706",
3122
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/febb854e-af50-4b41-91fd-f3d91752a6b4/width=450/18508556.jpeg"
3123
  ],
3124
+ "battingstance_Pony_v1": [
3125
+ "batting stance",
3126
+ "Pony",
3127
+ "[SDXL&Pony] batting stance / baseball bat / \u30d0\u30c3\u30c6\u30a3\u30f3\u30b0\u30d5\u30a9\u30fc\u30e0 / \u30b9\u30a4\u30f3\u30b0 / \u91ce\u7403",
3128
+ "https://civitai.com/models/361320",
3129
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/b77daa05-fa87-4fe3-bf04-ccb94b851abe/width=450/27784936.jpeg"
3130
+ ],
3131
+ "battingstance_XL_v1": [
3132
+ "batting stance",
3133
+ "SDXL 1.0",
3134
+ "[SDXL&Pony] batting stance / baseball bat / \u30d0\u30c3\u30c6\u30a3\u30f3\u30b0\u30d5\u30a9\u30fc\u30e0 / \u30b9\u30a4\u30f3\u30b0 / \u91ce\u7403",
3135
+ "https://civitai.com/models/361320",
3136
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/518bfce8-3d3b-433d-991c-fa6dc37d48a5/width=450/8322594.jpeg"
3137
+ ],
3138
+ "bdp_ero_v1": [
3139
+ "bodypaint \\(ero\\)",
3140
+ "Pony",
3141
+ "(Pony) Body paint-erotic / \u8eab\u4f53\u306b\u843d\u66f8\u304d-\u30a8\u30ed",
3142
+ "https://civitai.com/models/817937",
3143
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/f362acdb-ca31-4101-8b57-8504b93320a1/width=450/32417103.jpeg"
3144
+ ],
3145
  "belko-XL-v31-ep20": [
3146
  "",
3147
  "SDXL 1.0",
 
3177
  "https://civitai.com/models/413240",
3178
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/b70b41a8-6a37-4cc9-894a-904de8e1f238/width=450/10439295.jpeg"
3179
  ],
3180
+ "betweenbreasts_Pony_v1": [
3181
+ "between breasts",
3182
+ "Pony",
3183
+ "[SDXL&Pony]between breasts / \u7591\u4f3c\u30d1\u30a4\u30ba\u30ea / \u304a\u3063\u3071\u3044\u30dd\u30b1\u30c3\u30c8",
3184
+ "https://civitai.com/models/402979",
3185
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3742babb-c058-47f9-b0bc-2d541da43695/width=450/33014304.jpeg"
3186
+ ],
3187
+ "betweenbreasts_XL_v1": [
3188
+ "between breasts",
3189
+ "SDXL 1.0",
3190
+ "[SDXL&Pony]between breasts / \u7591\u4f3c\u30d1\u30a4\u30ba\u30ea / \u304a\u3063\u3071\u3044\u30dd\u30b1\u30c3\u30c8",
3191
+ "https://civitai.com/models/402979",
3192
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/6757b641-e0a7-4fd7-a2eb-f39ed2485303/width=450/9971972.jpeg"
3193
+ ],
3194
  "big_clitoris_pony_V1_0": [
3195
  "big clitoris / clitoris / erection",
3196
  "Pony",
 
3310
  "https://civitai.com/models/539285",
3311
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/03d304a7-fce1-4ed2-b254-1b82698d53f2/width=450/17279266.jpeg"
3312
  ],
3313
+ "breakdance_XL_v2": [
3314
+ "breakdance",
3315
+ "SDXL 1.0",
3316
+ "breakdance / breaking / \u30d6\u30ec\u30a4\u30af\u30c0\u30f3\u30b9 / \u30d6\u30ec\u30a4\u30ad\u30f3",
3317
+ "https://civitai.com/models/851015",
3318
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5ee7371d-7aab-471c-8717-810132afc44c/width=450/34389576.jpeg"
3319
+ ],
3320
  "breast_open_bikini_pony_V1_0": [
3321
  "breast open bikini",
3322
  "Pony",
 
3443
  "https://civitai.com/models/388278",
3444
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4f67c762-36d9-4024-93d5-a5128f8d1190/width=450/16558171.jpeg"
3445
  ],
3446
+ "burikko_pose_XL_V1_0": [
3447
+ "burikko pose, hands up",
3448
+ "SDXL 1.0",
3449
+ "\u3076\u308a\u3063\u5b50\u30dd\u30fc\u30ba",
3450
+ "https://civitai.com/models/774033",
3451
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/dd29c97a-1e95-4186-8df5-632736cbae79/width=450/31573297.jpeg"
3452
+ ],
3453
+ "burikko_pose_pony_V1_0": [
3454
+ "burikko pose, hands up,standing on one leg,smile",
3455
+ "Pony",
3456
+ "\u3076\u308a\u3063\u5b50\u30dd\u30fc\u30ba",
3457
+ "https://civitai.com/models/774033",
3458
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a40c5df4-a377-403e-bf7d-37a41348beef/width=450/30157247.jpeg"
3459
+ ],
3460
  "buruma_Pony_V1_0": [
3461
  "sgu,gym uniform / blue buruma / red buruma / green buruma",
3462
  "Pony",
 
3548
  "https://civitai.com/models/476691",
3549
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e2c7f23f-fa78-4121-9ed7-37944c025ada/width=450/13846218.jpeg"
3550
  ],
3551
+ "characterdoll_XL_v1": [
3552
+ "character doll",
3553
+ "SDXL 1.0",
3554
+ "character doll / stuffed toy / \u306c\u3044\u3050\u308b\u307f",
3555
+ "https://civitai.com/models/797851",
3556
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/abfb6de7-f725-4e32-87d0-9d70a3ee18b8/width=450/31357365.jpeg"
3557
+ ],
3558
  "charming_bulge_pony-v1_0": [
3559
  "nsfw,from behind,ass focus,nude,close-up,top-down_bottom-up,from below,",
3560
  "Pony",
 
3618
  "https://civitai.com/models/516752",
3619
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e73b7c72-0bdc-4a07-b05d-1ee95d3e9eaa/width=450/17239717.jpeg"
3620
  ],
3621
+ "chikubi_karikari_v1_rev8-000035": [
3622
+ "chikubi_karikari, from front, nipple stimulation, (motion lines, sound effects:1.3), ${breasts size} / chikubi_karikari, from side, nipple stimulation, (motion lines, sound effects:1.3), ${breasts size} / chikubi_karikari, from below, nipple stimulation, (motion lines, sound effects:1.3), ${breasts size}",
3623
+ "Pony",
3624
+ "Nipple-Scratching / \u4e73\u9996\u30ab\u30ea\u30ab\u30ea\u30aa\u30ca\u30cb\u30fc",
3625
+ "https://civitai.com/models/812637",
3626
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/49b8dcbf-42fd-4255-9e17-3b8888d7fc41/width=450/32130653.jpeg"
3627
+ ],
3628
+ "chikubi_karikari_v2_rev1-000035": [
3629
+ "chikubi_karikari, from front, nipple stimulation, (motion lines, sound effects:1.3), ${your desired breasts size} / chikubi_karikari, from side, nipple stimulation, (motion lines, sound effects:1.3), ${your desired breasts size} / chikubi_karikari, from below, nipple stimulation, (motion lines, sound effects:1.3), ${your desired breasts size} ",
3630
+ "Pony",
3631
+ "Nipple-Scratching / \u4e73\u9996\u30ab\u30ea\u30ab\u30ea\u30aa\u30ca\u30cb\u30fc",
3632
+ "https://civitai.com/models/812637",
3633
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/25e5c86b-a6d1-4129-99be-d37ebcd43e4b/width=450/32617666.jpeg"
3634
+ ],
3635
  "china_dress_Pony_V1_0": [
3636
  "jyojifuku, china dress, skirt",
3637
  "Pony",
 
3821
  "https://civitai.com/models/145887",
3822
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d5944f71-a1a7-4dcc-927b-5ea70aa1ca5f/width=450/10955692.jpeg"
3823
  ],
3824
+ "crackingknuckles_XL_v1": [
3825
+ "cracking knuckles",
3826
+ "SDXL 1.0",
3827
+ "cracking knuckles / \u6307\u30dd\u30ad",
3828
+ "https://civitai.com/models/724692",
3829
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/68798ca7-7fe9-453b-853d-eed3bd4b78bd/width=450/27944645.jpeg"
3830
+ ],
3831
  "creepydoll": [
3832
  "doll / long arms, long legs",
3833
  "Pony",
 
3982
  "https://civitai.com/models/587903",
3983
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5cf842df-f4bc-4c05-a125-e5bd7ddb3192/width=450/20470483.jpeg"
3984
  ],
3985
+ "deepthroat_pony_V1_0": [
3986
+ "deepthroat / irrumatio",
3987
+ "Pony",
3988
+ "\u30a4\u30e9\u30de\u30c1\u30aa/irrumatio,deepthroat",
3989
+ "https://civitai.com/models/728624",
3990
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a29c4df9-07eb-4f8f-b984-c24b7531225a/width=450/28137263.jpeg"
3991
+ ],
3992
+ "defence_pose_XL_V1_0": [
3993
+ "defense pose, crossed arms",
3994
+ "SDXL 1.0",
3995
+ "\u80f8\u3092\u96a0\u3059/defence pose",
3996
+ "https://civitai.com/models/838545",
3997
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a0c09c07-ecb6-4e08-80a4-8db895feb3f1/width=450/33960236.jpeg"
3998
+ ],
3999
+ "defence_pose_pony_V1_0": [
4000
+ "defense pose,crossed arms",
4001
+ "Pony",
4002
+ "\u80f8\u3092\u96a0\u3059/defence pose",
4003
+ "https://civitai.com/models/838545",
4004
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4611cac5-7c02-484c-9937-a4b7fb5c3817/width=450/33675457.jpeg"
4005
+ ],
4006
  "deflowered_pony": [
4007
  "1woman, perfect face, fully nude, imminent penetration:1.4, deflowered:1.1, blood on thighs, blood dripping, semen, cum, overflow:1.2, / 1male, huge penis, large testicles, / female pubic hair, uncensored pussy, hairy pussy, blush / <lora:deflowered_pony:0.7>,",
4008
  "Pony",
 
4080
  "https://civitai.com/models/603258",
4081
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a9862d57-c319-439a-a392-8b16d4adfc42/width=450/21484810.jpeg"
4082
  ],
4083
+ "donbiki_Pony_v1": [
4084
+ "donbiki",
4085
+ "Pony",
4086
+ "[SDXL&Pony] disgust / \u30c9\u30f3\u5f15\u304d / \u990a\u8c5a\u5834\u306e\u8c5a\u3092\u898b\u308b\u3088\u3046\u306a\u76ee",
4087
+ "https://civitai.com/models/759232",
4088
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/01b45ffa-05fe-43c2-89c8-e8c663903187/width=450/31353003.jpeg"
4089
+ ],
4090
+ "donbiki_XL_v1": [
4091
+ "donbiki",
4092
+ "SDXL 1.0",
4093
+ "disgust / \u30c9\u30f3\u5f15\u304d / \u990a\u8c5a\u5834\u306e\u8c5a\u3092\u898b\u308b\u3088\u3046\u306a\u76ee",
4094
+ "https://civitai.com/models/759232",
4095
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/dda4755b-bdf8-490b-97c3-cc9178194e9e/width=450/29610758.jpeg"
4096
+ ],
4097
  "doorFisheyeConceptPDXL_v10": [
4098
  "fisheye / outdoors / hallway",
4099
  "Pony",
 
4388
  "https://civitai.com/models/357976",
4389
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ead23075-e9ff-4378-b1b3-442b1abaef78/width=450/14593009.jpeg"
4390
  ],
4391
+ "girl_run_XL_V1_0": [
4392
+ "girl run,running",
4393
+ "SDXL 1.0",
4394
+ "\u4e59\u5973\u8d70\u308a/girl run",
4395
+ "https://civitai.com/models/771618",
4396
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/bf22a385-22b4-4e8c-aeeb-7b0c8af12b23/width=450/30887097.jpeg"
4397
+ ],
4398
+ "girl_run_pony_V1_0": [
4399
+ " girl run, running",
4400
+ "Pony",
4401
+ "\u4e59\u5973\u8d70\u308a/girl run",
4402
+ "https://civitai.com/models/771618",
4403
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fc0c28fb-5f6f-47e4-91d1-f6f90d687660/width=450/30041627.jpeg"
4404
+ ],
4405
  "girllikewipemouth_pony": [
4406
  "(((cum on mouth))), ((wipe mouth, napkin on lips, hand on mouth, profile, squinting eyes, frown, head down)), crying, drooling, parted lips, fever, sad, leftovers, plate, table, glass cup, potted plant, tree, bokeh, foggy sky, sweating profusely, teardrop, open-air restaurant, outdoors, building, street, cloud, crowd, 1girl, cute, choker, cleavage, medium tits, sideboob, shy, blush, petite figure,",
4407
  "Pony",
 
4437
  "https://civitai.com/models/576705",
4438
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/af821c46-6ce4-4726-921c-6cd723f66a0f/width=450/19739141.jpeg"
4439
  ],
4440
+ "glory_wall_pony_V1_0": [
4441
+ " glory wall, ass",
4442
+ "Pony",
4443
+ "\u58c1\u5c3b/glory wall",
4444
+ "https://civitai.com/models/828936",
4445
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/680ddc61-36b7-4407-b4b1-b6e63d86581a/width=450/33087471.jpeg"
4446
+ ],
4447
  "gm_meme": [
4448
  "sitting, girl on top, bed, downblouse",
4449
  "Pony",
 
4493
  "https://civitai.com/models/293472",
4494
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/86297f60-4594-461a-a142-ef8878a3f516/width=450/12847487.jpeg"
4495
  ],
4496
+ "grinding_pony_V1_0": [
4497
+ "grinding, 1girl, 1boy, penis, girl on top, straddling / standing,thigh sex",
4498
+ "Pony",
4499
+ "\u7d20\u80a1/grinding",
4500
+ "https://civitai.com/models/727117",
4501
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/de1497d7-3ee5-4a79-a925-ebe181d35266/width=450/28070293.jpeg"
4502
+ ],
4503
  "group_sex_pony_V1_0": [
4504
  "group sex",
4505
  "Pony",
 
4633
  "https://civitai.com/models/636110",
4634
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4ca030e3-b524-4a11-a5b7-a654a100e578/width=450/23624021.jpeg"
4635
  ],
4636
+ "hand_under_skirt_pony_V1_0": [
4637
+ "hand under skirt, skirt, groping, blush, hand under clothes,1boy",
4638
+ "Pony",
4639
+ "\u30b9\u30ab\u30fc\u30c8\u306e\u4e2d\u306b\u624b\u3092\u5165\u308c\u308b/hand under skirt",
4640
+ "https://civitai.com/models/751675",
4641
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c8bc5bfc-7d51-4a3f-b55e-ac533d041156/width=450/29324211.jpeg"
4642
+ ],
4643
  "hanketsu_SDXL_V1": [
4644
  "MH2, 1girl, swimsuit, solo, bikini, brown hair, long hair, smile, grin, water, butt crack, white bikini, ass, side-tie bikini bottom, pool, brown eyes, sitting, looking at viewer, looking back,",
4645
  "SDXL 1.0",
 
4752
  "https://civitai.com/models/516752",
4753
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/29c835ca-5f12-43e8-ac93-b4fd1c234bce/width=450/15866815.jpeg"
4754
  ],
4755
+ "holding_glass_XL_V1_0": [
4756
+ "holding glass",
4757
+ "SDXL 1.0",
4758
+ "\u30b0\u30e9\u30b9\u3092\u6301\u3064/holding glass",
4759
+ "https://civitai.com/models/789843",
4760
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5dd4a050-0c73-4317-9be7-bf5975275c00/width=450/31026289.jpeg"
4761
+ ],
4762
+ "holding_glass_pony_V1_0": [
4763
+ "holding glass",
4764
+ "Pony",
4765
+ "\u30b0\u30e9\u30b9\u3092\u6301\u3064/holding glass",
4766
+ "https://civitai.com/models/789843",
4767
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8fd6bd75-e2d9-4bc3-b4db-312d03d62c41/width=450/30941057.jpeg"
4768
+ ],
4769
  "holding_panties_SDXL": [
4770
  "holding panties,stained panties,unworn panties,open hand,no panties",
4771
  "Pony",
 
4941
  "https://civitai.com/models/445063",
4942
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/bf48c337-2273-4e39-b8a6-088c386c0e86/width=450/11965557.jpeg"
4943
  ],
4944
+ "jyojifuku_XL_V2_0": [
4945
+ " jyojifuku, print clothes, pastel color clothes / print shirt / skirt / thighhighs / socks / backpack / shoes",
4946
+ "SDXL 1.0",
4947
+ "\u5973\u5150\u670d/girl's clothes(XL,Pony)",
4948
+ "https://civitai.com/models/445063",
4949
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9555de99-1fba-4af8-9cb2-f03f7ae6e094/width=450/32416800.jpeg"
4950
+ ],
4951
  "jyojimizugi_Pony_V1_0": [
4952
  "jyojimizugi,bikini,frills",
4953
  "Pony",
 
5053
  "https://civitai.com/models/511064",
5054
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ac1f7ec5-bd8c-4694-9aa4-d158c1fa878a/width=450/21578898.jpeg"
5055
  ],
5056
+ "kijyou_fella_pony_V1_0": [
5057
+ " fellatio,oral / on back / 1boy / penis",
5058
+ "Pony",
5059
+ "\u9a0e\u4e57\u30d5\u30a7\u30e9",
5060
+ "https://civitai.com/models/846716",
5061
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/886182f3-511e-4b82-ab63-78cc9e246443/width=450/34323618.jpeg"
5062
+ ],
5063
  "kingyo_fukuro_SDXL_V1": [
5064
  "kingyofukuro, bagged fish, fish, bag, goldfish, ",
5065
  "SDXL 1.0",
 
5599
  "https://civitai.com/models/573056",
5600
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c3c99a9a-f2cf-4c20-ae4b-a03ded327311/width=450/19512503.jpeg"
5601
  ],
5602
+ "multi_chan_v2": [
5603
+ "multi_chan",
5604
+ "Pony",
5605
+ "multiple views chan",
5606
+ "https://civitai.com/models/822633",
5607
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/845c7664-e4aa-48a1-a1e7-059531b679ff/width=450/33096611.jpeg"
5608
+ ],
5609
  "multi_prolapse_ponyXL_v1": [
5610
  "anal prolapse / uterine prolapse / double prolapse / ovary prolapse",
5611
  "Pony",
 
5655
  "https://civitai.com/models/116480",
5656
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a1f95800-1982-4678-90ab-3d4b9dd88317/width=450/7839890.jpeg"
5657
  ],
5658
+ "nekomimi_hachimaki_pony_V1_0": [
5659
+ "nekomimi hachimaki, cat ears",
5660
+ "Pony",
5661
+ "\u732b\u8033\u30d0\u30f3\u30c9",
5662
+ "https://civitai.com/models/749035",
5663
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/130ec179-8851-4ef9-851c-d20c80daf96e/width=450/29232349.jpeg"
5664
+ ],
5665
  "netcafe_SDXL_V1": [
5666
  "necafe, scenery, indoors, computer, door, chair, monitor, still life, mouse (computer), desk",
5667
  "SDXL 1.0",
 
5704
  "https://civitai.com/models/519082",
5705
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/62e358a7-eaf5-4e67-8c7f-2ca6080d9741/width=450/16011887.jpeg"
5706
  ],
5707
+ "nipples_rub_pony_V1_0": [
5708
+ "nipples rub / nipples-to-nipples",
5709
+ "Pony",
5710
+ "\u4e73\u9996\u5408\u308f\u305b/nipples rub",
5711
+ "https://civitai.com/models/779422",
5712
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e0e5fc6f-0938-459f-b32d-bc78c352f39f/width=450/30418292.jpeg"
5713
+ ],
5714
  "nipples_weights_pony_V1_0": [
5715
  "nipple piercing / nipples weights / Saggy breasts",
5716
  "Pony",
 
5991
  "https://civitai.com/models/471380",
5992
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e2937f26-1d39-4a1f-b4ec-1beb65a8eb2d/width=450/14088300.jpeg"
5993
  ],
5994
+ "panty_pull_pony_V1_0": [
5995
+ "pulling another's clothes, panty pull, grabbing panties, 1boy,",
5996
+ "Pony",
5997
+ "panty pull",
5998
+ "https://civitai.com/models/752237",
5999
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/cf7f21d5-1d33-4584-ab31-c6050baa40f2/width=450/29346844.jpeg"
6000
+ ],
6001
  "pantyhose_waist-000001": [
6002
  "",
6003
  "Pony",
 
6061
  "https://civitai.com/models/590441",
6062
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9b873e11-1066-41ac-94fc-da6cf7653345/width=450/22678594.jpeg"
6063
  ],
6064
+ "pee_shower_pony_V1_0": [
6065
+ "pee shower, pov, pee, peeing, pussy",
6066
+ "Pony",
6067
+ "\u8056\u6c34\u30d7\u30ec\u30a4/pee shower",
6068
+ "https://civitai.com/models/753382",
6069
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/6b8f08bd-888f-4bfc-aff7-9dcba22257e3/width=450/29386724.jpeg"
6070
+ ],
6071
  "peeing_underwater-05": [
6072
  "peeing underwater",
6073
  "Pony",
 
6117
  "https://civitai.com/models/470923",
6118
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9870ea43-5d3b-4403-8d3e-48bb122c3897/width=450/13800000.jpeg"
6119
  ],
6120
+ "pet_shaming_pony_v1": [
6121
+ "hansei_b,sitting,seiza,sign",
6122
+ "Pony",
6123
+ "Pet shaming / \u53cd\u7701\u672d",
6124
+ "https://civitai.com/models/851053",
6125
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3d962f39-b4e6-4165-9bb7-b6ff074f2e9f/width=450/34391608.jpeg"
6126
+ ],
6127
  "phallic_food_-_XL_Pony_V2_0": [
6128
  "Banana, half peeled, half peeled banana, / sausage, / sausage, sausage on stick, / Makizushi, sushi roll, ehomaki, / Hot dog, / ketchup, / mustard, / sucking, / holding, / eating, / biting, / licking, / saliva, / fork, / chocolate banana / sandwich / popsicle / cucumber / mushroom",
6129
  "Pony",
 
6285
  "https://civitai.com/models/460612",
6286
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/317fdc7f-6c93-4653-99db-11d85b027e03/width=450/12768924.jpeg"
6287
  ],
6288
+ "pony_xl_ubw": [
6289
+ "ubw,gears,weapon,sword,planted,planted sword",
6290
+ "Pony",
6291
+ "UBW/\u7121\u9650\u306e\u5263\u88fd",
6292
+ "https://civitai.com/models/794642",
6293
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4780bd2c-df3c-49b7-b9be-0ac9b5e738e7/width=450/31182118.jpeg"
6294
+ ],
6295
  "ponyxl-small_penis_cross_section": [
6296
  "x-ray, cross-section / small penis / foreskin / internal cumshot / deficient cum(*might be meaningless? not sure....) / excessive cum(*for more cum?) / cum in cervix(*cum might be less, might not fill uterus at all. maybe? unstable) / cum in uterus(*cum might fill uterus. can be unstable) / tiny penis, short penis, poor penis(*optional. maybe have some effect...? not sure)",
6297
  "Pony",
 
6348
  "https://civitai.com/models/540509",
6349
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d233b85a-1dfd-48d1-98eb-b758ef5079af/width=450/17360529.jpeg"
6350
  ],
6351
+ "pouring_XL_v2": [
6352
+ "pouring",
6353
+ "SDXL 1.0",
6354
+ "pouring / \u7d05\u8336\u6ce8\u304e",
6355
+ "https://civitai.com/models/819364",
6356
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/efe54e80-ea4e-4e47-8f92-a22c03575a54/width=450/32491845.jpeg"
6357
+ ],
6358
  "povsit": [
6359
  "povsit / from below",
6360
  "Pony",
 
6474
  "https://civitai.com/models/575758",
6475
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/baccd194-7d91-4d04-858d-627c3ed263f9/width=450/19683271.jpeg"
6476
  ],
6477
+ "railgun_technique": [
6478
+ "coin, holding coin, facing viewer, looking at the viewer, electricity, electrokinesis / orange beam, energy beam, from side, looking to the side, electricity, electrokinesis, one-arm outstretched, city background ",
6479
+ "Pony",
6480
+ "Railgun pose and technique (Misaka Mikoto) [To aru majutsu / kagaku]",
6481
+ "https://civitai.com/models/822171",
6482
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d32e5d7b-e17d-4299-bb62-ba3caff139e0/width=450/32814916.jpeg"
6483
+ ],
6484
  "ramune_SDXL_V1": [
6485
  "ramune, food, bottle, ",
6486
  "SDXL 1.0",
 
6572
  "https://civitai.com/models/498892",
6573
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9822ab8f-9832-4471-9ff7-3fe6a00714c8/width=450/14826239.jpeg"
6574
  ],
6575
+ "returningaxis_Illust0_1XL1": [
6576
+ "returningaxis",
6577
+ "SDXL 1.0",
6578
+ "Returning the Axis / \u30a2\u30af\u30b7\u30ba\u8fd4\u3057\u3000SDXL",
6579
+ "https://civitai.com/models/834850",
6580
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3ba9433d-8f5e-465b-bcf4-1568a9624059/width=450/33452531.jpeg"
6581
+ ],
6582
  "revealing_forehead_concept-soralz": [
6583
  "revealing forehead, hand on own hair, forehead, head tilt",
6584
  "Pony",
 
6635
  "https://civitai.com/models/585342",
6636
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/b603d775-8004-4425-a85e-a754f9be2977/width=450/20290307.jpeg"
6637
  ],
6638
+ "rubbing_eyes_XL_V1_0": [
6639
+ "rubbing eyes",
6640
+ "SDXL 1.0",
6641
+ "\u76ee\u3092\u3053\u3059\u308b/rubbing eyes",
6642
+ "https://civitai.com/models/757308",
6643
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d44476c8-33d1-4d88-9805-818337082c01/width=450/29537179.jpeg"
6644
+ ],
6645
  "rukia": [
6646
  "",
6647
  "Pony",
 
6677
  "https://civitai.com/models/139131",
6678
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/41712367-efa2-4a3a-aca0-52b46352539f/width=450/5480410.jpeg"
6679
  ],
6680
+ "saliva_pony_V1_0": [
6681
+ "saliva / saliva trail / ball gag",
6682
+ "Pony",
6683
+ "\u6d8e/saliva",
6684
+ "https://civitai.com/models/728910",
6685
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4ad9e287-319c-4ac7-965e-5c5921af0489/width=450/28155621.jpeg"
6686
+ ],
6687
  "sanitary_napkins_pony_V1_1": [
6688
  "sanitary napkins,panties",
6689
  "Pony",
 
6831
  "https://civitai.com/models/594617",
6832
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8598e698-88d1-4650-a447-a307a52ce7f4/width=450/20899405.jpeg"
6833
  ],
6834
+ "shiDioV2": [
6835
+ "konodiopose, pointing, parody, meme, smile, open mouth, style parody, upper body",
6836
+ "Pony",
6837
+ "Kono Dio Da! JoJo Meme Pose | Single Concept | PonyXL",
6838
+ "https://civitai.com/models/834937",
6839
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a4fd210d-90db-4995-8868-482e597fe927/width=450/33459038.jpeg"
6840
+ ],
6841
+ "shiReroVT1": [
6842
+ "shirerocrazy, cross-eyed, tongue, cherry on tongue, saliva, tongue out, looking at viewer, open mouth, parody, cherry, ",
6843
+ "Pony",
6844
+ "Rerorerorerorero Noriaki Kakyoin Cherry Lick Concept | PonyXL",
6845
+ "https://civitai.com/models/837489",
6846
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/05c6aefc-9791-4be4-a5e4-54853cc4a503/width=450/33616097.jpeg"
6847
+ ],
6848
  "shibari_V3_sdxl": [
6849
  "shibari",
6850
  "SDXL 1.0",
 
6957
  "https://civitai.com/models/602418",
6958
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/cf5b0816-ccd6-49bb-8c5b-0fdc56a30dcf/width=450/21430280.jpeg"
6959
  ],
6960
+ "small_penis_cross-section_illustrious-000035": [
6961
+ "tiny penis / cross-section / internal cumshot / excessive cum / deficient cum",
6962
+ "SDXL 1.0",
6963
+ "[Pony / Illustrious XL] cross-section for small penis / \u77ed\u5c0f\u7c97\u30c1\u30f3\u65ad\u9762\u56f3",
6964
+ "https://civitai.com/models/430102",
6965
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/426490c3-9646-418e-9741-84f1d9ef0ba7/width=450/33670775.jpeg"
6966
+ ],
6967
  "smalldombigsubV3": [
6968
  "small dom big sub / size difference",
6969
  "Pony",
 
7013
  "https://civitai.com/models/717353",
7014
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/81be9bdf-990b-4a1f-92f4-2dd5ac78fe79/width=450/27574152.jpeg"
7015
  ],
7016
+ "spacium_beam": [
7017
+ "spacium beam / (energy beam:1.1),",
7018
+ "Pony",
7019
+ "Spacium Beam \u30b9\u30da\u30b7\u30a6\u30e0\u5149\u7dda",
7020
+ "https://civitai.com/models/836143",
7021
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a1e6fe94-c09b-4a15-95c7-43cc3f80e4ae/width=450/33548979.jpeg"
7022
+ ],
7023
  "spagainstScreenXLPony": [
7024
  "against glass, breast press, cheek press",
7025
  "Pony",
 
7230
  "https://civitai.com/models/351660",
7231
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1086274d-eeda-4a61-8f25-17bfb4580ab7/width=450/7991149.jpeg"
7232
  ],
7233
+ "sunscreen_Pony_v1": [
7234
+ "sunscreen",
7235
+ "Pony",
7236
+ "[SDXL&Pony] sunscreen / \u65e5\u713c\u3051\u6b62\u3081\u5857\u308a",
7237
+ "https://civitai.com/models/664113",
7238
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/7af6fd01-de4c-4019-aee7-ed77c6bb9328/width=450/28115463.jpeg"
7239
+ ],
7240
+ "sunscreen_XL_v1": [
7241
+ "sunscreen",
7242
+ "SDXL 1.0",
7243
+ "[SDXL&Pony] sunscreen / \u65e5\u713c\u3051\u6b62\u3081\u5857\u308a",
7244
+ "https://civitai.com/models/664113",
7245
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/83e53dbf-a58c-4f98-84bf-5d6e2e4b8218/width=450/25443811.jpeg"
7246
+ ],
7247
  "suntan_V1_0": [
7248
  "tanline",
7249
  "Pony",
 
7573
  "https://civitai.com/models/522462",
7574
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/73988a4c-c9df-4859-84d5-c88b36ce2b19/width=450/16298052.jpeg"
7575
  ],
7576
+ "triangularheadpiece_Pony_v1": [
7577
+ "triangular headpiece",
7578
+ "Pony",
7579
+ "[SDXL&Pony] triangular headpiece / shiroshouzoku / \u767d\u88c5\u675f / \u5929\u51a0 / \u4e09\u89d2\u5dfe / \u5e7d\u970a",
7580
+ "https://civitai.com/models/491760",
7581
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ef0429ed-90d3-43e3-9da0-85f87fb42e04/width=450/32850050.jpeg"
7582
+ ],
7583
+ "triangularheadpiece_XL_v1": [
7584
+ "triangular headpiece",
7585
+ "SDXL 1.0",
7586
+ "[SDXL&Pony] triangular headpiece / shiroshouzoku / \u767d\u88c5\u675f / \u5929\u51a0 / \u4e09\u89d2\u5dfe / \u5e7d\u970a",
7587
+ "https://civitai.com/models/491760",
7588
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/36267afb-7093-4c71-ae47-516c7219fabd/width=450/14403049.jpeg"
7589
+ ],
7590
  "triple_oral_-_triple_barrel_fellatio_-_triple_fellatio-000014": [
7591
  "tripplebj / read description",
7592
  "Pony",
 
8070
  "https://civitai.com/models/604327",
8071
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fd6814aa-e904-4dd6-bfa7-902879605860/width=450/21564766.jpeg"
8072
  ],
8073
+ "yandere_Pony_v1": [
8074
+ "yandere / yandere,(shaded face:0.7),(empty eyes:0.7),head tilt",
8075
+ "SDXL 1.0",
8076
+ "[SDXL&Pony] yandere / \u30e4\u30f3\u30c7\u30ec",
8077
+ "https://civitai.com/models/670793",
8078
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c3949b73-dd1e-4446-ac84-7b89df436b74/width=450/31010850.jpeg"
8079
+ ],
8080
  "yandere_XL_v1": [
8081
  "yandere",
8082
  "SDXL 1.0",
 
8118
  "\u0421olor palette enhancement",
8119
  "https://civitai.com/models/570834",
8120
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/45d05dab-397c-4bc7-8150-8530aa524899/width=450/19621390.jpeg"
8121
+ ],
8122
+ "\u6307\u306e\u8f2a\u30b3\u30ad": [
8123
+ "handjob, hold glans in finger circle, open hand, large breasts, maid, grin, upper body",
8124
+ "Pony",
8125
+ "\u6307\u306e\u8f2a\u30b3\u30ad",
8126
+ "https://civitai.com/models/850497",
8127
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/0a48013a-809a-41a5-823d-e9183eae0dd0/width=450/34362448.jpeg"
8128
  ]
8129
  }
modutils.py CHANGED
@@ -1,10 +1,17 @@
1
  import spaces
2
  import json
3
  import gradio as gr
4
- from huggingface_hub import HfApi
5
  import os
 
6
  from pathlib import Path
7
  from PIL import Image
 
 
 
 
 
 
 
8
 
9
 
10
  from env import (HF_LORA_PRIVATE_REPOS1, HF_LORA_PRIVATE_REPOS2,
@@ -28,7 +35,7 @@ def to_list(s):
28
 
29
 
30
  def list_uniq(l):
31
- return sorted(set(l), key=l.index)
32
 
33
 
34
  def list_sub(a, b):
@@ -36,7 +43,6 @@ def list_sub(a, b):
36
 
37
 
38
  def is_repo_name(s):
39
- import re
40
  return re.fullmatch(r'^[^/]+?/[^/]+?$', s)
41
 
42
 
@@ -61,6 +67,50 @@ def get_local_model_list(dir_path):
61
  return model_list
62
 
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  def download_things(directory, url, hf_token="", civitai_api_key=""):
65
  url = url.strip()
66
  if "drive.google.com" in url:
@@ -73,11 +123,7 @@ def download_things(directory, url, hf_token="", civitai_api_key=""):
73
  # url = urllib.parse.quote(url, safe=':/') # fix encoding
74
  if "/blob/" in url:
75
  url = url.replace("/blob/", "/resolve/")
76
- user_header = f'"Authorization: Bearer {hf_token}"'
77
- if hf_token:
78
- os.system(f"aria2c --console-log-level=error --summary-interval=10 --header={user_header} -c -x 16 -k 1M -s 16 {url} -d {directory} -o {url.split('/')[-1]}")
79
- else:
80
- os.system(f"aria2c --optimize-concurrent-downloads --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 {url} -d {directory} -o {url.split('/')[-1]}")
81
  elif "civitai.com" in url:
82
  if "?" in url:
83
  url = url.split("?")[0]
@@ -90,6 +136,33 @@ def download_things(directory, url, hf_token="", civitai_api_key=""):
90
  os.system(f"aria2c --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 -d {directory} {url}")
91
 
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  def escape_lora_basename(basename: str):
94
  return basename.replace(".", "_").replace(" ", "_").replace(",", "")
95
 
@@ -120,8 +193,7 @@ def save_images(images: list[Image.Image], metadatas: list[str]):
120
  output_images = []
121
  for image, metadata in zip(images, metadatas):
122
  info = PngImagePlugin.PngInfo()
123
- # info.add_text(json.dumps({"parameters": metadata}))
124
- info.add_text("parameters\n", metadata)
125
  savefile = f"{str(uuid.uuid4())}.png"
126
  image.save(savefile, "PNG", pnginfo=info)
127
  output_images.append(str(Path(savefile).resolve()))
@@ -137,7 +209,7 @@ def save_gallery_images(images, progress=gr.Progress(track_tqdm=True)):
137
  dt_now = datetime.now(timezone(timedelta(hours=9)))
138
  basename = dt_now.strftime('%Y%m%d_%H%M%S_')
139
  i = 1
140
- if not images: return images
141
  output_images = []
142
  output_paths = []
143
  for image in images:
@@ -154,11 +226,10 @@ def save_gallery_images(images, progress=gr.Progress(track_tqdm=True)):
154
  output_paths.append(str(newpath))
155
  output_images.append((str(newpath), str(filename)))
156
  progress(1, desc="Gallery updated.")
157
- return gr.update(value=output_images), gr.update(value=output_paths), gr.update(visible=True)
158
 
159
 
160
  def download_private_repo(repo_id, dir_path, is_replace):
161
- from huggingface_hub import snapshot_download
162
  if not hf_read_token: return
163
  try:
164
  snapshot_download(repo_id=repo_id, local_dir=dir_path, allow_patterns=['*.ckpt', '*.pt', '*.pth', '*.safetensors', '*.bin'], use_auth_token=hf_read_token)
@@ -197,7 +268,6 @@ def get_private_model_list(repo_id, dir_path):
197
 
198
 
199
  def download_private_file(repo_id, path, is_replace):
200
- from huggingface_hub import hf_hub_download
201
  file = Path(path)
202
  newpath = Path(f'{file.parent.name}/{escape_lora_basename(file.stem)}{file.suffix}') if is_replace else file
203
  if not hf_read_token or newpath.exists(): return
@@ -321,7 +391,9 @@ except Exception as e:
321
  loras_dict = {"None": ["", "", "", "", ""], "": ["", "", "", "", ""]} | private_lora_dict.copy()
322
  civitai_not_exists_list = []
323
  loras_url_to_path_dict = {} # {"URL to download": "local filepath", ...}
324
- civitai_lora_last_results = {} # {"URL to download": {search results}, ...}
 
 
325
  all_lora_list = []
326
 
327
 
@@ -345,9 +417,6 @@ private_lora_model_list = get_private_lora_model_lists()
345
 
346
  def get_civitai_info(path):
347
  global civitai_not_exists_list
348
- import requests
349
- from urllib3.util import Retry
350
- from requests.adapters import HTTPAdapter
351
  if path in set(civitai_not_exists_list): return ["", "", "", "", ""]
352
  if not Path(path).exists(): return None
353
  user_agent = get_user_agent()
@@ -457,7 +526,6 @@ def download_lora(dl_urls: str):
457
 
458
 
459
  def copy_lora(path: str, new_path: str):
460
- import shutil
461
  if path == new_path: return new_path
462
  cpath = Path(path)
463
  npath = Path(new_path)
@@ -521,7 +589,6 @@ def get_valid_lora_path(query: str):
521
 
522
 
523
  def get_valid_lora_wt(prompt: str, lora_path: str, lora_wt: float):
524
- import re
525
  wt = lora_wt
526
  result = re.findall(f'<lora:{to_lora_key(lora_path)}:(.+?)>', prompt)
527
  if not result: return wt
@@ -530,7 +597,6 @@ def get_valid_lora_wt(prompt: str, lora_path: str, lora_wt: float):
530
 
531
 
532
  def set_prompt_loras(prompt, prompt_syntax, model_name, lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt, lora4, lora4_wt, lora5, lora5_wt):
533
- import re
534
  if not "Classic" in str(prompt_syntax): return lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt, lora4, lora4_wt, lora5, lora5_wt
535
  lora1 = get_valid_lora_name(lora1, model_name)
536
  lora2 = get_valid_lora_name(lora2, model_name)
@@ -650,7 +716,6 @@ def apply_lora_prompt(prompt: str = "", lora_info: str = ""):
650
 
651
 
652
  def update_loras(prompt, prompt_syntax, lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt, lora4, lora4_wt, lora5, lora5_wt):
653
- import re
654
  on1, label1, tag1, md1 = get_lora_info(lora1)
655
  on2, label2, tag2, md2 = get_lora_info(lora2)
656
  on3, label3, tag3, md3 = get_lora_info(lora3)
@@ -697,7 +762,6 @@ def update_loras(prompt, prompt_syntax, lora1, lora1_wt, lora2, lora2_wt, lora3,
697
 
698
 
699
  def get_my_lora(link_url):
700
- from pathlib import Path
701
  before = get_local_model_list(directory_loras)
702
  for url in [url.strip() for url in link_url.split(',')]:
703
  if not Path(f"{directory_loras}/{url.split('/')[-1]}").exists():
@@ -734,7 +798,6 @@ def upload_file_lora(files, progress=gr.Progress(track_tqdm=True)):
734
 
735
 
736
  def move_file_lora(filepaths):
737
- import shutil
738
  for file in filepaths:
739
  path = Path(shutil.move(Path(file).resolve(), Path(f"./{directory_loras}").resolve()))
740
  newpath = Path(f'{path.parent.name}/{escape_lora_basename(path.stem)}{path.suffix}')
@@ -757,11 +820,12 @@ def move_file_lora(filepaths):
757
  )
758
 
759
 
 
 
 
 
760
  def get_civitai_info(path):
761
  global civitai_not_exists_list, loras_url_to_path_dict
762
- import requests
763
- from requests.adapters import HTTPAdapter
764
- from urllib3.util import Retry
765
  default = ["", "", "", "", ""]
766
  if path in set(civitai_not_exists_list): return default
767
  if not Path(path).exists(): return None
@@ -799,16 +863,14 @@ def get_civitai_info(path):
799
 
800
 
801
  def search_lora_on_civitai(query: str, allow_model: list[str] = ["Pony", "SDXL 1.0"], limit: int = 100,
802
- sort: str = "Highest Rated", period: str = "AllTime", tag: str = ""):
803
- import requests
804
- from requests.adapters import HTTPAdapter
805
- from urllib3.util import Retry
806
  user_agent = get_user_agent()
807
  headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
808
  base_url = 'https://civitai.com/api/v1/models'
809
- params = {'types': ['LORA'], 'sort': sort, 'period': period, 'limit': limit, 'nsfw': 'true'}
810
  if query: params["query"] = query
811
  if tag: params["tag"] = tag
 
812
  session = requests.Session()
813
  retries = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
814
  session.mount("https://", HTTPAdapter(max_retries=retries))
@@ -825,46 +887,129 @@ def search_lora_on_civitai(query: str, allow_model: list[str] = ["Pony", "SDXL 1
825
  for j in json['items']:
826
  for model in j['modelVersions']:
827
  item = {}
828
- if model['baseModel'] not in set(allow_model): continue
829
  item['name'] = j['name']
830
- item['creator'] = j['creator']['username']
831
- item['tags'] = j['tags']
832
- item['model_name'] = model['name']
833
- item['base_model'] = model['baseModel']
 
834
  item['dl_url'] = model['downloadUrl']
835
- item['md'] = f'<img src="{model["images"][0]["url"]}" alt="thumbnail" width="150" height="240"><br>[LoRA Model URL](https://civitai.com/models/{j["id"]})'
 
 
 
 
 
 
836
  items.append(item)
837
  return items
838
 
839
 
840
- def search_civitai_lora(query, base_model, sort="Highest Rated", period="AllTime", tag=""):
841
- global civitai_lora_last_results
842
- items = search_lora_on_civitai(query, base_model, 100, sort, period, tag)
 
 
 
843
  if not items: return gr.update(choices=[("", "")], value="", visible=False),\
844
- gr.update(value="", visible=False), gr.update(visible=True), gr.update(visible=True)
845
- civitai_lora_last_results = {}
846
  choices = []
 
847
  for item in items:
848
  base_model_name = "Pony🐴" if item['base_model'] == "Pony" else item['base_model']
849
  name = f"{item['name']} (for {base_model_name} / By: {item['creator']} / Tags: {', '.join(item['tags'])})"
850
  value = item['dl_url']
851
  choices.append((name, value))
852
- civitai_lora_last_results[value] = item
 
853
  if not choices: return gr.update(choices=[("", "")], value="", visible=False),\
854
- gr.update(value="", visible=False), gr.update(visible=True), gr.update(visible=True)
855
- result = civitai_lora_last_results.get(choices[0][1], "None")
 
 
856
  md = result['md'] if result else ""
857
  return gr.update(choices=choices, value=choices[0][1], visible=True), gr.update(value=md, visible=True),\
858
- gr.update(visible=True), gr.update(visible=True)
 
 
 
 
 
 
 
 
 
859
 
860
 
861
  def select_civitai_lora(search_result):
862
  if not "http" in search_result: return gr.update(value=""), gr.update(value="None", visible=True)
863
- result = civitai_lora_last_results.get(search_result, "None")
864
  md = result['md'] if result else ""
865
  return gr.update(value=search_result), gr.update(value=md, visible=True)
866
 
867
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
868
  LORA_BASE_MODEL_DICT = {
869
  "diffusers:StableDiffusionPipeline": ["SD 1.5"],
870
  "diffusers:StableDiffusionXLPipeline": ["Pony", "SDXL 1.0"],
@@ -1109,15 +1254,6 @@ preset_quality = {k["name"]: (k["prompt"], k["negative_prompt"]) for k in qualit
1109
 
1110
 
1111
  def process_style_prompt(prompt: str, neg_prompt: str, styles_key: str = "None", quality_key: str = "None", type: str = "Auto"):
1112
- def to_list(s):
1113
- return [x.strip() for x in s.split(",") if not s == ""]
1114
-
1115
- def list_sub(a, b):
1116
- return [e for e in a if e not in b]
1117
-
1118
- def list_uniq(l):
1119
- return sorted(set(l), key=l.index)
1120
-
1121
  animagine_ps = to_list("anime artwork, anime style, vibrant, studio anime, highly detailed, masterpiece, best quality, very aesthetic, absurdres")
1122
  animagine_nps = to_list("lowres, (bad), text, error, fewer, extra, missing, worst quality, jpeg artifacts, low quality, watermark, unfinished, displeasing, oldest, early, chromatic aberration, signature, extra digits, artistic error, username, scan, [abstract]")
1123
  pony_ps = to_list("source_anime, score_9, score_8_up, score_7_up, masterpiece, best quality, very aesthetic, absurdres")
@@ -1269,7 +1405,6 @@ def set_textual_inversion_prompt(textual_inversion_gui, prompt_gui, neg_prompt_g
1269
 
1270
 
1271
  def get_model_pipeline(repo_id: str):
1272
- from huggingface_hub import HfApi
1273
  api = HfApi(token=HF_TOKEN)
1274
  default = "StableDiffusionPipeline"
1275
  try:
 
1
  import spaces
2
  import json
3
  import gradio as gr
 
4
  import os
5
+ import re
6
  from pathlib import Path
7
  from PIL import Image
8
+ import shutil
9
+ import requests
10
+ from requests.adapters import HTTPAdapter
11
+ from urllib3.util import Retry
12
+ import urllib.parse
13
+ import pandas as pd
14
+ from huggingface_hub import HfApi, HfFolder, hf_hub_download, snapshot_download
15
 
16
 
17
  from env import (HF_LORA_PRIVATE_REPOS1, HF_LORA_PRIVATE_REPOS2,
 
35
 
36
 
37
  def list_uniq(l):
38
+ return sorted(set(l), key=l.index)
39
 
40
 
41
  def list_sub(a, b):
 
43
 
44
 
45
  def is_repo_name(s):
 
46
  return re.fullmatch(r'^[^/]+?/[^/]+?$', s)
47
 
48
 
 
67
  return model_list
68
 
69
 
70
+ def get_token():
71
+ try:
72
+ token = HfFolder.get_token()
73
+ except Exception:
74
+ token = ""
75
+ return token
76
+
77
+
78
+ def set_token(token):
79
+ try:
80
+ HfFolder.save_token(token)
81
+ except Exception:
82
+ print(f"Error: Failed to save token.")
83
+
84
+
85
+ set_token(HF_TOKEN)
86
+
87
+
88
+ def split_hf_url(url: str):
89
+ try:
90
+ s = list(re.findall(r'^(?:https?://huggingface.co/)(?:(datasets)/)?(.+?/.+?)/\w+?/.+?/(?:(.+)/)?(.+?.\w+)(?:\?download=true)?$', url)[0])
91
+ if len(s) < 4: return "", "", "", ""
92
+ repo_id = s[1]
93
+ repo_type = "dataset" if s[0] == "datasets" else "model"
94
+ subfolder = urllib.parse.unquote(s[2]) if s[2] else None
95
+ filename = urllib.parse.unquote(s[3])
96
+ return repo_id, filename, subfolder, repo_type
97
+ except Exception as e:
98
+ print(e)
99
+
100
+
101
+ def download_hf_file(directory, url, progress=gr.Progress(track_tqdm=True)):
102
+ hf_token = get_token()
103
+ repo_id, filename, subfolder, repo_type = split_hf_url(url)
104
+ try:
105
+ print(f"Downloading {url} to {directory}")
106
+ if subfolder is not None: path = hf_hub_download(repo_id=repo_id, filename=filename, subfolder=subfolder, repo_type=repo_type, local_dir=directory, token=hf_token)
107
+ else: path = hf_hub_download(repo_id=repo_id, filename=filename, repo_type=repo_type, local_dir=directory, token=hf_token)
108
+ return path
109
+ except Exception as e:
110
+ print(f"Failed to download: {e}")
111
+ return None
112
+
113
+
114
  def download_things(directory, url, hf_token="", civitai_api_key=""):
115
  url = url.strip()
116
  if "drive.google.com" in url:
 
123
  # url = urllib.parse.quote(url, safe=':/') # fix encoding
124
  if "/blob/" in url:
125
  url = url.replace("/blob/", "/resolve/")
126
+ download_hf_file(directory, url)
 
 
 
 
127
  elif "civitai.com" in url:
128
  if "?" in url:
129
  url = url.split("?")[0]
 
136
  os.system(f"aria2c --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 -d {directory} {url}")
137
 
138
 
139
+ def get_download_file(temp_dir, url, civitai_key="", progress=gr.Progress(track_tqdm=True)):
140
+ if not "http" in url and is_repo_name(url) and not Path(url).exists():
141
+ print(f"Use HF Repo: {url}")
142
+ new_file = url
143
+ elif not "http" in url and Path(url).exists():
144
+ print(f"Use local file: {url}")
145
+ new_file = url
146
+ elif Path(f"{temp_dir}/{url.split('/')[-1]}").exists():
147
+ print(f"File to download alreday exists: {url}")
148
+ new_file = f"{temp_dir}/{url.split('/')[-1]}"
149
+ else:
150
+ print(f"Start downloading: {url}")
151
+ before = get_local_model_list(temp_dir)
152
+ try:
153
+ download_things(temp_dir, url.strip(), HF_TOKEN, civitai_key)
154
+ except Exception:
155
+ print(f"Download failed: {url}")
156
+ return ""
157
+ after = get_local_model_list(temp_dir)
158
+ new_file = list_sub(after, before)[0] if list_sub(after, before) else ""
159
+ if not new_file:
160
+ print(f"Download failed: {url}")
161
+ return ""
162
+ print(f"Download completed: {url}")
163
+ return new_file
164
+
165
+
166
  def escape_lora_basename(basename: str):
167
  return basename.replace(".", "_").replace(" ", "_").replace(",", "")
168
 
 
193
  output_images = []
194
  for image, metadata in zip(images, metadatas):
195
  info = PngImagePlugin.PngInfo()
196
+ info.add_text("parameters", metadata)
 
197
  savefile = f"{str(uuid.uuid4())}.png"
198
  image.save(savefile, "PNG", pnginfo=info)
199
  output_images.append(str(Path(savefile).resolve()))
 
209
  dt_now = datetime.now(timezone(timedelta(hours=9)))
210
  basename = dt_now.strftime('%Y%m%d_%H%M%S_')
211
  i = 1
212
+ if not images: return images, gr.update(visible=False)
213
  output_images = []
214
  output_paths = []
215
  for image in images:
 
226
  output_paths.append(str(newpath))
227
  output_images.append((str(newpath), str(filename)))
228
  progress(1, desc="Gallery updated.")
229
+ return gr.update(value=output_images), gr.update(value=output_paths, visible=True)
230
 
231
 
232
  def download_private_repo(repo_id, dir_path, is_replace):
 
233
  if not hf_read_token: return
234
  try:
235
  snapshot_download(repo_id=repo_id, local_dir=dir_path, allow_patterns=['*.ckpt', '*.pt', '*.pth', '*.safetensors', '*.bin'], use_auth_token=hf_read_token)
 
268
 
269
 
270
  def download_private_file(repo_id, path, is_replace):
 
271
  file = Path(path)
272
  newpath = Path(f'{file.parent.name}/{escape_lora_basename(file.stem)}{file.suffix}') if is_replace else file
273
  if not hf_read_token or newpath.exists(): return
 
391
  loras_dict = {"None": ["", "", "", "", ""], "": ["", "", "", "", ""]} | private_lora_dict.copy()
392
  civitai_not_exists_list = []
393
  loras_url_to_path_dict = {} # {"URL to download": "local filepath", ...}
394
+ civitai_last_results = {} # {"URL to download": {search results}, ...}
395
+ civitai_last_choices = [("", "")]
396
+ civitai_last_gallery = []
397
  all_lora_list = []
398
 
399
 
 
417
 
418
  def get_civitai_info(path):
419
  global civitai_not_exists_list
 
 
 
420
  if path in set(civitai_not_exists_list): return ["", "", "", "", ""]
421
  if not Path(path).exists(): return None
422
  user_agent = get_user_agent()
 
526
 
527
 
528
  def copy_lora(path: str, new_path: str):
 
529
  if path == new_path: return new_path
530
  cpath = Path(path)
531
  npath = Path(new_path)
 
589
 
590
 
591
  def get_valid_lora_wt(prompt: str, lora_path: str, lora_wt: float):
 
592
  wt = lora_wt
593
  result = re.findall(f'<lora:{to_lora_key(lora_path)}:(.+?)>', prompt)
594
  if not result: return wt
 
597
 
598
 
599
  def set_prompt_loras(prompt, prompt_syntax, model_name, lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt, lora4, lora4_wt, lora5, lora5_wt):
 
600
  if not "Classic" in str(prompt_syntax): return lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt, lora4, lora4_wt, lora5, lora5_wt
601
  lora1 = get_valid_lora_name(lora1, model_name)
602
  lora2 = get_valid_lora_name(lora2, model_name)
 
716
 
717
 
718
  def update_loras(prompt, prompt_syntax, lora1, lora1_wt, lora2, lora2_wt, lora3, lora3_wt, lora4, lora4_wt, lora5, lora5_wt):
 
719
  on1, label1, tag1, md1 = get_lora_info(lora1)
720
  on2, label2, tag2, md2 = get_lora_info(lora2)
721
  on3, label3, tag3, md3 = get_lora_info(lora3)
 
762
 
763
 
764
  def get_my_lora(link_url):
 
765
  before = get_local_model_list(directory_loras)
766
  for url in [url.strip() for url in link_url.split(',')]:
767
  if not Path(f"{directory_loras}/{url.split('/')[-1]}").exists():
 
798
 
799
 
800
  def move_file_lora(filepaths):
 
801
  for file in filepaths:
802
  path = Path(shutil.move(Path(file).resolve(), Path(f"./{directory_loras}").resolve()))
803
  newpath = Path(f'{path.parent.name}/{escape_lora_basename(path.stem)}{path.suffix}')
 
820
  )
821
 
822
 
823
+ CIVITAI_SORT = ["Highest Rated", "Most Downloaded", "Newest"]
824
+ CIVITAI_PERIOD = ["AllTime", "Year", "Month", "Week", "Day"]
825
+
826
+
827
  def get_civitai_info(path):
828
  global civitai_not_exists_list, loras_url_to_path_dict
 
 
 
829
  default = ["", "", "", "", ""]
830
  if path in set(civitai_not_exists_list): return default
831
  if not Path(path).exists(): return None
 
863
 
864
 
865
  def search_lora_on_civitai(query: str, allow_model: list[str] = ["Pony", "SDXL 1.0"], limit: int = 100,
866
+ sort: str = "Highest Rated", period: str = "AllTime", tag: str = "", user: str = "", page: int = 1):
 
 
 
867
  user_agent = get_user_agent()
868
  headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
869
  base_url = 'https://civitai.com/api/v1/models'
870
+ params = {'types': ['LORA'], 'sort': sort, 'period': period, 'limit': limit, 'page': int(page), 'nsfw': 'true'}
871
  if query: params["query"] = query
872
  if tag: params["tag"] = tag
873
+ if user: params["username"] = user
874
  session = requests.Session()
875
  retries = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
876
  session.mount("https://", HTTPAdapter(max_retries=retries))
 
887
  for j in json['items']:
888
  for model in j['modelVersions']:
889
  item = {}
890
+ if len(allow_model) != 0 and model['baseModel'] not in set(allow_model): continue
891
  item['name'] = j['name']
892
+ item['creator'] = j['creator']['username'] if 'creator' in j.keys() and 'username' in j['creator'].keys() else ""
893
+ item['tags'] = j['tags'] if 'tags' in j.keys() else []
894
+ item['model_name'] = model['name'] if 'name' in model.keys() else ""
895
+ item['base_model'] = model['baseModel'] if 'baseModel' in model.keys() else ""
896
+ item['description'] = model['description'] if 'description' in model.keys() else ""
897
  item['dl_url'] = model['downloadUrl']
898
+ item['md'] = ""
899
+ if 'images' in model.keys() and len(model["images"]) != 0:
900
+ item['img_url'] = model["images"][0]["url"]
901
+ item['md'] += f'<img src="{model["images"][0]["url"]}#float" alt="thumbnail" width="150" height="240"><br>'
902
+ else: item['img_url'] = "/home/user/app/null.png"
903
+ item['md'] += f'''Model URL: [https://civitai.com/models/{j["id"]}](https://civitai.com/models/{j["id"]})<br>Model Name: {item["name"]}<br>
904
+ Creator: {item["creator"]}<br>Tags: {", ".join(item["tags"])}<br>Base Model: {item["base_model"]}<br>Description: {item["description"]}'''
905
  items.append(item)
906
  return items
907
 
908
 
909
+ def search_civitai_lora(query, base_model=[], sort=CIVITAI_SORT[0], period=CIVITAI_PERIOD[0], tag="", user="", gallery=[]):
910
+ global civitai_last_results, civitai_last_choices, civitai_last_gallery
911
+ civitai_last_choices = [("", "")]
912
+ civitai_last_gallery = []
913
+ civitai_last_results = {}
914
+ items = search_lora_on_civitai(query, base_model, 100, sort, period, tag, user)
915
  if not items: return gr.update(choices=[("", "")], value="", visible=False),\
916
+ gr.update(value="", visible=False), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
917
+ civitai_last_results = {}
918
  choices = []
919
+ gallery = []
920
  for item in items:
921
  base_model_name = "Pony🐴" if item['base_model'] == "Pony" else item['base_model']
922
  name = f"{item['name']} (for {base_model_name} / By: {item['creator']} / Tags: {', '.join(item['tags'])})"
923
  value = item['dl_url']
924
  choices.append((name, value))
925
+ gallery.append((item['img_url'], name))
926
+ civitai_last_results[value] = item
927
  if not choices: return gr.update(choices=[("", "")], value="", visible=False),\
928
+ gr.update(value="", visible=False), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
929
+ civitai_last_choices = choices
930
+ civitai_last_gallery = gallery
931
+ result = civitai_last_results.get(choices[0][1], "None")
932
  md = result['md'] if result else ""
933
  return gr.update(choices=choices, value=choices[0][1], visible=True), gr.update(value=md, visible=True),\
934
+ gr.update(visible=True), gr.update(visible=True), gr.update(value=gallery)
935
+
936
+
937
+ def update_civitai_selection(evt: gr.SelectData):
938
+ try:
939
+ selected_index = evt.index
940
+ selected = civitai_last_choices[selected_index][1]
941
+ return gr.update(value=selected)
942
+ except Exception:
943
+ return gr.update(visible=True)
944
 
945
 
946
  def select_civitai_lora(search_result):
947
  if not "http" in search_result: return gr.update(value=""), gr.update(value="None", visible=True)
948
+ result = civitai_last_results.get(search_result, "None")
949
  md = result['md'] if result else ""
950
  return gr.update(value=search_result), gr.update(value=md, visible=True)
951
 
952
 
953
+ def download_my_lora_flux(dl_urls: str, lora):
954
+ path = download_lora(dl_urls)
955
+ if path: lora = path
956
+ choices = get_all_lora_tupled_list()
957
+ return gr.update(value=lora, choices=choices)
958
+
959
+
960
+ def apply_lora_prompt_flux(lora_info: str):
961
+ if lora_info == "None": return ""
962
+ lora_tag = lora_info.replace("/",",")
963
+ lora_tags = lora_tag.split(",") if str(lora_info) != "None" else []
964
+ lora_prompts = normalize_prompt_list(lora_tags)
965
+ prompt = ", ".join(list_uniq(lora_prompts))
966
+ return prompt
967
+
968
+
969
+ def update_loras_flux(prompt, lora, lora_wt):
970
+ on, label, tag, md = get_lora_info(lora)
971
+ choices = get_all_lora_tupled_list()
972
+ return gr.update(value=prompt), gr.update(value=lora, choices=choices), gr.update(value=lora_wt),\
973
+ gr.update(value=tag, label=label, visible=on), gr.update(value=md, visible=on)
974
+
975
+
976
+ def search_civitai_lora_json(query, base_model):
977
+ results = {}
978
+ items = search_lora_on_civitai(query, base_model)
979
+ if not items: return gr.update(value=results)
980
+ for item in items:
981
+ results[item['dl_url']] = item
982
+ return gr.update(value=results)
983
+
984
+
985
+ def get_civitai_tag():
986
+ default = [""]
987
+ user_agent = get_user_agent()
988
+ headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
989
+ base_url = 'https://civitai.com/api/v1/tags'
990
+ params = {'limit': 200}
991
+ session = requests.Session()
992
+ retries = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
993
+ session.mount("https://", HTTPAdapter(max_retries=retries))
994
+ url = base_url
995
+ try:
996
+ r = session.get(url, params=params, headers=headers, stream=True, timeout=(3.0, 15))
997
+ if not r.ok: return default
998
+ j = dict(r.json()).copy()
999
+ if "items" not in j.keys(): return default
1000
+ items = []
1001
+ for item in j["items"]:
1002
+ items.append([str(item.get("name", "")), int(item.get("modelCount", 0))])
1003
+ df = pd.DataFrame(items)
1004
+ df.sort_values(1, ascending=False)
1005
+ tags = df.values.tolist()
1006
+ tags = [""] + [l[0] for l in tags]
1007
+ return tags
1008
+ except Exception as e:
1009
+ print(e)
1010
+ return default
1011
+
1012
+
1013
  LORA_BASE_MODEL_DICT = {
1014
  "diffusers:StableDiffusionPipeline": ["SD 1.5"],
1015
  "diffusers:StableDiffusionXLPipeline": ["Pony", "SDXL 1.0"],
 
1254
 
1255
 
1256
  def process_style_prompt(prompt: str, neg_prompt: str, styles_key: str = "None", quality_key: str = "None", type: str = "Auto"):
 
 
 
 
 
 
 
 
 
1257
  animagine_ps = to_list("anime artwork, anime style, vibrant, studio anime, highly detailed, masterpiece, best quality, very aesthetic, absurdres")
1258
  animagine_nps = to_list("lowres, (bad), text, error, fewer, extra, missing, worst quality, jpeg artifacts, low quality, watermark, unfinished, displeasing, oldest, early, chromatic aberration, signature, extra digits, artistic error, username, scan, [abstract]")
1259
  pony_ps = to_list("source_anime, score_9, score_8_up, score_7_up, masterpiece, best quality, very aesthetic, absurdres")
 
1405
 
1406
 
1407
  def get_model_pipeline(repo_id: str):
 
1408
  api = HfApi(token=HF_TOKEN)
1409
  default = "StableDiffusionPipeline"
1410
  try:
requirements.txt CHANGED
@@ -1,5 +1,6 @@
1
  spaces
2
  accelerate
 
3
  diffusers
4
  invisible_watermark
5
  transformers
 
1
  spaces
2
  accelerate
3
+ spaces>=0.30.3
4
  diffusers
5
  invisible_watermark
6
  transformers