2022-12-22 16:51:34 +00:00
|
|
|
import gradio as gr
|
|
|
|
import os
|
|
|
|
import argparse
|
|
|
|
from dreambooth_gui import dreambooth_tab
|
|
|
|
from finetune_gui import finetune_tab
|
2023-01-26 21:22:58 +00:00
|
|
|
from textual_inversion_gui import ti_tab
|
2022-12-22 16:51:34 +00:00
|
|
|
from library.utilities import utilities_tab
|
2023-01-06 23:25:55 +00:00
|
|
|
from library.extract_lora_gui import gradio_extract_lora_tab
|
|
|
|
from library.merge_lora_gui import gradio_merge_lora_tab
|
2022-12-29 04:02:35 +00:00
|
|
|
from lora_gui import lora_tab
|
2022-12-22 16:51:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
def UI(username, password):
|
|
|
|
|
|
|
|
css = ''
|
|
|
|
|
|
|
|
if os.path.exists('./style.css'):
|
|
|
|
with open(os.path.join('./style.css'), 'r', encoding='utf8') as file:
|
|
|
|
print('Load CSS...')
|
|
|
|
css += file.read() + '\n'
|
|
|
|
|
v20.6.0
- Increase max LoRA rank (dim) size to 1024.
- Update finetune preprocessing scripts.
- ``.bmp`` and ``.jpeg`` are supported. Thanks to breakcore2 and p1atdev!
- The default weights of ``tag_images_by_wd14_tagger.py`` is now ``SmilingWolf/wd-v1-4-convnext-tagger-v2``. You can specify another model id from ``SmilingWolf`` by ``--repo_id`` option. Thanks to SmilingWolf for the great work.
- To change the weight, remove ``wd14_tagger_model`` folder, and run the script again.
- ``--max_data_loader_n_workers`` option is added to each script. This option uses the DataLoader for data loading to speed up loading, 20%~30% faster.
- Please specify 2 or 4, depends on the number of CPU cores.
- ``--recursive`` option is added to ``merge_dd_tags_to_metadata.py`` and ``merge_captions_to_metadata.py``, only works with ``--full_path``.
- ``make_captions_by_git.py`` is added. It uses [GIT microsoft/git-large-textcaps](https://huggingface.co/microsoft/git-large-textcaps) for captioning.
- ``requirements.txt`` is updated. If you use this script, [please update the libraries](https://github.com/kohya-ss/sd-scripts#upgrade).
- Usage is almost the same as ``make_captions.py``, but batch size should be smaller.
- ``--remove_words`` option removes as much text as possible (such as ``the word "XXXX" on it``).
- ``--skip_existing`` option is added to ``prepare_buckets_latents.py``. Images with existing npz files are ignored by this option.
- ``clean_captions_and_tags.py`` is updated to remove duplicated or conflicting tags, e.g. ``shirt`` is removed when ``white shirt`` exists. if ``black hair`` is with ``red hair``, both are removed.
- Tag frequency is added to the metadata in ``train_network.py``. Thanks to space-nuko!
- __All tags and number of occurrences of the tag are recorded.__ If you do not want it, disable metadata storing with ``--no_metadata`` option.
2023-02-04 13:36:35 +00:00
|
|
|
interface = gr.Blocks(css=css, title="Kohya_ss GUI")
|
2022-12-22 16:51:34 +00:00
|
|
|
|
|
|
|
with interface:
|
|
|
|
with gr.Tab('Dreambooth'):
|
|
|
|
(
|
|
|
|
train_data_dir_input,
|
|
|
|
reg_data_dir_input,
|
|
|
|
output_dir_input,
|
|
|
|
logging_dir_input,
|
|
|
|
) = dreambooth_tab()
|
2023-01-01 05:33:29 +00:00
|
|
|
with gr.Tab('Dreambooth LoRA'):
|
|
|
|
lora_tab()
|
2023-01-26 21:22:58 +00:00
|
|
|
with gr.Tab('Dreambooth TI'):
|
|
|
|
ti_tab()
|
2022-12-22 16:51:34 +00:00
|
|
|
with gr.Tab('Finetune'):
|
|
|
|
finetune_tab()
|
|
|
|
with gr.Tab('Utilities'):
|
|
|
|
utilities_tab(
|
|
|
|
train_data_dir_input=train_data_dir_input,
|
|
|
|
reg_data_dir_input=reg_data_dir_input,
|
|
|
|
output_dir_input=output_dir_input,
|
|
|
|
logging_dir_input=logging_dir_input,
|
|
|
|
enable_copy_info_button=True,
|
|
|
|
)
|
2023-01-06 23:25:55 +00:00
|
|
|
gradio_extract_lora_tab()
|
|
|
|
gradio_merge_lora_tab()
|
2022-12-22 16:51:34 +00:00
|
|
|
|
|
|
|
# Show the interface
|
|
|
|
if not username == '':
|
|
|
|
interface.launch(auth=(username, password))
|
|
|
|
else:
|
|
|
|
interface.launch()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
# torch.cuda.set_per_process_memory_fraction(0.48)
|
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
parser.add_argument(
|
|
|
|
'--username', type=str, default='', help='Username for authentication'
|
|
|
|
)
|
|
|
|
parser.add_argument(
|
|
|
|
'--password', type=str, default='', help='Password for authentication'
|
|
|
|
)
|
|
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
UI(username=args.username, password=args.password)
|