Buckets:

mishig's picture
|
download
raw
39.7 kB
# Модели
🤗 Diffusers предоставляет предобученные модели для популярных алгоритмов и модули для создания собственных диффузионных систем. Основная функция моделей — удаление шума из входного образца в соответствии с распределением \\(p_{\theta}(x_{t-1}|x_{t})\\).
Все модели создаются на основе базового класса [ModelMixin](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin), который является [`torch.nn.Module`](https://pytorch.org/docs/stable/generated/torch.nn.Module.html) и обеспечивает базовые функции сохранения и загрузки моделей, как локально, так и из Hugging Face Hub.
## ModelMixin[[diffusers.ModelMixin]]
#### diffusers.ModelMixin[[diffusers.ModelMixin]]
```python
diffusers.ModelMixin()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L240)
Базовый класс для всех моделей.
[ModelMixin](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin) отвечает за сохранение конфигурации модели и предоставляет методы для загрузки, скачивания и сохранения моделей.
- **config_name** (`str`) -- Имя файла, в который сохраняется модель при вызове [save_pretrained()](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin.save_pretrained).
#### compile_repeated_blocks[[diffusers.ModelMixin.compile_repeated_blocks]]
```python
compile_repeated_blocks(*args, **kwargs)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L1646)
Компилирует *только* часто повторяющиеся подмодули модели (например, слои Transformer), а не всю модель целиком. Этот подход, часто называемый **региональной компиляцией** (см. рецепт PyTorch https://docs.pytorch.org/tutorials/recipes/regional_compilation.html), может существенно сократить общее время компиляции, сохраняя при этом ускорение времени выполнения, которое вы ожидаете от полной `torch.compile`.
Набор подмодулей для компиляции определяется наличием атрибута **`_repeated_blocks`** в определении модели. Определите этот атрибут в вашем подклассе модели как список/кортеж имён классов (строки). Будут скомпилированы все модули, имя класса которых совпадает с одним из указанных.
После обнаружения каждый подходящий подмодуль компилируется путём вызова `submodule.compile(*args, **kwargs)`. Все позиционные или именованные аргументы, переданные в `compile_repeated_blocks`, передаются без изменений в `torch.compile`.
#### cuda[[diffusers.ModelMixin.cuda]]
```python
cuda(*args, **kwargs)
```
Мок-значение для пути с точками (например, `torch.float32`): цепочки доступа к атрибутам и вызовы работают как пропускные декораторы, `repr` — это путь с точками, а использование в качестве базового класса подменяет его обычным базовым классом `type` (PEP 560 `__mro_entries__`), благодаря чему реальные дочерние классы сохраняют обычный метакласс, а `inspect.signature` читает их реальный `__init__`, а не мок.
#### dequantize[[diffusers.ModelMixin.dequantize]]
```python
dequantize()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L890)
При необходимости выполнить декуантизацию модели, если она была квантована методом, поддерживающим декуантизацию.
#### disable_gradient_checkpointing[[diffusers.ModelMixin.disable_gradient_checkpointing]]
```python
disable_gradient_checkpointing()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L323)
Отключает контрольные точки градиентов для текущей модели (в других фреймворках может называться *activation checkpointing* или *checkpoint activations*).
#### disable_npu_flash_attention[[diffusers.ModelMixin.disable_npu_flash_attention]]
```python
disable_npu_flash_attention()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L354)
отключить npu flash attention из torch_npu
#### disable_xformers_memory_efficient_attention[[diffusers.ModelMixin.disable_xformers_memory_efficient_attention]]
```python
disable_xformers_memory_efficient_attention()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L437)
Отключить энергоэффективное внимание из [xFormers](https://facebookresearch.github.io/xformers/).
#### disable_xla_flash_attention[[diffusers.ModelMixin.disable_xla_flash_attention]]
```python
disable_xla_flash_attention()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L384)
Отключите ядро pallals для flash attention в torch_xla.
#### enable_gradient_checkpointing[[diffusers.ModelMixin.enable_gradient_checkpointing]]
```python
enable_gradient_checkpointing(gradient_checkpointing_func: typing.Optional[typing.Callable] = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L294)
**Параметры:**
gradient_checkpointing_func (`Callable`, *необязательный*) : Функция, используемая для checkpointing градиентов. Если `None`, используется функция checkpointing PyTorch по умолчанию (`torch.utils.checkpoint.checkpoint`).
Включает градиентный чекпоинтинг для текущей модели (в других фреймворках может называться *activation checkpointing* или *checkpoint activations*).
#### enable_group_offload[[diffusers.ModelMixin.enable_group_offload]]
```python
enable_group_offload(onload_device: device, offload_device: device = torch.device(), offload_type: str = 'block_level', num_blocks_per_group: int | None = None, non_blocking: bool = False, use_stream: bool = False, record_stream: bool = False, low_cpu_mem_usage = False, offload_to_disk_path: str | None = None, block_modules: str | None = None, exclude_kwargs: str | None = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L528)
Включает групповую разгрузку для текущей модели.
См. [apply_group_offloading()](/docs/diffusers/main/ru/api/utilities#diffusers.hooks.apply_group_offloading) для получения дополнительной информации.
Пример:
```python
>>> from diffusers import CogVideoXTransformer3DModel
>>> transformer = CogVideoXTransformer3DModel.from_pretrained(
... "THUDM/CogVideoX-5b", subfolder="transformer", torch_dtype=torch.bfloat16
... )
>>> transformer.enable_group_offload(
... onload_device=torch.device("cuda"),
... offload_device=torch.device("cpu"),
... offload_type="leaf_level",
... use_stream=True,
... )
```
#### enable_layerwise_casting[[diffusers.ModelMixin.enable_layerwise_casting]]
```python
enable_layerwise_casting(storage_dtype: dtype = torch.float8_e4m3fn, compute_dtype: typing.Optional[torch.dtype] = None, skip_modules_pattern: tuple[str, ...] | None = None, skip_modules_classes: tuple[typing.Type[torch.nn.Module], ...] | None = None, non_blocking: bool = False)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L443)
**Параметры:**
storage_dtype (`torch.dtype`) : тип данных, к которому модель должна быть приведена для хранения.
compute_dtype (`torch.dtype`) : тип данных, к которому следует привести веса модели во время прямого прохода.
skip_modules_pattern (`tuple[str, ...]`, *необязательный*) : Список шаблонов для сопоставления с именами модулей, которые следует пропускать в процессе послойного приведения типов. Если установлено значение `None`, используются шаблоны пропуска по умолчанию для игнорирования определённых внутренних слоёв модулей и слоёв PEFT.
skip_modules_classes (`tuple[Type[torch.nn.Module], ...]`, *необязательный*) : Список классов модулей, которые нужно пропустить при послойном приведении типов.
non_blocking (`bool`, *необязательный*, по умолчанию `False`) : Если `True`, операции приведения весов выполняются без блокировки.
Включает послойное приведение типов для текущей модели.
Послойное приведение типов (layerwise casting) — это техника, при которой веса модели приводятся к типу данных с меньшей точностью для хранения, но на лету приводятся обратно к типу данных с большей точностью для вычислений. Этот процесс может значительно уменьшить объём памяти, занимаемый весами модели, однако может привести к некоторому снижению качества результатов. Большинство потерь качества незначительны и в основном связаны с приведением типов весов в слоях нормализации и модуляции.
По умолчанию большинство моделей в diffusers задают атрибут `_skip_layerwise_casting_patterns` так, чтобы игнорировать слои patch embedding, positional embedding и нормализации. Это связано с тем, что эти слои, скорее всего, критичны к точности для качества. Если вы хотите изменить это поведение, вы можете установить атрибут `_skip_layerwise_casting_patterns` в `None` или вызвать [apply_layerwise_casting()](/docs/diffusers/main/ru/api/utilities#diffusers.hooks.apply_layerwise_casting) с пользовательскими аргументами.
Пример:
Использование [enable_layerwise_casting()](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin.enable_layerwise_casting):
```python
>>> from diffusers import CogVideoXTransformer3DModel
>>> transformer = CogVideoXTransformer3DModel.from_pretrained(
... "THUDM/CogVideoX-5b", subfolder="transformer", torch_dtype=torch.bfloat16
... )
>>> # Enable layerwise casting via the model, which ignores certain modules by default
>>> transformer.enable_layerwise_casting(storage_dtype=torch.float8_e4m3fn, compute_dtype=torch.bfloat16)
```
#### enable_npu_flash_attention[[diffusers.ModelMixin.enable_npu_flash_attention]]
```python
enable_npu_flash_attention()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L347)
Включить npu flash attention из torch_npu
#### enable_xformers_memory_efficient_attention[[diffusers.ModelMixin.enable_xformers_memory_efficient_attention]]
```python
enable_xformers_memory_efficient_attention(attention_op: typing.Optional[typing.Callable] = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L405)
**Параметры:**
attention_op (`Callable`, *необязательный*) : Переопределяет оператор по умолчанию `None` для использования в качестве аргумента `op` функции [`memory_efficient_attention()`](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.memory_efficient_attention) xFormers.
Включите энергоэффективное внимание из [xFormers](https://facebookresearch.github.io/xformers/).
Когда эта опция включена, вы должны наблюдать меньшее потребление памяти GPU и потенциальное ускорение во время инференса. Ускорение во время обучения не гарантируется.
> [!WARNING] > ⚠️ Если включены и memory efficient attention, и sliced attention, memory efficient
attention имеет > приоритет.
Примеры:
```py
>>> import torch
>>> from diffusers import UNet2DConditionModel
>>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp
>>> model = UNet2DConditionModel.from_pretrained(
... "stabilityai/stable-diffusion-2-1", subfolder="unet", torch_dtype=torch.float16
... )
>>> model = model.to("cuda")
>>> model.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp)
```
#### enable_xla_flash_attention[[diffusers.ModelMixin.enable_xla_flash_attention]]
```python
enable_xla_flash_attention(partition_spec: typing.Optional[typing.Callable] = None, **kwargs)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L378)
Включите ядро flash attention pallals для torch_xla.
#### from_pretrained[[diffusers.ModelMixin.from_pretrained]]
```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, **kwargs)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L902)
**Параметры:**
pretrained_model_name_or_path (`str` или `os.PathLike`, *необязательный*) : Может быть одним из: - строка, *идентификатор модели* (например, `google/ddpm-celebahq-256`) предобученной модели, размещенной на Hub. - путь к *каталогу* (например, `./my_model_directory`), содержащему веса модели, сохраненные с помощью [save_pretrained()](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin.save_pretrained).
cache_dir (`str | os.PathLike`, *необязательный*) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется.
dtype (`torch.dtype`, *необязательный*) : Переопределяет значение по умолчанию `torch.dtype` и загружает модель с другим dtype.
force_download (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли принудительно (пере)скачивать веса модели и файлы конфигурации, заменяя кэшированные версии, если они существуют.
proxies (`dict[str, str]`, *необязательный*) : Словарь прокси-серверов для использования по протоколу или конечной точке, например, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Прокси используются при каждом запросе.
output_loading_info (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли также возвращать словарь, содержащий отсутствующие ключи, неожиданные ключи и сообщения об ошибках.
local_files_only(`bool`, *необязательный*, по умолчанию `False`) : Загружать только локальные веса модели и файлы конфигурации или нет. Если установлено в `True`, модель не будет скачана с Hub.
token (`str` или *bool*, *необязательный*) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Если `True`, используется токен, сгенерированный командой `diffusers-cli login` (сохранённый в `~/.huggingface`).
revision (`str`, *необязательный*, по умолчанию `"main"`) : Конкретная версия модели, которую следует использовать. Может быть именем ветки, именем тега, идентификатором коммита или любым другим идентификатором, поддерживаемым Git.
subfolder (`str`, *необязательный*, по умолчанию `""`) : Путь к подпапке, в которой находится файл модели в составе более крупного репозитория моделей на Hub или локально.
mirror (`str`, *необязательный*) : Зеркальный источник для решения проблем с доступностью при загрузке модели в Китае. Мы не гарантируем актуальность или безопасность источника, поэтому за дополнительной информацией обращайтесь на сайт зеркала.
device_map (`int | str | torch.device` или `dict[str, int | str | torch.device]`, *необязательный*) : Карта, указывающая, на какое устройство следует поместить каждый подмодуль. Не обязательно определять её для каждого имени параметра/буфера; как только имя модуля указано, все его подмодули будут отправлены на то же устройство. По умолчанию `None`, что означает загрузку модели на CPU. Примеры: ```py >>> from diffusers import AutoModel >>> import torch >>> # This works. >>> model = AutoModel.from_pretrained( ... "stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet", device_map="cuda" ... ) >>> # This also works (integer accelerator device ID). >>> model = AutoModel.from_pretrained( ... "stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet", device_map=0 ... ) >>> # Specifying a supported offloading strategy like "auto" also works. >>> model = AutoModel.from_pretrained( ... "stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet", device_map="auto" ... ) >>> # Specifying a dictionary as `device_map` also works. >>> model = AutoModel.from_pretrained( ... "stabilityai/stable-diffusion-xl-base-1.0", ... subfolder="unet", ... device_map={"": torch.device("cuda")}, ... ) ``` Установите `device_map="auto"`, чтобы 🤗 Accelerate автоматически вычислила наиболее оптимизированную `device_map`. Подробнее о каждом варианте см. [проектирование карты устройств](https://huggingface.co/docs/accelerate/en/concept_guides/big_model_inference#the-devicemap). Также можно обратиться к [документации, специфичной для Diffusers](https://huggingface.co/docs/diffusers/main/en/optimization/device_map), чтобы увидеть более конкретные примеры.
max_memory (`Dict`, *необязательный*) : Словарь идентификаторов устройств для максимальной памяти. Если не задано, по умолчанию используется максимальная доступная память для каждого GPU и доступная оперативная память CPU.
offload_folder (`str` или `os.PathLike`, *необязательный*) : Путь для выгрузки весов, если `device_map` содержит значение `"disk"`.
offload_state_dict (`bool`, *необязательный*) : Если `True`, состояние CPU state dict временно выгружается на диск, чтобы избежать нехватки оперативной памяти CPU, если вес CPU state dict и крупнейший фрагмент контрольной точки не помещаются в неё. По умолчанию `True`, если используется выгрузка на диск.
low_cpu_mem_usage (`bool`, *необязательный*, по умолчанию `True`, если версия torch >= 1.9.0, иначе `False`) : Ускоряет загрузку модели, загружая только предобученные веса и не инициализируя их. Также это позволяет не использовать больше 1x размера модели в оперативной памяти (включая пиковое потребление) при загрузке модели. Поддерживается только для PyTorch >= 1.9.0. Если вы используете более старую версию PyTorch, установка этого аргумента в `True` вызовет ошибку.
variant (`str`, *необязательный*) : Загружает веса из файла с указанным `variant`, например `"fp16"` или `"ema"`.
use_safetensors (`bool`, *необязательный*, по умолчанию `None`) : Если установлено в `None`, веса `safetensors` будут загружены, если они доступны **и** если библиотека `safetensors` установлена. Если установлено в `True`, модель принудительно загружается из весов `safetensors`. Если установлено в `False`, веса `safetensors` не загружаются.
disable_mmap ('bool', *optional*, по умолчанию 'False') : Отключает ли использование mmap при загрузке модели Safetensors. Этот параметр может обеспечить лучшую производительность, если модель находится на сетевом диске или жёстком диске, которые могут плохо справляться с частыми операциями перемотки, характерными для mmap.
use_flashpack (`bool`, *необязательный*, по умолчанию `False`) : Если установлено в `True`, модель загружается из весов `flashpack`.
flashpack_kwargs(`dict[str, Any]`, *необязательный*, по умолчанию `{}`) : Kwargs, передаваемые в [`flashpack.deserialization.assign_from_file`](https://github.com/fal-ai/flashpack/blob/f1aa91c5cd9532a3dbf5bcc707ab9b01c274b76c/src/flashpack/deserialization.py#L408-L422)
Создайте предобученную модель PyTorch на основе конфигурации предобученной модели.
Модель по умолчанию находится в режиме оценки - `model.eval()` - и модули dropout отключены. Для обучения модели верните её в режим обучения с помощью `model.train()`.
> [!TIP] > Для использования частных или [gated models](https://huggingface.co/docs/hub/models-gated#gated-models) выполните вход
с помощью `hf > auth login`. Вы также можете активировать специальный режим > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode), чтобы использовать этот метод в > среде с файрволом.
Пример:
```py
from diffusers import UNet2DConditionModel
unet = UNet2DConditionModel.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```
Если вы получаете сообщение об ошибке, приведённое ниже, вам необходимо дообучить веса для вашей целевой задачи:
```bash
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
```
#### get_memory_footprint[[diffusers.ModelMixin.get_memory_footprint]]
```python
get_memory_footprint(return_buffers = True)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L2154)
**Параметры:**
return_buffers (`bool`, *optional*, по умолчанию `True`) : Нужно ли учитывать размер буферных тензоров при вычислении объёма занимаемой памяти. Буферы — это тензоры, для которых не требуется вычисление градиентов и которые не зарегистрированы как параметры. Например, среднее значение и стандартное отклонение в слоях batch norm. Подробности: https://discuss.pytorch.org/t/what-pytorch-means-by-buffers/120266/2
Получить объём памяти, занимаемый моделью. Этот метод возвращает объём памяти текущей модели в байтах. Полезно для бенчмаркинга потребления памяти текущей модели и проектирования тестов. Решение вдохновлено обсуждениями в PyTorch: https://discuss.pytorch.org/t/gpu-memory-that-model-uses/56822/2
#### num_parameters[[diffusers.ModelMixin.num_parameters]]
```python
num_parameters(only_trainable: bool = False, exclude_embeddings: bool = False)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L2090)
**Параметры:**
only_trainable (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли возвращать только количество обучаемых параметров.
exclude_embeddings (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли возвращать только количество параметров, не являющихся эмбеддингами.
**Возвращает:** `int`
Количество параметров.
Получить количество (обучаемых или не являющихся эмбеддингами) параметров в модуле.
Пример:
```py
from diffusers import UNet2DConditionModel
model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
unet = UNet2DConditionModel.from_pretrained(model_id, subfolder="unet")
unet.num_parameters(only_trainable=True)
859520964
```
#### reset_attention_backend[[diffusers.ModelMixin.reset_attention_backend]]
```python
reset_attention_backend()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L663)
Сбрасывает бэкенд внимания для модели. Последующие вызовы `forward` будут использовать значение по умолчанию из окружения, если оно задано, или встроенное в PyTorch масштабированное внимание на основе скалярного произведения.
#### save_pretrained[[diffusers.ModelMixin.save_pretrained]]
```python
save_pretrained(save_directory: str | os.PathLike, is_main_process: bool = True, save_function: typing.Optional[typing.Callable] = None, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str = '10GB', push_to_hub: bool = False, use_flashpack: bool = False, **kwargs)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L682)
**Параметры:**
save_directory (`str` или `os.PathLike`) : Каталог для сохранения модели и файла её конфигурации. Будет создан, если не существует.
is_main_process (`bool`, *необязательный*, по умолчанию `True`) : Указывает, является ли процесс, вызывающий данный метод, основным. Полезно при распределённом обучении, когда необходимо вызвать эту функцию во всех процессах. В этом случае установите `is_main_process=True` только в основном процессе, чтобы избежать гонок.
save_function (`Callable`) : функция, используемая для сохранения словаря состояния. Полезно при распределённом обучении, когда необходимо заменить `torch.save` на другой метод. Может быть настроено с помощью переменной окружения `DIFFUSERS_SAVE_MODE`.
safe_serialization (`bool`, *необязательный*, по умолчанию `True`) : Сохранять ли модель с помощью `safetensors` или традиционным способом PyTorch с использованием `pickle`.
variant (`str`, *необязательный*) : Если указано, веса сохраняются в формате `pytorch_model.<variant>.bin`.
max_shard_size (`int` или `str`, по умолчанию `"10GB"`) : Максимальный размер контрольной точки перед её разбиением на части. Каждая часть контрольной точки будет иметь размер, меньший этого значения. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, `"5GB"`). Если значение указано в виде целого числа, единицей измерения являются байты. Обратите внимание, что это ограничение будет уменьшено через определённое время (начиная с октября 2024 года), чтобы пользователи могли перейти на последнюю версию `diffusers`. Это сделано для установления общего значения по умолчанию для этого аргумента в разных библиотеках экосистемы Hugging Face (например, `transformers` и `accelerate`).
push_to_hub (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли отправлять модель на Hugging Face Hub после её сохранения. Репозиторий, в который нужно отправить модель, можно указать с помощью `repo_id` (по умолчанию используется имя `save_directory` в вашем пространстве имён).
kwargs (`dict[str, Any]`, *необязательный*) : Дополнительные именованные аргументы, передаваемые в метод [push_to_hub()](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub).
Сохраните модель и файл её конфигурации в каталог, чтобы её можно было загрузить снова с помощью метода класса [from_pretrained()](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin.from_pretrained).
#### set_attention_backend[[diffusers.ModelMixin.set_attention_backend]]
```python
set_attention_backend(backend: str)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L604)
**Параметры:**
backend (`str`) : Имя backend, который нужно установить. Должно быть одним из доступных backend, определённых в `AttentionBackendName`. Список доступных backend можно найти в `diffusers.attention_dispatch.AttentionBackendName`. По умолчанию используется нативный для torch scaled dot product attention в качестве backend.
Установите бэкенд внимания для модели.
#### set_use_npu_flash_attention[[diffusers.ModelMixin.set_use_npu_flash_attention]]
```python
set_use_npu_flash_attention(valid: bool)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_utils.py#L331)
Установите переключатель для npu flash attention.
#### к[[diffusers.ModelMixin.to]]
```python
to(*args, **kwargs)
```
Мок-значение для пути с точками (например, `torch.float32`): цепочки доступа к атрибутам и вызовы работают как пропускные декораторы, `repr` — это путь с точками, а использование в качестве базового класса подменяет его обычным базовым классом `type` (PEP 560 `__mro_entries__`), благодаря чему реальные дочерние классы сохраняют обычный метакласс, а `inspect.signature` читает их реальный `__init__`, а не мок.
## PushToHubMixin[[diffusers.utils.PushToHubMixin]]
#### diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]
```python
diffusers.utils.PushToHubMixin()
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L491)
Миксин для загрузки модели, планировщика или конвейера на Hugging Face Hub.
#### push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]]
```python
push_to_hub(repo_id: str, commit_message: str | None = None, private: bool | None = None, token: str | None = None, create_pr: bool = False, safe_serialization: bool = True, variant: str | None = None, subfolder: str | None = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L526)
**Параметры:**
repo_id (`str`) : Имя репозитория, в который вы хотите загрузить файлы модели, планировщика или конвейера. При загрузке в организацию оно должно содержать имя вашей организации. `repo_id` также может быть путём к локальному каталогу.
commit_message (`str`, *необязательный*) : Сообщение для коммита при выполнении push. По умолчанию `"Upload {object}"`.
private (`bool`, *optional*) : Указывает, нужно ли сделать репозиторий приватным. Если `None` (по умолчанию), репозиторий будет публичным, если только по умолчанию для организации не задан приватный режим. Это значение игнорируется, если репозиторий уже существует.
token (`str`, *необязательный*) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Токен, создаваемый при выполнении `hf auth login` (хранится в `~/.huggingface`).
create_pr (`bool`, *необязательный*, по умолчанию `False`) : Создавать ли PR с загруженными файлами или коммитить изменения напрямую.
safe_serialization (`bool`, *необязательный*, по умолчанию `True`) : Преобразовывать ли веса модели в формат `safetensors`.
variant (`str`, *необязательный*) : Если указано, веса сохраняются в формате `pytorch_model.<variant>.bin`.
Загрузите файлы модели, планировщика или конвейера в 🤗 Hugging Face Hub.
Примеры:
```python
from diffusers import UNet2DConditionModel
unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2", subfolder="unet")
# Push the `unet` to your namespace with the name "my-finetuned-unet".
unet.push_to_hub("my-finetuned-unet")
# Push the `unet` to an organization with the name "my-finetuned-unet".
unet.push_to_hub("your-org/my-finetuned-unet")
```

Xet Storage Details

Size:
39.7 kB
·
Xet hash:
de290878663f1e6428bbbc78266fba6b3ec535a93cfa06047c85828a63e99a26

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.