Upload 3 files
Browse files
Danbooru Prompt Selector/TEST2024/NAIA_0229_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:ed930dce820246f3fd23b659146b785be2e0bbe144570958141036414f4d63fe
|
3 |
+
size 854809782
|
Danbooru Prompt Selector/TEST2024/NAIA_0229_testv1.py
CHANGED
@@ -715,12 +715,14 @@ class Character_search(customtkinter.CTkToplevel):
|
|
715 |
uncond_pre = 1.0
|
716 |
app.uncond_strength_entry.delete(0, "end")
|
717 |
app.uncond_strength_entry.insert(0, "1.0")
|
|
|
718 |
gen_request = {
|
719 |
"width":896,
|
720 |
"height":1152,
|
721 |
"quality_toggle":app.auto_quality_toggle.get(),
|
722 |
"seed":random.randint(0,9999999999),
|
723 |
-
"sampler":
|
|
|
724 |
"scale":scale_pre,
|
725 |
"sema":app.sema_button.get(),
|
726 |
"sema_dyn": app.dyn_button.get(),
|
@@ -773,14 +775,9 @@ class Character_search(customtkinter.CTkToplevel):
|
|
773 |
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
774 |
else:
|
775 |
current_image = Image.open(filename)
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
new_image = Image.new("RGB", (max_size, max_size), "black")
|
780 |
-
new_image.paste(current_image, ((max_size - original_width) // 2, (max_size - original_height) // 2))
|
781 |
-
instant_result_image = customtkinter.CTkImage(new_image, size=(max_size, max_size))
|
782 |
-
else:
|
783 |
-
instant_result_image = customtkinter.CTkImage(current_image, size=(max_size, max_size))
|
784 |
app.image_label.configure(image=instant_result_image)
|
785 |
app.ext_set_image_to_queue(result_image, result_prompt, str(result_seed), filename)
|
786 |
if continuous_generation.get() == 1:
|
@@ -1554,7 +1551,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
1554 |
self.xy_plot_count = 0
|
1555 |
self.import_image_negative = {}
|
1556 |
|
1557 |
-
self.title("NAIA Beta v1.09.
|
1558 |
self.grid_rowconfigure(0, weight=1)
|
1559 |
#self.columnconfigure(2, weight=1)
|
1560 |
|
@@ -1598,9 +1595,9 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
1598 |
self.text_input_label.configure(text=" ------------------------ 프롬프트 ------------------------ ", text_color="#F2FBFF")
|
1599 |
if self.sync_i2i_img:
|
1600 |
if self.sync_i2i_contents:
|
1601 |
-
_img2img(self,self.sync_i2i_img
|
1602 |
else:
|
1603 |
-
_img2img(self,self.sync_i2i_img
|
1604 |
self.sync_i2i_img = None
|
1605 |
self.sync_i2i_contents = None
|
1606 |
self.after(500, sync_text)
|
@@ -2501,12 +2498,14 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
2501 |
after_wildcard = self.image_generation_repeat_prompt
|
2502 |
self.image_generation_repeat_current += 1
|
2503 |
##############################
|
|
|
2504 |
gen_request = {
|
2505 |
"width":NAI_width,
|
2506 |
"height":NAI_height,
|
2507 |
"quality_toggle":self.auto_quality_toggle.get(),
|
2508 |
"seed":self.seed_entry.get(),
|
2509 |
-
"sampler":
|
|
|
2510 |
"scale":scale_pre,
|
2511 |
"uncond_scale":uncond_pre,
|
2512 |
"sema":self.sema_button.get(),
|
@@ -2944,14 +2943,8 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
2944 |
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
2945 |
else:
|
2946 |
current_image = Image.open(filename)
|
2947 |
-
|
2948 |
-
|
2949 |
-
if original_width > max_size or original_height > max_size:
|
2950 |
-
new_image = Image.new("RGB", (max_size, max_size), "black")
|
2951 |
-
new_image.paste(current_image, ((max_size - original_width) // 2, (max_size - original_height) // 2))
|
2952 |
-
instant_result_image = customtkinter.CTkImage(new_image, size=(max_size, max_size))
|
2953 |
-
else:
|
2954 |
-
instant_result_image = customtkinter.CTkImage(current_image, size=(max_size, max_size))
|
2955 |
self.image_label.configure(image=instant_result_image)
|
2956 |
set_image_to_queue(result_image, result_prompt, result_seed, filename)
|
2957 |
#자동화 체크
|
@@ -3027,15 +3020,9 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
3027 |
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
3028 |
else:
|
3029 |
current_image = Image.open(filename)
|
3030 |
-
|
3031 |
-
|
3032 |
-
|
3033 |
-
new_image = Image.new("RGB", (max_size, max_size), "black")
|
3034 |
-
new_image.paste(current_image, ((max_size - original_width) // 2, (max_size - original_height) // 2))
|
3035 |
-
instant_result_image = customtkinter.CTkImage(new_image, size=(max_size, max_size))
|
3036 |
-
else:
|
3037 |
-
instant_result_image = customtkinter.CTkImage(current_image, size=(max_size, max_size))
|
3038 |
-
self.image_label.configure(image=instant_result_image)
|
3039 |
set_image_to_queue(result_image, result_prompt, str(result_seed), filename)
|
3040 |
instant_wait = random.uniform(4.5, 8.5) + self.delay_offset
|
3041 |
if instant_wait < 0 : instant_wait = 0.5
|
@@ -3260,8 +3247,6 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
3260 |
self.rm_location_button = customtkinter.CTkCheckBox(self.rm_extend_frame, text="장소/배경색 제거", variable=self.rm_location_var, font=my_font)
|
3261 |
|
3262 |
self.image_reference_frame = customtkinter.CTkFrame(self.rm_extend_frame)
|
3263 |
-
self.image_reference_canvas = customtkinter.CTkCanvas(self.image_reference_frame, width=486 if self.winfo_screenheight() < 1152 else 600, bg="#333333", highlightthickness = 1, highlightbackground = 'grey10')
|
3264 |
-
self.image_reference_canvas.grid(row=0, column=0, columnspan=3, padx=5, pady=5, sticky="n")
|
3265 |
|
3266 |
def slider_event_IRS(value):
|
3267 |
self.image_reference_strength_label.configure(text=f"Reference Strength : {value:.2f}")
|
@@ -3289,20 +3274,21 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
3289 |
self.image_reference_canvas.delete(self.image_id)
|
3290 |
self.image_id = None
|
3291 |
|
3292 |
-
|
3293 |
-
|
3294 |
-
|
3295 |
-
|
3296 |
-
|
3297 |
-
|
3298 |
-
|
3299 |
-
|
3300 |
-
|
3301 |
-
|
3302 |
-
|
3303 |
-
|
3304 |
-
|
3305 |
-
|
|
|
3306 |
|
3307 |
def yield_rm_character_name():
|
3308 |
if self.rm_character_name_var.get() == 1:
|
@@ -3512,7 +3498,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
3512 |
|
3513 |
#이미지 히스토리
|
3514 |
self.image_history_frame = customtkinter.CTkFrame(self.right_frame)
|
3515 |
-
self.image_history_frame.grid(row=0, column=0, columnspan=2, rowspan=15, padx=5, pady=5, sticky="
|
3516 |
|
3517 |
def show_context_menu(event):
|
3518 |
if len(app.image_queue) != 0:
|
@@ -3526,11 +3512,11 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
3526 |
self.image_reference_canvas.delete(self.image_id)
|
3527 |
self.image_id = None
|
3528 |
reference_string = NAIA_generation.image_to_base64(img)
|
3529 |
-
self.image_reference = copy.deepcopy(img)
|
3530 |
self.image_reference_string = reference_string
|
3531 |
enhancer = ImageEnhance.Brightness(self.image_reference)
|
3532 |
darker_image = enhancer.enhance(0.5)
|
3533 |
-
self.image_reference_tk = ImageTk.PhotoImage(darker_image.resize((486
|
3534 |
self.image_id = self.image_reference_canvas.create_image(0, 0, image=self.image_reference_tk, anchor='nw')
|
3535 |
self.image_reference_strength.set(0.6)
|
3536 |
self.information_extracted.set(1)
|
@@ -4223,8 +4209,8 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4223 |
self.resolution_button.grid(row=2, column=1, padx=5, sticky="w")
|
4224 |
self.sampler_label = customtkinter.CTkLabel(self.extended_right_frame, text="Sampler :", font=my_font)
|
4225 |
self.sampler_label.grid(row=2, column=2,pady=5, padx=15, sticky="w")
|
4226 |
-
self.sampler_var = customtkinter.StringVar(value="k_euler_ancestral")
|
4227 |
-
self.sampler_button = customtkinter.CTkComboBox(self.extended_right_frame, width=210,values=["k_euler", "k_euler_ancestral", "k_dpmpp_2s_ancestral", "k_dpmpp_sde", "k_dpmpp_2m"], variable=self.sampler_var, font=my_font)
|
4228 |
self.sampler_button.grid(row=2, column=2, columnspan=2, pady=5, padx=15, sticky="e")
|
4229 |
self.show_fullscreen_btn = customtkinter.CTkButton(self.extended_right_frame, text="전체화면(ESC닫기)", font=my_font, command=self.show_fullscreen_image)
|
4230 |
self.show_fullscreen_btn.grid(row=2, column=4,pady=5, padx=5, sticky="nsew")
|
@@ -4284,7 +4270,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4284 |
if current_size != app.last_window_size:
|
4285 |
app.last_window_size = current_size
|
4286 |
if app.state() == 'zoomed':
|
4287 |
-
self.hidden_frame.configure(width=round(360
|
4288 |
if app.dpi >= 100 and app.dpi < 125 : offset = 10
|
4289 |
elif app.dpi >= 125 and app.dpi < 150 : offset = 5
|
4290 |
elif app.dpi >= 150: offset = 0
|
@@ -4334,7 +4320,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4334 |
self.resolution_button2.grid(row=3, column=1, padx=5, sticky="w")
|
4335 |
self.sampler_label2 = customtkinter.CTkLabel(self.hidden_frame, text="Sampler :", font=my_font)
|
4336 |
self.sampler_label2.grid(row=4, column=0,pady=5, padx=5, sticky="w")
|
4337 |
-
self.sampler_button2 = customtkinter.CTkComboBox(self.hidden_frame, width=160,values=["k_euler", "k_euler_ancestral", "k_dpmpp_2s_ancestral", "k_dpmpp_sde", "k_dpmpp_2m"], variable=self.sampler_var, font=my_font)
|
4338 |
self.sampler_button2.grid(row=4, column=1, columnspan=2, pady=5, padx=5, sticky="e")
|
4339 |
self.cfg_scale_label2 = customtkinter.CTkLabel(self.hidden_frame, text="CFG Scale : ", font=my_font)
|
4340 |
self.cfg_scale_label2.grid(row=5, column=0,pady=5, padx=5, sticky="w")
|
@@ -4571,12 +4557,14 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4571 |
except:
|
4572 |
i2i_negative_text = self.negative_prompt_input.get("0.0", "end-1c")
|
4573 |
inpaint_check = sum(sum(row) for row in mirror_image) >= 50
|
|
|
4574 |
gen_request = {
|
4575 |
"width":self.i2i_width if not inpaint_check else cwidth ,
|
4576 |
"height":self.i2i_height if not inpaint_check else cheight,
|
4577 |
"quality_toggle":self.auto_quality_toggle.get(),
|
4578 |
"seed":request_seed if self.i2i_seed_hold_check == True else random.randint(0,9999999999),
|
4579 |
-
"sampler":
|
|
|
4580 |
"scale":scale_pre,
|
4581 |
"uncond_scale":uncond_pre,
|
4582 |
"sema":self.sema_button.get(),
|
@@ -4686,7 +4674,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4686 |
|
4687 |
iimg = None
|
4688 |
inpaint_mode = False
|
4689 |
-
iimg = Image.open(filename).convert("
|
4690 |
original_image = iimg.copy()
|
4691 |
cwidth, cheight = iimg.size
|
4692 |
current_dpi = app.dpi
|
@@ -4982,11 +4970,11 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
4982 |
def i2i_set_image_reference():
|
4983 |
filepath = filedialog.askopenfilename(title="Open Image", filetypes=[("Image files", "*.png;*.jpg;*.webp"), ("All files", "*.*")])
|
4984 |
if filepath:
|
4985 |
-
i2irf["image_reference"] = Image.open(filepath)
|
4986 |
i2irf["image_reference_string"] = NAIA_generation.image_to_base64(i2irf["image_reference"])
|
4987 |
enhancer = ImageEnhance.Brightness(i2irf["image_reference"])
|
4988 |
darker_image = enhancer.enhance(0.5)
|
4989 |
-
i2irf["image_reference_tk"] = ImageTk.PhotoImage(darker_image.resize((486
|
4990 |
i2irf["image_id"] = image_reference_canvas.create_image(0, 0, image=i2irf["image_reference_tk"], anchor='nw')
|
4991 |
image_reference_strength.set(0.6)
|
4992 |
information_extracted.set(1)
|
@@ -5012,17 +5000,14 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
5012 |
i2irf["image_id"] = None
|
5013 |
|
5014 |
image_reference_frame = customtkinter.CTkFrame(i2i_generate_frame)
|
5015 |
-
image_reference_canvas = customtkinter.CTkCanvas(image_reference_frame, width=
|
5016 |
image_reference_canvas.grid(row=0, column=0, columnspan=4, padx=5, pady=5, sticky="n")
|
5017 |
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)
|
5018 |
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)
|
5019 |
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')
|
5020 |
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')
|
5021 |
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)
|
5022 |
-
|
5023 |
-
irc_xpos = [130, 130, 420, 420, 280]
|
5024 |
-
else:
|
5025 |
-
irc_xpos = [110, 110, 370, 370, 240]
|
5026 |
image_reference_canvas.create_window(irc_xpos[0], 120, window=image_reference_strength_label)
|
5027 |
image_reference_canvas.create_window(irc_xpos[1], 70, window=information_extracted_label)
|
5028 |
image_reference_canvas.create_window(irc_xpos[2], 120, window=image_reference_strength)
|
@@ -5072,12 +5057,14 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
5072 |
self.uncond_strength_entry.delete(0, "end")
|
5073 |
self.uncond_strength_entry.insert(0, "1.0")
|
5074 |
i2i_negative_text = self.negative_prompt_input.get("0.0", "end-1c")
|
|
|
5075 |
gen_request = {
|
5076 |
"width":self.i2i_width,
|
5077 |
"height":self.i2i_height,
|
5078 |
"quality_toggle":self.auto_quality_toggle.get(),
|
5079 |
"seed":request_seed if self.i2i_seed_hold_check == True else random.randint(0,9999999999),
|
5080 |
-
"sampler":
|
|
|
5081 |
"scale":scale_pre,
|
5082 |
"uncond_scale":uncond_pre,
|
5083 |
"sema":self.sema_button.get(),
|
@@ -5187,6 +5174,7 @@ class App(customtkinter.CTk, TkinterDnD.DnDWrapper):
|
|
5187 |
self.after(1000, update_rating)
|
5188 |
self.after(2000, self.get_winfo_fpixels)
|
5189 |
self.initialize_ui(self.select_rating_frame, my_font, update_labels, perform_search, depth_search)
|
|
|
5190 |
|
5191 |
def get_winfo_fpixels(self):
|
5192 |
ps_script = '''
|
@@ -5219,7 +5207,7 @@ public class DPI {
|
|
5219 |
'''
|
5220 |
# PowerShell 명령어 실행
|
5221 |
result = subprocess.run(['powershell', '-Command', ps_script], capture_output=True, text=True)
|
5222 |
-
self.dpi = int(result.stdout.strip())
|
5223 |
|
5224 |
def initialize_ui(self, frame, my_font, update_labels, perform_search, depth_search):
|
5225 |
self.search_button = customtkinter.CTkButton(
|
@@ -5297,11 +5285,11 @@ public class DPI {
|
|
5297 |
self.image_reference_canvas.delete(self.image_id)
|
5298 |
self.image_id = None
|
5299 |
reference_string = NAIA_generation.image_to_base64(img)
|
5300 |
-
self.image_reference = copy.deepcopy(img)
|
5301 |
self.image_reference_string = reference_string
|
5302 |
enhancer = ImageEnhance.Brightness(self.image_reference)
|
5303 |
darker_image = enhancer.enhance(0.5)
|
5304 |
-
self.image_reference_tk = ImageTk.PhotoImage(darker_image.resize((486
|
5305 |
self.image_id = self.image_reference_canvas.create_image(0, 0, image=self.image_reference_tk, anchor='nw')
|
5306 |
self.image_reference_strength.set(0.6)
|
5307 |
self.information_extracted.set(1)
|
@@ -5398,7 +5386,7 @@ public class DPI {
|
|
5398 |
|
5399 |
width, height = img.size
|
5400 |
new_size = max(width, height)
|
5401 |
-
new_image = Image.new("
|
5402 |
left = (new_size - width) // 2
|
5403 |
top = (new_size - height) // 2
|
5404 |
new_image.paste(img, (left, top))
|
@@ -5504,6 +5492,7 @@ public class DPI {
|
|
5504 |
|
5505 |
# 이미지 객체로부터 키워드 추출
|
5506 |
description = extract_keywords_from_image(img)
|
|
|
5507 |
if description == '' or description == None:
|
5508 |
return
|
5509 |
elif type(description) == type(' '):
|
@@ -5532,7 +5521,7 @@ public class DPI {
|
|
5532 |
|
5533 |
width, height = img.size
|
5534 |
new_size = max(width, height)
|
5535 |
-
new_image = Image.new("
|
5536 |
left = (new_size - width) // 2
|
5537 |
top = (new_size - height) // 2
|
5538 |
new_image.paste(img, (left, top))
|
@@ -5964,6 +5953,7 @@ public class DPI {
|
|
5964 |
self.prompt_guidance_rescale_var.set(settings["guidance"])
|
5965 |
except: pass
|
5966 |
try:
|
|
|
5967 |
self.sampler_var.set(settings["sampler"])
|
5968 |
self.sampler_button.set(settings["sampler"])
|
5969 |
except: pass
|
@@ -6113,7 +6103,7 @@ public class DPI {
|
|
6113 |
resized_image = image.resize((new_width, new_height), Image.Resampling.LANCZOS)
|
6114 |
|
6115 |
# 새 이미지 (배경) 생성
|
6116 |
-
new_image = Image.new("
|
6117 |
|
6118 |
# 리사이즈된 이미지를 새 이미지의 중앙에 배치
|
6119 |
paste_x = (max_width - new_width) // 2
|
@@ -6475,11 +6465,11 @@ public class DPI {
|
|
6475 |
app.image_reference_canvas.delete(app.image_id)
|
6476 |
app.image_id = None
|
6477 |
reference_string = NAIA_generation.image_to_base64(img)
|
6478 |
-
app.image_reference = copy.deepcopy(img)
|
6479 |
app.image_reference_string = reference_string
|
6480 |
enhancer = ImageEnhance.Brightness(app.image_reference)
|
6481 |
darker_image = enhancer.enhance(0.5)
|
6482 |
-
app.image_reference_tk = ImageTk.PhotoImage(darker_image.resize((486
|
6483 |
app.image_id = app.image_reference_canvas.create_image(0, 0, image=app.image_reference_tk, anchor='nw')
|
6484 |
app.image_reference_strength.set(_irs)
|
6485 |
app.image_reference_strength_label.configure(text=f"Reference Strength : {_irs:.2f}")
|
@@ -6972,12 +6962,14 @@ public class DPI {
|
|
6972 |
uncond_pre = 1.0
|
6973 |
self.uncond_strength_entry.delete(0, "end")
|
6974 |
self.uncond_strength_entry.insert(0, "1.0")
|
|
|
6975 |
_gen_request = {
|
6976 |
"width":NAI_width,
|
6977 |
"height":NAI_height,
|
6978 |
"quality_toggle":self.auto_quality_toggle.get(),
|
6979 |
"seed":self.seed_entry.get(),
|
6980 |
-
"sampler":
|
|
|
6981 |
"scale":scale_pre,
|
6982 |
"uncond_scale":uncond_pre,
|
6983 |
"sema":self.sema_button.get(),
|
@@ -7296,12 +7288,14 @@ public class DPI {
|
|
7296 |
_random_seed = random.randint(0,9999999999)
|
7297 |
for _ni, insf in enumerate(contents):
|
7298 |
if _val and _val != _ni: continue
|
|
|
7299 |
_gen_request = {
|
7300 |
"width":NAI_width,
|
7301 |
"height":NAI_height,
|
7302 |
"quality_toggle":self.auto_quality_toggle.get(),
|
7303 |
"seed": _random_seed,
|
7304 |
-
"sampler":
|
|
|
7305 |
"scale":scale_pre,
|
7306 |
"uncond_scale":uncond_pre,
|
7307 |
"sema":self.sema_button.get(),
|
|
|
715 |
uncond_pre = 1.0
|
716 |
app.uncond_strength_entry.delete(0, "end")
|
717 |
app.uncond_strength_entry.insert(0, "1.0")
|
718 |
+
_sampler, _noise_schedule = app.sampler_button.get().split(' + ')
|
719 |
gen_request = {
|
720 |
"width":896,
|
721 |
"height":1152,
|
722 |
"quality_toggle":app.auto_quality_toggle.get(),
|
723 |
"seed":random.randint(0,9999999999),
|
724 |
+
"sampler":_sampler,
|
725 |
+
"noise_schedule": _noise_schedule,
|
726 |
"scale":scale_pre,
|
727 |
"sema":app.sema_button.get(),
|
728 |
"sema_dyn": app.dyn_button.get(),
|
|
|
775 |
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
776 |
else:
|
777 |
current_image = Image.open(filename)
|
778 |
+
current_image = Image.open(filename)
|
779 |
+
new_image = app.resize_and_center_image(current_image, app.wide_res_width, app.wide_res_height)
|
780 |
+
instant_result_image = customtkinter.CTkImage(new_image, size=(app.wide_res_width, app.wide_res_height))
|
|
|
|
|
|
|
|
|
|
|
781 |
app.image_label.configure(image=instant_result_image)
|
782 |
app.ext_set_image_to_queue(result_image, result_prompt, str(result_seed), filename)
|
783 |
if continuous_generation.get() == 1:
|
|
|
1551 |
self.xy_plot_count = 0
|
1552 |
self.import_image_negative = {}
|
1553 |
|
1554 |
+
self.title("NAIA Beta v1.09.3 (Test version 4)")
|
1555 |
self.grid_rowconfigure(0, weight=1)
|
1556 |
#self.columnconfigure(2, weight=1)
|
1557 |
|
|
|
1595 |
self.text_input_label.configure(text=" ------------------------ 프롬프트 ------------------------ ", text_color="#F2FBFF")
|
1596 |
if self.sync_i2i_img:
|
1597 |
if self.sync_i2i_contents:
|
1598 |
+
_img2img(self,self.sync_i2i_img, self.sync_i2i_contents.copy())
|
1599 |
else:
|
1600 |
+
_img2img(self,self.sync_i2i_img)
|
1601 |
self.sync_i2i_img = None
|
1602 |
self.sync_i2i_contents = None
|
1603 |
self.after(500, sync_text)
|
|
|
2498 |
after_wildcard = self.image_generation_repeat_prompt
|
2499 |
self.image_generation_repeat_current += 1
|
2500 |
##############################
|
2501 |
+
_sampler, _noise_schedule = app.sampler_button.get().split(' + ')
|
2502 |
gen_request = {
|
2503 |
"width":NAI_width,
|
2504 |
"height":NAI_height,
|
2505 |
"quality_toggle":self.auto_quality_toggle.get(),
|
2506 |
"seed":self.seed_entry.get(),
|
2507 |
+
"sampler":_sampler,
|
2508 |
+
"noise_schedule": _noise_schedule,
|
2509 |
"scale":scale_pre,
|
2510 |
"uncond_scale":uncond_pre,
|
2511 |
"sema":self.sema_button.get(),
|
|
|
2943 |
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
2944 |
else:
|
2945 |
current_image = Image.open(filename)
|
2946 |
+
new_image = self.resize_and_center_image(current_image, self.wide_res_width, self.wide_res_height)
|
2947 |
+
instant_result_image = customtkinter.CTkImage(new_image, size=(self.wide_res_width, self.wide_res_height))
|
|
|
|
|
|
|
|
|
|
|
|
|
2948 |
self.image_label.configure(image=instant_result_image)
|
2949 |
set_image_to_queue(result_image, result_prompt, result_seed, filename)
|
2950 |
#자동화 체크
|
|
|
3020 |
instant_result_image = customtkinter.CTkImage(result_image, size=(620,620))
|
3021 |
else:
|
3022 |
current_image = Image.open(filename)
|
3023 |
+
new_image = self.resize_and_center_image(current_image, self.wide_res_width, self.wide_res_height)
|
3024 |
+
instant_result_image = customtkinter.CTkImage(new_image, size=(self.wide_res_width, self.wide_res_height))
|
3025 |
+
self.image_label.configure(image=instant_result_image)
|
|
|
|
|
|
|
|
|
|
|
|
|
3026 |
set_image_to_queue(result_image, result_prompt, str(result_seed), filename)
|
3027 |
instant_wait = random.uniform(4.5, 8.5) + self.delay_offset
|
3028 |
if instant_wait < 0 : instant_wait = 0.5
|
|
|
3247 |
self.rm_location_button = customtkinter.CTkCheckBox(self.rm_extend_frame, text="장소/배경색 제거", variable=self.rm_location_var, font=my_font)
|
3248 |
|
3249 |
self.image_reference_frame = customtkinter.CTkFrame(self.rm_extend_frame)
|
|
|
|
|
3250 |
|
3251 |
def slider_event_IRS(value):
|
3252 |
self.image_reference_strength_label.configure(text=f"Reference Strength : {value:.2f}")
|
|
|
3274 |
self.image_reference_canvas.delete(self.image_id)
|
3275 |
self.image_id = None
|
3276 |
|
3277 |
+
def initialize_reference():
|
3278 |
+
self.image_reference_canvas = customtkinter.CTkCanvas(self.image_reference_frame, width=int(486* (self.dpi / 100)), bg="#333333", highlightthickness = 1, highlightbackground = 'grey10')
|
3279 |
+
self.image_reference_canvas.grid(row=0, column=0, columnspan=3, padx=5, pady=5, sticky="n")
|
3280 |
+
|
3281 |
+
self.image_reference_strength_label = customtkinter.CTkLabel(self.image_reference_canvas, font=v_large_font, text_color='white', text=f"Reference Strength : 0.6", fg_color='transparent', width=190)
|
3282 |
+
self.information_extracted_label = customtkinter.CTkLabel(self.image_reference_canvas, font=v_large_font, text_color='white', text=f"Information Extracted : 1", fg_color='transparent', width=190)
|
3283 |
+
self.image_reference_strength = customtkinter.CTkSlider(self.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, width=180, progress_color='transparent')
|
3284 |
+
self.information_extracted = customtkinter.CTkSlider(self.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, width=180, progress_color='transparent')
|
3285 |
+
self.exit_reference_mode = customtkinter.CTkButton(self.image_reference_canvas, text="Vibe Transfer 해제", font=my_font, command=rem_image_reference, fg_color='grey10', hover_color='grey', corner_radius=0)
|
3286 |
+
irc_xpos = [int(130* (self.dpi / 100)), int(130* (self.dpi / 100)), int(320* (self.dpi / 100)), int(320* (self.dpi / 100)), int(260* (self.dpi / 100))]
|
3287 |
+
self.image_reference_canvas.create_window(irc_xpos[0], 140, window=self.image_reference_strength_label)
|
3288 |
+
self.image_reference_canvas.create_window(irc_xpos[1], 90, window=self.information_extracted_label)
|
3289 |
+
self.image_reference_canvas.create_window(irc_xpos[2], 140, window=self.image_reference_strength)
|
3290 |
+
self.image_reference_canvas.create_window(irc_xpos[3], 90, window=self.information_extracted)
|
3291 |
+
self.image_reference_canvas.create_window(irc_xpos[4], 190, window=self.exit_reference_mode)
|
3292 |
|
3293 |
def yield_rm_character_name():
|
3294 |
if self.rm_character_name_var.get() == 1:
|
|
|
3498 |
|
3499 |
#이미지 히스토리
|
3500 |
self.image_history_frame = customtkinter.CTkFrame(self.right_frame)
|
3501 |
+
self.image_history_frame.grid(row=0, column=0, columnspan=2, rowspan=15, padx=5, pady=5, sticky="w")
|
3502 |
|
3503 |
def show_context_menu(event):
|
3504 |
if len(app.image_queue) != 0:
|
|
|
3512 |
self.image_reference_canvas.delete(self.image_id)
|
3513 |
self.image_id = None
|
3514 |
reference_string = NAIA_generation.image_to_base64(img)
|
3515 |
+
self.image_reference = copy.deepcopy(img.convert('RGBA'))
|
3516 |
self.image_reference_string = reference_string
|
3517 |
enhancer = ImageEnhance.Brightness(self.image_reference)
|
3518 |
darker_image = enhancer.enhance(0.5)
|
3519 |
+
self.image_reference_tk = ImageTk.PhotoImage(darker_image.resize((int(486* (self.dpi / 100)), int(486* (self.dpi / 100))), Image.Resampling.LANCZOS))
|
3520 |
self.image_id = self.image_reference_canvas.create_image(0, 0, image=self.image_reference_tk, anchor='nw')
|
3521 |
self.image_reference_strength.set(0.6)
|
3522 |
self.information_extracted.set(1)
|
|
|
4209 |
self.resolution_button.grid(row=2, column=1, padx=5, sticky="w")
|
4210 |
self.sampler_label = customtkinter.CTkLabel(self.extended_right_frame, text="Sampler :", font=my_font)
|
4211 |
self.sampler_label.grid(row=2, column=2,pady=5, padx=15, sticky="w")
|
4212 |
+
self.sampler_var = customtkinter.StringVar(value="k_euler_ancestral + native")
|
4213 |
+
self.sampler_button = customtkinter.CTkComboBox(self.extended_right_frame, width=210,values=["k_euler + native", "k_euler + karras", "k_euler + exponential", "k_euler_ancestral + native", "k_euler_ancestral + exponential", "k_dpmpp_2s_ancestral + native", "k_dpmpp_2s_ancestral + exponential", "k_dpmpp_sde + native", "k_dpmpp_sde + karras", "k_dpmpp_sde + exponential", "k_dpmpp_2m + native", "k_dpmpp_2m + karras", "k_dpmpp_2m + exponential"], variable=self.sampler_var, font=my_font)
|
4214 |
self.sampler_button.grid(row=2, column=2, columnspan=2, pady=5, padx=15, sticky="e")
|
4215 |
self.show_fullscreen_btn = customtkinter.CTkButton(self.extended_right_frame, text="전체화면(ESC닫기)", font=my_font, command=self.show_fullscreen_image)
|
4216 |
self.show_fullscreen_btn.grid(row=2, column=4,pady=5, padx=5, sticky="nsew")
|
|
|
4270 |
if current_size != app.last_window_size:
|
4271 |
app.last_window_size = current_size
|
4272 |
if app.state() == 'zoomed':
|
4273 |
+
self.hidden_frame.configure(width=round(360 * (app.dpi /100), 0))
|
4274 |
if app.dpi >= 100 and app.dpi < 125 : offset = 10
|
4275 |
elif app.dpi >= 125 and app.dpi < 150 : offset = 5
|
4276 |
elif app.dpi >= 150: offset = 0
|
|
|
4320 |
self.resolution_button2.grid(row=3, column=1, padx=5, sticky="w")
|
4321 |
self.sampler_label2 = customtkinter.CTkLabel(self.hidden_frame, text="Sampler :", font=my_font)
|
4322 |
self.sampler_label2.grid(row=4, column=0,pady=5, padx=5, sticky="w")
|
4323 |
+
self.sampler_button2 = customtkinter.CTkComboBox(self.hidden_frame, width=160,values=["k_euler + native", "k_euler + karras", "k_euler + exponential", "k_euler_ancestral + native", "k_euler_ancestral + exponential", "k_dpmpp_2s_ancestral + native", "k_dpmpp_2s_ancestral + exponential", "k_dpmpp_sde + native", "k_dpmpp_sde + karras", "k_dpmpp_sde + exponential", "k_dpmpp_2m + native", "k_dpmpp_2m + karras", "k_dpmpp_2m + exponential"], variable=self.sampler_var, font=my_font)
|
4324 |
self.sampler_button2.grid(row=4, column=1, columnspan=2, pady=5, padx=5, sticky="e")
|
4325 |
self.cfg_scale_label2 = customtkinter.CTkLabel(self.hidden_frame, text="CFG Scale : ", font=my_font)
|
4326 |
self.cfg_scale_label2.grid(row=5, column=0,pady=5, padx=5, sticky="w")
|
|
|
4557 |
except:
|
4558 |
i2i_negative_text = self.negative_prompt_input.get("0.0", "end-1c")
|
4559 |
inpaint_check = sum(sum(row) for row in mirror_image) >= 50
|
4560 |
+
_sampler, _noise_schedule = app.sampler_button.get().split(' + ')
|
4561 |
gen_request = {
|
4562 |
"width":self.i2i_width if not inpaint_check else cwidth ,
|
4563 |
"height":self.i2i_height if not inpaint_check else cheight,
|
4564 |
"quality_toggle":self.auto_quality_toggle.get(),
|
4565 |
"seed":request_seed if self.i2i_seed_hold_check == True else random.randint(0,9999999999),
|
4566 |
+
"sampler":_sampler,
|
4567 |
+
"noise_schedule": _noise_schedule,
|
4568 |
"scale":scale_pre,
|
4569 |
"uncond_scale":uncond_pre,
|
4570 |
"sema":self.sema_button.get(),
|
|
|
4674 |
|
4675 |
iimg = None
|
4676 |
inpaint_mode = False
|
4677 |
+
iimg = Image.open(filename).convert("RGBA")
|
4678 |
original_image = iimg.copy()
|
4679 |
cwidth, cheight = iimg.size
|
4680 |
current_dpi = app.dpi
|
|
|
4970 |
def i2i_set_image_reference():
|
4971 |
filepath = filedialog.askopenfilename(title="Open Image", filetypes=[("Image files", "*.png;*.jpg;*.webp"), ("All files", "*.*")])
|
4972 |
if filepath:
|
4973 |
+
i2irf["image_reference"] = Image.open(filepath).convert('RGBA')
|
4974 |
i2irf["image_reference_string"] = NAIA_generation.image_to_base64(i2irf["image_reference"])
|
4975 |
enhancer = ImageEnhance.Brightness(i2irf["image_reference"])
|
4976 |
darker_image = enhancer.enhance(0.5)
|
4977 |
+
i2irf["image_reference_tk"] = ImageTk.PhotoImage(darker_image.resize((int(486* (self.dpi / 100)), int(486* (self.dpi / 100))), Image.Resampling.LANCZOS))
|
4978 |
i2irf["image_id"] = image_reference_canvas.create_image(0, 0, image=i2irf["image_reference_tk"], anchor='nw')
|
4979 |
image_reference_strength.set(0.6)
|
4980 |
information_extracted.set(1)
|
|
|
5000 |
i2irf["image_id"] = None
|
5001 |
|
5002 |
image_reference_frame = customtkinter.CTkFrame(i2i_generate_frame)
|
5003 |
+
image_reference_canvas = customtkinter.CTkCanvas(image_reference_frame, width=int(486 * (app.dpi / 100)), height=200,bg="#333333", highlightthickness = 1, highlightbackground = 'grey10')
|
5004 |
image_reference_canvas.grid(row=0, column=0, columnspan=4, padx=5, pady=5, sticky="n")
|
5005 |
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)
|
5006 |
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)
|
5007 |
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')
|
5008 |
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')
|
5009 |
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)
|
5010 |
+
irc_xpos = [int(110* (self.dpi / 100)), int(110* (self.dpi / 100)), int(320* (self.dpi / 100)), int(320* (self.dpi / 100)), int(240* (self.dpi / 100))]
|
|
|
|
|
|
|
5011 |
image_reference_canvas.create_window(irc_xpos[0], 120, window=image_reference_strength_label)
|
5012 |
image_reference_canvas.create_window(irc_xpos[1], 70, window=information_extracted_label)
|
5013 |
image_reference_canvas.create_window(irc_xpos[2], 120, window=image_reference_strength)
|
|
|
5057 |
self.uncond_strength_entry.delete(0, "end")
|
5058 |
self.uncond_strength_entry.insert(0, "1.0")
|
5059 |
i2i_negative_text = self.negative_prompt_input.get("0.0", "end-1c")
|
5060 |
+
_sampler, _noise_schedule = app.sampler_button.get().split(' + ')
|
5061 |
gen_request = {
|
5062 |
"width":self.i2i_width,
|
5063 |
"height":self.i2i_height,
|
5064 |
"quality_toggle":self.auto_quality_toggle.get(),
|
5065 |
"seed":request_seed if self.i2i_seed_hold_check == True else random.randint(0,9999999999),
|
5066 |
+
"sampler":_sampler,
|
5067 |
+
"noise_schedule": _noise_schedule,
|
5068 |
"scale":scale_pre,
|
5069 |
"uncond_scale":uncond_pre,
|
5070 |
"sema":self.sema_button.get(),
|
|
|
5174 |
self.after(1000, update_rating)
|
5175 |
self.after(2000, self.get_winfo_fpixels)
|
5176 |
self.initialize_ui(self.select_rating_frame, my_font, update_labels, perform_search, depth_search)
|
5177 |
+
self.after(3000, initialize_reference)
|
5178 |
|
5179 |
def get_winfo_fpixels(self):
|
5180 |
ps_script = '''
|
|
|
5207 |
'''
|
5208 |
# PowerShell 명령어 실행
|
5209 |
result = subprocess.run(['powershell', '-Command', ps_script], capture_output=True, text=True)
|
5210 |
+
self.dpi = int(float(result.stdout.strip()))
|
5211 |
|
5212 |
def initialize_ui(self, frame, my_font, update_labels, perform_search, depth_search):
|
5213 |
self.search_button = customtkinter.CTkButton(
|
|
|
5285 |
self.image_reference_canvas.delete(self.image_id)
|
5286 |
self.image_id = None
|
5287 |
reference_string = NAIA_generation.image_to_base64(img)
|
5288 |
+
self.image_reference = copy.deepcopy(img.convert('RGBA'))
|
5289 |
self.image_reference_string = reference_string
|
5290 |
enhancer = ImageEnhance.Brightness(self.image_reference)
|
5291 |
darker_image = enhancer.enhance(0.5)
|
5292 |
+
self.image_reference_tk = ImageTk.PhotoImage(darker_image.resize((int(486* (self.dpi / 100)), int(486* (self.dpi / 100))), Image.Resampling.LANCZOS))
|
5293 |
self.image_id = self.image_reference_canvas.create_image(0, 0, image=self.image_reference_tk, anchor='nw')
|
5294 |
self.image_reference_strength.set(0.6)
|
5295 |
self.information_extracted.set(1)
|
|
|
5386 |
|
5387 |
width, height = img.size
|
5388 |
new_size = max(width, height)
|
5389 |
+
new_image = Image.new("RGBA", (new_size, new_size), 'black')
|
5390 |
left = (new_size - width) // 2
|
5391 |
top = (new_size - height) // 2
|
5392 |
new_image.paste(img, (left, top))
|
|
|
5492 |
|
5493 |
# 이미지 객체로부터 키워드 추출
|
5494 |
description = extract_keywords_from_image(img)
|
5495 |
+
img = img.convert('RGBA')
|
5496 |
if description == '' or description == None:
|
5497 |
return
|
5498 |
elif type(description) == type(' '):
|
|
|
5521 |
|
5522 |
width, height = img.size
|
5523 |
new_size = max(width, height)
|
5524 |
+
new_image = Image.new("RGBA", (new_size, new_size), 'black')
|
5525 |
left = (new_size - width) // 2
|
5526 |
top = (new_size - height) // 2
|
5527 |
new_image.paste(img, (left, top))
|
|
|
5953 |
self.prompt_guidance_rescale_var.set(settings["guidance"])
|
5954 |
except: pass
|
5955 |
try:
|
5956 |
+
if settings["sampler"] == "k_euler_ancestral" : settings["sampler"] = "k_euler_ancestral + native"
|
5957 |
self.sampler_var.set(settings["sampler"])
|
5958 |
self.sampler_button.set(settings["sampler"])
|
5959 |
except: pass
|
|
|
6103 |
resized_image = image.resize((new_width, new_height), Image.Resampling.LANCZOS)
|
6104 |
|
6105 |
# 새 이미지 (배경) 생성
|
6106 |
+
new_image = Image.new("RGBA", (max_width, max_height), "black")
|
6107 |
|
6108 |
# 리사이즈된 이미지를 새 이미지의 중앙에 배치
|
6109 |
paste_x = (max_width - new_width) // 2
|
|
|
6465 |
app.image_reference_canvas.delete(app.image_id)
|
6466 |
app.image_id = None
|
6467 |
reference_string = NAIA_generation.image_to_base64(img)
|
6468 |
+
app.image_reference = copy.deepcopy(img.convert('RGBA'))
|
6469 |
app.image_reference_string = reference_string
|
6470 |
enhancer = ImageEnhance.Brightness(app.image_reference)
|
6471 |
darker_image = enhancer.enhance(0.5)
|
6472 |
+
app.image_reference_tk = ImageTk.PhotoImage(darker_image.resize((int(486* (self.dpi / 100)), int(486* (self.dpi / 100))), Image.Resampling.LANCZOS))
|
6473 |
app.image_id = app.image_reference_canvas.create_image(0, 0, image=app.image_reference_tk, anchor='nw')
|
6474 |
app.image_reference_strength.set(_irs)
|
6475 |
app.image_reference_strength_label.configure(text=f"Reference Strength : {_irs:.2f}")
|
|
|
6962 |
uncond_pre = 1.0
|
6963 |
self.uncond_strength_entry.delete(0, "end")
|
6964 |
self.uncond_strength_entry.insert(0, "1.0")
|
6965 |
+
_sampler, _noise_schedule = app.sampler_button.get().split(' + ')
|
6966 |
_gen_request = {
|
6967 |
"width":NAI_width,
|
6968 |
"height":NAI_height,
|
6969 |
"quality_toggle":self.auto_quality_toggle.get(),
|
6970 |
"seed":self.seed_entry.get(),
|
6971 |
+
"sampler":_sampler,
|
6972 |
+
"noise_schedule": _noise_schedule,
|
6973 |
"scale":scale_pre,
|
6974 |
"uncond_scale":uncond_pre,
|
6975 |
"sema":self.sema_button.get(),
|
|
|
7288 |
_random_seed = random.randint(0,9999999999)
|
7289 |
for _ni, insf in enumerate(contents):
|
7290 |
if _val and _val != _ni: continue
|
7291 |
+
_sampler, _noise_schedule = app.sampler_button.get().split(' + ')
|
7292 |
_gen_request = {
|
7293 |
"width":NAI_width,
|
7294 |
"height":NAI_height,
|
7295 |
"quality_toggle":self.auto_quality_toggle.get(),
|
7296 |
"seed": _random_seed,
|
7297 |
+
"sampler":_sampler,
|
7298 |
+
"noise_schedule": _noise_schedule,
|
7299 |
"scale":scale_pre,
|
7300 |
"uncond_scale":uncond_pre,
|
7301 |
"sema":self.sema_button.get(),
|
Danbooru Prompt Selector/TEST2024/NAIA_generation.py
CHANGED
@@ -310,7 +310,7 @@ def generate(gen_request):
|
|
310 |
"controlnet_strength": 1.0,
|
311 |
"add_original_image": False,
|
312 |
"cfg_rescale": gen_request["cfg_rescale"],
|
313 |
-
"noise_schedule": "
|
314 |
}
|
315 |
|
316 |
if "reference_image" in gen_request:
|
|
|
310 |
"controlnet_strength": 1.0,
|
311 |
"add_original_image": False,
|
312 |
"cfg_rescale": gen_request["cfg_rescale"],
|
313 |
+
"noise_schedule": gen_request["noise_schedule"]
|
314 |
}
|
315 |
|
316 |
if "reference_image" in gen_request:
|