# Конфигурация

Планировщики из [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin) и модели из [ModelMixin](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin) наследуются от [ConfigMixin](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin), который сохраняет все параметры, переданные в их соответствующие методы `__init__`, в JSON-файл конфигурации.

> [!TIP]
> Чтобы использовать частные или [защищённые](https://huggingface.co/docs/hub/models-gated#gated-models) модели, выполните вход с помощью `hf auth login`.

## ConfigMixin[[diffusers.ConfigMixin]]

#### diffusers.ConfigMixin[[diffusers.ConfigMixin]]

```python
diffusers.ConfigMixin()
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/configuration_utils.py#L87)

Базовый класс для всех классов конфигурации. Все параметры конфигурации хранятся в `self.config`. Также предоставляет методы [from_config()](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin.from_config) и [save_config()](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin.save_config) для загрузки, скачивания и сохранения классов, наследующихся от [ConfigMixin](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin).

Атрибуты класса:
- **config_name** (`str`) -- Имя файла, под которым конфигурация должна сохраняться при вызове [save_config()](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin.save_config) (должно переопределяться родительским классом).
- **ignore_for_config** (`list[str]`) — список атрибутов, которые не должны сохраняться в конфигурации (должен быть переопределён в подклассе).
- **has_compatibles** (`bool`) -- Указывает, есть ли у класса совместимые классы (должно быть переопределено в подклассе).
- **_deprecated_kwargs** (`list[str]`) -- Именованные аргументы, использование которых не рекомендуется. Обратите внимание, что функция `init` должна иметь аргумент `kwargs` только в том случае, если хотя бы один аргумент устарел (должно быть переопределено в подклассе).

#### load_config[[diffusers.ConfigMixin.load_config]]

```python
load_config(pretrained_model_name_or_path: str | os.PathLike, return_unused_kwargs = False, return_commit_hash = False, **kwargs)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/configuration_utils.py#L322)

**Параметры:**

pretrained_model_name_or_path (`str` или `os.PathLike`, *необязательный*) : Может быть одним из:  - строка, *идентификатор модели* (например, `google/ddpm-celebahq-256`) предобученной модели, размещенной на Hub. - путь к *каталогу* (например, `./my_model_directory`), содержащему веса модели, сохраненные с помощью [save_config()](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin.save_config).

cache_dir (`str | os.PathLike`, *необязательный*) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется.

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 или локально.

return_unused_kwargs (`bool`, *необязательный*, по умолчанию `False) : Определяет, возвращаются ли неиспользуемые именованные аргументы конфигурации.

return_commit_hash (`bool`, *optional*, defaults to `False) : Whether the `commit_hash` of the loaded configuration are returned.

**Возвращает:** `dict`

Словарь всех параметров, хранящихся в конфигурационном файле JSON.

Загрузите конфигурацию модели или планировщика.

#### from_config[[diffusers.ConfigMixin.from_config]]

```python
from_config(config: diffusers.configuration_utils.FrozenDict | dict[str, typing.Any] = None, return_unused_kwargs = False, **kwargs)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/configuration_utils.py#L221)

**Параметры:**

config (`dict[str, Any]`) : Словарь конфигурации, из которого создаётся экземпляр класса Python. Убедитесь, что загружаете файлы конфигурации только совместимых классов.

return_unused_kwargs (`bool`, *необязательный*, по умолчанию `False`) : Определяет, следует ли возвращать аргументы kwargs, не использованные Python-классом.

kwargs (остаточный словарь именованных аргументов, *необязательный*) : может использоваться для обновления объекта конфигурации (после его загрузки) и инициализации класса Python. `**kwargs` передаются непосредственно в метод `__init__` базового планировщика/модели и в конечном счёте перезаписывают аргументы с теми же именами в `config`.

**Возвращает:** [ModelMixin](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin) или [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin)

Объект модели или планировщика, созданный из словаря конфигурации.

Создайте экземпляр класса Python из словаря конфигурации.

Примеры:

```python
>>> from diffusers import DDPMScheduler, DDIMScheduler, PNDMScheduler

>>> # Download scheduler from huggingface.co and cache.
>>> scheduler = DDPMScheduler.from_pretrained("google/ddpm-cifar10-32")

>>> # Instantiate DDIM scheduler class with same config as DDPM
>>> scheduler = DDIMScheduler.from_config(scheduler.config)

>>> # Instantiate PNDM scheduler class with same config as DDPM
>>> scheduler = PNDMScheduler.from_config(scheduler.config)
```

#### save_config[[diffusers.ConfigMixin.save_config]]

```python
save_config(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/configuration_utils.py#L177)

**Параметры:**

save_directory (`str` или `os.PathLike`) : Каталог, в котором сохраняется файл конфигурации JSON (будет создан, если не существует).

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).

Сохраните объект конфигурации в каталог, указанный в `save_directory`, чтобы его можно было загрузить с помощью метода класса [from_config()](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin.from_config).

#### to_json_file[[diffusers.ConfigMixin.to_json_file]]

```python
to_json_file(json_file_path: str | os.PathLike)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/configuration_utils.py#L647)

**Параметры:**

json_file_path (`str` или `os.PathLike`) : Путь к JSON-файлу для сохранения параметров экземпляра конфигурации.

Сохраните параметры экземпляра конфигурации в файл JSON.

#### to_json_string[[diffusers.ConfigMixin.to_json_string]]

```python
to_json_string()
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/configuration_utils.py#L602)

**Возвращает:** `str`

Строка, содержащая все атрибуты, из которых состоит экземпляр конфигурации, в формате JSON.

Сериализует экземпляр конфигурации в строку JSON.

