John6666 commited on
Commit
ed6cc2f
1 Parent(s): c23ec23

Upload 18 files

Browse files
Files changed (7) hide show
  1. README.md +2 -3
  2. app.py +26 -26
  3. lora_dict.json +203 -0
  4. modutils.py +11 -8
  5. requirements.txt +2 -1
  6. tagger.py +2 -6
  7. v2.py +0 -1
README.md CHANGED
@@ -1,13 +1,12 @@
1
  ---
2
- title: 🧩 DiffuseCraft Mod
3
- emoji: 🧩🖼️📦
4
  colorFrom: red
5
  colorTo: pink
6
  sdk: gradio
7
  sdk_version: 4.37.2
8
  app_file: app.py
9
  pinned: false
10
- header: mini
11
  license: mit
12
  short_description: Stunning images using stable diffusion.
13
  ---
 
1
  ---
2
+ title: test
3
+ emoji: 🧩
4
  colorFrom: red
5
  colorTo: pink
6
  sdk: gradio
7
  sdk_version: 4.37.2
8
  app_file: app.py
9
  pinned: false
 
10
  license: mit
11
  short_description: Stunning images using stable diffusion.
12
  ---
app.py CHANGED
@@ -267,12 +267,12 @@ for url_embed in download_embeds:
267
  embed_list = get_model_list(directory_embeds)
268
  model_list = get_model_list(directory_models)
269
  model_list = load_diffusers_format_model + model_list
 
270
  lora_model_list = list_uniq(get_private_lora_model_lists() + get_model_list(directory_loras))
271
  lora_model_list.insert(0, "None")
272
  vae_model_list = get_model_list(directory_vaes)
273
  vae_model_list.insert(0, "None")
274
 
275
- ## BEGIN MOD
276
  directory_embeds_sdxl = 'embedings_xl'
277
  os.makedirs(directory_embeds_sdxl, exist_ok=True)
278
  download_private_repo('John6666/embeddingstest', directory_embeds_sdxl, False)
@@ -411,7 +411,7 @@ from tagger import (
411
  remove_specific_prompt,
412
  insert_recom_prompt,
413
  compose_prompt_to_copy,
414
- #translate_prompt,
415
  select_random_character,
416
  )
417
  from modutils import (
@@ -905,7 +905,7 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
905
  prompt_gui = gr.Textbox(lines=6, placeholder="1girl, solo, ...", label="Prompt", show_copy_button=True)
906
  with gr.Accordion("Negative prompt, etc.", open=False) as menu_negative:
907
  neg_prompt_gui = gr.Textbox(lines=3, placeholder="lowres, (bad), ...", label="Negative prompt", show_copy_button=True)
908
- #translate_prompt_button = gr.Button(value="Translate prompt to English", size="sm", variant="secondary")
909
  insert_prompt_gui = gr.Radio(label="Insert reccomended positive / negative prompt", choices=["None", "Animagine", "Pony"], value="None", interactive=True, scale=2)
910
  with gr.Accordion(label="Advanced options", open=False):
911
  prompt_type_gui = gr.Radio(label="Convert tags to", choices=["danbooru", "e621"], value="e621", visible=False)
@@ -1048,11 +1048,11 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1048
  ("None", "None"),
1049
  ]
1050
  prompt_syntax_gui = gr.Dropdown(label="Prompt Syntax", choices=prompt_s_options, value=prompt_s_options[1][1])
1051
- vae_model_gui = gr.Dropdown(label="VAE Model", choices=vae_model_list)
1052
 
1053
  with gr.Accordion("Hires fix", open=False, visible=True) as menu_hires:
1054
  upscaler_keys = list(upscaler_dict_gui.keys())
1055
- upscaler_model_path_gui = gr.Dropdown(label="Upscaler", choices=upscaler_keys, value=None)
1056
  upscaler_increases_size_gui = gr.Slider(minimum=1.1, maximum=6., step=0.1, value=1.0, label="Upscale by")
1057
  esrgan_tile_gui = gr.Slider(minimum=0, value=100, maximum=500, step=1, label="ESRGAN Tile")
1058
  esrgan_tile_overlap_gui = gr.Slider(minimum=1, maximum=200, step=1, value=10, label="ESRGAN Tile Overlap")
@@ -1063,35 +1063,35 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1063
  hires_negative_prompt_gui = gr.Textbox(label="Hires Negative Prompt", placeholder="Main negative prompt will be use", lines=3)
1064
 
1065
  with gr.Accordion("LoRA", open=False, visible=True) as menu_lora:
1066
- lora1_gui = gr.Dropdown(label="Lora1", choices=get_lora_tupled_list(lora_model_list), allow_custom_value=True)
1067
  lora_scale_1_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 1")
1068
  with gr.Row():
1069
  with gr.Group():
1070
  lora1_trigger_gui = gr.Textbox(label="Lora1 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1071
  lora1_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1072
  lora1_desc_gui = gr.Markdown(value="", visible=False)
1073
- lora2_gui = gr.Dropdown(label="Lora2", choices=get_lora_tupled_list(lora_model_list), allow_custom_value=True)
1074
  lora_scale_2_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 2")
1075
  with gr.Row():
1076
  with gr.Group():
1077
  lora2_trigger_gui = gr.Textbox(label="Lora2 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1078
  lora2_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1079
  lora2_desc_gui = gr.Markdown(value="", visible=False)
1080
- lora3_gui = gr.Dropdown(label="Lora3", choices=get_lora_tupled_list(lora_model_list), allow_custom_value=True)
1081
  lora_scale_3_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 3")
1082
  with gr.Row():
1083
  with gr.Group():
1084
  lora3_trigger_gui = gr.Textbox(label="Lora3 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1085
  lora3_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1086
  lora3_desc_gui = gr.Markdown(value="", visible=False)
1087
- lora4_gui = gr.Dropdown(label="Lora4", choices=get_lora_tupled_list(lora_model_list), allow_custom_value=True)
1088
  lora_scale_4_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 4")
1089
  with gr.Row():
1090
  with gr.Group():
1091
  lora4_trigger_gui = gr.Textbox(label="Lora4 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1092
  lora4_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1093
  lora4_desc_gui = gr.Markdown(value="", visible=False)
1094
- lora5_gui = gr.Dropdown(label="Lora5", choices=get_lora_tupled_list(lora_model_list), allow_custom_value=True)
1095
  lora_scale_5_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 5")
1096
  with gr.Row():
1097
  with gr.Group():
@@ -1099,14 +1099,14 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1099
  lora5_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1100
  lora5_desc_gui = gr.Markdown(value="", visible=False)
1101
  with gr.Accordion("From URL", open=True, visible=True):
1102
- text_lora = gr.Textbox(label="URL", placeholder="http://...my_lora_url.safetensors", lines=1)
1103
- button_lora = gr.Button("Get and update lists of LoRAs")
1104
  with gr.Row():
1105
  search_civitai_query_lora = gr.Textbox(label="Query", placeholder="oomuro sakurako...", lines=1)
1106
  search_civitai_basemodel_lora = gr.CheckboxGroup(label="Search LoRA for", choices=["Pony", "SD 1.5", "SDXL 1.0"], value=["Pony", "SDXL 1.0"])
1107
  search_civitai_button_lora = gr.Button("Search on Civitai")
1108
- search_civitai_result_lora = gr.Dropdown(label="Search Results", choices=[("", "")], value="", allow_custom_value=True, visible=False)
1109
  search_civitai_desc_lora = gr.Markdown(value="", visible=False)
 
 
1110
  with gr.Accordion("From Local", open=True, visible=True):
1111
  file_output_lora = gr.File(label="Uploaded LoRA", file_types=['.ckpt', '.pt', '.pth', '.safetensors', '.bin'], file_count="multiple", interactive=False, visible=False)
1112
  upload_button_lora = gr.UploadButton(label="Upload LoRA from your disk (very slow)", file_types=['.ckpt' , '.pt', '.pth', '.safetensors', '.bin'], file_count="multiple")
@@ -1137,7 +1137,7 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1137
  info="This option adjusts the level of changes for img2img and inpainting."
1138
  )
1139
  image_resolution_gui = gr.Slider(minimum=64, maximum=2048, step=64, value=1024, label="Image Resolution")
1140
- preprocessor_name_gui = gr.Dropdown(label="Preprocessor Name", choices=preprocessor_controlnet["canny"])
1141
 
1142
  def change_preprocessor_choices(task):
1143
  task = task_stablepy[task]
@@ -1660,15 +1660,15 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1660
  fn=search_civitai_lora,
1661
  inputs=[search_civitai_query_lora, search_civitai_basemodel_lora],
1662
  outputs=[search_civitai_result_lora, search_civitai_desc_lora, search_civitai_button_lora, search_civitai_query_lora],
1663
- show_progress="minimal",
1664
  )
1665
- search_civitai_result_lora.change(select_civitai_lora, [search_civitai_result_lora], [text_lora, search_civitai_desc_lora])
1666
- button_lora.click(get_my_lora, [text_lora], [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui])
1667
- upload_button_lora.upload(upload_file_lora, [upload_button_lora], [file_output_lora, upload_button_lora], show_progress="minimal").success(
1668
  move_file_lora,
1669
  [file_output_lora],
1670
  [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui],
1671
- show_progress="minimal",
1672
  )
1673
 
1674
  use_textual_inversion_gui.change(set_textual_inversion_prompt, [use_textual_inversion_gui, prompt_gui, neg_prompt_gui, prompt_syntax_gui], [prompt_gui, neg_prompt_gui])
@@ -1712,9 +1712,9 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1712
  [prompt_gui, elapsed_time_dbt, copy_button_dbt, copy_button_dbt],
1713
  )
1714
 
1715
- #translate_prompt_button.click(translate_prompt, [prompt_gui], [prompt_gui])
1716
- #translate_prompt_button.click(translate_prompt, [character_dbt], [character_dbt])
1717
- #translate_prompt_button.click(translate_prompt, [series_dbt], [series_dbt])
1718
 
1719
  generate_button.click(
1720
  fn=sd_gen.load_new_model,
@@ -1857,7 +1857,7 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1857
  input_general = gr.TextArea(label="General tags", lines=4, placeholder="1girl, ...", value="")
1858
  input_tags_to_copy = gr.Textbox(value="", visible=False)
1859
  copy_input_btn = gr.Button(value="Copy to clipboard", size="sm", interactive=False)
1860
- #translate_input_prompt_button = gr.Button(value="Translate prompt to English", size="sm", variant="secondary")
1861
  tag_type = gr.Radio(label="Output tag conversion", info="danbooru for Animagine, e621 for Pony.", choices=["danbooru", "e621"], value="e621", visible=False)
1862
  input_rating = gr.Radio(label="Rating", choices=list(V2_RATING_OPTIONS), value="explicit")
1863
  with gr.Accordion(label="Advanced options", open=False):
@@ -1895,9 +1895,9 @@ with gr.Blocks(theme="NoCrypt/miku", elem_id="main", css=CSS) as app:
1895
  input_ban_tags,
1896
  ]
1897
 
1898
- #translate_input_prompt_button.click(translate_prompt, inputs=[input_general], outputs=[input_general])
1899
- #translate_input_prompt_button.click(translate_prompt, inputs=[input_character], outputs=[input_character])
1900
- #translate_input_prompt_button.click(translate_prompt, inputs=[input_copyright], outputs=[input_copyright])
1901
 
1902
  generate_from_image_btn.click(
1903
  predict_tags_wd,
 
267
  embed_list = get_model_list(directory_embeds)
268
  model_list = get_model_list(directory_models)
269
  model_list = load_diffusers_format_model + model_list
270
+ ## BEGIN MOD
271
  lora_model_list = list_uniq(get_private_lora_model_lists() + get_model_list(directory_loras))
272
  lora_model_list.insert(0, "None")
273
  vae_model_list = get_model_list(directory_vaes)
274
  vae_model_list.insert(0, "None")
275
 
 
276
  directory_embeds_sdxl = 'embedings_xl'
277
  os.makedirs(directory_embeds_sdxl, exist_ok=True)
278
  download_private_repo('John6666/embeddingstest', directory_embeds_sdxl, False)
 
411
  remove_specific_prompt,
412
  insert_recom_prompt,
413
  compose_prompt_to_copy,
414
+ translate_prompt,
415
  select_random_character,
416
  )
417
  from modutils import (
 
905
  prompt_gui = gr.Textbox(lines=6, placeholder="1girl, solo, ...", label="Prompt", show_copy_button=True)
906
  with gr.Accordion("Negative prompt, etc.", open=False) as menu_negative:
907
  neg_prompt_gui = gr.Textbox(lines=3, placeholder="lowres, (bad), ...", label="Negative prompt", show_copy_button=True)
908
+ translate_prompt_button = gr.Button(value="Translate prompt to English", size="sm", variant="secondary")
909
  insert_prompt_gui = gr.Radio(label="Insert reccomended positive / negative prompt", choices=["None", "Animagine", "Pony"], value="None", interactive=True, scale=2)
910
  with gr.Accordion(label="Advanced options", open=False):
911
  prompt_type_gui = gr.Radio(label="Convert tags to", choices=["danbooru", "e621"], value="e621", visible=False)
 
1048
  ("None", "None"),
1049
  ]
1050
  prompt_syntax_gui = gr.Dropdown(label="Prompt Syntax", choices=prompt_s_options, value=prompt_s_options[1][1])
1051
+ vae_model_gui = gr.Dropdown(label="VAE Model", choices=vae_model_list, value=vae_model_list[0])
1052
 
1053
  with gr.Accordion("Hires fix", open=False, visible=True) as menu_hires:
1054
  upscaler_keys = list(upscaler_dict_gui.keys())
1055
+ upscaler_model_path_gui = gr.Dropdown(label="Upscaler", choices=upscaler_keys, value=upscaler_dict_gui[upscaler_keys[0]])
1056
  upscaler_increases_size_gui = gr.Slider(minimum=1.1, maximum=6., step=0.1, value=1.0, label="Upscale by")
1057
  esrgan_tile_gui = gr.Slider(minimum=0, value=100, maximum=500, step=1, label="ESRGAN Tile")
1058
  esrgan_tile_overlap_gui = gr.Slider(minimum=1, maximum=200, step=1, value=10, label="ESRGAN Tile Overlap")
 
1063
  hires_negative_prompt_gui = gr.Textbox(label="Hires Negative Prompt", placeholder="Main negative prompt will be use", lines=3)
1064
 
1065
  with gr.Accordion("LoRA", open=False, visible=True) as menu_lora:
1066
+ lora1_gui = gr.Dropdown(label="Lora1", choices=get_lora_tupled_list(lora_model_list), value="None", filterable=True)
1067
  lora_scale_1_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 1")
1068
  with gr.Row():
1069
  with gr.Group():
1070
  lora1_trigger_gui = gr.Textbox(label="Lora1 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1071
  lora1_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1072
  lora1_desc_gui = gr.Markdown(value="", visible=False)
1073
+ lora2_gui = gr.Dropdown(label="Lora2", choices=get_lora_tupled_list(lora_model_list), value="None", filterable=True)
1074
  lora_scale_2_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 2")
1075
  with gr.Row():
1076
  with gr.Group():
1077
  lora2_trigger_gui = gr.Textbox(label="Lora2 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1078
  lora2_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1079
  lora2_desc_gui = gr.Markdown(value="", visible=False)
1080
+ lora3_gui = gr.Dropdown(label="Lora3", choices=get_lora_tupled_list(lora_model_list), value="None", filterable=True)
1081
  lora_scale_3_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 3")
1082
  with gr.Row():
1083
  with gr.Group():
1084
  lora3_trigger_gui = gr.Textbox(label="Lora3 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1085
  lora3_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1086
  lora3_desc_gui = gr.Markdown(value="", visible=False)
1087
+ lora4_gui = gr.Dropdown(label="Lora4", choices=get_lora_tupled_list(lora_model_list), value="None", filterable=True)
1088
  lora_scale_4_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 4")
1089
  with gr.Row():
1090
  with gr.Group():
1091
  lora4_trigger_gui = gr.Textbox(label="Lora4 prompts", info="Example of prompt:", value="", show_copy_button=True, interactive=False, visible=False)
1092
  lora4_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1093
  lora4_desc_gui = gr.Markdown(value="", visible=False)
1094
+ lora5_gui = gr.Dropdown(label="Lora5", choices=get_lora_tupled_list(lora_model_list), value="None", filterable=True)
1095
  lora_scale_5_gui = gr.Slider(minimum=-2, maximum=2, step=0.01, value=1.00, label="Lora Scale 5")
1096
  with gr.Row():
1097
  with gr.Group():
 
1099
  lora5_copy_button = gr.Button(value="Copy example to prompt", visible=False)
1100
  lora5_desc_gui = gr.Markdown(value="", visible=False)
1101
  with gr.Accordion("From URL", open=True, visible=True):
 
 
1102
  with gr.Row():
1103
  search_civitai_query_lora = gr.Textbox(label="Query", placeholder="oomuro sakurako...", lines=1)
1104
  search_civitai_basemodel_lora = gr.CheckboxGroup(label="Search LoRA for", choices=["Pony", "SD 1.5", "SDXL 1.0"], value=["Pony", "SDXL 1.0"])
1105
  search_civitai_button_lora = gr.Button("Search on Civitai")
1106
+ search_civitai_result_lora = gr.Dropdown(label="Search Results", choices=[("", "")], value="", filterable=True, visible=False)
1107
  search_civitai_desc_lora = gr.Markdown(value="", visible=False)
1108
+ text_lora = gr.Textbox(label="URL", placeholder="http://...my_lora_url.safetensors", lines=1)
1109
+ button_lora = gr.Button("Get and update lists of LoRAs")
1110
  with gr.Accordion("From Local", open=True, visible=True):
1111
  file_output_lora = gr.File(label="Uploaded LoRA", file_types=['.ckpt', '.pt', '.pth', '.safetensors', '.bin'], file_count="multiple", interactive=False, visible=False)
1112
  upload_button_lora = gr.UploadButton(label="Upload LoRA from your disk (very slow)", file_types=['.ckpt' , '.pt', '.pth', '.safetensors', '.bin'], file_count="multiple")
 
1137
  info="This option adjusts the level of changes for img2img and inpainting."
1138
  )
1139
  image_resolution_gui = gr.Slider(minimum=64, maximum=2048, step=64, value=1024, label="Image Resolution")
1140
+ preprocessor_name_gui = gr.Dropdown(label="Preprocessor Name", choices=preprocessor_controlnet["canny"], value=preprocessor_controlnet["canny"][0])
1141
 
1142
  def change_preprocessor_choices(task):
1143
  task = task_stablepy[task]
 
1660
  fn=search_civitai_lora,
1661
  inputs=[search_civitai_query_lora, search_civitai_basemodel_lora],
1662
  outputs=[search_civitai_result_lora, search_civitai_desc_lora, search_civitai_button_lora, search_civitai_query_lora],
1663
+ scroll_to_output=True,
1664
  )
1665
+ search_civitai_result_lora.change(select_civitai_lora, [search_civitai_result_lora], [text_lora, search_civitai_desc_lora], scroll_to_output=True)
1666
+ button_lora.click(get_my_lora, [text_lora], [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui], scroll_to_output=True)
1667
+ upload_button_lora.upload(upload_file_lora, [upload_button_lora], [file_output_lora, upload_button_lora]).success(
1668
  move_file_lora,
1669
  [file_output_lora],
1670
  [lora1_gui, lora2_gui, lora3_gui, lora4_gui, lora5_gui],
1671
+ scroll_to_output=True,
1672
  )
1673
 
1674
  use_textual_inversion_gui.change(set_textual_inversion_prompt, [use_textual_inversion_gui, prompt_gui, neg_prompt_gui, prompt_syntax_gui], [prompt_gui, neg_prompt_gui])
 
1712
  [prompt_gui, elapsed_time_dbt, copy_button_dbt, copy_button_dbt],
1713
  )
1714
 
1715
+ translate_prompt_button.click(translate_prompt, [prompt_gui], [prompt_gui])
1716
+ translate_prompt_button.click(translate_prompt, [character_dbt], [character_dbt])
1717
+ translate_prompt_button.click(translate_prompt, [series_dbt], [series_dbt])
1718
 
1719
  generate_button.click(
1720
  fn=sd_gen.load_new_model,
 
1857
  input_general = gr.TextArea(label="General tags", lines=4, placeholder="1girl, ...", value="")
1858
  input_tags_to_copy = gr.Textbox(value="", visible=False)
1859
  copy_input_btn = gr.Button(value="Copy to clipboard", size="sm", interactive=False)
1860
+ translate_input_prompt_button = gr.Button(value="Translate prompt to English", size="sm", variant="secondary")
1861
  tag_type = gr.Radio(label="Output tag conversion", info="danbooru for Animagine, e621 for Pony.", choices=["danbooru", "e621"], value="e621", visible=False)
1862
  input_rating = gr.Radio(label="Rating", choices=list(V2_RATING_OPTIONS), value="explicit")
1863
  with gr.Accordion(label="Advanced options", open=False):
 
1895
  input_ban_tags,
1896
  ]
1897
 
1898
+ translate_input_prompt_button.click(translate_prompt, inputs=[input_general], outputs=[input_general])
1899
+ translate_input_prompt_button.click(translate_prompt, inputs=[input_character], outputs=[input_character])
1900
+ translate_input_prompt_button.click(translate_prompt, inputs=[input_copyright], outputs=[input_copyright])
1901
 
1902
  generate_from_image_btn.click(
1903
  predict_tags_wd,
lora_dict.json CHANGED
@@ -1,4 +1,11 @@
1
  {
 
 
 
 
 
 
 
2
  "0138_Hinata_Hyuga_v1_pony": [
3
  "ruanyi0138, fishnet bodysuit, black thighhighs, toeless legwear, nipples, pussy",
4
  "Pony",
@@ -468,6 +475,13 @@
468
  "https://civitai.com/models/550327",
469
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/14aa323d-aa95-43c3-8ff5-1d39b42c3990/width=450/18016866.jpeg"
470
  ],
 
 
 
 
 
 
 
471
  "GachamiHoYoXL_ANI31_lokr_V42310": [
472
  "grey background, [:your tags here:2]",
473
  "SDXL 1.0",
@@ -503,6 +517,20 @@
503
  "https://civitai.com/models/502133",
504
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4bd6e4b9-51bb-40fc-a7f3-6bfe524ca6a2/width=450/15016724.jpeg"
505
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506
  "Girl_Peeping": [
507
  "peeping / watching / female pervert",
508
  "Pony",
@@ -517,6 +545,13 @@
517
  "https://civitai.com/models/541891",
518
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/6853fcac-5903-4167-b2ec-cd8a9036fd9f/width=450/17449391.jpeg"
519
  ],
 
 
 
 
 
 
 
520
  "Group_(2)": [
521
  "gangbang",
522
  "Pony",
@@ -713,6 +748,13 @@
713
  "https://civitai.com/models/350199",
714
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/385edbe8-3fad-4278-bfed-43d551e8f78b/width=450/8901842.jpeg"
715
  ],
 
 
 
 
 
 
 
716
  "Lips_that_grip": [
717
  "lipsthatgrip / pussy_grip",
718
  "Pony",
@@ -783,6 +825,13 @@
783
  "https://civitai.com/models/544619",
784
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/50c852ef-82ad-49f5-b5e0-f7ff3548c155/width=450/17631835.jpeg"
785
  ],
 
 
 
 
 
 
 
786
  "Minigirl_Onahole": [
787
  "MGOnahole",
788
  "Pony",
@@ -790,6 +839,13 @@
790
  "https://civitai.com/models/542306",
791
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e5021a11-2059-4030-8a7c-8ce699a59398/width=450/17473348.jpeg"
792
  ],
 
 
 
 
 
 
 
793
  "Naked_Sheet_Pony": [
794
  "naked sheet",
795
  "Pony",
@@ -1035,6 +1091,13 @@
1035
  "https://civitai.com/models/392579",
1036
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fd660261-765f-4ed2-af92-810a9587bfc6/width=450/11300400.jpeg"
1037
  ],
 
 
 
 
 
 
 
1038
  "School_Swimsuit_and_Kneehigh-v1-000004": [
1039
  "school swimsuit / kneehighs",
1040
  "SD 1.5",
@@ -1126,6 +1189,13 @@
1126
  "https://civitai.com/models/402667",
1127
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/2a9d126d-7b02-4124-b5bd-4659ac1f5614/width=450/10486831.jpeg"
1128
  ],
 
 
 
 
 
 
 
1129
  "Standing_Split_Sex_Position_LoRa__PonyXL": [
1130
  "standing split, sex, vaginal, penis, one leg up, full body",
1131
  "Pony",
@@ -1175,6 +1245,13 @@
1175
  "https://civitai.com/models/540448",
1176
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1907a5e3-1c80-43df-af35-067b5274e75e/width=450/17389965.jpeg"
1177
  ],
 
 
 
 
 
 
 
1178
  "The_Fountain_-_Female_Ejaculation_-_Pony_XL": [
1179
  "founta1n squ1rt / fountain squirt / squirting / pussy wide / orgasm / omg / female ejaculation",
1180
  "Pony",
@@ -1441,6 +1518,20 @@
1441
  "https://civitai.com/models/547151",
1442
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8e9ac93c-2f38-42f2-aa55-9e8734f3ba78/width=450/17808897.jpeg"
1443
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1444
  "arm-000012": [
1445
  "",
1446
  "SDXL 1.0",
@@ -1588,6 +1679,13 @@
1588
  "https://civitai.com/models/474245",
1589
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/004510d3-810d-41b2-85f3-9cf3dc3f84d9/width=450/16422785.jpeg"
1590
  ],
 
 
 
 
 
 
 
1591
  "blue_archive_pv_a3": [
1592
  "",
1593
  "SDXL 1.0",
@@ -1875,6 +1973,13 @@
1875
  "https://civitai.com/models/528370",
1876
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/512fb8e5-94c7-4a31-b818-1cef8dbed107/width=450/16596261.jpeg"
1877
  ],
 
 
 
 
 
 
 
1878
  "cowgirl_position_nonpov_pony-000010": [
1879
  "1boy, sex, cowgirl position, girl on top, straddling",
1880
  "Pony",
@@ -2239,6 +2344,13 @@
2239
  "https://civitai.com/models/32541",
2240
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a02818c5-568b-4da2-a6f3-0c54f3fd604d/width=450/16910321.jpeg"
2241
  ],
 
 
 
 
 
 
 
2242
  "gz": [
2243
  "",
2244
  "Pony",
@@ -2267,6 +2379,13 @@
2267
  "https://civitai.com/models/532569",
2268
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/390ea515-ffac-4b06-9e7f-e65f3f053724/width=450/16833631.jpeg"
2269
  ],
 
 
 
 
 
 
 
2270
  "haraboko_pony_V2_0": [
2271
  "stomach bulge",
2272
  "Pony",
@@ -2330,6 +2449,13 @@
2330
  "https://civitai.com/models/516752",
2331
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/29c835ca-5f12-43e8-ac93-b4fd1c234bce/width=450/15866815.jpeg"
2332
  ],
 
 
 
 
 
 
 
2333
  "hoodie_XL_V1_0": [
2334
  "jyojifuku,hoodie",
2335
  "SDXL 1.0",
@@ -2379,6 +2505,20 @@
2379
  "https://civitai.com/models/121579",
2380
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4d702d98-996e-478c-9e1d-0115852a3457/width=450/1899358.jpeg"
2381
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2382
  "jyoji_one_piece_Pony_V1_0": [
2383
  " jyojifuku, dress / ribbon / see-through / frills",
2384
  "Pony",
@@ -2477,6 +2617,13 @@
2477
  "https://civitai.com/models/144458",
2478
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fdf372d4-ef5d-4116-b65b-29340cb30dd4/width=450/16406466.jpeg"
2479
  ],
 
 
 
 
 
 
 
2480
  "kirara_jump-animagine1": [
2481
  "kirara_jump / multiple_girls",
2482
  "SDXL 1.0",
@@ -2841,6 +2988,13 @@
2841
  "https://civitai.com/models/519082",
2842
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/62e358a7-eaf5-4e67-8c7f-2ca6080d9741/width=450/16011887.jpeg"
2843
  ],
 
 
 
 
 
 
 
2844
  "nsfw70": [
2845
  "",
2846
  "Pony",
@@ -3163,6 +3317,13 @@
3163
  "https://civitai.com/models/460612",
3164
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/317fdc7f-6c93-4653-99db-11d85b027e03/width=450/12768924.jpeg"
3165
  ],
 
 
 
 
 
 
 
3166
  "ponyxl_armpit_sex": [
3167
  "armpit sex / arm up / arms up / arm down",
3168
  "Pony",
@@ -3541,6 +3702,13 @@
3541
  "https://civitai.com/models/402264",
3542
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/7928f9b0-e4d2-4d8f-a2da-5c7c72547b5b/width=450/9940156.jpeg"
3543
  ],
 
 
 
 
 
 
 
3544
  "shimipan_Pony_V2_0": [
3545
  "shimipan,dirty panties / stain",
3546
  "Pony",
@@ -3702,6 +3870,13 @@
3702
  "https://civitai.com/models/442261",
3703
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/affa442e-f6f9-47b7-8ee2-46e13c07d966/width=450/11828345.jpeg"
3704
  ],
 
 
 
 
 
 
 
3705
  "sunaba_XL_v1": [
3706
  "sunaba",
3707
  "SDXL 1.0",
@@ -3919,6 +4094,13 @@
3919
  "https://civitai.com/models/541882",
3920
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ba7622ad-b3a4-4a82-8d28-5d7e494b776f/width=450/17489290.jpeg"
3921
  ],
 
 
 
 
 
 
 
3922
  "two_girls_holding_a_girl2(sdxl)": [
3923
  "two_girls_holding_a_girl / multiple girls, 3girls, spread legs,",
3924
  "SDXL 1.0",
@@ -3961,6 +4143,20 @@
3961
  "https://civitai.com/models/102228",
3962
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4b2bfb63-58a9-4687-878d-e9cf48537a55/width=450/10864207.jpeg"
3963
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3964
  "v6": [
3965
  "",
3966
  "Pony",
@@ -4024,6 +4220,13 @@
4024
  "https://civitai.com/models/464254",
4025
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a12ec1e7-c321-4fb0-900d-f36ea3c0859c/width=450/13074656.jpeg"
4026
  ],
 
 
 
 
 
 
 
4027
  "witch_Pony_V1_0": [
4028
  "jyojifuku, witch, dress, pantyhose,hat",
4029
  "Pony",
 
1
  {
2
+ "0033_Swimming_Lesson_3_v3_pony": [
3
+ "ruanyi033,green school uniform,side-tie panties,red neckerchief,black bodysuit,black pantyhose",
4
+ "Pony",
5
+ "0033 Swimming Lesson 3\uff08pdxl,sd1.5\uff09",
6
+ "https://civitai.com/models/227578",
7
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1fe132a3-97c0-4397-bac2-c3c1e93bb91b/width=450/17435615.jpeg"
8
+ ],
9
  "0138_Hinata_Hyuga_v1_pony": [
10
  "ruanyi0138, fishnet bodysuit, black thighhighs, toeless legwear, nipples, pussy",
11
  "Pony",
 
475
  "https://civitai.com/models/550327",
476
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/14aa323d-aa95-43c3-8ff5-1d39b42c3990/width=450/18016866.jpeg"
477
  ],
478
+ "Full_uterus_after_sex-000005": [
479
+ "Cum in uterus after sex",
480
+ "Pony",
481
+ "Cum in uterus after sex",
482
+ "https://civitai.com/models/554308",
483
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/7aadace1-0159-4ef9-bb6e-09602ead9e29/width=450/18303807.jpeg"
484
+ ],
485
  "GachamiHoYoXL_ANI31_lokr_V42310": [
486
  "grey background, [:your tags here:2]",
487
  "SDXL 1.0",
 
517
  "https://civitai.com/models/502133",
518
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4bd6e4b9-51bb-40fc-a7f3-6bfe524ca6a2/width=450/15016724.jpeg"
519
  ],
520
+ "Genital_piercing_Pony_V1_1": [
521
+ "pussy piercing, clitoris piercing / pussy / spread puusy",
522
+ "Pony",
523
+ "\u6027\u5668\u30d4\u30a2\u30b9/Genital piercing(XL,Pony)",
524
+ "https://civitai.com/models/459565",
525
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1877e2b6-4319-408e-b170-aafc208a688d/width=450/12708430.jpeg"
526
+ ],
527
+ "Genital_piercing_XL_V1_0": [
528
+ "ppp,pussy, pussy piercing, clitoris piercing / spread pussy",
529
+ "SDXL 1.0",
530
+ "\u6027\u5668\u30d4\u30a2\u30b9/Genital piercing(XL,Pony)",
531
+ "https://civitai.com/models/459565",
532
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/110e5c12-2cd7-42d8-bb15-24c7d00751d2/width=450/12716381.jpeg"
533
+ ],
534
  "Girl_Peeping": [
535
  "peeping / watching / female pervert",
536
  "Pony",
 
545
  "https://civitai.com/models/541891",
546
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/6853fcac-5903-4167-b2ec-cd8a9036fd9f/width=450/17449391.jpeg"
547
  ],
548
+ "GodPussy3_Pony_v2": [
549
+ "godpussy3 / pussy / rear pussy / fingers / doggystyle / closeup",
550
+ "Pony",
551
+ "God Pussy 3 - Pony",
552
+ "https://civitai.com/models/541891",
553
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/57d1171a-c998-44dc-9d1e-3027b20054ca/width=450/18282956.jpeg"
554
+ ],
555
  "Group_(2)": [
556
  "gangbang",
557
  "Pony",
 
748
  "https://civitai.com/models/350199",
749
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/385edbe8-3fad-4278-bfed-43d551e8f78b/width=450/8901842.jpeg"
750
  ],
751
+ "Lift_Up_Dress": [
752
+ "LIFT UP DRESS / CURTSEY / FROM BELOW / FROM BACK",
753
+ "SDXL 1.0",
754
+ "Lift Dress Exhibitionism",
755
+ "https://civitai.com/models/554466",
756
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/60b21466-f9e9-4ed6-8ebe-47fb96182ed8/width=450/18292643.jpeg"
757
+ ],
758
  "Lips_that_grip": [
759
  "lipsthatgrip / pussy_grip",
760
  "Pony",
 
825
  "https://civitai.com/models/544619",
826
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/50c852ef-82ad-49f5-b5e0-f7ff3548c155/width=450/17631835.jpeg"
827
  ],
828
+ "MiniAXV9XLScreencap": [
829
+ "Anime Screencap",
830
+ "Pony",
831
+ "\u30a2\u30cb\u30e1\u5857\u308a/Clean Anime Screencap Lora's (Mini VER of AniMixV9XL) - [PonyV6/AutismMixXL]",
832
+ "https://civitai.com/models/554091",
833
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e4a8b32e-470a-4058-940c-5f6247dd4a26/width=450/18270537.jpeg"
834
+ ],
835
  "Minigirl_Onahole": [
836
  "MGOnahole",
837
  "Pony",
 
839
  "https://civitai.com/models/542306",
840
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e5021a11-2059-4030-8a7c-8ce699a59398/width=450/17473348.jpeg"
841
  ],
842
+ "Monkey_Costume_Pony": [
843
+ "monkey costume",
844
+ "Pony",
845
+ "Monkey Costume [Pony]",
846
+ "https://civitai.com/models/508749",
847
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a2e50154-31d8-431b-a59e-f26590dad8a4/width=450/15452920.jpeg"
848
+ ],
849
  "Naked_Sheet_Pony": [
850
  "naked sheet",
851
  "Pony",
 
1091
  "https://civitai.com/models/392579",
1092
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fd660261-765f-4ed2-af92-810a9587bfc6/width=450/11300400.jpeg"
1093
  ],
1094
+ "Sailor_Swimsuit_PONY": [
1095
+ "ssswimsuit / highleg, one-piece swimsuit, sailor swimsuit, sailor collar",
1096
+ "Pony",
1097
+ "1.5 & Pony | Sailor One-Piece Swimsuit",
1098
+ "https://civitai.com/models/484168",
1099
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ae8243a1-bf4a-4906-beb4-d1ee7d307db8/width=450/14105937.jpeg"
1100
+ ],
1101
  "School_Swimsuit_and_Kneehigh-v1-000004": [
1102
  "school swimsuit / kneehighs",
1103
  "SD 1.5",
 
1189
  "https://civitai.com/models/402667",
1190
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/2a9d126d-7b02-4124-b5bd-4659ac1f5614/width=450/10486831.jpeg"
1191
  ],
1192
+ "StaC_un_nil_ingus": [
1193
+ "Camellya / Cherno Kegaard / cunnilingus / sitting on face / hand on another's head / leg lock / leg on another's shoulder / foot on another's shoulder / thigh grab / Female Rover / Fenny Golden / Tingyun / Tingyun \\(Honkai: Star Rail\\) / Yukong / Yukong \\(Honkai: Star Rail\\) / Stelle \\(Honkai: Star Rail\\) / Caelus \\(Honkai: Star Rail\\) / Male Rover / Hanabi / Hanabi \\(Honkai: Star Rail\\) / Hotaru \\(Honkai: Star Rail\\) / Firefly \\(Honkai: Star Rail\\) / March 7th / Sarah \\(Terra Wars\\) / Red Hood \\(Nikke\\) / Blanc \\(Nikke\\) / Viper \\(Nikke\\) / Sophia Esteed / Taoqi / Umeko / Kojima Umeko / Misae Suzuhara / Vestia Zeta / Yinlin / submissive pose / assertive female / cooperative fellatio / ffm threesome, cooperative paizuri / suspended congress / reverse suspended congress / Ubel, green hair, purple eyes / Cinderella \\(Nikke\\), white hair, red eyes, hair over one eye, large breasts / Noir \\(Nikki\\), dark-skinned female, huge breasts, brown hair, yellow eyes",
1194
+ "Pony",
1195
+ "StaC",
1196
+ "https://civitai.com/models/543007",
1197
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/32bb611d-6843-4197-844e-d8ddc1aabf6e/width=450/18288434.jpeg"
1198
+ ],
1199
  "Standing_Split_Sex_Position_LoRa__PonyXL": [
1200
  "standing split, sex, vaginal, penis, one leg up, full body",
1201
  "Pony",
 
1245
  "https://civitai.com/models/540448",
1246
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/1907a5e3-1c80-43df-af35-067b5274e75e/width=450/17389965.jpeg"
1247
  ],
1248
+ "SwimsuitHeaven": [
1249
+ "swimsuitheaven",
1250
+ "Pony",
1251
+ "Swimsuit Heaven",
1252
+ "https://civitai.com/models/389669",
1253
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/0ae31a25-25c6-434a-aa20-c180b5263a5b/width=450/10012493.jpeg"
1254
+ ],
1255
  "The_Fountain_-_Female_Ejaculation_-_Pony_XL": [
1256
  "founta1n squ1rt / fountain squirt / squirting / pussy wide / orgasm / omg / female ejaculation",
1257
  "Pony",
 
1518
  "https://civitai.com/models/547151",
1519
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8e9ac93c-2f38-42f2-aa55-9e8734f3ba78/width=450/17808897.jpeg"
1520
  ],
1521
+ "annamillerXLv2": [
1522
+ "anna miller / anna miller ,waitress,name tag,high-waist skirt,suspender skirt, apron,",
1523
+ "SDXL 1.0",
1524
+ "[SDXL&Pony] Anna Miller's uniform / \u30a2\u30f3\u30ca\u30df\u30e9\u30fc\u30ba\u5236\u670d / \u30a2\u30f3\u30df\u30e9",
1525
+ "https://civitai.com/models/308795",
1526
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/50535786-da30-4b10-bf7f-5c148d441216/width=450/6721330.jpeg"
1527
+ ],
1528
+ "annamiller_Pony_v1": [
1529
+ "anna miller",
1530
+ "Pony",
1531
+ "[SDXL&Pony] Anna Miller's uniform / \u30a2\u30f3\u30ca\u30df\u30e9\u30fc\u30ba\u5236\u670d / \u30a2\u30f3\u30df\u30e9",
1532
+ "https://civitai.com/models/308795",
1533
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/2836b349-130d-4160-990a-2d3009210808/width=450/13343851.jpeg"
1534
+ ],
1535
  "arm-000012": [
1536
  "",
1537
  "SDXL 1.0",
 
1679
  "https://civitai.com/models/474245",
1680
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/004510d3-810d-41b2-85f3-9cf3dc3f84d9/width=450/16422785.jpeg"
1681
  ],
1682
+ "bioluminescence_monmusu_v15": [
1683
+ "bioluminescence / blue glow / cyan glow / green glow / red glow / monster girl / monster girl encyclopedia / scylla / shoggoth / shark girl / mind flayer girl / kraken girl / anglerfish girl / sea slug girl / mermaid / xeno'jiiva / sangonomiya kokomi / skadi dragenfelt / firefly / jellyfish / mushroom / glowworm / phytoplankton / swell shark",
1684
+ "Pony",
1685
+ "Bioluminescence Concepts - Monster Girl Encyclopedia - \u9b54\u7269\u5a18\u56f3\u9451",
1686
+ "https://civitai.com/models/554006",
1687
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8b57c1dd-dbbe-4ae2-b979-827bed7087c9/width=450/18267061.jpeg"
1688
+ ],
1689
  "blue_archive_pv_a3": [
1690
  "",
1691
  "SDXL 1.0",
 
1973
  "https://civitai.com/models/528370",
1974
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/512fb8e5-94c7-4a31-b818-1cef8dbed107/width=450/16596261.jpeg"
1975
  ],
1976
+ "cow_costume_SDXL_v1": [
1977
+ "cow print / maid costume / slingshot bikini / two piece bikini / cow ears / bowtie bell collar",
1978
+ "SDXL 1.0",
1979
+ "Photorealistic Cow Costume hucows - SDXL & 1.5 \u5976\u725b\u89d2\u626e\u6f14",
1980
+ "https://civitai.com/models/71728",
1981
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/2510398a-63d8-4614-9cea-28ba377586fe/width=450/7618051.jpeg"
1982
+ ],
1983
  "cowgirl_position_nonpov_pony-000010": [
1984
  "1boy, sex, cowgirl position, girl on top, straddling",
1985
  "Pony",
 
2344
  "https://civitai.com/models/32541",
2345
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a02818c5-568b-4da2-a6f3-0c54f3fd604d/width=450/16910321.jpeg"
2346
  ],
2347
+ "gyaruvXL1": [
2348
+ "gyaruv",
2349
+ "SDXL 1.0",
2350
+ "[SDXL / Pony] Gyaru v / \u30ae\u30e3\u30eb\u30d4\u30fc\u30b9",
2351
+ "https://civitai.com/models/374887",
2352
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/0719a71f-b54b-4f55-a281-2927fa63a314/width=450/8817446.jpeg"
2353
+ ],
2354
  "gz": [
2355
  "",
2356
  "Pony",
 
2379
  "https://civitai.com/models/532569",
2380
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/390ea515-ffac-4b06-9e7f-e65f3f053724/width=450/16833631.jpeg"
2381
  ],
2382
+ "hanketsu_SDXL_V1": [
2383
+ "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,",
2384
+ "SDXL 1.0",
2385
+ "hanketsu SDXL",
2386
+ "https://civitai.com/models/462635",
2387
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/8cac72e3-3107-44ba-b860-f0b0eed4d8a3/width=450/12869927.jpeg"
2388
+ ],
2389
  "haraboko_pony_V2_0": [
2390
  "stomach bulge",
2391
  "Pony",
 
2449
  "https://civitai.com/models/516752",
2450
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/29c835ca-5f12-43e8-ac93-b4fd1c234bce/width=450/15866815.jpeg"
2451
  ],
2452
+ "holding_panties_SDXL": [
2453
+ "holding panties,stained panties,unworn panties,open hand,no panties",
2454
+ "Pony",
2455
+ "SDXL Pony Poses Show panties",
2456
+ "https://civitai.com/models/554599",
2457
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/691dba97-d744-4858-a061-10a9681ba037/width=450/18299218.jpeg"
2458
+ ],
2459
  "hoodie_XL_V1_0": [
2460
  "jyojifuku,hoodie",
2461
  "SDXL 1.0",
 
2505
  "https://civitai.com/models/121579",
2506
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4d702d98-996e-478c-9e1d-0115852a3457/width=450/1899358.jpeg"
2507
  ],
2508
+ "jyoji_formal_Pony_V1_0": [
2509
+ "jyojifuku, dress, long sleeves, jacket,school uniform",
2510
+ "Pony",
2511
+ "\u30d5\u30a9\u30fc\u30de\u30eb\u30b9\u30bf\u30a4\u30eb/formal style(XL,Pony)",
2512
+ "https://civitai.com/models/447008",
2513
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/5c3e62a3-1e0e-43e5-affc-e7f0a1b2def1/width=450/12302984.jpeg"
2514
+ ],
2515
+ "jyoji_formal_XL_V1_0": [
2516
+ " jyojifuku, dress, long sleeves, jacket / socks / kneehighs",
2517
+ "SDXL 1.0",
2518
+ "\u30d5\u30a9\u30fc\u30de\u30eb\u30b9\u30bf\u30a4\u30eb/formal style(XL,Pony)",
2519
+ "https://civitai.com/models/447008",
2520
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ee39c30f-e38b-479e-9d82-cfb6c531bbd4/width=450/12059029.jpeg"
2521
+ ],
2522
  "jyoji_one_piece_Pony_V1_0": [
2523
  " jyojifuku, dress / ribbon / see-through / frills",
2524
  "Pony",
 
2617
  "https://civitai.com/models/144458",
2618
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fdf372d4-ef5d-4116-b65b-29340cb30dd4/width=450/16406466.jpeg"
2619
  ],
2620
+ "kiraboshi_XL_v1": [
2621
+ "kiraboshi",
2622
+ "SDXL 1.0",
2623
+ "kiraboshi (star driver) / side v / \u7dba\u7f85\u661f (STAR DRIVER \u8f1d\u304d\u306e\u30bf\u30af\u30c8) / \u6a2a\u30d4\u30fc\u30b9",
2624
+ "https://civitai.com/models/399468",
2625
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d809dffc-0a98-4b82-8cc5-f19acb007642/width=450/9830284.jpeg"
2626
+ ],
2627
  "kirara_jump-animagine1": [
2628
  "kirara_jump / multiple_girls",
2629
  "SDXL 1.0",
 
2988
  "https://civitai.com/models/519082",
2989
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/62e358a7-eaf5-4e67-8c7f-2ca6080d9741/width=450/16011887.jpeg"
2990
  ],
2991
+ "nipples_weights_pony_V1_0": [
2992
+ "nipple piercing / nipples weights / Saggy breasts",
2993
+ "Pony",
2994
+ "\u4e73\u9996\u30d4\u30a2\u30b9/nipples piercing",
2995
+ "https://civitai.com/models/467118",
2996
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/11eced9f-d779-4138-a940-ad81a0b0454c/width=450/17635537.jpeg"
2997
+ ],
2998
  "nsfw70": [
2999
  "",
3000
  "Pony",
 
3317
  "https://civitai.com/models/460612",
3318
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/317fdc7f-6c93-4653-99db-11d85b027e03/width=450/12768924.jpeg"
3319
  ],
3320
+ "ponyxl-small_penis_cross_section": [
3321
+ "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)",
3322
+ "Pony",
3323
+ "[Pony XL Concept] x-ray, cross-section for small penis (or foreskin) / \u77ed\u5c0f\u7c97\u30c1\u30f3\u65ad\u9762\u56f3\uff08\u3082\u3057\u304f\u306f\u5305\u830e\uff09",
3324
+ "https://civitai.com/models/430102",
3325
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/228ca98b-58ad-4333-9f7d-fe3c66fd82bc/width=450/11254759.jpeg"
3326
+ ],
3327
  "ponyxl_armpit_sex": [
3328
  "armpit sex / arm up / arms up / arm down",
3329
  "Pony",
 
3702
  "https://civitai.com/models/402264",
3703
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/7928f9b0-e4d2-4d8f-a2da-5c7c72547b5b/width=450/9940156.jpeg"
3704
  ],
3705
+ "shibari_V3_sdxl": [
3706
+ "shibari",
3707
+ "SDXL 1.0",
3708
+ "shibari V3 sdxl",
3709
+ "https://civitai.com/models/554682",
3710
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/410b1f2e-79b2-49a7-bd4e-7a64abbf47f0/width=450/18304609.jpeg"
3711
+ ],
3712
  "shimipan_Pony_V2_0": [
3713
  "shimipan,dirty panties / stain",
3714
  "Pony",
 
3870
  "https://civitai.com/models/442261",
3871
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/affa442e-f6f9-47b7-8ee2-46e13c07d966/width=450/11828345.jpeg"
3872
  ],
3873
+ "sumiyao__amam": [
3874
+ "sum1y40",
3875
+ "Pony",
3876
+ "Oktaze's Hentai Pony Styles Collection",
3877
+ "https://civitai.com/models/549761",
3878
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3ed0a13b-8502-4d50-8c09-d7b5569b3657/width=450/18267509.jpeg"
3879
+ ],
3880
  "sunaba_XL_v1": [
3881
  "sunaba",
3882
  "SDXL 1.0",
 
4094
  "https://civitai.com/models/541882",
4095
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/ba7622ad-b3a4-4a82-8d28-5d7e494b776f/width=450/17489290.jpeg"
4096
  ],
4097
+ "trkmrswimsuitesdxl": [
4098
+ " (trkmrswimsuite), choker, leg garter on one leg,grater strap, bow, bra, frilled bikini, frills, wrist cuffs, open navel",
4099
+ "Pony",
4100
+ "Terakomari Gandesblood Swimsuite",
4101
+ "https://civitai.com/models/301682",
4102
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d372ac0e-576f-4f1b-b768-556dd4036d24/width=450/7702476.jpeg"
4103
+ ],
4104
  "two_girls_holding_a_girl2(sdxl)": [
4105
  "two_girls_holding_a_girl / multiple girls, 3girls, spread legs,",
4106
  "SDXL 1.0",
 
4143
  "https://civitai.com/models/102228",
4144
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/4b2bfb63-58a9-4687-878d-e9cf48537a55/width=450/10864207.jpeg"
4145
  ],
4146
+ "usapiece_XL_v1": [
4147
+ "usa piece",
4148
+ "SDXL 1.0",
4149
+ "bunny rabbit piece / \u3046\u3055\u3061\u3083\u3093\u30d4\u30fc\u30b9 / \u3046\u3055\u30d4\u30fc\u30b9",
4150
+ "https://civitai.com/models/394500",
4151
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e158bc16-21c2-430a-862e-3b8d04bce9fe/width=450/9612484.jpeg"
4152
+ ],
4153
+ "uterus_v1": [
4154
+ "x-ray,cross-section,urethra,cervix,ovaries,uterus,vaginal,clitoris,clitoral hood,internal cumshot,deep penetration,cum in uterus,uncensored",
4155
+ "Pony",
4156
+ "Uterus",
4157
+ "https://civitai.com/models/475197",
4158
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fd1ddd08-ae07-42ba-9b1f-47f1bf532771/width=450/13534578.jpeg"
4159
+ ],
4160
  "v6": [
4161
  "",
4162
  "Pony",
 
4220
  "https://civitai.com/models/464254",
4221
  "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/a12ec1e7-c321-4fb0-900d-f36ea3c0859c/width=450/13074656.jpeg"
4222
  ],
4223
+ "whomperfruit": [
4224
+ "wh0mp3rfru1t",
4225
+ "Pony",
4226
+ "Oktaze's Hentai Pony Styles Collection",
4227
+ "https://civitai.com/models/549761",
4228
+ "https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/528c77b2-9222-4c3c-8425-379d2a49d7a1/width=450/18253001.jpeg"
4229
+ ],
4230
  "witch_Pony_V1_0": [
4231
  "jyojifuku, witch, dress, pantyhose,hat",
4232
  "Pony",
modutils.py CHANGED
@@ -90,7 +90,7 @@ def download_private_repo(repo_id, dir_path, is_replace):
90
  for file in Path(dir_path).glob("*"):
91
  if file.exists() and "." in file.stem or " " in file.stem and file.suffix in ['.ckpt', '.pt', '.pth', '.safetensors', '.bin']:
92
  newpath = Path(f'{file.parent.name}/{escape_lora_basename(file.stem)}{file.suffix}')
93
- file.rename(newpath)
94
 
95
 
96
  private_model_path_repo_dict = {}
@@ -143,7 +143,7 @@ def download_private_file(repo_id, path, is_replace):
143
  return
144
  else:
145
  if is_replace:
146
- file.rename(newpath)
147
 
148
 
149
  def download_private_file_from_somewhere(path, is_replace):
@@ -242,7 +242,7 @@ def save_gallery_images(images):
242
  from pathlib import Path
243
  filename = basename + str(i) + ".png"
244
  oldpath = Path(image[0])
245
- newpath = oldpath.rename(Path(filename))
246
  output_paths.append(str(newpath))
247
  output_images.append((str(newpath), str(filename)))
248
  i += 1
@@ -391,6 +391,7 @@ def get_lora_tupled_list(lora_model_list):
391
  tupled_list = []
392
  local_models = set(get_model_list(directory_loras))
393
  for model in lora_model_list:
 
394
  basename = Path(model).stem
395
  key = escape_lora_basename(basename)
396
  items = None
@@ -413,11 +414,13 @@ def get_lora_tupled_list(lora_model_list):
413
 
414
  def set_lora_trigger(lora_gui: str):
415
  from pathlib import Path
416
- if not lora_gui or lora_gui == "None": return gr.update(value="", visible=False), gr.update(visible=False), gr.update(value="", visible=False), gr.update(value="", visible=True)
 
417
  path = Path(lora_gui)
418
  new_path = Path(f'{path.parent.name}/{escape_lora_basename(path.stem)}{path.suffix}')
419
  if not new_path.stem in lora_trigger_dict.keys() and not str(path) in set(get_private_lora_model_lists() + get_model_list(directory_loras)):
420
- return gr.update(value="", visible=False), gr.update(visible=False), gr.update(value="", visible=False), gr.update(value="", visible=True)
 
421
  if not new_path.exists():
422
  download_private_file_from_somewhere(str(path), True)
423
  basename = new_path.stem
@@ -476,9 +479,9 @@ def move_file_lora(filepaths):
476
  import shutil
477
  from pathlib import Path
478
  for file in filepaths:
479
- path = Path(shutil.move(Path(file).absolute(), Path(f"./{directory_loras}").absolute()))
480
  newpath = Path(f'{path.parent.name}/{escape_lora_basename(path.stem)}{path.suffix}')
481
- path.rename(newpath)
482
  update_lora_dict(str(newpath))
483
 
484
  new_lora_model_list = list_uniq(get_private_lora_model_lists() + get_model_list(directory_loras))
@@ -506,7 +509,7 @@ def search_lora_on_civitai(query: str, allow_model: list[str]):
506
  headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
507
  base_url = 'https://civitai.com/api/v1/models'
508
  params = {'query': query, 'types': ['LORA'], 'sort': 'Highest Rated', 'period': 'AllTime',
509
- 'nsfw': 'true'}
510
  session = requests.Session()
511
  retries = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
512
  session.mount("https://", HTTPAdapter(max_retries=retries))
 
90
  for file in Path(dir_path).glob("*"):
91
  if file.exists() and "." in file.stem or " " in file.stem and file.suffix in ['.ckpt', '.pt', '.pth', '.safetensors', '.bin']:
92
  newpath = Path(f'{file.parent.name}/{escape_lora_basename(file.stem)}{file.suffix}')
93
+ file.resolve().rename(newpath.resolve())
94
 
95
 
96
  private_model_path_repo_dict = {}
 
143
  return
144
  else:
145
  if is_replace:
146
+ file.resolve().rename(newpath.resolve())
147
 
148
 
149
  def download_private_file_from_somewhere(path, is_replace):
 
242
  from pathlib import Path
243
  filename = basename + str(i) + ".png"
244
  oldpath = Path(image[0])
245
+ newpath = oldpath.resolve().rename(Path(filename).resolve())
246
  output_paths.append(str(newpath))
247
  output_images.append((str(newpath), str(filename)))
248
  i += 1
 
391
  tupled_list = []
392
  local_models = set(get_model_list(directory_loras))
393
  for model in lora_model_list:
394
+ if not model: continue
395
  basename = Path(model).stem
396
  key = escape_lora_basename(basename)
397
  items = None
 
414
 
415
  def set_lora_trigger(lora_gui: str):
416
  from pathlib import Path
417
+ if lora_gui == None: return gr.update(value="", visible=False), gr.update(visible=False),\
418
+ gr.update(value="", visible=False), gr.update(value="", visible=True)
419
  path = Path(lora_gui)
420
  new_path = Path(f'{path.parent.name}/{escape_lora_basename(path.stem)}{path.suffix}')
421
  if not new_path.stem in lora_trigger_dict.keys() and not str(path) in set(get_private_lora_model_lists() + get_model_list(directory_loras)):
422
+ return gr.update(value="", visible=False), gr.update(visible=False),\
423
+ gr.update(value="", visible=False), gr.update(value="", visible=True)
424
  if not new_path.exists():
425
  download_private_file_from_somewhere(str(path), True)
426
  basename = new_path.stem
 
479
  import shutil
480
  from pathlib import Path
481
  for file in filepaths:
482
+ path = Path(shutil.move(Path(file).resolve(), Path(f"./{directory_loras}").resolve()))
483
  newpath = Path(f'{path.parent.name}/{escape_lora_basename(path.stem)}{path.suffix}')
484
+ path.resolve().rename(newpath.resolve())
485
  update_lora_dict(str(newpath))
486
 
487
  new_lora_model_list = list_uniq(get_private_lora_model_lists() + get_model_list(directory_loras))
 
509
  headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
510
  base_url = 'https://civitai.com/api/v1/models'
511
  params = {'query': query, 'types': ['LORA'], 'sort': 'Highest Rated', 'period': 'AllTime',
512
+ 'nsfw': 'true', 'supportsGeneration ': 'true'}
513
  session = requests.Session()
514
  retries = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
515
  session.mount("https://", HTTPAdapter(max_retries=retries))
requirements.txt CHANGED
@@ -10,6 +10,7 @@ optimum[onnxruntime]
10
  spaces
11
  dartrs
12
  huggingface_hub
13
- httpx
14
  httpcore
 
15
  timm
 
10
  spaces
11
  dartrs
12
  huggingface_hub
13
+ httpx==0.13.3
14
  httpcore
15
+ googletrans==4.0.0rc1
16
  timm
tagger.py CHANGED
@@ -133,7 +133,7 @@ def convert_danbooru_to_e621_prompt(input_prompt: str = "", prompt_type: str = "
133
 
134
  return output_prompt
135
 
136
- '''
137
  def translate_prompt(prompt: str = ""):
138
  def translate_to_english(prompt):
139
  import httpcore
@@ -225,7 +225,7 @@ def convert_tags_to_ja(input_prompt: str = ""):
225
  out_tags.append(tag)
226
 
227
  return ", ".join(out_tags)
228
- '''
229
 
230
  def insert_recom_prompt(prompt: str = "", neg_prompt: str = "", type: str = "None"):
231
  def to_list(s):
@@ -423,23 +423,19 @@ def predict_tags(image: Image.Image, general_threshold: float = 0.3, character_t
423
  results = {
424
  wd_model.config.id2label[i]: float(logit.float()) for i, logit in enumerate(logits)
425
  }
426
-
427
  # rating, character, general
428
  rating, character, general = postprocess_results(
429
  results, general_threshold, character_threshold
430
  )
431
-
432
  prompt = gen_prompt(
433
  list(rating.keys()), list(character.keys()), list(general.keys())
434
  )
435
-
436
  output_series_tag = ""
437
  output_series_list = character_list_to_series_list(character.keys())
438
  if output_series_list:
439
  output_series_tag = output_series_list[0]
440
  else:
441
  output_series_tag = ""
442
-
443
  return output_series_tag, ", ".join(character.keys()), prompt, gr.update(interactive=True),
444
 
445
 
 
133
 
134
  return output_prompt
135
 
136
+
137
  def translate_prompt(prompt: str = ""):
138
  def translate_to_english(prompt):
139
  import httpcore
 
225
  out_tags.append(tag)
226
 
227
  return ", ".join(out_tags)
228
+
229
 
230
  def insert_recom_prompt(prompt: str = "", neg_prompt: str = "", type: str = "None"):
231
  def to_list(s):
 
423
  results = {
424
  wd_model.config.id2label[i]: float(logit.float()) for i, logit in enumerate(logits)
425
  }
 
426
  # rating, character, general
427
  rating, character, general = postprocess_results(
428
  results, general_threshold, character_threshold
429
  )
 
430
  prompt = gen_prompt(
431
  list(rating.keys()), list(character.keys()), list(general.keys())
432
  )
 
433
  output_series_tag = ""
434
  output_series_list = character_list_to_series_list(character.keys())
435
  if output_series_list:
436
  output_series_tag = output_series_list[0]
437
  else:
438
  output_series_tag = ""
 
439
  return output_series_tag, ", ".join(character.keys()), prompt, gr.update(interactive=True),
440
 
441
 
v2.py CHANGED
@@ -31,7 +31,6 @@ except ImportError:
31
 
32
  from output import UpsamplingOutput
33
 
34
-
35
  HF_TOKEN = os.getenv("HF_TOKEN", None)
36
 
37
  V2_ALL_MODELS = {
 
31
 
32
  from output import UpsamplingOutput
33
 
 
34
  HF_TOKEN = os.getenv("HF_TOKEN", None)
35
 
36
  V2_ALL_MODELS = {