mirror of https://github.com/bmaltais/kohya_ss
wip
parent
f9b6d5e9ed
commit
030983d043
File diff suppressed because it is too large
Load Diff
|
|
@ -9,4 +9,5 @@
|
|||
--previewer_checkpoint_path "E:\models\stable_cascade\previewer.safetensors" `
|
||||
--dataset_config "D:\kohya_ss\examples\stable_cascade\test_dataset.toml" `
|
||||
--sample_every_n_epochs 1 --sample_prompts "D:\kohya_ss\examples\stable_cascade\prompt.txt" `
|
||||
--adaptive_loss_weight
|
||||
--adaptive_loss_weight
|
||||
|
||||
|
|
@ -58,7 +58,6 @@ def save_configuration(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl_checkbox,
|
||||
stable_cascade_checkbox,
|
||||
train_dir,
|
||||
image_folder,
|
||||
output_dir,
|
||||
|
|
@ -194,7 +193,6 @@ def open_configuration(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl_checkbox,
|
||||
stable_cascade_checkbox,
|
||||
train_dir,
|
||||
image_folder,
|
||||
output_dir,
|
||||
|
|
@ -337,7 +335,6 @@ def train_model(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl_checkbox,
|
||||
stable_cascade_checkbox,
|
||||
train_dir,
|
||||
image_folder,
|
||||
output_dir,
|
||||
|
|
@ -556,8 +553,6 @@ def train_model(
|
|||
|
||||
if sdxl_checkbox:
|
||||
run_cmd += f' "./sdxl_train.py"'
|
||||
elif stable_cascade_checkbox:
|
||||
run_cmd += f' "./stable_cascade_train_stage_c.py"'
|
||||
else:
|
||||
run_cmd += f' "./fine_tune.py"'
|
||||
|
||||
|
|
@ -566,7 +561,7 @@ def train_model(
|
|||
if use_latent_files == "Yes"
|
||||
else f"{train_dir}/{caption_metadata_filename}"
|
||||
)
|
||||
cache_text_encoder_outputs = sdxl_checkbox or stable_cascade_checkbox and sdxl_cache_text_encoder_outputs
|
||||
cache_text_encoder_outputs = sdxl_checkbox and sdxl_cache_text_encoder_outputs
|
||||
no_half_vae = sdxl_checkbox and sdxl_no_half_vae
|
||||
|
||||
run_cmd += run_cmd_advanced_training(
|
||||
|
|
@ -578,7 +573,7 @@ def train_model(
|
|||
cache_latents=cache_latents,
|
||||
cache_latents_to_disk=cache_latents_to_disk,
|
||||
cache_text_encoder_outputs=cache_text_encoder_outputs
|
||||
if sdxl_checkbox or stable_cascade_checkbox
|
||||
if sdxl_checkbox
|
||||
else None,
|
||||
caption_dropout_every_n_epochs=caption_dropout_every_n_epochs,
|
||||
caption_dropout_rate=caption_dropout_rate,
|
||||
|
|
@ -595,9 +590,9 @@ def train_model(
|
|||
in_json=in_json,
|
||||
keep_tokens=keep_tokens,
|
||||
learning_rate=learning_rate,
|
||||
learning_rate_te1=learning_rate_te1 if sdxl_checkbox or stable_cascade_checkbox else None,
|
||||
learning_rate_te2=learning_rate_te2 if sdxl_checkbox or stable_cascade_checkbox else None,
|
||||
learning_rate_te=learning_rate_te if not sdxl_checkbox or not stable_cascade_checkbox else None,
|
||||
learning_rate_te1=learning_rate_te1 if sdxl_checkbox else None,
|
||||
learning_rate_te2=learning_rate_te2 if sdxl_checkbox else None,
|
||||
learning_rate_te=learning_rate_te if not sdxl_checkbox else None,
|
||||
logging_dir=logging_dir,
|
||||
lr_scheduler=lr_scheduler,
|
||||
lr_scheduler_args=lr_scheduler_args,
|
||||
|
|
@ -923,7 +918,6 @@ def finetune_tab(headless=False):
|
|||
source_model.v2,
|
||||
source_model.v_parameterization,
|
||||
source_model.sdxl_checkbox,
|
||||
source_model.stable_cascade_checkbox,
|
||||
train_dir,
|
||||
image_folder,
|
||||
output_dir,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import os
|
|||
import argparse
|
||||
from dreambooth_gui import dreambooth_tab
|
||||
from finetune_gui import finetune_tab
|
||||
from SC_finetuning_gui import sc_finetune_tab
|
||||
from textual_inversion_gui import ti_tab
|
||||
from library.utilities import utilities_tab
|
||||
from lora_gui import lora_tab
|
||||
|
|
@ -54,6 +55,8 @@ def UI(**kwargs):
|
|||
ti_tab(headless=headless)
|
||||
with gr.Tab("Finetuning"):
|
||||
finetune_tab(headless=headless)
|
||||
with gr.Tab("SC Finetuning"):
|
||||
sc_finetune_tab(headless=headless)
|
||||
with gr.Tab("Utilities"):
|
||||
utilities_tab(
|
||||
train_data_dir_input=train_data_dir_input,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import os
|
|||
class BasicTraining:
|
||||
def __init__(
|
||||
self,
|
||||
sdxl_checkbox: gr.Checkbox,
|
||||
sdxl_checkbox: gr.Checkbox = gr.Checkbox(value=False),
|
||||
learning_rate_value="1e-6",
|
||||
lr_scheduler_value="constant",
|
||||
lr_warmup_value="0",
|
||||
|
|
|
|||
|
|
@ -21,17 +21,16 @@ class SourceModel:
|
|||
'diffusers_safetensors',
|
||||
'safetensors',
|
||||
],
|
||||
headless=False,
|
||||
model_type_visibility:bool = True,
|
||||
headless:bool = False,
|
||||
model_list_value:str = "runwayml/stable-diffusion-v1-5"
|
||||
):
|
||||
self.headless = headless
|
||||
self.save_model_as_choices = save_model_as_choices
|
||||
|
||||
with gr.Tab('Source model'):
|
||||
# Define the input elements
|
||||
with gr.Row():
|
||||
self.model_list = gr.Dropdown(
|
||||
label='Model Quick Pick',
|
||||
choices=[
|
||||
self.model_type_visibility = model_type_visibility
|
||||
self.model_list_value = model_list_value
|
||||
self.pretrained_model_name_or_path_visible = True if model_list_value == "custom" else (False and not headless)
|
||||
model_list_choices = [
|
||||
'custom',
|
||||
'stabilityai/stable-diffusion-xl-base-1.0',
|
||||
'stabilityai/stable-diffusion-xl-refiner-1.0',
|
||||
|
|
@ -43,8 +42,15 @@ class SourceModel:
|
|||
'stabilityai/stable-diffusion-2',
|
||||
'runwayml/stable-diffusion-v1-5',
|
||||
'CompVis/stable-diffusion-v1-4',
|
||||
],
|
||||
value='runwayml/stable-diffusion-v1-5',
|
||||
]
|
||||
|
||||
with gr.Tab('Source model'):
|
||||
# Define the input elements
|
||||
with gr.Row():
|
||||
self.model_list = gr.Dropdown(
|
||||
label='Model Quick Pick',
|
||||
choices=model_list_choices if model_list_value != "custom" else ["custom"],
|
||||
value=model_list_value,
|
||||
)
|
||||
self.save_model_as = gr.Dropdown(
|
||||
label='Save trained model as',
|
||||
|
|
@ -56,12 +62,12 @@ class SourceModel:
|
|||
label='Pretrained model name or path',
|
||||
placeholder='enter the path to custom model or name of pretrained model',
|
||||
value='runwayml/stable-diffusion-v1-5',
|
||||
visible=(False and not headless),
|
||||
visible=self.pretrained_model_name_or_path_visible,
|
||||
)
|
||||
self.pretrained_model_name_or_path_file = gr.Button(
|
||||
document_symbol,
|
||||
elem_id='open_folder_small',
|
||||
visible=(False and not headless),
|
||||
visible=self.pretrained_model_name_or_path_visible,
|
||||
)
|
||||
self.pretrained_model_name_or_path_file.click(
|
||||
get_any_file_path,
|
||||
|
|
@ -72,7 +78,7 @@ class SourceModel:
|
|||
self.pretrained_model_name_or_path_folder = gr.Button(
|
||||
folder_symbol,
|
||||
elem_id='open_folder_small',
|
||||
visible=(False and not headless),
|
||||
visible=self.pretrained_model_name_or_path_visible,
|
||||
)
|
||||
self.pretrained_model_name_or_path_folder.click(
|
||||
get_folder_path,
|
||||
|
|
@ -80,7 +86,7 @@ class SourceModel:
|
|||
outputs=self.pretrained_model_name_or_path,
|
||||
show_progress=False,
|
||||
)
|
||||
with gr.Row():
|
||||
with gr.Row(visible=model_type_visibility):
|
||||
self.v2 = gr.Checkbox(label='v2', value=False, visible=False)
|
||||
self.v_parameterization = gr.Checkbox(
|
||||
label='v_parameterization', value=False, visible=False
|
||||
|
|
@ -88,9 +94,6 @@ class SourceModel:
|
|||
self.sdxl_checkbox = gr.Checkbox(
|
||||
label='SDXL Model', value=False, visible=False
|
||||
)
|
||||
self.stable_cascade_checkbox = gr.Checkbox(
|
||||
label='Stable Cascade Model', value=False, visible=False
|
||||
)
|
||||
|
||||
self.model_list.change(
|
||||
set_pretrained_model_name_or_path_input,
|
||||
|
|
@ -102,7 +105,6 @@ class SourceModel:
|
|||
self.v2,
|
||||
self.v_parameterization,
|
||||
self.sdxl_checkbox,
|
||||
self.stable_cascade_checkbox,
|
||||
],
|
||||
outputs=[
|
||||
self.model_list,
|
||||
|
|
@ -112,7 +114,6 @@ class SourceModel:
|
|||
self.v2,
|
||||
self.v_parameterization,
|
||||
self.sdxl_checkbox,
|
||||
self.stable_cascade_checkbox,
|
||||
],
|
||||
show_progress=False,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,34 +3,16 @@ import gradio as gr
|
|||
### Stable Cascade Parameters class
|
||||
class StableCascadeParameters:
|
||||
def __init__(
|
||||
self, stable_cascade_checkbox, show_stable_cascade_cache_text_encoder_outputs: bool = True
|
||||
self, show_stable_cascade_cache_text_encoder_outputs: bool = True
|
||||
):
|
||||
self.stable_cascade_checkbox = stable_cascade_checkbox
|
||||
self.show_stable_cascade_cache_text_encoder_outputs = (
|
||||
show_stable_cascade_cache_text_encoder_outputs
|
||||
)
|
||||
|
||||
with gr.Accordion(
|
||||
visible=False, open=True, label='Stable Cascade Specific Parameters'
|
||||
) as self.stable_cascade_row:
|
||||
visible=True, open=True, label='Stable Cascade Specific Parameters'
|
||||
):
|
||||
with gr.Row():
|
||||
self.effnet_checkpoint_path = gr.Textbox(
|
||||
label="effnet checkpoint path"
|
||||
)
|
||||
self.stable_cascade_cache_text_encoder_outputs = gr.Checkbox(
|
||||
label='Cache text encoder outputs',
|
||||
info='Cache the outputs of the text encoders. This option is useful to reduce the GPU memory usage. This option cannot be used with options for shuffling or dropping the captions.',
|
||||
value=False,
|
||||
visible=show_stable_cascade_cache_text_encoder_outputs,
|
||||
)
|
||||
self.stable_cascade_no_half_vae = gr.Checkbox(
|
||||
label='No half VAE',
|
||||
info='Disable the half-precision (mixed-precision) VAE. VAE for Stable Cascade seems to produce NaNs in some cases. This option is useful to avoid the NaNs.',
|
||||
value=True,
|
||||
)
|
||||
|
||||
self.stable_cascade_checkbox.change(
|
||||
lambda stable_cascade_checkbox: gr.Accordion(visible=stable_cascade_checkbox),
|
||||
inputs=[self.stable_cascade_checkbox],
|
||||
outputs=[self.stable_cascade_row],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -450,7 +450,6 @@ def set_pretrained_model_name_or_path_input(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl,
|
||||
stable_cascade,
|
||||
):
|
||||
# Check if the given model_list is in the list of SDXL models
|
||||
if str(model_list) in SDXL_MODELS:
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@ def save_configuration(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl,
|
||||
stable_cascade,
|
||||
logging_dir,
|
||||
train_data_dir,
|
||||
reg_data_dir,
|
||||
|
|
@ -231,7 +230,6 @@ def open_configuration(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl,
|
||||
stable_cascade,
|
||||
logging_dir,
|
||||
train_data_dir,
|
||||
reg_data_dir,
|
||||
|
|
@ -431,7 +429,6 @@ def train_model(
|
|||
v2,
|
||||
v_parameterization,
|
||||
sdxl,
|
||||
stable_cascade,
|
||||
logging_dir,
|
||||
train_data_dir,
|
||||
reg_data_dir,
|
||||
|
|
@ -1823,7 +1820,6 @@ def lora_tab(
|
|||
source_model.v2,
|
||||
source_model.v_parameterization,
|
||||
source_model.sdxl_checkbox,
|
||||
source_model.stable_cascade_checkbox,
|
||||
folders.logging_dir,
|
||||
folders.train_data_dir,
|
||||
folders.reg_data_dir,
|
||||
|
|
|
|||
Loading…
Reference in New Issue