Upload 2 files
Browse files
Danbooru Prompt Selector/TEST2024/NAIA_0226_testv1.exe
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e00b723e2afa2e1872f92151972d293d69d7a60a2227c46af3bd2d27bcf92874
|
3 |
+
size 889014231
|
Danbooru Prompt Selector/TEST2024/NAIA_0226_testv1.py
CHANGED
@@ -48,7 +48,7 @@ class Data:
|
|
48 |
questionable_word = list(remove_result_qe.keyword_counts.keys())
|
49 |
self.qe_word = nsfw_word + questionable_word
|
50 |
"""
|
51 |
-
dataset/clothes_list.txt written by JioChoi
|
52 |
https://github.com/JioChoi/NAI-Prompt-Randomizer/blob/main/dataset/clothes_list.txt
|
53 |
"""
|
54 |
self.attire_list = tagbag.clothes_list
|
@@ -1980,14 +1980,25 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
1980 |
fdf.loc[fdf['id'] == idx, 'deleted'] = 'deleted'
|
1981 |
|
1982 |
# DataFrame์์ ํน์ ํ ์ญ์
|
1983 |
-
fdf.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1984 |
|
1985 |
-
# ๋ณ๊ฒฝ๋ DataFrame์ parquet ํ์ผ๋ก ์ ์ฅ
|
1986 |
-
fdf.to_parquet("favorite_prompt.parquet", engine='pyarrow')
|
1987 |
-
|
1988 |
-
# ์ด๋ฏธ์ง ํ์ผ ์ญ์
|
1989 |
-
delete_image(image_path)
|
1990 |
-
|
1991 |
update_ui_with_dataframe(current_page, favorite_window, headers_width, my_font)
|
1992 |
|
1993 |
# ์ญ์ ๋ฒํผ ํด๋ฆญ ์ ์คํ๋ ํจ์๋ฅผ ์์ฑํ๋ ํจ์
|
@@ -4431,7 +4442,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4431 |
def _img2img(self):
|
4432 |
global iimg, img2img_window, inpaint_mode
|
4433 |
|
4434 |
-
def instant_image_generation(self, current_lookup):
|
4435 |
try:
|
4436 |
img2img_window.attributes('-topmost', False)
|
4437 |
except:
|
@@ -4537,48 +4548,53 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4537 |
"steps": steps if steps <= 50 else 50,
|
4538 |
"image": send_image
|
4539 |
}
|
|
|
|
|
|
|
|
|
4540 |
if not inpaint_check:
|
4541 |
gen_request["strength"] = round(self.i2i_value, 2)
|
4542 |
gen_request["noise"] = 0
|
4543 |
if gen_request["type"] == "inpaint":
|
4544 |
gen_request["mask"] = mask_to_base64(create_and_save_mask_image())
|
4545 |
gen_request["add_original_image"] = True if overlay_original_image_var.get()==1 else False
|
|
|
4546 |
def run_generation():
|
4547 |
-
|
4548 |
-
|
4549 |
-
|
4550 |
-
|
4551 |
-
|
4552 |
-
|
4553 |
-
|
4554 |
-
|
4555 |
-
|
4556 |
-
|
4557 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4558 |
else:
|
4559 |
-
|
4560 |
-
|
4561 |
-
|
4562 |
-
|
4563 |
-
|
4564 |
-
|
4565 |
-
|
4566 |
-
if app.state() != 'zoomed':
|
4567 |
-
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
4568 |
else:
|
4569 |
-
|
4570 |
-
|
4571 |
-
|
4572 |
-
|
4573 |
-
|
4574 |
-
new_image.paste(current_image, ((max_size - original_width) // 2, (max_size - original_height) // 2))
|
4575 |
-
instant_result_image = customtkinter.CTkImage(new_image, size=(max_size, max_size))
|
4576 |
-
else:
|
4577 |
-
instant_result_image = customtkinter.CTkImage(current_image, size=(max_size, max_size))
|
4578 |
-
self.image_label.configure(image=instant_result_image)
|
4579 |
-
img_label_result.grid(row=0, column=1)
|
4580 |
-
img_label_result.configure(image=customtkinter.CTkImage(result_image, size=(576, 576)))
|
4581 |
-
set_image_to_queue(result_image, result_prompt, str(result_seed), filename)
|
4582 |
generation_thread = threading.Thread(target=run_generation, daemon=True)
|
4583 |
generation_thread.start()
|
4584 |
|
@@ -4886,6 +4902,9 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4886 |
def seed_button_event():
|
4887 |
self.i2i_seed_hold_check = True if request_upper_size_seed_hold.get() == 1 else False
|
4888 |
|
|
|
|
|
|
|
4889 |
request_upper_size_seed_hold_var = customtkinter.IntVar(value=i2i_seed_hold_check)
|
4890 |
request_upper_size_seed_hold = customtkinter.CTkCheckBox(i2i_generate_frame, text="์๋๊ณ ์ Step : ", font=my_font, variable=request_upper_size_seed_hold_var, command=seed_button_event)
|
4891 |
request_upper_size_seed_hold.grid(row=1, column=0, padx=5, pady=5, sticky="nsew")
|
@@ -4893,8 +4912,58 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4893 |
request_upper_size_steps = customtkinter.StringVar(value="28")
|
4894 |
request_upper_size_steps_entry = customtkinter.CTkEntry(i2i_generate_frame, font=my_font, textvariable=request_upper_size_steps, width=60)
|
4895 |
request_upper_size_steps_entry.grid(row=1, column=1,padx=5, pady=5, sticky="nsew")
|
4896 |
-
i2i_generate_button = customtkinter.CTkButton(i2i_generate_frame, text="Request I2I", font=large_font, command=lambda: instant_image_generation(self, current_lookup))
|
4897 |
i2i_generate_button.grid(row = 1, column= 2, pady=5, sticky="n" )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4898 |
|
4899 |
def instant_img2img(self):
|
4900 |
current_lookup = self.image_queue[self.current_window].copy()
|
@@ -5173,13 +5242,8 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
5173 |
|
5174 |
import_image_reference = customtkinter.CTkButton(import_window, font=customtkinter.CTkFont('Pretendard', 14), text="Vibe Transfer", command=lambda: set_image_reference(import_image_reference))
|
5175 |
import_image_reference.grid(row=1, column=0, padx=5, pady=5, sticky="nsew")
|
|
|
5176 |
|
5177 |
-
|
5178 |
-
|
5179 |
-
|
5180 |
-
|
5181 |
-
|
5182 |
-
|
5183 |
def extract_keywords_from_image(image):
|
5184 |
if image.info and image.info.get('dpi') is None:
|
5185 |
result = image.info.get('Comment', '')
|
|
|
48 |
questionable_word = list(remove_result_qe.keyword_counts.keys())
|
49 |
self.qe_word = nsfw_word + questionable_word
|
50 |
"""
|
51 |
+
dataset/clothes_list.txt, characteristic_list.txt written by JioChoi
|
52 |
https://github.com/JioChoi/NAI-Prompt-Randomizer/blob/main/dataset/clothes_list.txt
|
53 |
"""
|
54 |
self.attire_list = tagbag.clothes_list
|
|
|
1980 |
fdf.loc[fdf['id'] == idx, 'deleted'] = 'deleted'
|
1981 |
|
1982 |
# DataFrame์์ ํน์ ํ ์ญ์
|
1983 |
+
row_indices = fdf.index[fdf['id'] == idx].tolist()
|
1984 |
+
sdf = pd.read_parquet("favorite_prompt.parquet", engine='pyarrow')
|
1985 |
+
try:
|
1986 |
+
if row_indices:
|
1987 |
+
fdf.drop(index=row_indices, inplace=True)
|
1988 |
+
# ๋ณ๊ฒฝ๋ DataFrame์ parquet ํ์ผ๋ก ์ ์ฅ
|
1989 |
+
fdf.to_parquet("favorite_prompt.parquet", engine='pyarrow')
|
1990 |
+
# ์ด๋ฏธ์ง ํ์ผ ์ญ์
|
1991 |
+
delete_image(image_path)
|
1992 |
+
except:
|
1993 |
+
sdf.to_parquet("favorite_prompt.parquet", engine='pyarrow')
|
1994 |
+
self.image_label_report.configure(state="normal")
|
1995 |
+
self.image_label_report.delete("0.0", "end")
|
1996 |
+
self.image_label_report.insert("0.0", "<ExceptionAlert> parquet ์ฒ๋ฆฌ ์คํจ๋ก ์ฐฝ์ด ๋ซํ์ต๋๋ค. ์ ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์
ํด ์ฃผ์ธ์.")
|
1997 |
+
self.image_label_report.configure(text_color="#FFFF97")
|
1998 |
+
self.image_label_report.configure(state="disabled")
|
1999 |
+
favorite_search_close()
|
2000 |
+
return
|
2001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2002 |
update_ui_with_dataframe(current_page, favorite_window, headers_width, my_font)
|
2003 |
|
2004 |
# ์ญ์ ๋ฒํผ ํด๋ฆญ ์ ์คํ๋ ํจ์๋ฅผ ์์ฑํ๋ ํจ์
|
|
|
4442 |
def _img2img(self):
|
4443 |
global iimg, img2img_window, inpaint_mode
|
4444 |
|
4445 |
+
def instant_image_generation(self, current_lookup, i2irf=None):
|
4446 |
try:
|
4447 |
img2img_window.attributes('-topmost', False)
|
4448 |
except:
|
|
|
4548 |
"steps": steps if steps <= 50 else 50,
|
4549 |
"image": send_image
|
4550 |
}
|
4551 |
+
if i2irf and i2irf["image_reference"]:
|
4552 |
+
gen_request["reference_image"] = i2irf["image_reference_string"]
|
4553 |
+
gen_request["reference_information_extracted"] = round(i2irf["ie"], 2)
|
4554 |
+
gen_request["reference_strength"] = round(i2irf["irs"], 2)
|
4555 |
if not inpaint_check:
|
4556 |
gen_request["strength"] = round(self.i2i_value, 2)
|
4557 |
gen_request["noise"] = 0
|
4558 |
if gen_request["type"] == "inpaint":
|
4559 |
gen_request["mask"] = mask_to_base64(create_and_save_mask_image())
|
4560 |
gen_request["add_original_image"] = True if overlay_original_image_var.get()==1 else False
|
4561 |
+
|
4562 |
def run_generation():
|
4563 |
+
if gen_request["png_rule"] == "count":
|
4564 |
+
self.generation_count += 1
|
4565 |
+
gen_request["count"] =self.generation_count
|
4566 |
+
self.state_label.configure(text ="state : img2img ์์ฒญ๋จ ", text_color = "#FFFF97")
|
4567 |
+
result_image, result_prompt, result_seed, info, filename = NAIA_generation.generate(gen_request)
|
4568 |
+
self.state_label.configure(text ="state : img2img ์์ฒญ ๋ฐํ๋จ", text_color = "#DCE4EE")
|
4569 |
+
self.get_anlas()
|
4570 |
+
i2i_generate_button.configure(state="normal")
|
4571 |
+
if info:
|
4572 |
+
temp = info.get('Comment', '')
|
4573 |
+
temp = temp[temp.find("prompt")+10:temp.find("skip_cfg_below_sigma")-3].replace('"','')
|
4574 |
+
else:
|
4575 |
+
temp = result_prompt
|
4576 |
+
self.image_label_report.configure(state="normal")
|
4577 |
+
self.image_label_report.delete("0.0", "end")
|
4578 |
+
self.image_label_report.configure(text_color="#DCE4EE")
|
4579 |
+
self.image_label_report.insert("0.0", temp)
|
4580 |
+
self.image_label_report.configure(state="disabled")
|
4581 |
+
if result_image:
|
4582 |
+
if app.state() != 'zoomed':
|
4583 |
+
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
4584 |
else:
|
4585 |
+
current_image = Image.open(filename)
|
4586 |
+
original_width, original_height = current_image.size
|
4587 |
+
max_size = app.winfo_screenheight()-100
|
4588 |
+
if original_width > max_size or original_height > max_size:
|
4589 |
+
new_image = Image.new("RGB", (max_size, max_size), "black")
|
4590 |
+
new_image.paste(current_image, ((max_size - original_width) // 2, (max_size - original_height) // 2))
|
4591 |
+
instant_result_image = customtkinter.CTkImage(new_image, size=(max_size, max_size))
|
|
|
|
|
4592 |
else:
|
4593 |
+
instant_result_image = customtkinter.CTkImage(current_image, size=(max_size, max_size))
|
4594 |
+
self.image_label.configure(image=instant_result_image)
|
4595 |
+
img_label_result.grid(row=0, column=1)
|
4596 |
+
img_label_result.configure(image=customtkinter.CTkImage(result_image, size=(576, 576)))
|
4597 |
+
set_image_to_queue(result_image, result_prompt, str(result_seed), filename)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4598 |
generation_thread = threading.Thread(target=run_generation, daemon=True)
|
4599 |
generation_thread.start()
|
4600 |
|
|
|
4902 |
def seed_button_event():
|
4903 |
self.i2i_seed_hold_check = True if request_upper_size_seed_hold.get() == 1 else False
|
4904 |
|
4905 |
+
#๊ธฐ๋ฅ ์ถ๊ฐ : i2i_reference์ ๋์
|
4906 |
+
i2irf = {"image_reference" : None, "image_reference_string" : None, "image_reference_tk" : None, "image_id" : None, "ie" : 1, "irs" : 0.6}
|
4907 |
+
|
4908 |
request_upper_size_seed_hold_var = customtkinter.IntVar(value=i2i_seed_hold_check)
|
4909 |
request_upper_size_seed_hold = customtkinter.CTkCheckBox(i2i_generate_frame, text="์๋๊ณ ์ Step : ", font=my_font, variable=request_upper_size_seed_hold_var, command=seed_button_event)
|
4910 |
request_upper_size_seed_hold.grid(row=1, column=0, padx=5, pady=5, sticky="nsew")
|
|
|
4912 |
request_upper_size_steps = customtkinter.StringVar(value="28")
|
4913 |
request_upper_size_steps_entry = customtkinter.CTkEntry(i2i_generate_frame, font=my_font, textvariable=request_upper_size_steps, width=60)
|
4914 |
request_upper_size_steps_entry.grid(row=1, column=1,padx=5, pady=5, sticky="nsew")
|
4915 |
+
i2i_generate_button = customtkinter.CTkButton(i2i_generate_frame, text="Request I2I", font=large_font, command=lambda: instant_image_generation(self, current_lookup, i2irf))
|
4916 |
i2i_generate_button.grid(row = 1, column= 2, pady=5, sticky="n" )
|
4917 |
+
|
4918 |
+
def i2i_set_image_reference():
|
4919 |
+
filepath = filedialog.askopenfilename(title="Open Image", filetypes=[("Image files", "*.png;*.jpg;*.webp"), ("All files", "*.*")])
|
4920 |
+
if filepath:
|
4921 |
+
i2irf["image_reference"] = Image.open(filepath)
|
4922 |
+
i2irf["image_reference_string"] = NAIA_generation.image_to_base64(i2irf["image_reference"])
|
4923 |
+
enhancer = ImageEnhance.Brightness(i2irf["image_reference"])
|
4924 |
+
darker_image = enhancer.enhance(0.5)
|
4925 |
+
i2irf["image_reference_tk"] = ImageTk.PhotoImage(darker_image.resize((486, 468) if self.winfo_screenheight() < 1152 else (600, 468), Image.Resampling.LANCZOS))
|
4926 |
+
i2irf["image_id"] = image_reference_canvas.create_image(0, 0, image=i2irf["image_reference_tk"], anchor='nw')
|
4927 |
+
image_reference_strength.set(0.6)
|
4928 |
+
information_extracted.set(1)
|
4929 |
+
image_reference_frame.grid(row=2, column=0, columnspan=4, sticky="nsew")
|
4930 |
+
i2i_offset_input_label2.configure(text="*์ธํ์ธํธ ๊ธฐ๋ฅ์ Vibe Transfer์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค")
|
4931 |
+
|
4932 |
+
i2i_vibe_import = customtkinter.CTkButton(i2i_generate_frame, font=my_font, width=40, text="(+) Vibe", fg_color="grey10", hover_color="grey", command=i2i_set_image_reference)
|
4933 |
+
i2i_vibe_import.grid(row = 1, column=3, pady=5, sticky="n")
|
4934 |
+
|
4935 |
+
def slider_event_IRS(value):
|
4936 |
+
image_reference_strength_label.configure(text=f"Reference Strength : {value:.2f}")
|
4937 |
+
i2irf["irs"] = value
|
4938 |
+
|
4939 |
+
def slider_event_IE(value):
|
4940 |
+
information_extracted_label.configure(text=f"Information Extracted : {value:.2f}")
|
4941 |
+
i2irf["ie"] = value
|
4942 |
+
|
4943 |
+
def i2i_rem_image_reference(i2irf):
|
4944 |
+
if i2irf["image_reference"]:
|
4945 |
+
i2irf = {"image_reference" : None, "image_reference_string" : None, "image_reference_tk" : None, "image_id" : None, "ie" : 1, "irs" : 0.6}
|
4946 |
+
image_reference_frame.grid_forget()
|
4947 |
+
image_reference_canvas.delete(i2irf["image_id"])
|
4948 |
+
i2irf["image_id"] = None
|
4949 |
+
|
4950 |
+
image_reference_frame = customtkinter.CTkFrame(i2i_generate_frame)
|
4951 |
+
image_reference_canvas = customtkinter.CTkCanvas(image_reference_frame, width=600, height=200,bg="#333333", highlightthickness = 1, highlightbackground = 'grey10')
|
4952 |
+
image_reference_canvas.grid(row=0, column=0, columnspan=4, padx=5, pady=5, sticky="n")
|
4953 |
+
image_reference_strength_label = customtkinter.CTkLabel(image_reference_canvas, font=v_large_font, text_color='white', text=f"Reference Strength : 0.6", fg_color='transparent', width=190)
|
4954 |
+
information_extracted_label = customtkinter.CTkLabel(image_reference_canvas, font=v_large_font, text_color='white', text=f"Information Extracted : 1", fg_color='transparent', width=190)
|
4955 |
+
image_reference_strength = customtkinter.CTkSlider(image_reference_canvas, from_=0.01, to=1.00, number_of_steps=100, command=slider_event_IRS, button_color='grey', button_hover_color='grey10', height=20, progress_color='transparent')
|
4956 |
+
information_extracted = customtkinter.CTkSlider(image_reference_canvas, from_=0.01, to=1.00, number_of_steps=100, command=slider_event_IE, button_color='grey', button_hover_color='grey10', height=20, progress_color='transparent')
|
4957 |
+
exit_reference_mode = customtkinter.CTkButton(image_reference_canvas, text="Vibe Transfer ํด์ ", font=my_font, command=lambda: i2i_rem_image_reference(i2irf), fg_color='grey10', hover_color='grey', corner_radius=0)
|
4958 |
+
if self.winfo_screenheight() >= 1152:
|
4959 |
+
irc_xpos = [130, 130, 420, 420, 280]
|
4960 |
+
else:
|
4961 |
+
irc_xpos = [110, 110, 370, 370, 240]
|
4962 |
+
image_reference_canvas.create_window(irc_xpos[0], 120, window=image_reference_strength_label)
|
4963 |
+
image_reference_canvas.create_window(irc_xpos[1], 70, window=information_extracted_label)
|
4964 |
+
image_reference_canvas.create_window(irc_xpos[2], 120, window=image_reference_strength)
|
4965 |
+
image_reference_canvas.create_window(irc_xpos[3], 70, window=information_extracted)
|
4966 |
+
image_reference_canvas.create_window(irc_xpos[4], 170, window=exit_reference_mode)
|
4967 |
|
4968 |
def instant_img2img(self):
|
4969 |
current_lookup = self.image_queue[self.current_window].copy()
|
|
|
5242 |
|
5243 |
import_image_reference = customtkinter.CTkButton(import_window, font=customtkinter.CTkFont('Pretendard', 14), text="Vibe Transfer", command=lambda: set_image_reference(import_image_reference))
|
5244 |
import_image_reference.grid(row=1, column=0, padx=5, pady=5, sticky="nsew")
|
5245 |
+
img2img_window.after(1500, lambda: img2img_window.attributes('-topmost', False))
|
5246 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5247 |
def extract_keywords_from_image(image):
|
5248 |
if image.info and image.info.get('dpi') is None:
|
5249 |
result = image.info.get('Comment', '')
|