John6666 commited on
Commit
86cd85c
·
verified ·
1 Parent(s): 0a7b4e3

Upload 3 files

Browse files
Files changed (2) hide show
  1. app.py +26 -26
  2. tagger.py +8 -4
app.py CHANGED
@@ -93,47 +93,47 @@ def main():
93
  output_text_pony = gr.TextArea(label="Output tags (Pony e621 style)", interactive=False, show_copy_button=True)
94
  copy_btn_pony = gr.Button(value="Copy to clipboard", size="sm", interactive=False)
95
 
96
- translate_input_prompt_button.click(translate_prompt, inputs=[input_general], outputs=[input_general])
97
- translate_input_prompt_button.click(translate_prompt, inputs=[input_character], outputs=[input_character])
98
- translate_input_prompt_button.click(translate_prompt, inputs=[input_copyright], outputs=[input_copyright])
99
 
100
  generate_from_image_btn.click(
101
  predict_tags_wd,
102
- inputs=[input_image, input_general, image_algorithms, general_threshold, character_threshold],
103
- outputs=[
104
  input_copyright,
105
  input_character,
106
  input_general,
107
  copy_input_btn,
108
  ],
109
- ).then(
110
  predict_tags_fl2_sd3,
111
- inputs=[input_image, input_general, image_algorithms],
112
- outputs=[input_general],
113
- ).then(
114
- remove_specific_prompt, inputs=[input_general, keep_tags], outputs=[input_general],
115
- ).then(
116
- convert_danbooru_to_e621_prompt, inputs=[input_general, input_tag_type], outputs=[input_general],
117
- ).then(
118
- insert_recom_prompt, inputs=[input_general, dummy_np, recom_prompt], outputs=[input_general, dummy_np],
119
  )
120
- copy_input_btn.click(compose_prompt_to_copy, inputs=[input_character, input_copyright, input_general], outputs=[input_tags_to_copy]).then(
121
- gradio_copy_text, inputs=[input_tags_to_copy], js=COPY_ACTION_JS,
122
  )
123
 
124
  generate_btn.click(
125
  prompt_enhancer,
126
- inputs=[input_character, input_copyright, input_general, prompt_enhancer_model],
127
- outputs=[output_text, copy_btn, copy_btn_pony],
128
- ).then(
129
- convert_danbooru_to_e621_prompt, inputs=[output_text, tag_type], outputs=[output_text_pony],
130
- ).then(
131
- insert_recom_prompt, inputs=[output_text, dummy_np, recom_animagine], outputs=[output_text, dummy_np],
132
- ).then(
133
- insert_recom_prompt, inputs=[output_text_pony, dummy_np, recom_pony], outputs=[output_text_pony, dummy_np],
134
  )
135
- copy_btn.click(gradio_copy_text, inputs=[output_text], js=COPY_ACTION_JS)
136
- copy_btn_pony.click(gradio_copy_text, inputs=[output_text_pony], js=COPY_ACTION_JS)
137
 
138
  ui.launch()
139
 
 
93
  output_text_pony = gr.TextArea(label="Output tags (Pony e621 style)", interactive=False, show_copy_button=True)
94
  copy_btn_pony = gr.Button(value="Copy to clipboard", size="sm", interactive=False)
95
 
96
+ translate_input_prompt_button.click(translate_prompt, [input_general], [input_general])
97
+ translate_input_prompt_button.click(translate_prompt, [input_character], [input_character])
98
+ translate_input_prompt_button.click(translate_prompt, [input_copyright], [input_copyright])
99
 
100
  generate_from_image_btn.click(
101
  predict_tags_wd,
102
+ [input_image, input_general, image_algorithms, general_threshold, character_threshold],
103
+ [
104
  input_copyright,
105
  input_character,
106
  input_general,
107
  copy_input_btn,
108
  ],
109
+ ).success(
110
  predict_tags_fl2_sd3,
111
+ [input_image, input_general, image_algorithms],
112
+ [input_general],
113
+ ).success(
114
+ remove_specific_prompt, [input_general, keep_tags], [input_general],
115
+ ).success(
116
+ convert_danbooru_to_e621_prompt, [input_general, input_tag_type], [input_general],
117
+ ).success(
118
+ insert_recom_prompt, [input_general, dummy_np, recom_prompt], [input_general, dummy_np],
119
  )
120
+ copy_input_btn.click(compose_prompt_to_copy, [input_character, input_copyright, input_general], [input_tags_to_copy]).success(
121
+ gradio_copy_text, [input_tags_to_copy], js=COPY_ACTION_JS,
122
  )
123
 
124
  generate_btn.click(
125
  prompt_enhancer,
126
+ [input_character, input_copyright, input_general, prompt_enhancer_model],
127
+ [output_text, copy_btn, copy_btn_pony],
128
+ ).success(
129
+ convert_danbooru_to_e621_prompt, [output_text, tag_type], [output_text_pony],
130
+ ).success(
131
+ insert_recom_prompt, [output_text, dummy_np, recom_animagine], [output_text, dummy_np],
132
+ ).success(
133
+ insert_recom_prompt, [output_text_pony, dummy_np, recom_pony], [output_text_pony, dummy_np],
134
  )
135
+ copy_btn.click(gradio_copy_text, [output_text], js=COPY_ACTION_JS)
136
+ copy_btn_pony.click(gradio_copy_text, [output_text_pony], js=COPY_ACTION_JS)
137
 
138
  ui.launch()
139
 
tagger.py CHANGED
@@ -81,6 +81,14 @@ def character_list_to_series_list(character_list):
81
  return output_series_tag
82
 
83
 
 
 
 
 
 
 
 
 
84
  def danbooru_to_e621(dtag, e621_dict):
85
  def d_to_e(match, e621_dict):
86
  dtag = match.group(0)
@@ -415,23 +423,19 @@ def predict_tags(image: Image.Image, general_threshold: float = 0.3, character_t
415
  results = {
416
  wd_model.config.id2label[i]: float(logit.float()) for i, logit in enumerate(logits)
417
  }
418
-
419
  # rating, character, general
420
  rating, character, general = postprocess_results(
421
  results, general_threshold, character_threshold
422
  )
423
-
424
  prompt = gen_prompt(
425
  list(rating.keys()), list(character.keys()), list(general.keys())
426
  )
427
-
428
  output_series_tag = ""
429
  output_series_list = character_list_to_series_list(character.keys())
430
  if output_series_list:
431
  output_series_tag = output_series_list[0]
432
  else:
433
  output_series_tag = ""
434
-
435
  return output_series_tag, ", ".join(character.keys()), prompt, gr.update(interactive=True),
436
 
437
 
 
81
  return output_series_tag
82
 
83
 
84
+ def select_random_character(series: str, character: str):
85
+ from random import randrange
86
+ character_list = list(anime_series_dict.keys())
87
+ character = character_list[randrange(len(character_list) - 1)]
88
+ series = anime_series_dict.get(character.split(",")[0].strip(), "")
89
+ return series, character
90
+
91
+
92
  def danbooru_to_e621(dtag, e621_dict):
93
  def d_to_e(match, e621_dict):
94
  dtag = match.group(0)
 
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