From fd8bfa8a39b1c08a2f39d04f93a8288285d0c8f7 Mon Sep 17 00:00:00 2001 From: bmaltais Date: Wed, 10 Apr 2024 20:48:12 -0400 Subject: [PATCH] Upgrade Gradio release --- .release | 2 +- README.md | 6 ++++ kohya_gui/blip2_caption_gui.py | 2 +- kohya_gui/class_basic_training.py | 4 +-- kohya_gui/class_source_model.py | 2 +- kohya_gui/dreambooth_gui.py | 14 +++----- kohya_gui/finetune_gui.py | 15 +++------ kohya_gui/group_images_gui.py | 2 +- kohya_gui/lora_gui.py | 25 +++++---------- kohya_gui/manual_caption_gui.py | 8 ++--- kohya_gui/textual_inversion_gui.py | 20 ++++-------- requirements.txt | 2 +- test/config/dreambooth-AdamW.json | 44 +++++++++++++++++++++++--- test/config/finetune-AdamW.json | 17 ++++++++-- test/config/locon-AdamW.json | 51 ++++++++++++++++++++++++++---- 15 files changed, 138 insertions(+), 76 deletions(-) diff --git a/.release b/.release index 76a0279..ab61f4f 100644 --- a/.release +++ b/.release @@ -1 +1 @@ -v23.1.4 \ No newline at end of file +v23.1.5 \ No newline at end of file diff --git a/README.md b/README.md index 6e2cb4f..7e6a3c3 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ The GUI allows you to set the training parameters and generate and run the requi - [SDXL training](#sdxl-training) - [Masked loss](#masked-loss) - [Change History](#change-history) + - [2024/04/10 (v23.1.5)](#20240410-v2315) - [2024/04/08 (v23.1.4)](#20240408-v2314) - [2024/04/08 (v23.1.3)](#20240408-v2313) - [2024/04/08 (v23.1.2)](#20240408-v2312) @@ -407,6 +408,11 @@ ControlNet dataset is used to specify the mask. The mask images should be the RG ## Change History +### 2024/04/10 (v23.1.5) + +- Fix issue with Textual Inversion configuration file selection. +- Upgrade to gradio 4.19.2 to fix several high security risks associated to earlier versions. Hoping this will not introduce undorseen issues. + ### 2024/04/08 (v23.1.4) - Relocate config accordion to the top of the GUI. diff --git a/kohya_gui/blip2_caption_gui.py b/kohya_gui/blip2_caption_gui.py index 7fd866b..6336a58 100644 --- a/kohya_gui/blip2_caption_gui.py +++ b/kohya_gui/blip2_caption_gui.py @@ -332,7 +332,7 @@ def gradio_blip2_caption_gui_tab(headless=False, directory_path=None): ) top_p = gr.Slider( - minimum=-0, + minimum=0, maximum=1, value=0.9, step=0.1, diff --git a/kohya_gui/class_basic_training.py b/kohya_gui/class_basic_training.py index 0df6ddf..8b1a040 100644 --- a/kohya_gui/class_basic_training.py +++ b/kohya_gui/class_basic_training.py @@ -19,9 +19,9 @@ class BasicTraining: def __init__( self, sdxl_checkbox: gr.Checkbox, - learning_rate_value: str = "1e-6", + learning_rate_value: float = "1e-6", lr_scheduler_value: str = "constant", - lr_warmup_value: str = "0", + lr_warmup_value: float = "0", finetuning: bool = False, dreambooth: bool = False, config: dict = {}, diff --git a/kohya_gui/class_source_model.py b/kohya_gui/class_source_model.py index a390e42..ddab2dd 100644 --- a/kohya_gui/class_source_model.py +++ b/kohya_gui/class_source_model.py @@ -257,7 +257,7 @@ class SourceModel: min_width=60, ) with gr.Column(): - gr.Box(visible=False) + gr.Group(visible=False) with gr.Row(): self.training_comment = gr.Textbox( diff --git a/kohya_gui/dreambooth_gui.py b/kohya_gui/dreambooth_gui.py index f578604..927f68d 100644 --- a/kohya_gui/dreambooth_gui.py +++ b/kohya_gui/dreambooth_gui.py @@ -47,7 +47,7 @@ PYTHON = sys.executable def save_configuration( - save_as, + save_as_bool, file_path, pretrained_model_name_or_path, v2, @@ -160,8 +160,6 @@ def save_configuration( original_file_path = file_path - save_as_bool = True if save_as.get("label") == "True" else False - if save_as_bool: log.info("Save as...") file_path = get_saveasfile_path(file_path) @@ -301,8 +299,6 @@ def open_configuration( # Get list of function parameters and values parameters = list(locals().items()) - ask_for_file = True if ask_for_file.get("label") == "True" else False - original_file_path = file_path if ask_for_file: @@ -740,8 +736,8 @@ def dreambooth_tab( headless=False, config: KohyaSSGUIConfig = {}, ): - dummy_db_true = gr.Label(value=True, visible=False) - dummy_db_false = gr.Label(value=False, visible=False) + dummy_db_true = gr.Checkbox(value=True, visible=False) + dummy_db_false = gr.Checkbox(value=False, visible=False) dummy_headless = gr.Label(value=headless, visible=False) with gr.Tab("Training"), gr.Column(variant="compact"): @@ -764,9 +760,9 @@ def dreambooth_tab( with gr.Accordion("Basic", open="True"): with gr.Group(elem_id="basic_tab"): basic_training = BasicTraining( - learning_rate_value="1e-5", + learning_rate_value=1e-5, lr_scheduler_value="cosine", - lr_warmup_value="10", + lr_warmup_value=10, dreambooth=True, sdxl_checkbox=source_model.sdxl_checkbox, config=config, diff --git a/kohya_gui/finetune_gui.py b/kohya_gui/finetune_gui.py index 2191486..1cb8a7b 100644 --- a/kohya_gui/finetune_gui.py +++ b/kohya_gui/finetune_gui.py @@ -53,7 +53,7 @@ presets_dir = rf"{scriptdir}/presets" def save_configuration( - save_as, + save_as_bool, file_path, pretrained_model_name_or_path, v2, @@ -170,8 +170,6 @@ def save_configuration( original_file_path = file_path - save_as_bool = True if save_as.get("label") == "True" else False - if save_as_bool: log.info("Save as...") file_path = get_saveasfile_path(file_path) @@ -319,9 +317,6 @@ def open_configuration( # Get list of function parameters and values parameters = list(locals().items()) - ask_for_file = True if ask_for_file.get("label") == "True" else False - apply_preset = True if apply_preset.get("label") == "True" else False - # Check if we are "applying" a preset or a config if apply_preset: log.info(f"Applying preset {training_preset}...") @@ -764,8 +759,8 @@ def train_model( def finetune_tab(headless=False, config: dict = {}): - dummy_db_true = gr.Label(value=True, visible=False) - dummy_db_false = gr.Label(value=False, visible=False) + dummy_db_true = gr.Checkbox(value=True, visible=False) + dummy_db_false = gr.Checkbox(value=False, visible=False) dummy_headless = gr.Label(value=headless, visible=False) with gr.Tab("Training"), gr.Column(variant="compact"): gr.Markdown("Train a custom model using kohya finetune python code...") @@ -818,7 +813,7 @@ def finetune_tab(headless=False, config: dict = {}): with gr.Accordion("Basic", open="True"): with gr.Group(elem_id="basic_tab"): basic_training = BasicTraining( - learning_rate_value="1e-5", + learning_rate_value=1e-5, finetuning=True, sdxl_checkbox=source_model.sdxl_checkbox, config=config, @@ -837,7 +832,7 @@ def finetune_tab(headless=False, config: dict = {}): with gr.Row(): gradient_accumulation_steps = gr.Number( label="Gradient accumulate steps", - value="1", + value=1, ) block_lr = gr.Textbox( label="Block LR (SDXL)", diff --git a/kohya_gui/group_images_gui.py b/kohya_gui/group_images_gui.py index bbd78d8..55552e3 100644 --- a/kohya_gui/group_images_gui.py +++ b/kohya_gui/group_images_gui.py @@ -146,7 +146,7 @@ def gradio_group_images_gui_tab(headless=False): group_size = gr.Slider( label="Group size", info="Number of images to group together", - value="4", + value=4, minimum=1, maximum=64, step=1, diff --git a/kohya_gui/lora_gui.py b/kohya_gui/lora_gui.py index fb4dee1..bfc5403 100644 --- a/kohya_gui/lora_gui.py +++ b/kohya_gui/lora_gui.py @@ -83,7 +83,7 @@ def update_network_args_with_kohya_lora_vars( def save_configuration( - save_as, + save_as_bool, file_path, pretrained_model_name_or_path, v2, @@ -233,9 +233,6 @@ def save_configuration( original_file_path = file_path - # Determine whether to save as a new file or overwrite the existing file - save_as_bool = True if save_as.get("label") == "True" else False - # If saving as a new file, get the file path for saving if save_as_bool: log.info("Save as...") @@ -423,12 +420,6 @@ def open_configuration( # Get list of function parameters and values parameters = list(locals().items()) - # Convert 'ask_for_file' and 'apply_preset' from string to boolean based on their 'label' value - # This corrects a critical oversight in the original code, where `.get("label")` method calls were - # made on boolean variables instead of dictionaries - ask_for_file = True if ask_for_file.get("label") == "True" else False - apply_preset = True if apply_preset.get("label") == "True" else False - # Determines if a preset configuration is being applied if apply_preset: if training_preset != "none": @@ -1091,8 +1082,8 @@ def lora_tab( headless=False, config: dict = {}, ): - dummy_db_true = gr.Label(value=True, visible=False) - dummy_db_false = gr.Label(value=False, visible=False) + dummy_db_true = gr.Checkbox(value=True, visible=False) + dummy_db_false = gr.Checkbox(value=False, visible=False) dummy_headless = gr.Label(value=headless, visible=False) with gr.Tab("Training"), gr.Column(variant="compact") as tab: @@ -1210,9 +1201,9 @@ def lora_tab( info="Automatically determine the dim(rank) from the weight file.", ) basic_training = BasicTraining( - learning_rate_value="0.0001", + learning_rate_value=0.0001, lr_scheduler_value="cosine", - lr_warmup_value="10", + lr_warmup_value=10, sdxl_checkbox=source_model.sdxl_checkbox, config=config, ) @@ -1220,7 +1211,7 @@ def lora_tab( with gr.Row(): text_encoder_lr = gr.Number( label="Text Encoder learning rate", - value="0.0001", + value=0.0001, info="(Optional)", minimum=0, maximum=1, @@ -1228,7 +1219,7 @@ def lora_tab( unet_lr = gr.Number( label="Unet learning rate", - value="0.0001", + value=0.0001, info="(Optional)", minimum=0, maximum=1, @@ -1286,7 +1277,7 @@ def lora_tab( visible=False, ) constrain = gr.Number( - value="0.0", + value=0.0, label="Constrain OFT", info="Limits the norm of the oft_blocks, ensuring that their magnitude does not exceed a specified threshold, thus controlling the extent of the transformation applied.", visible=False, diff --git a/kohya_gui/manual_caption_gui.py b/kohya_gui/manual_caption_gui.py index 2a80bfc..bc90d21 100644 --- a/kohya_gui/manual_caption_gui.py +++ b/kohya_gui/manual_caption_gui.py @@ -269,8 +269,8 @@ def gradio_manual_caption_gui_tab(headless=False, default_images_dir=None): with gr.Tab("Manual Captioning"): gr.Markdown("This utility allows quick captioning and tagging of images.") - page = gr.Number(-1, visible=False) - max_page = gr.Number(1, visible=False) + page = gr.Number(value=-1, visible=False) + max_page = gr.Number(value=1, visible=False) loaded_images_dir = gr.Text(visible=False) with gr.Group(), gr.Row(): images_dir = gr.Dropdown( @@ -336,7 +336,7 @@ def gradio_manual_caption_gui_tab(headless=False, default_images_dir=None): def render_pagination(): gr.Button("< Prev", elem_id="open_folder").click( paginate, - inputs=[page, max_page, gr.Number(-1, visible=False)], + inputs=[page, max_page, gr.Number(value=-1, visible=False)], outputs=[page], ) page_count = gr.Label("Page 1", label="Page") @@ -352,7 +352,7 @@ def gradio_manual_caption_gui_tab(headless=False, default_images_dir=None): ) gr.Button("Next >", elem_id="open_folder").click( paginate, - inputs=[page, max_page, gr.Number(1, visible=False)], + inputs=[page, max_page, gr.Number(value=1, visible=False)], outputs=[page], ) return page_count diff --git a/kohya_gui/textual_inversion_gui.py b/kohya_gui/textual_inversion_gui.py index 49fc176..1505797 100644 --- a/kohya_gui/textual_inversion_gui.py +++ b/kohya_gui/textual_inversion_gui.py @@ -47,7 +47,7 @@ executor = CommandExecutor() def save_configuration( - save_as, + save_as_bool, file_path, pretrained_model_name_or_path, v2, @@ -159,8 +159,6 @@ def save_configuration( original_file_path = file_path - save_as_bool = True if save_as.get("label") == "True" else False - if save_as_bool: log.info("Save as...") file_path = get_saveasfile_path(file_path) @@ -301,8 +299,6 @@ def open_configuration( # Get list of function parameters and values parameters = list(locals().items()) - ask_for_file = True if ask_for_file.get("label") == "True" else False - original_file_path = file_path if ask_for_file: @@ -710,8 +706,8 @@ def train_model( def ti_tab(headless=False, default_output_dir=None, config: dict = {}): - dummy_db_true = gr.Label(value=True, visible=False) - dummy_db_false = gr.Label(value=False, visible=False) + dummy_db_true = gr.Checkbox(value=True, visible=False) + dummy_db_false = gr.Checkbox(value=False, visible=False) dummy_headless = gr.Label(value=headless, visible=False) current_embedding_dir = ( @@ -725,7 +721,7 @@ def ti_tab(headless=False, default_output_dir=None, config: dict = {}): # Setup Configuration Files Gradio with gr.Accordion("Configuration", open=False): - configuration = ConfigurationFile(headless=headless) + configuration = ConfigurationFile(headless=headless, config=config) with gr.Accordion("Accelerate launch", open=False), gr.Column(): accelerate_launch = AccelerateLaunch(config=config) @@ -824,9 +820,9 @@ def ti_tab(headless=False, default_output_dir=None, config: dict = {}): value="caption", ) basic_training = BasicTraining( - learning_rate_value="1e-5", + learning_rate_value=1e-5, lr_scheduler_value="cosine", - lr_warmup_value="10", + lr_warmup_value=10, sdxl_checkbox=source_model.sdxl_checkbox, config=config, ) @@ -863,10 +859,6 @@ def ti_tab(headless=False, default_output_dir=None, config: dict = {}): ) gradio_dataset_balancing_tab(headless=headless) - # Setup Configuration Files Gradio - with gr.Accordion("Configuration", open=False): - configuration = ConfigurationFile(headless=headless) - with gr.Column(), gr.Group(): with gr.Row(): button_run = gr.Button("Start training", variant="primary") diff --git a/requirements.txt b/requirements.txt index ce7404e..375ec46 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ easygui==0.98.3 einops==0.7.0 fairscale==0.4.13 ftfy==6.1.1 -gradio==3.50.2 +gradio==4.19.2 huggingface-hub==0.20.1 imagesize==1.4.1 invisible-watermark==0.2.0 diff --git a/test/config/dreambooth-AdamW.json b/test/config/dreambooth-AdamW.json index 1f41f7d..6ca69ac 100644 --- a/test/config/dreambooth-AdamW.json +++ b/test/config/dreambooth-AdamW.json @@ -5,43 +5,72 @@ "bucket_reso_steps": 64, "cache_latents": true, "cache_latents_to_disk": false, - "caption_dropout_every_n_epochs": 0.0, + "caption_dropout_every_n_epochs": 0, "caption_dropout_rate": 0.05, "caption_extension": "", "clip_skip": 2, "color_aug": false, + "dataset_config": "", + "debiased_estimation_loss": false, "enable_bucket": true, "epoch": 1, + "extra_accelerate_launch_args": "", "flip_aug": false, + "full_bf16": false, "full_fp16": false, - "gradient_accumulation_steps": 1.0, + "gpu_ids": "", + "gradient_accumulation_steps": 1, "gradient_checkpointing": false, + "huber_c": 0.1, + "huber_schedule": "snr", + "ip_noise_gamma": 0, + "ip_noise_gamma_random_strength": false, "keep_tokens": "0", "learning_rate": 5e-05, + "learning_rate_te": 1e-05, + "learning_rate_te1": 1e-05, + "learning_rate_te2": 1e-05, + "log_tracker_config": "", + "log_tracker_name": "", "logging_dir": "./test/logs", + "loss_type": "l2", "lr_scheduler": "constant", + "lr_scheduler_args": "", + "lr_scheduler_num_cycles": "", + "lr_scheduler_power": "", "lr_warmup": 0, + "main_process_port": 0, + "masked_loss": false, + "max_bucket_reso": 2048, "max_data_loader_n_workers": "0", "max_resolution": "512,512", + "max_timestep": 1000, "max_token_length": "75", "max_train_epochs": "", + "max_train_steps": "", "mem_eff_attn": false, + "min_bucket_reso": 256, "min_snr_gamma": 0, + "min_timestep": 0, "mixed_precision": "bf16", "model_list": "runwayml/stable-diffusion-v1-5", + "multi_gpu": false, "multires_noise_discount": 0, "multires_noise_iterations": 0, "no_token_padding": false, - "noise_offset": "0.05", + "noise_offset": 0.05, + "noise_offset_random_strength": false, "noise_offset_type": "Original", "num_cpu_threads_per_process": 2, + "num_machines": 1, + "num_processes": 1, "optimizer": "AdamW", "optimizer_args": "", "output_dir": "./test/output", "output_name": "db-AdamW", "persistent_data_loader_workers": false, "pretrained_model_name_or_path": "runwayml/stable-diffusion-v1-5", - "prior_loss_weight": 1.0, + "prior_loss_weight": 1, "random_crop": false, "reg_data_dir": "", "resume": "", @@ -49,6 +78,7 @@ "sample_every_n_steps": 25, "sample_prompts": "a painting of a gas mask , by darius kawasaki", "sample_sampler": "euler_a", + "save_as_bool": false, "save_every_n_epochs": 1, "save_every_n_steps": 0, "save_last_n_steps": 0, @@ -56,7 +86,9 @@ "save_model_as": "safetensors", "save_precision": "fp16", "save_state": false, + "save_state_on_train_end": false, "scale_v_pred_loss_like_noise_pred": false, + "sdxl": false, "seed": "1234", "shuffle_caption": false, "stop_text_encoder_training": 0, @@ -65,9 +97,11 @@ "use_wandb": false, "v2": false, "v_parameterization": false, + "v_pred_like_loss": 0, "vae": "", "vae_batch_size": 0, "wandb_api_key": "", + "wandb_run_name": "", "weighted_captions": false, - "xformers": true + "xformers": "xformers" } \ No newline at end of file diff --git a/test/config/finetune-AdamW.json b/test/config/finetune-AdamW.json index 36a5fff..6c6cdf1 100644 --- a/test/config/finetune-AdamW.json +++ b/test/config/finetune-AdamW.json @@ -7,7 +7,7 @@ "bucket_reso_steps": 1, "cache_latents": true, "cache_latents_to_disk": false, - "caption_dropout_every_n_epochs": 0.0, + "caption_dropout_every_n_epochs": 0, "caption_dropout_rate": 0, "caption_extension": ".txt", "caption_metadata_filename": "meta-1_cap.json", @@ -18,26 +18,34 @@ "dataset_config": "", "dataset_repeats": "50", "epoch": 2, + "extra_accelerate_launch_args": "", "flip_aug": false, "full_bf16": false, "full_fp16": false, "full_path": true, "gpu_ids": "", - "gradient_accumulation_steps": 1.0, + "gradient_accumulation_steps": 1, "gradient_checkpointing": false, + "huber_c": 0.1, + "huber_schedule": "snr", "image_folder": ".\\test\\img\\10_darius kawasaki person", + "ip_noise_gamma": 0, + "ip_noise_gamma_random_strength": false, "keep_tokens": 0, "latent_metadata_filename": "meta-1_lat.json", "learning_rate": 1e-05, "learning_rate_te": 5e-06, "learning_rate_te1": 5e-06, - "learning_rate_te2": 0.0, + "learning_rate_te2": 0, "log_tracker_config": "", "log_tracker_name": "", "logging_dir": "./test/ft", + "loss_type": "l2", "lr_scheduler": "cosine_with_restarts", "lr_scheduler_args": "", "lr_warmup": 10, + "main_process_port": 0, + "masked_loss": false, "max_bucket_reso": "1024", "max_data_loader_n_workers": "0", "max_resolution": "512,512", @@ -55,6 +63,7 @@ "multires_noise_discount": 0, "multires_noise_iterations": 0, "noise_offset": 0, + "noise_offset_random_strength": false, "noise_offset_type": "Original", "num_cpu_threads_per_process": 2, "num_machines": 1, @@ -71,6 +80,7 @@ "sample_every_n_steps": 0, "sample_prompts": "", "sample_sampler": "euler_a", + "save_as_bool": false, "save_every_n_epochs": 1, "save_every_n_steps": 0, "save_last_n_steps": 0, @@ -78,6 +88,7 @@ "save_model_as": "safetensors", "save_precision": "bf16", "save_state": false, + "save_state_on_train_end": false, "scale_v_pred_loss_like_noise_pred": false, "sdxl_cache_text_encoder_outputs": false, "sdxl_checkbox": false, diff --git a/test/config/locon-AdamW.json b/test/config/locon-AdamW.json index 6c38f8e..97b4d29 100644 --- a/test/config/locon-AdamW.json +++ b/test/config/locon-AdamW.json @@ -1,5 +1,6 @@ { "LoRA_type": "Kohya LoCon", + "LyCORIS_preset": "full", "adaptive_noise_scale": 0, "additional_parameters": "", "block_alphas": "", @@ -7,71 +8,100 @@ "block_lr_zero_threshold": "", "bucket_no_upscale": true, "bucket_reso_steps": 64, + "bypass_mode": false, "cache_latents": true, "cache_latents_to_disk": false, - "caption_dropout_every_n_epochs": 0.0, + "caption_dropout_every_n_epochs": 0, "caption_dropout_rate": 0.05, "caption_extension": "", "clip_skip": 2, "color_aug": false, + "constrain": 0, "conv_alpha": 8, - "conv_alphas": "", + "conv_block_alphas": "", + "conv_block_dims": "", "conv_dim": 16, - "conv_dims": "", + "dataset_config": "", + "debiased_estimation_loss": false, "decompose_both": false, "dim_from_weights": false, + "dora_wd": false, "down_lr_weight": "", "enable_bucket": true, "epoch": 1, + "extra_accelerate_launch_args": "", "factor": -1, "flip_aug": false, + "fp8_base": false, + "full_bf16": false, "full_fp16": false, + "gpu_ids": "", "gradient_accumulation_steps": 4, "gradient_checkpointing": false, + "huber_c": 0.1, + "huber_schedule": "snr", + "ip_noise_gamma": 0, + "ip_noise_gamma_random_strength": false, "keep_tokens": "0", "learning_rate": 0.0005, + "log_tracker_config": "", + "log_tracker_name": "", "logging_dir": "./test/logs", "lora_network_weights": "", + "loss_type": "l2", "lr_scheduler": "constant", + "lr_scheduler_args": "", "lr_scheduler_num_cycles": "", "lr_scheduler_power": "", "lr_warmup": 0, + "main_process_port": 0, + "masked_loss": false, + "max_bucket_reso": 2048, "max_data_loader_n_workers": "0", + "max_grad_norm": 1, "max_resolution": "512,512", "max_timestep": 1000, "max_token_length": "75", "max_train_epochs": "", + "max_train_steps": "", "mem_eff_attn": false, "mid_lr_weight": "", + "min_bucket_reso": 256, "min_snr_gamma": 0, "min_timestep": 0, "mixed_precision": "bf16", "model_list": "runwayml/stable-diffusion-v1-5", "module_dropout": 0.1, + "multi_gpu": false, "multires_noise_discount": 0, "multires_noise_iterations": 0, "network_alpha": 8, "network_dim": 16, "network_dropout": 0.1, - "no_token_padding": false, - "noise_offset": "0.05", + "noise_offset": 0.05, + "noise_offset_random_strength": false, "noise_offset_type": "Original", "num_cpu_threads_per_process": 2, + "num_machines": 1, + "num_processes": 1, "optimizer": "AdamW", "optimizer_args": "", "output_dir": "./test/output", "output_name": "locon-AdamW", "persistent_data_loader_workers": false, "pretrained_model_name_or_path": "runwayml/stable-diffusion-v1-5", - "prior_loss_weight": 1.0, + "prior_loss_weight": 1, "random_crop": false, "rank_dropout": 0.1, + "rank_dropout_scale": false, "reg_data_dir": "", + "rescaled": false, "resume": "", "sample_every_n_epochs": 0, "sample_every_n_steps": 25, "sample_prompts": "a painting of a gas mask , by darius kawasaki", "sample_sampler": "euler_a", + "save_as_bool": false, "save_every_n_epochs": 1, "save_every_n_steps": 0, "save_last_n_steps": 0, @@ -79,6 +109,7 @@ "save_model_as": "safetensors", "save_precision": "fp16", "save_state": false, + "save_state_on_train_end": false, "scale_v_pred_loss_like_noise_pred": false, "scale_weight_norms": 1, "sdxl": false, @@ -90,17 +121,23 @@ "text_encoder_lr": 0.0001, "train_batch_size": 1, "train_data_dir": "./test/img", + "train_norm": false, "train_on_input": false, "training_comment": "", "unet_lr": 0.0001, "unit": 1, "up_lr_weight": "", "use_cp": false, + "use_scalar": false, + "use_tucker": false, "use_wandb": false, "v2": false, "v_parameterization": false, + "v_pred_like_loss": 0, + "vae": "", "vae_batch_size": 0, "wandb_api_key": "", + "wandb_run_name": "", "weighted_captions": false, - "xformers": true + "xformers": "xformers" } \ No newline at end of file