Buckets:
| # Планировщики | |
| 🤗 Diffusers предоставляет множество функций планировщика для процесса диффузии. Планировщик принимает выход модели (образец, с которым работает процесс диффузии) и шаг времени, чтобы вернуть образец с удалённым шумом. Шаг времени важен, так как он определяет, на какой стадии процесса диффузии выполняется шаг: данные генерируются путём итерации вперёд на *n* шагов времени, а инференс происходит путём распространения назад через шаги времени. В зависимости от шага времени планировщик может быть *дискретным*, в этом случае шаг времени — это `int`, или *непрерывным*, в этом случае шаг времени — это `float`. | |
| В зависимости от контекста планировщик определяет, как итеративно добавлять шум к изображению или как обновлять образец на основе вывода модели: | |
| - в процессе *обучения* планировщик добавляет шум (существуют различные алгоритмы добавления шума) к образцу для обучения диффузионной модели | |
| - во время *inference* планировщик определяет, как обновлять образец на основе вывода предобученной модели | |
| Многие планировщики реализованы на основе библиотеки [k-diffusion](https://github.com/crowsonkb/k-diffusion) от [Katherine Crowson](https://github.com/crowsonkb/) и также широко используются в A1111. Чтобы сопоставить планировщики из k-diffusion и A1111 с планировщиками в 🤗 Diffusers, обратитесь к таблице ниже: | |
| | A1111/k-diffusion | 🤗 Diffusers | Использование | | |
| |---------------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------| | |
| | DPM++ 2M | [DPMSolverMultistepScheduler](/docs/diffusers/main/ru/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | | | |
| | DPM++ 2M Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/ru/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | init с `use_karras_sigmas=True` | | |
| | DPM++ 2M SDE | [DPMSolverMultistepScheduler](/docs/diffusers/main/ru/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | init с `algorithm_type="sde-dpmsolver++"` | | |
| | DPM++ 2M SDE Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/ru/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | init с `use_karras_sigmas=True` и `algorithm_type="sde-dpmsolver++"` | | |
| | DPM++ 2S a | N/A | очень похож на `DPMSolverSinglestepScheduler` | | |
| | DPM++ 2S a Karras | N/A | очень похож на `DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)` | | |
| | DPM++ SDE | [DPMSolverSinglestepScheduler](/docs/diffusers/main/ru/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | | | |
| | DPM++ SDE Karras | [DPMSolverSinglestepScheduler](/docs/diffusers/main/ru/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | init с `use_karras_sigmas=True` | | |
| | DPM2 | [KDPM2DiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | | | |
| | DPM2 Karras | [KDPM2DiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | init с `use_karras_sigmas=True` | | |
| | DPM2 a | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | | | |
| | DPM2 a Karras | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | init с `use_karras_sigmas=True` | | |
| | DPM адаптивный | N/A | | | |
| | DPM fast | N/A | | | |
| | Euler | [EulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/euler#diffusers.EulerDiscreteScheduler) | | | |
| | Euler a | [EulerAncestralDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/euler_ancestral#diffusers.EulerAncestralDiscreteScheduler) | | | |
| | Heun | [HeunDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/heun#diffusers.HeunDiscreteScheduler) | | | |
| | LMS | [LMSDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | | | |
| | LMS Karras | [LMSDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | init с `use_karras_sigmas=True` | | |
| | N/A | [DEISMultistepScheduler](/docs/diffusers/main/ru/api/schedulers/deis#diffusers.DEISMultistepScheduler) | | | |
| | N/A | [UniPCMultistepScheduler](/docs/diffusers/main/ru/api/schedulers/unipc#diffusers.UniPCMultistepScheduler) | | | |
| ## Шкалы шума и типы шкал | |
| | A1111/k-diffusion | 🤗 Diffusers | | |
| |--------------------------|----------------------------------------------------------------------------| | |
| | Karras | init с `use_karras_sigmas=True` | | |
| | sgm_uniform | init с `timestep_spacing="trailing"` | | |
| | простой | init с `timestep_spacing="trailing"` | | |
| | экспоненциальный | init с `timestep_spacing="linspace"`, `use_exponential_sigmas=True` | | |
| | beta | init с `timestep_spacing="linspace"`, `use_beta_sigmas=True` | | |
| Все планировщики создаются на основе базового класса [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin), который реализует низкоуровневые утилиты, общие для всех планировщиков. | |
| ## SchedulerMixin[[diffusers.SchedulerMixin]] | |
| #### diffusers.SchedulerMixin[[diffusers.SchedulerMixin]] | |
| ```python | |
| diffusers.SchedulerMixin() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L79) | |
| Базовый класс для всех планировщиков. | |
| [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin) содержит общие функции, используемые всеми планировщиками, такие как общие функции загрузки и сохранения. | |
| [ConfigMixin](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin) отвечает за сохранение атрибутов конфигурации (таких как `num_train_timesteps`), которые передаются в функцию `__init__` планировщика, а доступ к ним осуществляется через `scheduler.config.num_train_timesteps`. | |
| Атрибуты класса: | |
| - **_compatibles** (`list[str]`) -- Список классов планировщиков, совместимых с родительским классом планировщика. Используйте [from_config()](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin.from_config) для загрузки другого совместимого класса планировщика (должно быть переопределено в родительском классе). | |
| #### from_pretrained[[diffusers.SchedulerMixin.from_pretrained]] | |
| ```python | |
| from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs: bool = False, **kwargs: Any) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L99) | |
| **Параметры:** | |
| pretrained_model_name_or_path (`str` или `os.PathLike`, *необязательный*) : Может быть одним из: - строка, *идентификатор модели* (например, `google/ddpm-celebahq-256`) предобученной модели, размещенной на Hub. - путь к *каталогу* (например, `./my_model_directory`), содержащему конфигурацию планировщика, сохраненную с помощью [save_pretrained()](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin.save_pretrained). | |
| subfolder (`str`, *необязательный*) : Путь к подпапке, содержащей файл модели в составе более крупного репозитория моделей на Hub или локально. | |
| return_unused_kwargs (`bool`, *необязательный*, по умолчанию `False`) : Определяет, следует ли возвращать аргументы kwargs, не использованные Python-классом. | |
| 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. | |
| **Возвращает:** [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin) или `tuple[SchedulerMixin, dict[str, Any]]` | |
| Планировщик, созданный из конфигурации. Если `return_unused_kwargs` равно `True`, возвращается кортеж, вторым элементом которого является словарь неиспользованных именованных аргументов. | |
| Создайте планировщик из заранее определённого файла конфигурации JSON в локальном каталоге или репозитории Hub. | |
| > [!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), чтобы использовать этот метод в > среде с файрволом. | |
| #### save_pretrained[[diffusers.SchedulerMixin.save_pretrained]] | |
| ```python | |
| save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L164) | |
| **Параметры:** | |
| 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). | |
| Сохраните объект конфигурации планировщика в каталог, чтобы его можно было загрузить с помощью метода класса [from_pretrained()](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained). | |
| ## SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]] | |
| #### diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]] | |
| ```python | |
| diffusers.schedulers.scheduling_utils.SchedulerOutput(prev_sample: Tensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L66) | |
| **Параметры:** | |
| prev_sample (`torch.Tensor` формы `(batch_size, num_channels, height, width)` для изображений) : Вычисленная выборка `(x_{t-1})` для предыдущего шага. `prev_sample` следует использовать как следующий вход модели в цикле шумоподавления. | |
| Базовый класс для результата функции `step` планировщика. | |
| ## KarrasDiffusionSchedulers | |
| `KarrasDiffusionSchedulers` представляют собой широкую обобщающую форму для планировщиков в 🤗 Diffusers. Планировщики этого класса различаются на высоком уровне по стратегии выборки шума, типу сети и масштабированию, стратегии обучения и способу взвешивания функции потерь. | |
| Различные планировщики в этом классе, в зависимости от типа решателя обыкновенных дифференциальных уравнений (ODE), подпадают под вышеописанную классификацию и обеспечивают хорошую абстракцию для проектирования основных планировщиков, реализованных в 🤗 Diffusers. Планировщики этого класса приведены [здесь](https://github.com/huggingface/diffusers/blob/a69754bb879ed55b9b6dc9dd0b3cf4fa4124c765/src/diffusers/schedulers/scheduling_utils.py#L32). | |
| ## 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:
- 22.5 kB
- Xet hash:
- 22c93c67cbfc2e24f842bf2a8dfda08eaf32629dc09be0082a7d726cc5c0416c
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.