diff --git a/.release b/.release index 7355d4be1..7eb9e9132 100644 --- a/.release +++ b/.release @@ -1 +1 @@ -v24.1.3 \ No newline at end of file +v24.1.4 \ No newline at end of file diff --git a/kohya_gui/common_gui.py b/kohya_gui/common_gui.py index 4f2b80477..8fe216bd5 100644 --- a/kohya_gui/common_gui.py +++ b/kohya_gui/common_gui.py @@ -1424,12 +1424,11 @@ def validate_model_path(pretrained_model_name_or_path: str) -> bool: log.info(f"{msg} SUCCESS") else: # If not one of the default models, check if it's a valid local path - if not validate_file_path(pretrained_model_name_or_path): + if not validate_file_path(pretrained_model_name_or_path) and not validate_folder_path(pretrained_model_name_or_path): + log.info(f"{msg} FAILURE: not a valid file or folder") return False - return True - def is_file_writable(file_path: str) -> bool: """ Checks if a file is writable. diff --git a/kohya_gui/dreambooth_gui.py b/kohya_gui/dreambooth_gui.py index bfae28bbe..a38230a21 100644 --- a/kohya_gui/dreambooth_gui.py +++ b/kohya_gui/dreambooth_gui.py @@ -536,7 +536,7 @@ def train_model( if not validate_folder_path(reg_data_dir): return TRAIN_BUTTON_VISIBLE - if not validate_file_path(resume): + if not validate_folder_path(resume): return TRAIN_BUTTON_VISIBLE if not validate_folder_path(train_data_dir): diff --git a/kohya_gui/finetune_gui.py b/kohya_gui/finetune_gui.py index 7820daab1..c84922c0e 100644 --- a/kohya_gui/finetune_gui.py +++ b/kohya_gui/finetune_gui.py @@ -578,7 +578,7 @@ def train_model( if not validate_model_path(pretrained_model_name_or_path): return TRAIN_BUTTON_VISIBLE - if not validate_file_path(resume): + if not validate_folder_path(resume): return TRAIN_BUTTON_VISIBLE # @@ -628,8 +628,8 @@ def train_model( run_cmd.append(caption_extension) # Add paths for the image folder and the caption metadata file - run_cmd.append(image_folder) - run_cmd.append(os.path.join(train_dir, caption_metadata_filename)) + run_cmd.append(rf"{image_folder}") + run_cmd.append(rf"{os.path.join(train_dir, caption_metadata_filename)}") # Include the full path flag if specified if full_path: @@ -641,16 +641,20 @@ def train_model( # Prepare environment variables env = setup_environment() + # Execute the command if not just for printing + if not print_only: + subprocess.run(run_cmd, env=env) + # create images buckets if generate_image_buckets: # Build the command to run the preparation script run_cmd = [ PYTHON, rf"{scriptdir}/sd-scripts/finetune/prepare_buckets_latents.py", - image_folder, - os.path.join(train_dir, caption_metadata_filename), - os.path.join(train_dir, latent_metadata_filename), - pretrained_model_name_or_path, + rf"{image_folder}", + rf"{os.path.join(train_dir, caption_metadata_filename)}", + rf"{os.path.join(train_dir, latent_metadata_filename)}", + rf"{pretrained_model_name_or_path}", "--batch_size", str(batch_size), "--max_resolution", diff --git a/kohya_gui/lora_gui.py b/kohya_gui/lora_gui.py index 6257aa756..1132fde1d 100644 --- a/kohya_gui/lora_gui.py +++ b/kohya_gui/lora_gui.py @@ -726,7 +726,7 @@ def train_model( if not validate_folder_path(reg_data_dir): return TRAIN_BUTTON_VISIBLE - if not validate_file_path(resume): + if not validate_folder_path(resume): return TRAIN_BUTTON_VISIBLE if not validate_folder_path(train_data_dir): diff --git a/kohya_gui/textual_inversion_gui.py b/kohya_gui/textual_inversion_gui.py index 56d0f64c3..e85b47fd0 100644 --- a/kohya_gui/textual_inversion_gui.py +++ b/kohya_gui/textual_inversion_gui.py @@ -536,7 +536,7 @@ def train_model( if not validate_folder_path(reg_data_dir): return TRAIN_BUTTON_VISIBLE - if not validate_file_path(resume): + if not validate_folder_path(resume): return TRAIN_BUTTON_VISIBLE if not validate_folder_path(train_data_dir):