mirror of
https://github.com/karl0ss/comfy_fm24_newgens.git
synced 2025-10-03 06:40:06 +01:00
fix preview page
This commit is contained in:
parent
1e9298003d
commit
497a36bd58
82
gui.py
82
gui.py
@ -58,6 +58,10 @@ class FMFaceGeneratorGUI:
|
|||||||
self.image_queue = queue.Queue()
|
self.image_queue = queue.Queue()
|
||||||
self.current_profile = None
|
self.current_profile = None
|
||||||
|
|
||||||
|
# Preview tracking variables
|
||||||
|
self.generated_images = [] # List of generated image UIDs
|
||||||
|
self.current_image_index = -1 # Current image being displayed
|
||||||
|
|
||||||
# Set up the GUI
|
# Set up the GUI
|
||||||
self.setup_gui()
|
self.setup_gui()
|
||||||
|
|
||||||
@ -617,6 +621,9 @@ class FMFaceGeneratorGUI:
|
|||||||
ttk.Button(nav_frame, text="Next", command=self.show_next_image).pack(side=tk.LEFT, padx=5)
|
ttk.Button(nav_frame, text="Next", command=self.show_next_image).pack(side=tk.LEFT, padx=5)
|
||||||
ttk.Button(nav_frame, text="Refresh", command=self.refresh_preview).pack(side=tk.RIGHT, padx=5)
|
ttk.Button(nav_frame, text="Refresh", command=self.refresh_preview).pack(side=tk.RIGHT, padx=5)
|
||||||
|
|
||||||
|
# Scan for existing images on startup
|
||||||
|
self.root.after(1000, self.scan_existing_images) # Delay to allow config to load
|
||||||
|
|
||||||
def browse_model_dir(self):
|
def browse_model_dir(self):
|
||||||
"""Browse for model directory"""
|
"""Browse for model directory"""
|
||||||
directory = filedialog.askdirectory(title="Select Model Directory")
|
directory = filedialog.askdirectory(title="Select Model Directory")
|
||||||
@ -713,6 +720,9 @@ class FMFaceGeneratorGUI:
|
|||||||
self.rtf_file_var.set('')
|
self.rtf_file_var.set('')
|
||||||
self.output_dir_var.set('./NewGens/')
|
self.output_dir_var.set('./NewGens/')
|
||||||
self.log_message("No profile selected, using defaults")
|
self.log_message("No profile selected, using defaults")
|
||||||
|
|
||||||
|
# Scan for existing images after loading config
|
||||||
|
self.root.after(500, self.scan_existing_images)
|
||||||
else:
|
else:
|
||||||
self.log_message("No configuration file found, using defaults")
|
self.log_message("No configuration file found, using defaults")
|
||||||
|
|
||||||
@ -919,6 +929,15 @@ class FMFaceGeneratorGUI:
|
|||||||
try:
|
try:
|
||||||
image_path = f"{self.output_dir_var.get()}/{uid}.png"
|
image_path = f"{self.output_dir_var.get()}/{uid}.png"
|
||||||
if os.path.exists(image_path):
|
if os.path.exists(image_path):
|
||||||
|
# Add to generated images list if not already present
|
||||||
|
if uid not in self.generated_images:
|
||||||
|
self.generated_images.append(uid)
|
||||||
|
self.update_total_count()
|
||||||
|
|
||||||
|
# Find the index of current image
|
||||||
|
if uid in self.generated_images:
|
||||||
|
self.current_image_index = self.generated_images.index(uid)
|
||||||
|
|
||||||
# Load and resize image
|
# Load and resize image
|
||||||
image = Image.open(image_path)
|
image = Image.open(image_path)
|
||||||
image.thumbnail((300, 300), Image.Resampling.LANCZOS)
|
image.thumbnail((300, 300), Image.Resampling.LANCZOS)
|
||||||
@ -937,16 +956,73 @@ class FMFaceGeneratorGUI:
|
|||||||
|
|
||||||
def show_previous_image(self):
|
def show_previous_image(self):
|
||||||
"""Show previous image"""
|
"""Show previous image"""
|
||||||
self.log_message("Previous image functionality not implemented yet")
|
if not self.generated_images:
|
||||||
|
self.log_message("No images available to navigate")
|
||||||
|
return
|
||||||
|
|
||||||
|
if self.current_image_index <= 0:
|
||||||
|
self.log_message("Already at first image")
|
||||||
|
return
|
||||||
|
|
||||||
|
self.current_image_index -= 1
|
||||||
|
uid = self.generated_images[self.current_image_index]
|
||||||
|
self.show_image(uid)
|
||||||
|
|
||||||
def show_next_image(self):
|
def show_next_image(self):
|
||||||
"""Show next image"""
|
"""Show next image"""
|
||||||
self.log_message("Next image functionality not implemented yet")
|
if not self.generated_images:
|
||||||
|
self.log_message("No images available to navigate")
|
||||||
|
return
|
||||||
|
|
||||||
|
if self.current_image_index >= len(self.generated_images) - 1:
|
||||||
|
self.log_message("Already at last image")
|
||||||
|
return
|
||||||
|
|
||||||
|
self.current_image_index += 1
|
||||||
|
uid = self.generated_images[self.current_image_index]
|
||||||
|
self.show_image(uid)
|
||||||
|
|
||||||
|
def update_total_count(self):
|
||||||
|
"""Update the total generated count display"""
|
||||||
|
count = len(self.generated_images)
|
||||||
|
self.total_generated_var.set(str(count))
|
||||||
|
self.log_message(f"Total generated images: {count}")
|
||||||
|
|
||||||
|
def scan_existing_images(self):
|
||||||
|
"""Scan the output directory for existing images"""
|
||||||
|
try:
|
||||||
|
output_dir = self.output_dir_var.get()
|
||||||
|
if not output_dir or not os.path.exists(output_dir):
|
||||||
|
return
|
||||||
|
|
||||||
|
# Find all PNG files in the output directory
|
||||||
|
existing_images = []
|
||||||
|
for file in os.listdir(output_dir):
|
||||||
|
if file.endswith('.png') and file[:-4].isdigit():
|
||||||
|
uid = file[:-4] # Remove .png extension
|
||||||
|
existing_images.append(uid)
|
||||||
|
|
||||||
|
# Sort by UID (numerically)
|
||||||
|
existing_images.sort(key=int)
|
||||||
|
|
||||||
|
# Update our tracking list
|
||||||
|
self.generated_images = existing_images
|
||||||
|
self.update_total_count()
|
||||||
|
|
||||||
|
if existing_images:
|
||||||
|
self.log_message(f"Found {len(existing_images)} existing images")
|
||||||
|
else:
|
||||||
|
self.log_message("No existing images found")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.log_message(f"Error scanning existing images: {str(e)}")
|
||||||
|
|
||||||
def refresh_preview(self):
|
def refresh_preview(self):
|
||||||
"""Refresh the preview"""
|
"""Refresh the preview"""
|
||||||
self.log_message("Refreshing preview...")
|
self.log_message("Refreshing preview...")
|
||||||
# This would scan the output directory and show available images
|
self.scan_existing_images()
|
||||||
|
if self.generated_images:
|
||||||
|
self.show_image(self.generated_images[0]) # Show first image
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Main function"""
|
"""Main function"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user