StableDiffusionInpaintingFineTune
=================================
This project provides a toolkit for fine-tuning the Stable Diffusion model for inpainting tasks (image restoration based on a mask) using PyTorch and Hugging Face Diffusers libraries.
Requirements
------------
Before starting, you need to install the following libraries:
- ``torch``
- ``diffusers``
- ``transformers``
- ``accelerate``
- ``huggingface_hub``
- ``PIL``
- ``numpy``
- ``tqdm``
Description
-----------
StableDiffusionInpaintingFineTune
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This class is responsible for fine-tuning the Stable Diffusion model for the inpainting task. It supports training both the text encoder and the UNet model and uses various settings to control the training process.
Constructor
^^^^^^^^^^^
.. code-block:: python
__init__(self, pretrained_model_name_or_path, resolution, center_crop, ...)
- **pretrained_model_name_or_path**: The path or name of the pre-trained model.
- **resolution**: The resolution of the images.
- **center_crop**: Whether to apply center cropping during data preparation.
- **train_text_encoder**: Whether to train the text encoder.
- **dataset**: The dataset object.
- **learning_rate**: The initial learning rate.
- **max_training_steps**: The maximum number of training steps.
- **save_steps**: The number of steps between saving checkpoints.
- **train_batch_size**: The batch size.
- **gradient_accumulation_steps**: The number of steps to accumulate gradients.
- **mixed_precision**: Use of mixed precision ("fp16", "bf16", or None).
- **gradient_checkpointing**: Use of gradient checkpointing.
- **use_8bit_adam**: Use of the 8-bit Adam optimizer.
- **seed**: The random seed for reproducibility.
- **output_dir**: The directory for saving results.
- **push_to_hub**: Whether to upload the results to the Hugging Face Hub.
- **repo_id**: The repository ID on Hugging Face Hub.
Methods
^^^^^^^
- **prepare_mask_and_masked_image(image, mask)**: Prepares the mask and masked image.
- **random_mask(im_shape, ratio=1, mask_full_image=False)**: Generates a random mask.
- **load_args_for_training()**: Loads the necessary components of the model for training.
- **collate_fn(examples)**: Forms a batch of data for the model.
- **__call__(self, *args, **kwargs)**: The main method for running the training process.
Usage
-----
To start training, you should create an instance of the ``StableDiffusionInpaintingFineTune`` class and call its ``__call__`` method, passing the necessary arguments.
.. code-block:: python
model = StableDiffusionInpaintingFineTune(
pretrained_model_name_or_path="path_to_model",
resolution=512,
center_crop=True,
...
)
model()
License
-------
The project is distributed under the MIT License.
Raw data
{
"_id": null,
"home_page": "https://github.com/skillfi/fine-tuning",
"name": "DreamBoothFineTune",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Alex",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/6f/81/b51f4adc2d9bcc961e0e0c66ea124970de88bdc9005571e44f1a7b315cf8/dreamboothfinetune-0.2.2.tar.gz",
"platform": null,
"description": "StableDiffusionInpaintingFineTune\r\n=================================\r\n\r\nThis project provides a toolkit for fine-tuning the Stable Diffusion model for inpainting tasks (image restoration based on a mask) using PyTorch and Hugging Face Diffusers libraries.\r\n\r\nRequirements\r\n------------\r\n\r\nBefore starting, you need to install the following libraries:\r\n\r\n- ``torch``\r\n- ``diffusers``\r\n- ``transformers``\r\n- ``accelerate``\r\n- ``huggingface_hub``\r\n- ``PIL``\r\n- ``numpy``\r\n- ``tqdm``\r\n\r\nDescription\r\n-----------\r\n\r\nStableDiffusionInpaintingFineTune\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nThis class is responsible for fine-tuning the Stable Diffusion model for the inpainting task. It supports training both the text encoder and the UNet model and uses various settings to control the training process.\r\n\r\nConstructor\r\n^^^^^^^^^^^\r\n\r\n.. code-block:: python\r\n\r\n __init__(self, pretrained_model_name_or_path, resolution, center_crop, ...)\r\n\r\n- **pretrained_model_name_or_path**: The path or name of the pre-trained model.\r\n- **resolution**: The resolution of the images.\r\n- **center_crop**: Whether to apply center cropping during data preparation.\r\n- **train_text_encoder**: Whether to train the text encoder.\r\n- **dataset**: The dataset object.\r\n- **learning_rate**: The initial learning rate.\r\n- **max_training_steps**: The maximum number of training steps.\r\n- **save_steps**: The number of steps between saving checkpoints.\r\n- **train_batch_size**: The batch size.\r\n- **gradient_accumulation_steps**: The number of steps to accumulate gradients.\r\n- **mixed_precision**: Use of mixed precision (\"fp16\", \"bf16\", or None).\r\n- **gradient_checkpointing**: Use of gradient checkpointing.\r\n- **use_8bit_adam**: Use of the 8-bit Adam optimizer.\r\n- **seed**: The random seed for reproducibility.\r\n- **output_dir**: The directory for saving results.\r\n- **push_to_hub**: Whether to upload the results to the Hugging Face Hub.\r\n- **repo_id**: The repository ID on Hugging Face Hub.\r\n\r\nMethods\r\n^^^^^^^\r\n\r\n- **prepare_mask_and_masked_image(image, mask)**: Prepares the mask and masked image.\r\n- **random_mask(im_shape, ratio=1, mask_full_image=False)**: Generates a random mask.\r\n- **load_args_for_training()**: Loads the necessary components of the model for training.\r\n- **collate_fn(examples)**: Forms a batch of data for the model.\r\n- **__call__(self, *args, **kwargs)**: The main method for running the training process.\r\n\r\nUsage\r\n-----\r\n\r\nTo start training, you should create an instance of the ``StableDiffusionInpaintingFineTune`` class and call its ``__call__`` method, passing the necessary arguments.\r\n\r\n.. code-block:: python\r\n\r\n model = StableDiffusionInpaintingFineTune(\r\n pretrained_model_name_or_path=\"path_to_model\",\r\n resolution=512,\r\n center_crop=True,\r\n ...\r\n )\r\n\r\n model()\r\n\r\nLicense\r\n-------\r\n\r\nThe project is distributed under the MIT License.\r\n",
"bugtrack_url": null,
"license": null,
"summary": null,
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/skillfi/fine-tuning"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6f81b51f4adc2d9bcc961e0e0c66ea124970de88bdc9005571e44f1a7b315cf8",
"md5": "bc921712dca4685ed1f821d0962cb267",
"sha256": "427039c67eae3185e278e4a577c5a0c89d82ea6be0f9478d8085548ba21c23b2"
},
"downloads": -1,
"filename": "dreamboothfinetune-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "bc921712dca4685ed1f821d0962cb267",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 12939,
"upload_time": "2024-08-10T17:41:29",
"upload_time_iso_8601": "2024-08-10T17:41:29.768258Z",
"url": "https://files.pythonhosted.org/packages/6f/81/b51f4adc2d9bcc961e0e0c66ea124970de88bdc9005571e44f1a7b315cf8/dreamboothfinetune-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-10 17:41:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "skillfi",
"github_project": "fine-tuning",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "setuptools",
"specs": [
[
"~=",
"72.1.0"
]
]
},
{
"name": "pillow",
"specs": [
[
"~=",
"10.4.0"
]
]
},
{
"name": "datasets",
"specs": [
[
"~=",
"2.20.0"
]
]
},
{
"name": "torchvision",
"specs": [
[
"~=",
"0.19.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"~=",
"1.26.4"
]
]
},
{
"name": "accelerate",
"specs": [
[
"~=",
"0.33.0"
]
]
},
{
"name": "diffusers",
"specs": [
[
"~=",
"0.30.0"
]
]
},
{
"name": "transformers",
"specs": [
[
"~=",
"4.44.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
"~=",
"4.66.4"
]
]
},
{
"name": "bitsandbytes",
"specs": []
}
],
"lcname": "dreamboothfinetune"
}