diff --git a/random_image_picker.py b/random_image_picker.py index 9686657..b702f0b 100644 --- a/random_image_picker.py +++ b/random_image_picker.py @@ -131,23 +131,18 @@ class RandomImagePicker: Load image based on mode settings. Args: - folder_path: Folder path for random selection (folder mode) - folder_mode: True for folder mode, False for single file mode + folder_path: Folder path for random selection + folder_mode: True for explicit folder mode, False for auto-detect include_subfolders: Whether to scan subfolders seed: Random seed for folder mode - image_data: Base64 encoded image data from file picker (single mode) + image_data: Base64 encoded image data from file picker Returns: Tuple of (image_tensor, width, height) """ - if folder_mode: - # Folder mode: pick random image from folder - if not folder_path or not os.path.exists(folder_path): - raise ValueError(f"Folder path does not exist: {folder_path}") - - if not os.path.isdir(folder_path): - raise ValueError(f"Folder mode requires a directory path: {folder_path}") - + # Priority 1: Check if folder_path is valid (works for both modes) + if folder_path and os.path.exists(folder_path) and os.path.isdir(folder_path): + # Use folder mode (random selection) image_files = self.get_image_files(folder_path, include_subfolders) if not image_files: @@ -157,15 +152,14 @@ class RandomImagePicker: random.seed(seed) selected_image = random.choice(image_files) + mode_str = "Folder Mode" if folder_mode else "Auto (from folder_path)" + print(f"[Random Image Picker] Mode: {mode_str}") print(f"[Random Image Picker] Folder: {folder_path}") print(f"[Random Image Picker] Selected: {selected_image}") return self.load_image_file(selected_image) - else: - # Single file mode: use image_data from file picker - if not image_data: - raise ValueError("Please select an image file using the 📁 Choose File button") - - # Parse base64 image data + + # Priority 2: Use file picker data if available + if image_data: import base64 import io @@ -191,11 +185,20 @@ class RandomImagePicker: # Convert to torch tensor and add batch dimension img_tensor = torch.from_numpy(img_array)[None,] - print(f"[Random Image Picker] Loaded from file picker: {width}x{height}") + print(f"[Random Image Picker] Mode: File Picker") + print(f"[Random Image Picker] Loaded: {width}x{height}") return (img_tensor, width, height) except Exception as e: raise ValueError(f"Failed to load image from file picker: {str(e)}") + + # No valid input provided + raise ValueError( + "No valid input provided.\n\n" + "Please either:\n" + "1. Enter a folder path in 'folder_path' field, OR\n" + "2. Use the 📁 Choose File button to select an image" + ) # Node registration