Buckets:
| # Textual Inversion | |
| Textual Inversion — это метод обучения для персонализации моделей путём обучения новых текстовых эмбеддингов на основе нескольких примеров изображений. Файл, полученный в результате обучения, крайне мал (несколько КБ), а новые эмбеддинги можно загрузить в текстовый энкодер. | |
| `TextualInversionLoaderMixin` предоставляет функцию для загрузки эмбеддингов Textual Inversion из Diffusers и Automatic1111 в текстовый энкодер, а также для загрузки специального токена, активирующего эти эмбеддинги. | |
| > [!TIP] | |
| > Чтобы узнать больше о том, как загружать эмбеддинги Textual Inversion, см. руководство по загрузке [Textual Inversion](../../using-diffusers/legacy_adapters#textual-inversion). | |
| ## TextualInversionLoaderMixin[[diffusers.loaders.TextualInversionLoaderMixin]] | |
| #### diffusers.loaders.TextualInversionLoaderMixin[[diffusers.loaders.TextualInversionLoaderMixin]] | |
| ```python | |
| diffusers.loaders.TextualInversionLoaderMixin() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/textual_inversion.py#L118) | |
| Загрузите токены и эмбеддинги Textual Inversion в токенизатор и текстовый энкодер. | |
| #### load_textual_inversion[[diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion]] | |
| ```python | |
| load_textual_inversion(pretrained_model_name_or_path: str | list[str] | dict[str, torch.Tensor] | list[dict[str, torch.Tensor]], token: str | list[str] | None = None, tokenizer: 'PreTrainedTokenizer' | None = None, text_encoder: 'PreTrainedModel' | None = None, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/textual_inversion.py#L271) | |
| **Параметры:** | |
| pretrained_model_name_or_path (`str` или `os.PathLike` или `list[str or os.PathLike]` или `Dict` или `list[Dict]`) : Может быть одним из следующих вариантов или списком таких вариантов: - Строка, *model id* (например, `sd-concepts-library/low-poly-hd-logos-icons`) предобученной модели, размещенной на Hub. - Путь к *каталогу* (например, `./my_text_inversion_directory/`), содержащему веса textual inversion. - Путь к *файлу* (например, `./my_text_inversions.pt`), содержащему веса textual inversion. - [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict). | |
| token (`str` или `list[str]`, *необязательный*) : Переопределяет токен, используемый для весов текстовой инверсии. Если `pretrained_model_name_or_path` является списком, то `token` также должен быть списком той же длины. | |
| text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTextModel), *необязательный*) : Замороженный текстовый энкодер ([clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)). Если не указан, функция использует self.tokenizer. | |
| tokenizer ([CLIPTokenizer](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTokenizer), *необязательный*) : `CLIPTokenizer` для токенизации текста. Если не указан, функция использует self.tokenizer. | |
| weight_name (`str`, *необязательный*) : Имя файла с кастомными весами. Это следует использовать, когда: - Сохранённый файл текстовой инверсии в формате 🤗 Diffusers был сохранён под конкретным именем весов, например `text_inv.bin`. - Сохранённый файл текстовой инверсии в формате Automatic1111. | |
| cache_dir (`str | os.PathLike`, *необязательный*) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется. | |
| force_download (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли принудительно (пере)скачивать веса модели и файлы конфигурации, заменяя кэшированные версии, если они существуют. | |
| proxies (`dict[str, str]`, *необязательный*) : Словарь прокси-серверов для использования по протоколу или конечной точке, например, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Прокси используются при каждом запросе. | |
| local_files_only (`bool`, *необязательный*, по умолчанию `False`) : Загружать только локальные веса модели и файлы конфигурации или нет. Если установлено в `True`, модель не будет скачана с Hub. | |
| hf_token (`str` или *bool*, *необязательный*) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Если `True`, используется токен, сгенерированный командой `diffusers-cli login` (сохранённый в `~/.huggingface`). | |
| revision (`str`, *необязательный*, по умолчанию `"main"`) : Конкретная версия модели, которую следует использовать. Может быть именем ветки, именем тега, идентификатором коммита или любым другим идентификатором, поддерживаемым Git. | |
| subfolder (`str`, *необязательный*, по умолчанию `""`) : Путь к подпапке, в которой находится файл модели в составе более крупного репозитория моделей на Hub или локально. | |
| mirror (`str`, *необязательный*) : Зеркальный источник для решения проблем с доступностью при загрузке модели в Китае. Мы не гарантируем актуальность или безопасность источника, поэтому за дополнительной информацией обращайтесь на сайт зеркала. | |
| Загрузите эмбеддинги Textual Inversion в текстовый энкодер [StableDiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline) (поддерживаются форматы 🤗 Diffusers и Automatic1111). | |
| Пример: | |
| Для загрузки вектора встраивания Textual Inversion в формате 🤗 Diffusers: | |
| ```py | |
| from diffusers import StableDiffusionPipeline | |
| import torch | |
| model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5" | |
| pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda") | |
| pipe.load_textual_inversion("sd-concepts-library/cat-toy") | |
| prompt = "A <cat-toy> backpack" | |
| image = pipe(prompt, num_inference_steps=50).images[0] | |
| image.save("cat-backpack.png") | |
| ``` | |
| Чтобы загрузить вектор встраивания Textual Inversion в формате Automatic1111, сначала скачайте вектор (например, с [civitAI](https://civitai.com/models/3036?modelVersionId=9857)), а затем загрузите его | |
| локально: | |
| ```py | |
| from diffusers import StableDiffusionPipeline | |
| import torch | |
| model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5" | |
| pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda") | |
| pipe.load_textual_inversion("./charturnerv2.pt", token="charturnerv2") | |
| prompt = "charturnerv2, multiple views of the same character in the same outfit, a character turnaround of a woman wearing a black jacket and red shirt, best quality, intricate details." | |
| image = pipe(prompt, num_inference_steps=50).images[0] | |
| image.save("character.png") | |
| ``` | |
| #### maybe_convert_prompt[[diffusers.loaders.TextualInversionLoaderMixin.maybe_convert_prompt]] | |
| ```python | |
| maybe_convert_prompt(prompt: str | list[str], tokenizer: 'PreTrainedTokenizer') | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/textual_inversion.py#L123) | |
| **Параметры:** | |
| prompt (`str` или список `str`) : Промпт или промпты для управления генерацией изображения. | |
| tokenizer (`PreTrainedTokenizer`) : токенизатор, отвечающий за кодирование промпта во входные токены. | |
| **Возвращает:** `str` или список `str` | |
| Преобразованный промпт | |
| Обрабатывает промпты, содержащие специальный токен, соответствующий многовекторному текстовому инверсионному эмбеддингу, который заменяется несколькими специальными токенами, каждый из которых соответствует одному из векторов. Если в промпте нет токена текстовой инверсии или если токен текстовой инверсии является одномерным, входной промпт возвращается без изменений. | |
| #### unload_textual_inversion[[diffusers.loaders.TextualInversionLoaderMixin.unload_textual_inversion]] | |
| ```python | |
| unload_textual_inversion(tokens: str | list[str] | None = None, tokenizer: 'PreTrainedTokenizer' | None = None, text_encoder: 'PreTrainedModel' | None = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/textual_inversion.py#L467) | |
| Разгрузите эмбеддинги Textual Inversion из текстового энкодера [StableDiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline) | |
| Пример: | |
| ```py | |
| from diffusers import AutoPipelineForText2Image | |
| import torch | |
| pipeline = AutoPipelineForText2Image.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| # Example 1 | |
| pipeline.load_textual_inversion("sd-concepts-library/gta5-artwork") | |
| pipeline.load_textual_inversion("sd-concepts-library/moeb-style") | |
| # Remove all token embeddings | |
| pipeline.unload_textual_inversion() | |
| # Example 2 | |
| pipeline.load_textual_inversion("sd-concepts-library/moeb-style") | |
| pipeline.load_textual_inversion("sd-concepts-library/gta5-artwork") | |
| # Remove just one token | |
| pipeline.unload_textual_inversion("<moe-bius>") | |
| # Example 3: unload from SDXL | |
| pipeline = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0") | |
| embedding_path = hf_hub_download( | |
| repo_id="linoyts/web_y2k", filename="web_y2k_emb.safetensors", repo_type="model" | |
| ) | |
| # load embeddings to the text encoders | |
| state_dict = load_file(embedding_path) | |
| # load embeddings of text_encoder 1 (CLIP ViT-L/14) | |
| pipeline.load_textual_inversion( | |
| state_dict["clip_l"], | |
| tokens=["<s0>", "<s1>"], | |
| text_encoder=pipeline.text_encoder, | |
| tokenizer=pipeline.tokenizer, | |
| ) | |
| # load embeddings of text_encoder 2 (CLIP ViT-G/14) | |
| pipeline.load_textual_inversion( | |
| state_dict["clip_g"], | |
| tokens=["<s0>", "<s1>"], | |
| text_encoder=pipeline.text_encoder_2, | |
| tokenizer=pipeline.tokenizer_2, | |
| ) | |
| # Unload explicitly from both text encoders and tokenizers | |
| pipeline.unload_textual_inversion( | |
| tokens=["<s0>", "<s1>"], text_encoder=pipeline.text_encoder, tokenizer=pipeline.tokenizer | |
| ) | |
| pipeline.unload_textual_inversion( | |
| tokens=["<s0>", "<s1>"], text_encoder=pipeline.text_encoder_2, tokenizer=pipeline.tokenizer_2 | |
| ) | |
| ``` | |
Xet Storage Details
- Size:
- 12.8 kB
- Xet hash:
- 597c5b643bae859d9c7dc0ab1fe5961a98a0a422da2fe577edd6448cf4f92327
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.