baqu2213 commited on
Commit
f2216bc
·
verified ·
1 Parent(s): aa7cfab

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:b7ba6f64444dccfdd0f7b2b0f4ab932b162672a7c3af96c52c66cc8b6974ed6c
3
- size 854809517
 
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":app.sampler_button.get(),
 
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
- original_width, original_height = current_image.size
777
- max_size = app.winfo_screenheight()-100
778
- if original_width > max_size or original_height > max_size:
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.2 (Test version 3)")
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.copy(), self.sync_i2i_contents.copy())
1602
  else:
1603
- _img2img(self,self.sync_i2i_img.copy())
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":self.sampler_button.get(),
 
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
- original_width, original_height = current_image.size
2948
- max_size = app.winfo_screenheight()-100
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
- original_width, original_height = current_image.size
3031
- max_size = app.winfo_screenheight()-100
3032
- if original_width > max_size or original_height > max_size:
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
- 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)
3293
- 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)
3294
- 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=120 if self.winfo_screenheight() < 1152 else 180, progress_color='transparent')
3295
- 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=120 if self.winfo_screenheight() < 1152 else 180, progress_color='transparent')
3296
- 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)
3297
- if self.winfo_screenheight() >= 1152:
3298
- irc_xpos = [150, 150, 440, 440, 300]
3299
- else:
3300
- irc_xpos = [130, 130, 390, 390, 260]
3301
- self.image_reference_canvas.create_window(irc_xpos[0], 140, window=self.image_reference_strength_label)
3302
- self.image_reference_canvas.create_window(irc_xpos[1], 90, window=self.information_extracted_label)
3303
- self.image_reference_canvas.create_window(irc_xpos[2], 140, window=self.image_reference_strength)
3304
- self.image_reference_canvas.create_window(irc_xpos[3], 90, window=self.information_extracted)
3305
- self.image_reference_canvas.create_window(irc_xpos[4], 190, window=self.exit_reference_mode)
 
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="n")
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, 468) if self.winfo_screenheight() < 1152 else (600, 468), Image.Resampling.LANCZOS))
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 / (app.dpi /100), 0))
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":self.sampler_button.get(),
 
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("RGB")
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, 468) if self.winfo_screenheight() < 1152 else (600, 468), Image.Resampling.LANCZOS))
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=600, height=200,bg="#333333", highlightthickness = 1, highlightbackground = 'grey10')
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
- if self.winfo_screenheight() >= 1152:
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":self.sampler_button.get(),
 
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, 468) if self.winfo_screenheight() < 1152 else (600, 468), Image.Resampling.LANCZOS))
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("RGB", (new_size, new_size), 'black')
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("RGB", (new_size, new_size), 'black')
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("RGB", (max_width, max_height), "black")
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, 468) if app.winfo_screenheight() < 1152 else (600, 468), Image.Resampling.LANCZOS))
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":self.sampler_button.get(),
 
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":self.sampler_button.get(),
 
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": "native"
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: