-
Notifications
You must be signed in to change notification settings - Fork 6.7k
[community] Load Models from Sources like Civitai into Existing Pipelines
#9986
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
8924b57
Added example of model search.
suzukimain 3e158b3
Combine processing into one file
suzukimain ca50857
Add parameters for base model
suzukimain 28352b0
Bug Fixes
suzukimain 76b32da
bug fix
suzukimain 17e38b0
Create README.md
suzukimain aac8073
Update search_for_civitai_and_HF.py
suzukimain 6c3c259
Create requirements.txt
suzukimain 61aa2aa
Merge branch 'huggingface:main' into ModelSearch
suzukimain 5202bb1
bug fix
suzukimain 13a66bb
Update README.md
suzukimain 920876d
bug fix
suzukimain d953d7f
Correction of typos
suzukimain 36d34a6
Merge branch 'main' into ModelSearch
suzukimain 4b02904
Update examples/model_search/README.md
suzukimain 994fe95
Update examples/model_search/README.md
suzukimain 65372d4
Update examples/model_search/README.md
suzukimain ab76aa4
Update examples/model_search/README.md
suzukimain 341f3a3
Update examples/model_search/README.md
suzukimain 05594cc
Update examples/model_search/README.md
suzukimain 241c943
apply the changes
suzukimain 43d936a
Replace search_for_civitai_and_HF.py with pipeline_easy.py
suzukimain 745d4d0
Merge branch 'main' into ModelSearch
suzukimain 4f3d4b0
Update examples/model_search/README.md
suzukimain 8b2e3e6
Update examples/model_search/README.md
suzukimain 2e32020
Update examples/model_search/README.md
suzukimain 68000fa
Update README.md
suzukimain cd70647
Organize the table of parameters
suzukimain c9e87b8
Update README.md
suzukimain b10a55a
Update README.md
suzukimain c3e51e6
Merge branch 'main' into ModelSearch
suzukimain 026202c
Update README.md
suzukimain ac1c3e1
Merge branch 'huggingface:main' into ModelSearch
suzukimain efe5fba
make style
suzukimain 5df8f99
Fixing the style of pipeline
suzukimain 4ff6e38
Fix pipeline style
suzukimain 5e92b8e
fix
suzukimain 54fd90e
Merge branch 'main' into ModelSearch
suzukimain File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,175 @@ | ||
| # Search models on Civitai and Hugging Face | ||
|
|
||
| The [auto_diffusers](https://github.com/suzukimain/auto_diffusers) library provides additional functionalities to Diffusers such as searching for models on Civitai and the Hugging Face Hub. | ||
| Please refer to the original library [here](https://pypi.org/project/auto-diffusers/) | ||
|
|
||
| ## Installation | ||
|
|
||
| Before running the scripts, make sure to install the library's training dependencies: | ||
|
|
||
| > [!IMPORTANT] | ||
| > To make sure you can successfully run the latest versions of the example scripts, we highly recommend **installing from source** and keeping the installation up to date as we update the example scripts frequently and install some example-specific requirements. To do this, execute the following steps in a new virtual environment. | ||
|
|
||
| ```bash | ||
| git clone https://github.com/huggingface/diffusers | ||
| cd diffusers | ||
| pip install . | ||
| ``` | ||
| Set up the pipeline. You can also cd to this folder and run it. | ||
| ```bash | ||
| !wget https://raw.githubusercontent.com/suzukimain/auto_diffusers/refs/heads/master/src/auto_diffusers/pipeline_easy.py | ||
| ``` | ||
|
|
||
| ## Load from Civitai | ||
| ```python | ||
| from pipeline_easy import ( | ||
| EasyPipelineForText2Image, | ||
| EasyPipelineForImage2Image, | ||
| EasyPipelineForInpainting, | ||
| ) | ||
|
|
||
| # Text-to-Image | ||
| pipeline = EasyPipelineForText2Image.from_civitai( | ||
| "search_word", | ||
| base_model="SD 1.5", | ||
| ).to("cuda") | ||
|
|
||
|
|
||
| # Image-to-Image | ||
| pipeline = EasyPipelineForImage2Image.from_civitai( | ||
| "search_word", | ||
| base_model="SD 1.5", | ||
| ).to("cuda") | ||
|
|
||
|
|
||
| # Inpainting | ||
| pipeline = EasyPipelineForInpainting.from_civitai( | ||
| "search_word", | ||
| base_model="SD 1.5", | ||
| ).to("cuda") | ||
| ``` | ||
|
|
||
| ## Load from Hugging Face | ||
| ```python | ||
| from pipeline_easy import ( | ||
| EasyPipelineForText2Image, | ||
| EasyPipelineForImage2Image, | ||
| EasyPipelineForInpainting, | ||
| ) | ||
|
|
||
| # Text-to-Image | ||
| pipeline = EasyPipelineForText2Image.from_huggingface( | ||
| "search_word", | ||
| checkpoint_format="diffusers", | ||
| ).to("cuda") | ||
|
|
||
|
|
||
| # Image-to-Image | ||
| pipeline = EasyPipelineForImage2Image.from_huggingface( | ||
| "search_word", | ||
| checkpoint_format="diffusers", | ||
| ).to("cuda") | ||
|
|
||
|
|
||
| # Inpainting | ||
| pipeline = EasyPipelineForInpainting.from_huggingface( | ||
| "search_word", | ||
| checkpoint_format="diffusers", | ||
| ).to("cuda") | ||
| ``` | ||
|
|
||
|
|
||
| ## Search Civitai and Huggingface | ||
|
|
||
| ```python | ||
| from pipeline_easy import ( | ||
| search_huggingface, | ||
| search_civitai, | ||
| ) | ||
|
|
||
| # Search Lora | ||
| Lora = search_civitai( | ||
| "Keyword_to_search_Lora", | ||
| model_type="LORA", | ||
| base_model = "SD 1.5", | ||
| download=True, | ||
| ) | ||
| # Load Lora into the pipeline. | ||
| pipeline.load_lora_weights(Lora) | ||
|
|
||
|
|
||
| # Search TextualInversion | ||
| TextualInversion = search_civitai( | ||
| "EasyNegative", | ||
| model_type="TextualInversion", | ||
| base_model = "SD 1.5", | ||
| download=True | ||
| ) | ||
| # Load TextualInversion into the pipeline. | ||
| pipeline.load_textual_inversion(TextualInversion, token="EasyNegative") | ||
| ``` | ||
|
|
||
| ### Search Civitai | ||
|
|
||
| > [!TIP] | ||
| > **If an error occurs, insert the `token` and run again.** | ||
|
|
||
| #### `EasyPipeline.from_civitai` parameters | ||
|
|
||
| | Name | Type | Default | Description | | ||
| |:---------------:|:----------------------:|:-------------:|:-----------------------------------------------------------------------------------:| | ||
| | search_word | string, Path | ー | The search query string. Can be a keyword, Civitai URL, local directory or file path. | | ||
| | model_type | string | `Checkpoint` | The type of model to search for. <br>(for example `Checkpoint`, `TextualInversion`, `Controlnet`, `LORA`, `Hypernetwork`, `AestheticGradient`, `Poses`) | | ||
| | base_model | string | None | Trained model tag (for example `SD 1.5`, `SD 3.5`, `SDXL 1.0`) | | ||
| | torch_dtype | string, torch.dtype | None | Override the default `torch.dtype` and load the model with another dtype. | | ||
| | force_download | bool | False | Whether or not to force the (re-)download of the model weights and configuration files, overriding the cached versions if they exist. | | ||
| | cache_dir | string, Path | None | Path to the folder where cached files are stored. | | ||
| | resume | bool | False | Whether to resume an incomplete download. | | ||
| | token | string | None | API token for Civitai authentication. | | ||
|
|
||
|
|
||
| #### `search_civitai` parameters | ||
|
|
||
| | Name | Type | Default | Description | | ||
| |:---------------:|:--------------:|:-------------:|:-----------------------------------------------------------------------------------:| | ||
| | search_word | string, Path | ー | The search query string. Can be a keyword, Civitai URL, local directory or file path. | | ||
| | model_type | string | `Checkpoint` | The type of model to search for. <br>(for example `Checkpoint`, `TextualInversion`, `Controlnet`, `LORA`, `Hypernetwork`, `AestheticGradient`, `Poses`) | | ||
| | base_model | string | None | Trained model tag (for example `SD 1.5`, `SD 3.5`, `SDXL 1.0`) | | ||
| | download | bool | False | Whether to download the model. | | ||
| | force_download | bool | False | Whether to force the download if the model already exists. | | ||
| | cache_dir | string, Path | None | Path to the folder where cached files are stored. | | ||
| | resume | bool | False | Whether to resume an incomplete download. | | ||
| | token | string | None | API token for Civitai authentication. | | ||
| | include_params | bool | False | Whether to include parameters in the returned data. | | ||
| | skip_error | bool | False | Whether to skip errors and return None. | | ||
|
|
||
| ### Search Huggingface | ||
|
|
||
| > [!TIP] | ||
| > **If an error occurs, insert the `token` and run again.** | ||
|
|
||
| #### `EasyPipeline.from_huggingface` parameters | ||
|
|
||
| | Name | Type | Default | Description | | ||
| |:---------------------:|:-------------------:|:--------------:|:----------------------------------------------------------------:| | ||
| | search_word | string, Path | ー | The search query string. Can be a keyword, Hugging Face URL, local directory or file path, or a Hugging Face path (`<creator>/<repo>`). | | ||
| | checkpoint_format | string | `single_file` | The format of the model checkpoint.<br>● `single_file` to search for `single file checkpoint` <br>●`diffusers` to search for `multifolder diffusers format checkpoint` | | ||
| | torch_dtype | string, torch.dtype | None | Override the default `torch.dtype` and load the model with another dtype. | | ||
| | force_download | bool | False | Whether or not to force the (re-)download of the model weights and configuration files, overriding the cached versions if they exist. | | ||
| | cache_dir | string, Path | None | Path to a directory where a downloaded pretrained model configuration is cached if the standard cache is not used. | | ||
| | token | string, bool | None | The token to use as HTTP bearer authorization for remote files. | | ||
|
|
||
|
|
||
| #### `search_huggingface` parameters | ||
|
|
||
| | Name | Type | Default | Description | | ||
| |:---------------------:|:-------------------:|:--------------:|:----------------------------------------------------------------:| | ||
| | search_word | string, Path | ー | The search query string. Can be a keyword, Hugging Face URL, local directory or file path, or a Hugging Face path (`<creator>/<repo>`). | | ||
| | checkpoint_format | string | `single_file` | The format of the model checkpoint. <br>● `single_file` to search for `single file checkpoint` <br>●`diffusers` to search for `multifolder diffusers format checkpoint` | | ||
| | pipeline_tag | string | None | Tag to filter models by pipeline. | | ||
| | download | bool | False | Whether to download the model. | | ||
| | force_download | bool | False | Whether or not to force the (re-)download of the model weights and configuration files, overriding the cached versions if they exist. | | ||
| | cache_dir | string, Path | None | Path to a directory where a downloaded pretrained model configuration is cached if the standard cache is not used. | | ||
| | token | string, bool | None | The token to use as HTTP bearer authorization for remote files. | | ||
| | include_params | bool | False | Whether to include parameters in the returned data. | | ||
| | skip_error | bool | False | Whether to skip errors and return None. | | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.