gitextract_5kosyax7/ ├── .github/ │ └── workflows/ │ ├── deploy.yaml │ └── test.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── LICENSE ├── README.md ├── docs/ │ ├── contributing/ │ │ ├── development_environment.md │ │ ├── directory_structure.md │ │ ├── documentation.md │ │ └── tests.md │ ├── get-started/ │ │ ├── installation.md │ │ └── quick-start.md │ ├── guides/ │ │ ├── dataset_formats.md │ │ ├── model_merge.md │ │ └── stable_diffusion/ │ │ ├── dpo_lora_sd.md │ │ ├── gnome_lora_masks_sdxl.md │ │ ├── robocats_finetune_sdxl.md │ │ └── textual_inversion_sdxl.md │ ├── index.md │ ├── reference/ │ │ └── config/ │ │ ├── index.md │ │ ├── pipelines/ │ │ │ ├── sd_lora.md │ │ │ ├── sd_textual_inversion.md │ │ │ ├── sdxl_finetune.md │ │ │ ├── sdxl_lora.md │ │ │ ├── sdxl_lora_and_textual_inversion.md │ │ │ └── sdxl_textual_inversion.md │ │ └── shared/ │ │ ├── data/ │ │ │ ├── data_loader_config.md │ │ │ └── dataset_config.md │ │ └── optimizer_config.md │ └── templates/ │ └── python/ │ └── material/ │ └── labels.html ├── mkdocs.yml ├── pyproject.toml ├── sample_data/ │ └── bruce_the_gnome/ │ └── data.jsonl ├── src/ │ └── invoke_training/ │ ├── __init__.py │ ├── _shared/ │ │ ├── __init__.py │ │ ├── accelerator/ │ │ │ ├── __init__.py │ │ │ └── accelerator_utils.py │ │ ├── checkpoints/ │ │ │ ├── __init__.py │ │ │ ├── checkpoint_tracker.py │ │ │ ├── lora_checkpoint_utils.py │ │ │ └── serialization.py │ │ ├── data/ │ │ │ ├── ARCHITECTURE.md │ │ │ ├── __init__.py │ │ │ ├── data_loaders/ │ │ │ │ ├── __init__.py │ │ │ │ ├── dreambooth_sd_dataloader.py │ │ │ │ ├── image_caption_flux_dataloader.py │ │ │ │ ├── image_caption_sd_dataloader.py │ │ │ │ ├── image_pair_preference_sd_dataloader.py │ │ │ │ └── textual_inversion_sd_dataloader.py │ │ │ ├── datasets/ │ │ │ │ ├── __init__.py │ │ │ │ ├── build_dataset.py │ │ │ │ ├── hf_image_caption_dataset.py │ │ │ │ ├── hf_image_pair_preference_dataset.py │ │ │ │ ├── image_caption_dir_dataset.py │ │ │ │ ├── image_caption_jsonl_dataset.py │ │ │ │ ├── image_dir_dataset.py │ │ │ │ ├── image_pair_preference_dataset.py │ │ │ │ └── transform_dataset.py │ │ │ ├── samplers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aspect_ratio_bucket_batch_sampler.py │ │ │ │ ├── batch_offset_sampler.py │ │ │ │ ├── concat_sampler.py │ │ │ │ ├── interleaved_sampler.py │ │ │ │ └── offset_sampler.py │ │ │ ├── transforms/ │ │ │ │ ├── __init__.py │ │ │ │ ├── caption_prefix_transform.py │ │ │ │ ├── concat_fields_transform.py │ │ │ │ ├── constant_field_transform.py │ │ │ │ ├── drop_field_transform.py │ │ │ │ ├── flux_image_transform.py │ │ │ │ ├── load_cache_transform.py │ │ │ │ ├── sd_image_transform.py │ │ │ │ ├── shuffle_caption_transform.py │ │ │ │ ├── template_caption_transform.py │ │ │ │ └── tensor_disk_cache.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ ├── aspect_ratio_bucket_manager.py │ │ │ ├── resize.py │ │ │ └── resolution.py │ │ ├── flux/ │ │ │ ├── encoding_utils.py │ │ │ ├── lora_checkpoint_utils.py │ │ │ ├── model_loading_utils.py │ │ │ └── validation.py │ │ ├── optimizer/ │ │ │ ├── __init__.py │ │ │ └── optimizer_utils.py │ │ ├── stable_diffusion/ │ │ │ ├── __init__.py │ │ │ ├── base_model_version.py │ │ │ ├── checkpoint_utils.py │ │ │ ├── lora_checkpoint_utils.py │ │ │ ├── min_snr_weighting.py │ │ │ ├── model_loading_utils.py │ │ │ ├── textual_inversion.py │ │ │ ├── tokenize_captions.py │ │ │ └── validation.py │ │ ├── tools/ │ │ │ ├── __init__.py │ │ │ └── generate_images.py │ │ └── utils/ │ │ ├── import_xformers.py │ │ └── jsonl.py │ ├── config/ │ │ ├── __init__.py │ │ ├── base_pipeline_config.py │ │ ├── config_base_model.py │ │ ├── data/ │ │ │ ├── __init__.py │ │ │ ├── data_loader_config.py │ │ │ └── dataset_config.py │ │ ├── optimizer/ │ │ │ ├── __init__.py │ │ │ └── optimizer_config.py │ │ └── pipeline_config.py │ ├── model_merge/ │ │ ├── __init__.py │ │ ├── extract_lora.py │ │ ├── merge_models.py │ │ ├── merge_tasks_to_base.py │ │ ├── scripts/ │ │ │ ├── extract_lora_from_model_diff.py │ │ │ ├── merge_lora_into_model.py │ │ │ ├── merge_models.py │ │ │ └── merge_task_models_to_base_model.py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── normalize_weights.py │ │ └── parse_model_arg.py │ ├── pipelines/ │ │ ├── __init__.py │ │ ├── _experimental/ │ │ │ └── sd_dpo_lora/ │ │ │ ├── config.py │ │ │ └── train.py │ │ ├── callbacks.py │ │ ├── flux/ │ │ │ └── lora/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── train.py │ │ ├── invoke_train.py │ │ ├── stable_diffusion/ │ │ │ ├── __init__.py │ │ │ ├── lora/ │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ └── train.py │ │ │ └── textual_inversion/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── train.py │ │ └── stable_diffusion_xl/ │ │ ├── __init__.py │ │ ├── finetune/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── train.py │ │ ├── lora/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── train.py │ │ ├── lora_and_textual_inversion/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── train.py │ │ └── textual_inversion/ │ │ ├── __init__.py │ │ ├── config.py │ │ └── train.py │ ├── sample_configs/ │ │ ├── _experimental/ │ │ │ ├── sd_dpo_lora_pickapic_1x24gb.yaml │ │ │ └── sd_dpo_lora_refinement_pokemon_1x24gb.yaml │ │ ├── flux_lora_1x40gb.yaml │ │ ├── sd_lora_baroque_1x8gb.yaml │ │ ├── sd_textual_inversion_gnome_1x8gb.yaml │ │ ├── sdxl_finetune_baroque_1x24gb.yaml │ │ ├── sdxl_finetune_robocats_1x24gb.yaml │ │ ├── sdxl_lora_and_ti_gnome_1x24gb.yaml │ │ ├── sdxl_lora_baroque_1x24gb.yaml │ │ ├── sdxl_lora_baroque_1x8gb.yaml │ │ ├── sdxl_lora_masks_gnome_1x24gb.yaml │ │ ├── sdxl_textual_inversion_gnome_1x24gb.yaml │ │ └── sdxl_textual_inversion_masks_gnome_1x24gb.yaml │ ├── scripts/ │ │ ├── __init__.py │ │ ├── _experimental/ │ │ │ ├── auto_caption/ │ │ │ │ └── auto_caption_images.py │ │ │ ├── masks/ │ │ │ │ ├── clipseg.py │ │ │ │ ├── generate_masks.py │ │ │ │ └── generate_masks_for_jsonl_dataset.py │ │ │ └── rank_images.py │ │ ├── convert_sd_lora_to_kohya_format.py │ │ ├── invoke_generate_images.py │ │ ├── invoke_train.py │ │ ├── invoke_train_ui.py │ │ ├── invoke_visualize_data_loading.py │ │ └── utils/ │ │ └── image_dir_dataset.py │ └── ui/ │ ├── __init__.py │ ├── app.py │ ├── config_groups/ │ │ ├── __init__.py │ │ ├── aspect_ratio_bucket_config_group.py │ │ ├── base_pipeline_config_group.py │ │ ├── dataset_config_group.py │ │ ├── flux_lora_config_group.py │ │ ├── image_caption_sd_data_loader_config_group.py │ │ ├── optimizer_config_group.py │ │ ├── sd_lora_config_group.py │ │ ├── sd_textual_inversion_config_group.py │ │ ├── sdxl_finetune_config_group.py │ │ ├── sdxl_lora_and_textual_inversion_config_group.py │ │ ├── sdxl_lora_config_group.py │ │ ├── sdxl_textual_inversion_config_group.py │ │ ├── textual_inversion_sd_data_loader_config_group.py │ │ └── ui_config_element.py │ ├── gradio_blocks/ │ │ ├── header.py │ │ └── pipeline_tab.py │ ├── index.html │ ├── pages/ │ │ ├── data_page.py │ │ └── training_page.py │ └── utils/ │ ├── prompts.py │ └── utils.py └── tests/ └── invoke_training/ ├── _shared/ │ ├── __init__.py │ ├── checkpoints/ │ │ ├── test_checkpoint_tracker.py │ │ └── test_serialization.py │ ├── data/ │ │ ├── __init__.py │ │ ├── data_loaders/ │ │ │ ├── __init__.py │ │ │ ├── test_dreambooth_sd_dataloader.py │ │ │ ├── test_image_caption_sd_dataloader.py │ │ │ ├── test_image_pair_preference_sd_dataloader.py │ │ │ └── test_textual_inversion_sd_dataloader.py │ │ ├── dataset_fixtures.py │ │ ├── datasets/ │ │ │ ├── __init__.py │ │ │ ├── test_hf_image_caption_dataset.py │ │ │ ├── test_hf_image_pair_preference_dataset.py │ │ │ ├── test_image_caption_dir_dataset.py │ │ │ ├── test_image_caption_jsonl_dataset.py │ │ │ ├── test_image_dir_dataset.py │ │ │ ├── test_image_pair_preference_dataset.py │ │ │ └── test_transform_dataset.py │ │ ├── samplers/ │ │ │ ├── __init__.py │ │ │ ├── test_aspect_ratio_bucket_batch_sampler.py │ │ │ ├── test_batch_offset_sampler.py │ │ │ ├── test_concat_sampler.py │ │ │ ├── test_interleaved_sampler.py │ │ │ └── test_offset_sampler.py │ │ ├── transforms/ │ │ │ ├── __init__.py │ │ │ ├── test_caption_prefix_transform.py │ │ │ ├── test_concat_fields_transform.py │ │ │ ├── test_constant_field_transform.py │ │ │ ├── test_drop_field_transform.py │ │ │ ├── test_load_cache_transform.py │ │ │ ├── test_sd_image_transform.py │ │ │ ├── test_shuffle_caption_transform.py │ │ │ ├── test_template_caption_transform.py │ │ │ └── test_tensor_disk_cache.py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── test_aspect_ratio_bucket_manager.py │ │ ├── test_resize.py │ │ └── test_resolution.py │ ├── stable_diffusion/ │ │ ├── __init__.py │ │ ├── test_base_model_version.py │ │ ├── test_lora_checkpoint_utils.py │ │ ├── test_model_loading_utils.py │ │ ├── test_textual_inversion.py │ │ └── ti_embedding_checkpoint_fixture.py │ └── utils/ │ └── test_jsonl.py ├── config/ │ └── pipelines/ │ └── test_pipeline_config.py ├── model_merge/ │ ├── __init__.py │ ├── test_merge_models.py │ ├── test_merge_tasks_to_base.py │ └── utils.py └── ui/ └── utils/ └── test_prompts.py