Buckets:
| # Пайплайны | |
| Pipelines предоставляют простой способ запуска передовых диффузионных моделей в режиме инференса, объединяя все необходимые компоненты (несколько независимо обученных моделей, планировщики и процессоры) в единый класс для сквозного выполнения. Pipelines гибки и могут быть адаптированы для использования различных планировщиков или даже компонентов моделей. | |
| Все конвейеры создаются на основе базового класса [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline), который обеспечивает базовые функции загрузки, скачивания и сохранения всех компонентов. Конкретные типы конвейеров (например, [StableDiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline)), загруженные с помощью [from_pretrained()](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained), определяются автоматически, а компоненты конвейера загружаются и передаются в функцию `__init__` конвейера. | |
| > [!WARNING] | |
| > Не следует использовать класс [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline) для обучения. Отдельные компоненты (например, [UNet2DModel](/docs/diffusers/main/ru/api/models/unet2d#diffusers.UNet2DModel) и [UNet2DConditionModel](/docs/diffusers/main/ru/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) диффузионных пайплайнов обычно обучаются по отдельности, поэтому мы рекомендуем работать с ними напрямую. | |
| > | |
| > | |
| > | |
| > Pipelines не предоставляют никаких функций для обучения. Вы заметите, что autograd в PyTorch отключён, поскольку метод `__call__()` декорирован декоратором [`torch.no_grad`](https://pytorch.org/docs/stable/generated/torch.no_grad.html), так как pipelines не предназначены для обучения. Если вас интересует обучение, обратитесь к руководствам по [обучению](../../training/overview)! | |
| Use **API > Pipelines** in the sidebar to browse all pipeline references by modality. For task-oriented workflows, start with the [Quickstart](../../quicktour) or a guide such as [text-to-image](../../using-diffusers/conditional_image_generation), [image-to-image](../../using-diffusers/img2img), [inpainting](../../using-diffusers/inpaint), or [video generation](../../using-diffusers/text-img2vid). | |
| ## DiffusionPipeline[[diffusers.DiffusionPipeline]] | |
| #### diffusers.DiffusionPipeline[[diffusers.DiffusionPipeline]] | |
| ```python | |
| diffusers.DiffusionPipeline() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L198) | |
| Базовый класс для всех конвейеров. | |
| [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline) хранит все компоненты (модели, планировщики и процессоры) для диффузионных пайплайнов и предоставляет методы для загрузки, скачивания и сохранения моделей. Он также включает методы для: | |
| - переместить все модули PyTorch на устройство по вашему выбору | |
| - включить/отключить индикатор прогресса для итераций шумоподавления | |
| Атрибуты класса: | |
| - **config_name** (`str`) -- Имя файла конфигурации, в котором хранятся имена классов и модулей всех компонентов диффузионного конвейера. | |
| - **_optional_components** (`List[str]`) -- список всех необязательных компонентов, которые не обязательно передавать в pipeline для его работы (должен быть переопределён в подклассах). | |
| #### __call__[[diffusers.DiffusionPipeline.__call__]] | |
| ```python | |
| __call__(*args, **kwargs) | |
| ``` | |
| Вызовите self как функцию. | |
| #### device[[diffusers.DiffusionPipeline.device]] | |
| ```python | |
| device() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L600) | |
| **Возвращает:** `torch.device` | |
| Устройство torch, на котором размещён конвейер. Если компоненты распределены по разным устройствам (например, текстовые энкодеры работают на CPU, а базовая модель денуайзинга — на ускорителе), возвращается устройство ускорителя. | |
| #### к[[diffusers.DiffusionPipeline.to]] | |
| ```python | |
| to(*args, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L397) | |
| **Параметры:** | |
| dtype (`torch.dtype`, *необязательный*) : Возвращает конвейер с указанным [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) | |
| device (`torch.Device`, *необязательный*) : Возвращает конвейер с указанным [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) | |
| silence_dtype_warnings (`str`, *необязательный*, по умолчанию `False`) : Указывает, следует ли пропускать предупреждения, если целевой `dtype` несовместим с целевым `device`. | |
| **Возвращает:** [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline) | |
| Пайплайн преобразован в указанный `dtype` и/или `dtype`. | |
| Выполняет преобразование dtype и/или device для Pipeline. Значения torch.dtype и torch.device выводятся из аргументов `self.to(*args, **kwargs).` | |
| > [!TIP] > Если у конвейера уже есть правильные torch.dtype и torch.device, он возвращается без изменений. | |
| В противном случае > возвращаемый конвейер является копией self с требуемыми torch.dtype и torch.device. | |
| Способы вызова `to`: | |
| - `to(dtype, silence_dtype_warnings=False) → DiffusionPipeline` для возврата пайплайна с указанным [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) | |
| - `to(device, silence_dtype_warnings=False) → DiffusionPipeline` для возврата пайплайна с указанным [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) | |
| - `to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline` возвращает пайплайн с указанными [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) и [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) | |
| #### компоненты[[diffusers.DiffusionPipeline.components]] | |
| ```python | |
| components() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1907) | |
| Свойство `self.components` может быть полезно для запуска разных конвейеров с одними и теми же весами и конфигурациями без выделения дополнительной памяти. | |
| Returns (`dict`): словарь, содержащий все модули, необходимые для инициализации конвейера. | |
| Примеры: | |
| ```py | |
| >>> from diffusers import ( | |
| ... StableDiffusionPipeline, | |
| ... StableDiffusionImg2ImgPipeline, | |
| ... StableDiffusionInpaintPipeline, | |
| ... ) | |
| >>> text2img = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| >>> img2img = StableDiffusionImg2ImgPipeline(**text2img.components) | |
| >>> inpaint = StableDiffusionInpaintPipeline(**text2img.components) | |
| ``` | |
| #### disable_attention_slicing[[diffusers.DiffusionPipeline.disable_attention_slicing]] | |
| ```python | |
| disable_attention_slicing() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2067) | |
| Отключает вычисление внимания с нарезкой. Если `enable_attention_slicing` был вызван ранее, внимание вычисляется за один шаг. | |
| #### disable_xformers_memory_efficient_attention[[diffusers.DiffusionPipeline.disable_xformers_memory_efficient_attention]] | |
| ```python | |
| disable_xformers_memory_efficient_attention() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2006) | |
| Отключить энергоэффективное внимание из [xFormers](https://facebookresearch.github.io/xformers/). | |
| #### загрузить[[diffusers.DiffusionPipeline.download]] | |
| ```python | |
| download(pretrained_model_name, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1483) | |
| **Параметры:** | |
| pretrained_model_name (`str` или `os.PathLike`, *необязательный*) : строка, *идентификатор репозитория* (например, `CompVis/ldm-text2im-large-256`) предобученного пайплайна, размещенного на Hub. | |
| custom_pipeline (`str`, *optional*) : Может принимать одно из следующих значений: - Строка, *repository id* (например, `CompVis/ldm-text2im-large-256`) предобученного пайплайна, размещенного на Hub. Репозиторий должен содержать файл `pipeline.py`, в котором определяется пользовательский пайплайн. - Строка, *file name* пайплайна сообщества, размещенного на GitHub в разделе [Community](https://github.com/huggingface/diffusers/tree/main/examples/community). Допустимые имена файлов должны соответствовать имени файла, а не имени скрипта пайплайна (`clip_guided_stable_diffusion`, а не `clip_guided_stable_diffusion.py`). Пайплайны сообщества всегда загружаются из текущей ветки `main` на GitHub. - Путь к *directory* (`./my_pipeline_directory/`), содержащему пользовательский пайплайн. В каталоге должен находиться файл `pipeline.py`, определяющий пользовательский пайплайн. > [!WARNING] > 🧪 Это экспериментальная функция, которая может измениться в будущем. Чтобы узнать больше о загрузке и создании пользовательских пайплайнов, ознакомьтесь с разделом [How to contribute a community pipeline](https://huggingface.co/docs/diffusers/main/en/using-diffusers/contribute_pipeline). | |
| 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. | |
| custom_revision (`str`, *optional*, по умолчанию `"main"`) : Конкретная версия модели, которую следует использовать. Это может быть имя ветки, имя тега или идентификатор коммита, аналогично `revision` при загрузке пользовательского конвейера из Hub. Это может быть версия 🤗 Diffusers при загрузке пользовательского конвейера из GitHub, в противном случае по умолчанию используется `"main"` при загрузке из Hub. | |
| mirror (`str`, *необязательный*) : Зеркальный источник для решения проблем с доступностью при загрузке модели в Китае. Мы не гарантируем актуальность или безопасность источника, поэтому за дополнительной информацией обращайтесь на сайт зеркала. | |
| variant (`str`, *необязательный*) : Загружает веса из файла с указанным вариантом имени, например `"fp16"` или `"ema"`. | |
| use_safetensors (`bool`, *необязательный*, по умолчанию `None`) : Если установлено в `None`, веса safetensors загружаются, если они доступны **и** если библиотека safetensors установлена. Если установлено в `True`, модель принудительно загружается из весов safetensors. Если установлено в `False`, веса safetensors не загружаются. | |
| use_onnx (`bool`, *необязательный*, по умолчанию `False`) : Если установлено в `True`, веса ONNX всегда будут загружаться, если они присутствуют. Если установлено в `False`, веса ONNX никогда не будут загружаться. По умолчанию `use_onnx` принимает значение атрибута класса `_is_onnx`, которое равно `False` для не-ONNX конвейеров и `True` для ONNX конвейеров. К весам ONNX относятся как файлы, заканчивающиеся на `.onnx`, так и на `.pb`. | |
| trust_remote_code (`bool`, *необязательный*, по умолчанию `False`) : Разрешает ли использование пользовательских конвейеров и компонентов, определённых на Hub в отдельных файлах. Этот параметр следует устанавливать в `True` только для репозиториев, которым вы доверяете и код которых вы изучили, поскольку это приведёт к выполнению кода с Hub на вашем локальном компьютере. | |
| use_flashpack (`bool`, *необязательный*, по умолчанию `False`) : Если установлено в `True`, веса FlashPack всегда будут загружаться, если они присутствуют. Если установлено в `False`, веса FlashPack никогда не будут загружаться. | |
| **Возвращает:** `os.PathLike` | |
| Путь к загруженной конвейерной модели. | |
| Загрузите и закэшируйте PyTorch diffusion pipeline из предобученных весов pipeline. | |
| > [!TIP] > Для использования частных или [gated models](https://huggingface.co/docs/hub/models-gated#gated-models) выполните вход | |
| с `hf > auth login | |
| #### enable_attention_slicing[[diffusers.DiffusionPipeline.enable_attention_slicing]] | |
| ```python | |
| enable_attention_slicing(slice_size: str | int = 'auto') | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2030) | |
| **Параметры:** | |
| slice_size (`str` или `int`, *необязательный*, по умолчанию `"auto"`) : Если указано `"auto"`, вход для головок внимания делится пополам, и внимание вычисляется в два этапа. Если указано `"max"`, для экономии максимального объёма памяти выполняется по одному срезу за раз. Если указано число, используется столько срезов, сколько получается от `attention_head_dim // slice_size`. В этом случае `attention_head_dim` должно быть кратным `slice_size`. | |
| Включает послойный вычисление внимания. При включении этого параметра модуль внимания разбивает входной тензор на фрагменты для вычисления внимания в несколько шагов. Если используется более одной головы внимания, вычисления выполняются последовательно для каждой головы. Это полезно для экономии памяти ценой небольшого снижения скорости. | |
| > [!WARNING] > ⚠️ Не включайте нарезку внимания, если вы уже используете `scaled_dot_product_attention` (SDPA) | |
| из PyTorch > 2.0 или xFormers. Эти вычисления внимания уже очень экономны по памяти, поэтому вам не нужно включать > эту функцию. Если вы включите нарезку внимания (attention slicing) с SDPA или xFormers, это может привести к серьезному замедлению! | |
| Примеры: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import StableDiffusionPipeline | |
| >>> pipe = StableDiffusionPipeline.from_pretrained( | |
| ... "stable-diffusion-v1-5/stable-diffusion-v1-5", | |
| ... dtype=torch.float16, | |
| ... use_safetensors=True, | |
| ... ) | |
| >>> prompt = "a photo of an astronaut riding a horse on mars" | |
| >>> pipe.enable_attention_slicing() | |
| >>> image = pipe(prompt).images[0] | |
| ``` | |
| #### enable_group_offload[[diffusers.DiffusionPipeline.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, exclude_modules: str | list[str] | None = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1343) | |
| **Параметры:** | |
| onload_device (`torch.device`) : Устройство, на котором загружена группа модулей. | |
| offload_device (`torch.device`, по умолчанию `torch.device("cpu")`) : Устройство, на которое выгружается группа модулей. Обычно это должно быть CPU. По умолчанию — CPU. | |
| offload_type (`str` или `GroupOffloadingType`, по умолчанию "block_level") : Тип применяемого выгрузки. Может быть "block_level" или "leaf_level". По умолчанию "block_level". | |
| offload_to_disk_path (`str`, *необязательный*, по умолчанию `None`) : Путь к каталогу, в который будут выгружаться параметры. Установка этого параметра может быть полезна в условиях ограниченной оперативной памяти, когда требуется разумный компромисс между скоростью и потреблением памяти. | |
| num_blocks_per_group (`int`, *optional*) : количество блоков в группе при использовании offload_type="block_level". Это значение обязательно при использовании offload_type="block_level". | |
| non_blocking (`bool`, по умолчанию `False`) : Если True, выгрузка и загрузка данных выполняются с неблокирующей передачей. | |
| use_stream (`bool`, по умолчанию `False`) : Если True, выгрузка и загрузка выполняются асинхронно с использованием CUDA-потока. Это может быть полезно для перекрытия вычислений и передачи данных. | |
| record_stream (`bool`, по умолчанию `False`) : При включении вместе с `use_stream` помечает текущий тензор как использованный этим потоком. Работает быстрее за счёт немного большего потребления памяти. Подробности см. в [официальной документации PyTorch](https://pytorch.org/docs/stable/generated/torch.Tensor.record_stream.html). | |
| low_cpu_mem_usage (`bool`, по умолчанию `False`) : Если установлено в True, использование памяти CPU минимизируется за счёт закрепления тензоров на лету, а не их предварительного закрепления. Этот параметр имеет значение только при использовании потоковой разгрузки на CPU (т. е. `use_stream=True`). Это может быть полезно, когда память CPU является узким местом, но может нивелировать преимущества использования потоков. | |
| exclude_modules (`Union[str, List[str]]`, по умолчанию `None`) : Список модулей, которые следует исключить из offloading. | |
| Применяет групповую разгрузку (group offloading) для внутренних слоёв модуля torch.nn.Module. Чтобы понять, что такое групповая разгрузка и в каких случаях она полезна, сначала нужно дать некоторый контекст о том, как работают другие поддерживаемые методы разгрузки. | |
| Как правило, выгрузка выполняется на двух уровнях: | |
| - На уровне модуля: в Diffusers это можно включить с помощью метода `ModelMixin::enable_model_cpu_offload()`. Он | |
| работает за счёт выгрузки каждого компонента конвейера на CPU для хранения и загрузки на устройство ускорителя по мере необходимости для вычислений. Этот метод более эффективен с точки зрения памяти, чем хранение всех компонентов на ускорителе, однако требования к памяти остаются довольно высокими. Для работы этого метода требуется объём памяти, эквивалентный размеру модели в рабочем типе данных (runtime dtype) + размеру крупнейших промежуточных тензоров активаций, чтобы завершить прямой проход (forward pass). | |
| - Уровень отдельных компонентов: в Diffusers это можно включить с помощью метода `ModelMixin::enable_sequential_cpu_offload()`. Он | |
| работает за счёт выгрузки параметров нижнего уровня вычислительного графа на CPU для хранения и загрузки только этих параметров на ускоритель для вычислений. Этот режим использует минимальное количество памяти ускорителя, но может работать медленнее из-за избыточного количества синхронизаций устройств. | |
| Групповое выгружение представляет собой промежуточный вариант между двумя методами. Оно работает путём выгрузки групп внутренних слоёв (либо `torch.nn.ModuleList`, либо `torch.nn.Sequential`). Этот метод потребляет меньше памяти, чем выгружение на уровне модулей. Он также быстрее, чем выгружение на уровне листьев/последовательное выгружение, поскольку уменьшается количество синхронизаций устройств. | |
| Ещё одна поддерживаемая функция (для CUDA-устройств с поддержкой потоков асинхронной передачи данных) — возможность перекрывать передачу данных и вычисления, чтобы сократить общее время выполнения по сравнению с последовательным offloading. Это реализуется с помощью предварительной загрузки слоёв (layer prefetching) с использованием потоков: слой, который будет выполнен следующим, начинает onloading на ускорительное устройство, пока выполняется текущий слой, — это немного увеличивает требования к памяти. Обратите внимание, что данная реализация также поддерживает offloading на уровне листьев (leaf-level), но может стать значительно быстрее при использовании потоков. | |
| Пример: | |
| ```python | |
| >>> from diffusers import DiffusionPipeline | |
| >>> import torch | |
| >>> pipe = DiffusionPipeline.from_pretrained("Qwen/Qwen-Image", dtype=torch.bfloat16) | |
| >>> pipe.enable_group_offload( | |
| ... onload_device=torch.device("cuda"), | |
| ... offload_device=torch.device("cpu"), | |
| ... offload_type="leaf_level", | |
| ... use_stream=True, | |
| ... ) | |
| >>> image = pipe("a beautiful sunset").images[0] | |
| ``` | |
| #### enable_model_cpu_offload[[diffusers.DiffusionPipeline.enable_model_cpu_offload]] | |
| ```python | |
| enable_model_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1152) | |
| **Параметры:** | |
| gpu_id (`int`, *optional*) : Идентификатор ускорителя, который будет использоваться при выводе. Если не указан, по умолчанию используется 0. | |
| device (`torch.Device` или `str`, *необязательный*, по умолчанию None) : Тип устройства PyTorch для ускорителя, который будет использоваться при выводе. Если не указан, доступный ускоритель будет обнаружен и использован автоматически. | |
| Переносит все модели на CPU с помощью accelerate, снижая потребление памяти с минимальным влиянием на производительность. В отличие от `enable_sequential_cpu_offload`, этот метод перемещает на акселератор целую модель за раз в момент вызова её метода `forward`, и модель остаётся на акселераторе до запуска следующей модели. Экономия памяти меньше, чем при использовании `enable_sequential_cpu_offload`, но производительность значительно выше благодаря итеративному выполнению `unet`. | |
| #### enable_sequential_cpu_offload[[diffusers.DiffusionPipeline.enable_sequential_cpu_offload]] | |
| ```python | |
| enable_sequential_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1273) | |
| **Параметры:** | |
| gpu_id (`int`, *optional*) : Идентификатор ускорителя, который будет использоваться при выводе. Если не указан, по умолчанию используется 0. | |
| device (`torch.Device` или `str`, *необязательный*, по умолчанию None) : Тип устройства PyTorch для ускорителя, который будет использоваться при выводе. Если не указан, доступный ускоритель будет обнаружен и использован автоматически. | |
| Выгружает все модели на CPU с помощью 🤗 Accelerate, что значительно снижает потребление памяти. При вызове state dicts всех компонентов `torch.nn.Module` (кроме тех, что находятся в `self._exclude_from_cpu_offload`) сохраняются на CPU, затем перемещаются на `torch.device('meta')` и загружаются на accelerator только тогда, когда у конкретного подмодуля вызывается его метод `forward`. Выгрузка происходит на уровне подмодулей. Экономия памяти выше, чем при использовании `enable_model_cpu_offload`, но производительность ниже. | |
| #### enable_xformers_memory_efficient_attention[[diffusers.DiffusionPipeline.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/pipelines/pipeline_utils.py#L1975) | |
| **Параметры:** | |
| 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 DiffusionPipeline | |
| >>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp | |
| >>> pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", dtype=torch.float16) | |
| >>> pipe = pipe.to("cuda") | |
| >>> pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp) | |
| >>> # Workaround for not accepting attention shape using VAE for Flash Attention | |
| >>> pipe.vae.enable_xformers_memory_efficient_attention(attention_op=None) | |
| ``` | |
| #### from_pipe[[diffusers.DiffusionPipeline.from_pipe]] | |
| ```python | |
| from_pipe(pipeline, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2083) | |
| **Параметры:** | |
| pipeline (`DiffusionPipeline`) : конвейер, на основе которого будет создан новый конвейер. | |
| **Возвращает:** `DiffusionPipeline` | |
| Новый конвейер с теми же весами и конфигурациями, что и у `pipeline`. | |
| Создайте новый конвейер на основе заданного конвейера. Этот метод полезен для создания нового конвейера из компонентов существующего конвейера без выделения дополнительной памяти. | |
| Примеры: | |
| ```py | |
| >>> from diffusers import StableDiffusionPipeline, StableDiffusionSAGPipeline | |
| >>> pipe = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| >>> new_pipe = StableDiffusionSAGPipeline.from_pipe(pipe) | |
| ``` | |
| #### from_pretrained[[diffusers.DiffusionPipeline.from_pretrained]] | |
| ```python | |
| from_pretrained(pretrained_model_name_or_path: str | os.PathLike, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L638) | |
| **Параметры:** | |
| pretrained_model_name_or_path (`str` или `os.PathLike`, *необязательный*) : Может быть одним из: - строка, *repo id* (например, `CompVis/ldm-text2im-large-256`) предобученного пайплайна, размещенного на Hub. - путь к *каталогу* (например, `./my_pipeline_directory/`), содержащему веса пайплайна, сохраненные с помощью [save_pretrained()](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained). | |
| dtype (`torch.dtype` или `dict[str, Union[str, torch.dtype]]`, *необязательный*) : Переопределяет стандартный `torch.dtype` и загружает модель с другим dtype. Чтобы загрузить подмодели с разными dtype, передайте `dict` (например, `{'transformer': torch.bfloat16, 'vae': torch.float16}`). Установите стандартный dtype для не указанных компонентов с помощью `default` (например, `{'transformer': torch.bfloat16, 'default': torch.float16}`). Если компонент не указан и стандартный dtype не задан, используется `torch.float32`. | |
| custom_pipeline (`str`, *optional*) : > [!WARNING] > 🧪 Это экспериментальная функция, которая может измениться в будущем. Может принимать одно из значений: - Строка, *repo id* (например, `hf-internal-testing/diffusers-dummy-pipeline`) пользовательского пайплайна, размещённого на Hub. Репозиторий должен содержать файл pipeline.py, в котором определяется пользовательский пайплайн. - Строка, *file name* пайплайна сообщества, размещённого на GitHub в разделе [Community](https://github.com/huggingface/diffusers/tree/main/examples/community). Допустимые имена файлов должны соответствовать имени файла, а не имени скрипта пайплайна (`clip_guided_stable_diffusion`, а не `clip_guided_stable_diffusion.py`). Пайплайны сообщества всегда загружаются из текущей ветки main на GitHub. - Путь к каталогу (`./my_pipeline_directory/`), содержащему пользовательский пайплайн. В каталоге должен находиться файл `pipeline.py`, определяющий пользовательский пайплайн. Подробнее о загрузке и создании пользовательских пайплайнов см. в разделе [Loading and Adding Custom Pipelines](https://huggingface.co/docs/diffusers/using-diffusers/custom_pipeline_overview) | |
| force_download (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли принудительно (пере)скачивать веса модели и файлы конфигурации, заменяя кэшированные версии, если они существуют. | |
| cache_dir (`Union[str, os.PathLike]`, *необязательный*) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется. | |
| 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. | |
| custom_revision (`str`, *optional*) : Конкретная версия модели для использования. Может быть именем ветки, именем тега или идентификатором коммита, аналогично `revision` при загрузке пользовательского пайплайна с Hub. По умолчанию используется последняя стабильная версия 🤗 Diffusers. | |
| mirror (`str`, *необязательный*) : Зеркальный источник для решения проблем с доступностью при загрузке модели в Китае. Мы не гарантируем актуальность или безопасность источника, поэтому за дополнительной информацией обращайтесь на сайт зеркала. | |
| device_map (`str`, *необязательный*) : Стратегия, определяющая, как различные компоненты конвейера должны распределяться по доступным устройствам. В настоящее время поддерживается только «сбалансированная» `device_map`. Подробнее см. [здесь](https://huggingface.co/docs/diffusers/main/en/tutorials/inference_with_big_models#device-placement). | |
| 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` вызовет ошибку. | |
| use_safetensors (`bool`, *необязательный*, по умолчанию `None`) : Если установлено в `None`, веса safetensors загружаются, если они доступны **и** если библиотека safetensors установлена. Если установлено в `True`, модель принудительно загружается из весов safetensors. Если установлено в `False`, веса safetensors не загружаются. | |
| use_onnx (`bool`, *необязательный*, по умолчанию `None`) : Если установлено в `True`, веса ONNX всегда будут загружаться, если они присутствуют. Если установлено в `False`, веса ONNX никогда не будут загружаться. По умолчанию `use_onnx` принимает значение атрибута класса `_is_onnx`, которое равно `False` для не-ONNX конвейеров и `True` для ONNX конвейеров. К весам ONNX относятся как файлы, заканчивающиеся на `.onnx`, так и на `.pb`. | |
| kwargs (остаточный словарь аргументов с ключами, *необязательный*) : может использоваться для переопределения переменных загрузки и сохранения (компонентов конвейера конкретного класса конвейера). Переопределённые компоненты передаются непосредственно в метод `__init__` конвейера. См. пример ниже для получения дополнительной информации. | |
| variant (`str`, *необязательный*) : Загружает веса из файла с указанным вариантом имени, например `"fp16"` или `"ema"`. | |
| disable_mmap ('bool', *optional*, по умолчанию 'False') : Отключает ли использование mmap при загрузке модели Safetensors. Этот параметр может обеспечить лучшую производительность, если модель находится на сетевом диске или жёстком диске, которые могут плохо справляться с частыми операциями перемотки, характерными для mmap. | |
| Создайте пайплайн диффузии PyTorch из предобученных весов пайплайна. | |
| По умолчанию пайплайн устанавливается в режим оценки (`model.eval()`). | |
| Если вы получаете сообщение об ошибке, приведённое ниже, вам необходимо дообучить веса для вашей целевой задачи: | |
| ``` | |
| 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. | |
| ``` | |
| > [!TIP] > Для использования частных или [gated](https://huggingface.co/docs/hub/models-gated#gated-models) моделей выполните вход | |
| с помощью `hf > auth login`. | |
| Примеры: | |
| ```py | |
| >>> from diffusers import DiffusionPipeline | |
| >>> # Download pipeline from huggingface.co and cache. | |
| >>> pipeline = DiffusionPipeline.from_pretrained("CompVis/ldm-text2im-large-256") | |
| >>> # Download pipeline that requires an authorization token | |
| >>> # For more information on access tokens, please refer to this section | |
| >>> # of the documentation](https://huggingface.co/docs/hub/security-tokens) | |
| >>> pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| >>> # Use a different scheduler | |
| >>> from diffusers import LMSDiscreteScheduler | |
| >>> scheduler = LMSDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| >>> pipeline.scheduler = scheduler | |
| ``` | |
| #### maybe_free_model_hooks[[diffusers.DiffusionPipeline.maybe_free_model_hooks]] | |
| ```python | |
| maybe_free_model_hooks() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1250) | |
| Метод, выполняющий следующие действия: | |
| - Выгружает все компоненты. | |
| - Удаляет все хуки модели, добавленные при использовании `enable_model_cpu_offload`, и затем применяет их снова. Если модель не была выгружена, эта функция ничего не делает. | |
| - Сбрасывает хуки с состоянием компонентов denoiser в diffusers, если они были добавлены с помощью `register_hook()`. | |
| Убедитесь, что вы добавили эту функцию в конец функции `__call__` вашего конвейера, чтобы он корректно работал при применении `enable_model_cpu_offload`. | |
| #### numpy_to_pil[[diffusers.DiffusionPipeline.numpy_to_pil]] | |
| ```python | |
| numpy_to_pil(images) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1945) | |
| Преобразование изображения NumPy или пакета изображений в изображение PIL. | |
| #### remove_all_hooks[[diffusers.DiffusionPipeline.remove_all_hooks]] | |
| ```python | |
| remove_all_hooks() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1143) | |
| Удаляет все хуки, добавленные при использовании `enable_sequential_cpu_offload` или `enable_model_cpu_offload`. | |
| #### reset_device_map[[diffusers.DiffusionPipeline.reset_device_map]] | |
| ```python | |
| reset_device_map() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1470) | |
| Сбрасывает карты устройств (если они есть) в None. | |
| #### save_pretrained[[diffusers.DiffusionPipeline.save_pretrained]] | |
| ```python | |
| save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, use_flashpack: bool = False, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L254) | |
| **Параметры:** | |
| save_directory (`str` или `os.PathLike`) : Каталог для сохранения конвейера. Будет создан, если не существует. | |
| safe_serialization (`bool`, *необязательный*, по умолчанию `True`) : Сохранять ли модель с помощью `safetensors` или традиционным способом PyTorch с использованием `pickle`. | |
| variant (`str`, *необязательный*) : Если указано, веса сохраняются в формате `pytorch_model.<variant>.bin`. | |
| max_shard_size (`int` или `str`, по умолчанию `None`) : Максимальный размер контрольной точки перед её разбиением на части. Каждая часть контрольной точки будет иметь размер, меньший этого значения. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, `"5GB"`). Если значение указано в виде целого числа, единицей измерения являются байты. Обратите внимание, что это ограничение будет уменьшено через определённый период времени (начиная с октября 2024 года), чтобы пользователи могли перейти на последнюю версию `diffusers`. Это делается для установления общего значения по умолчанию для этого аргумента в разных библиотеках экосистемы Hugging Face (например, `transformers` и `accelerate`). | |
| push_to_hub (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли после сохранения модели отправить её в репозиторий моделей Hugging Face. Репозиторий, в который нужно отправить модель, можно указать с помощью `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/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained). | |
| #### diffusers.StableDiffusionMixin.enable_freeu[[diffusers.StableDiffusionMixin.enable_freeu]] | |
| ```python | |
| diffusers.StableDiffusionMixin.enable_freeu(s1: float, s2: float, b1: float, b2: float) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2267) | |
| **Параметры:** | |
| s1 (`float`) : Коэффициент масштабирования для этапа 1, ослабляющий вклад признаков пропуска. Это делается для смягчения «эффекта чрезмерного сглаживания» в процессе улучшенного шумоподавления. | |
| s2 (`float`) : Коэффициент масштабирования для этапа 2, ослабляющий вклад признаков пропуска. Это делается для смягчения «эффекта чрезмерного сглаживания» в процессе улучшенного шумоподавления. | |
| b1 (`float`) : Коэффициент масштабирования для этапа 1, усиливающий вклад признаков базовой модели. | |
| b2 (`float`) : Коэффициент масштабирования для этапа 2, усиливающий вклад признаков базовой модели. | |
| Включает механизм FreeU, как описано в https://huggingface.co/papers/2309.11497. | |
| Суффиксы после коэффициентов масштабирования обозначают этапы, на которых они применяются. | |
| Сочетания значений, которые хорошо работают для различных пайплайнов, таких как Stable Diffusion v1, v2 и Stable Diffusion XL, приведены в [официальном репозитории](https://github.com/ChenyangSi/FreeU). | |
| #### diffusers.StableDiffusionMixin.disable_freeu[[diffusers.StableDiffusionMixin.disable_freeu]] | |
| ```python | |
| diffusers.StableDiffusionMixin.disable_freeu() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2289) | |
| Отключает механизм FreeU, если он включен. | |
| ## 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") | |
| ``` | |
| ## Обработчики событий[[diffusers.callbacks.PipelineCallback]] | |
| #### diffusers.callbacks.PipelineCallback[[diffusers.callbacks.PipelineCallback]] | |
| ```python | |
| diffusers.callbacks.PipelineCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L7) | |
| Базовый класс для всех официальных колбэков, используемых в конвейере. Этот класс обеспечивает структуру для реализации пользовательских колбэков и гарантирует, что все колбэки имеют согласованный интерфейс. | |
| Реализуйте следующее: `tensor_inputs`: этот метод должен возвращать список тензорных входных данных, специфичных для вашего обратного вызова. Вы сможете включать только переменные, перечисленные в атрибуте `._callback_tensor_inputs` вашего класса конвейера. `callback_fn`: этот метод определяет основную функциональность вашего обратного вызова. | |
| #### diffusers.callbacks.SDCFGCutoffCallback[[diffusers.callbacks.SDCFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SDCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L69) | |
| Функция обратного вызова для конвейеров Stable Diffusion. После определённого количества шагов (заданного параметром `cutoff_step_ratio` или `cutoff_step_index`) эта функция отключает CFG. | |
| Примечание: этот колбэк изменяет пайплайн, устанавливая атрибут `_guidance_scale` в 0.0 после шага отсечения. | |
| #### diffusers.callbacks.SDXLCFGCutoffCallback[[diffusers.callbacks.SDXLCFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SDXLCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L98) | |
| Функция обратного вызова для базовых пайплайнов Stable Diffusion XL. После определённого количества шагов (заданного параметром `cutoff_step_ratio` или `cutoff_step_index`) эта функция отключает CFG. | |
| Примечание: этот колбэк изменяет пайплайн, устанавливая атрибут `_guidance_scale` в 0.0 после шага отсечения. | |
| #### diffusers.callbacks.SDXLControlnetCFGCutoffCallback[[diffusers.callbacks.SDXLControlnetCFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SDXLControlnetCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L140) | |
| Функция обратного вызова для пайплайнов Controlnet Stable Diffusion XL. После определённого количества шагов (заданного параметром `cutoff_step_ratio` или `cutoff_step_index`) эта функция отключает CFG. | |
| Примечание: этот колбэк изменяет пайплайн, устанавливая атрибут `_guidance_scale` в 0.0 после шага отсечения. | |
| #### diffusers.callbacks.IPAdapterScaleCutoffCallback[[diffusers.callbacks.IPAdapterScaleCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.IPAdapterScaleCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L188) | |
| Функция обратного вызова для любого конвейера, наследующего `IPAdapterMixin`. После определённого количества шагов (заданного параметрами `cutoff_step_ratio` или `cutoff_step_index`) эта функция обратного вызова установит масштаб IP Adapter в `0.0`. | |
| Note: Этот callback изменяет процессоры внимания IP Adapter, устанавливая масштаб в 0.0 после шага отсечения. | |
| #### diffusers.callbacks.SD3CFGCutoffCallback[[diffusers.callbacks.SD3CFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SD3CFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L212) | |
| Функция обратного вызова для пайплайнов Stable Diffusion 3. После определённого количества шагов (заданного параметром `cutoff_step_ratio` или `cutoff_step_index`) эта функция отключает CFG. | |
| Примечание: этот колбэк изменяет пайплайн, устанавливая атрибут `_guidance_scale` в 0.0 после шага отсечения. | |
Xet Storage Details
- Size:
- 66.5 kB
- Xet hash:
- 2e0542f302f0708ef5dfbde1529b8942d8ad9623e28fe881efa63ebd51ab5f24
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.