Buckets:
| # UNetMotionModel | |
| Модель [UNet](https://huggingface.co/papers/1505.04597) была первоначально представлена Ronneberger et al для сегментации биомедицинских изображений, однако она также широко используется в 🤗 Diffusers, поскольку на выходе она генерирует изображения того же размера, что и входные. Это один из ключевых компонентов диффузионной системы, так как именно он обеспечивает непосредственный процесс диффузии. В 🤗 Diffusers существует несколько вариантов модели UNet, которые различаются количеством измерений и тем, является ли модель условной. Здесь представлена 2D-модель UNet. | |
| Аннотация из статьи: | |
| *Существует широкое согласие в том, что успешное обучение глубоких сетей требует тысяч размеченных обучающих примеров. В данной статье мы представляем сеть и стратегию обучения, которые опираются на активное использование аугментации данных для более эффективного использования доступных размеченных примеров. Архитектура состоит из сжимающего пути для захвата контекста и симметричного расширяющего пути, обеспечивающего точную локализацию. Мы показываем, что такая сеть может быть обучена end-to-end по очень малому количеству изображений и превосходит предыдущий лучший метод (сверточная сеть со скользящим окном) на конкурсе ISBI по сегментации нейронных структур в электронных микроскопических стопках. Используя ту же сеть, обученную на изображениях, полученные с помощью световой микроскопии (фазовый контраст и DIC), мы с большим отрывом выиграли конкурс ISBI по отслеживанию клеток 2015 года в этих категориях. Кроме того, сеть работает быстро. Сегментация изображения 512x512 занимает менее секунды на современном GPU. Полная реализация (на основе Caffe) и обученные сети доступны по адресу http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.* | |
| ## UNetMotionModel[[diffusers.UNetMotionModel]] | |
| #### diffusers.UNetMotionModel[[diffusers.UNetMotionModel]] | |
| ```python | |
| diffusers.UNetMotionModel(sample_size: int | None = None, in_channels: int = 4, out_channels: int = 4, down_block_types: tuple[str, ...] = ('CrossAttnDownBlockMotion', 'CrossAttnDownBlockMotion', 'CrossAttnDownBlockMotion', 'DownBlockMotion'), up_block_types: tuple[str, ...] = ('UpBlockMotion', 'CrossAttnUpBlockMotion', 'CrossAttnUpBlockMotion', 'CrossAttnUpBlockMotion'), block_out_channels: tuple[int, ...] = (320, 640, 1280, 1280), layers_per_block: int | tuple[int] = 2, downsample_padding: int = 1, mid_block_scale_factor: float = 1, act_fn: str = 'silu', norm_num_groups: int = 32, norm_eps: float = 1e-05, cross_attention_dim: int = 1280, transformer_layers_per_block: int | tuple[int] | tuple[tuple] = 1, reverse_transformer_layers_per_block: int | tuple[int] | tuple[tuple] | None = None, temporal_transformer_layers_per_block: int | tuple[int] | tuple[tuple] = 1, reverse_temporal_transformer_layers_per_block: int | tuple[int] | tuple[tuple] | None = None, transformer_layers_per_mid_block: int | tuple[int] | None = None, temporal_transformer_layers_per_mid_block: int | tuple[int] | None = 1, use_linear_projection: bool = False, num_attention_heads: int | tuple[int, ...] = 8, motion_max_seq_length: int = 32, motion_num_attention_heads: int | tuple[int, ...] = 8, reverse_motion_num_attention_heads: int | tuple[int, ...] | tuple[tuple[int, ...], ...] | None = None, use_motion_mid_block: bool = True, mid_block_layers: int = 1, encoder_hid_dim: int | None = None, encoder_hid_dim_type: str | None = None, addition_embed_type: str | None = None, addition_time_embed_dim: int | None = None, projection_class_embeddings_input_dim: int | None = None, time_cond_proj_dim: int | None = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1201) | |
| Модифицированная условная 2D UNet-модель, которая принимает зашумленный образец, условное состояние и шаг времени и возвращает вывод той же формы. | |
| Эта модель наследуется от [ModelMixin](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin). См. документацию суперкласса для его универсальных методов, реализованных для всех моделей (например, загрузка или сохранение). | |
| #### disable_freeu[[diffusers.UNetMotionModel.disable_freeu]] | |
| ```python | |
| disable_freeu() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1842) | |
| Отключает механизм FreeU. | |
| #### enable_forward_chunking[[diffusers.UNetMotionModel.enable_forward_chunking]] | |
| ```python | |
| enable_forward_chunking(chunk_size: int | None = None, dim: int = 0) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1760) | |
| **Параметры:** | |
| chunk_size (`int`, *optional*) : Размер блока для полносвязных слоёв. Если не указан, полносвязный слой будет выполняться отдельно для каждого тензора с dim=`dim`. | |
| dim (`int`, *optional*, по умолчанию `0`) : Размерность, по которой вычисления в feed-forward слое должны быть разбиты на блоки. Выберите dim=0 (batch) или dim=1 (длина последовательности). | |
| Устанавливает процессор внимания для использования [feed forward chunking](https://huggingface.co/blog/reformer#2-chunked-feed-forward-layers). | |
| #### enable_freeu[[diffusers.UNetMotionModel.enable_freeu]] | |
| ```python | |
| enable_freeu(s1: float, s2: float, b1: float, b2: float) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1817) | |
| **Параметры:** | |
| 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). | |
| #### forward[[diffusers.UNetMotionModel.forward]] | |
| ```python | |
| forward(sample: Tensor, timestep: typing.Union[torch.Tensor, float, int], encoder_hidden_states: Tensor, timestep_cond: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, cross_attention_kwargs: dict[str, typing.Any] | None = None, added_cond_kwargs: dict[str, torch.Tensor] | None = None, down_block_additional_residuals: tuple[torch.Tensor] | None = None, mid_block_additional_residual: typing.Optional[torch.Tensor] = None, return_dict: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1882) | |
| **Параметры:** | |
| sample (`torch.Tensor`) : Шумовой входной тензор со следующей формой `(batch, num_frames, channel, height, width`. | |
| timestep (`torch.Tensor` или `float` или `int`) : Количество шагов для удаления шума из входных данных. | |
| encoder_hidden_states (`torch.Tensor`) : Скрытые состояния энкодера с формой `(batch, sequence_length, feature_dim)`. | |
| timestep_cond : (`torch.Tensor`, *необязательный*, по умолчанию `None`): Условные эмбеддинги для временного шага. Если переданы, эмбеддинги будут сложены с сэмплами, прошедшими через слой `self.time_embedding`, чтобы получить эмбеддинги временного шага. | |
| attention_mask (`torch.Tensor`, *необязательный*, по умолчанию `None`) : маска внимания формы `(batch, key_tokens)` применяется к `encoder_hidden_states`. Если значение равно `1`, маска сохраняется, иначе, если равно `0`, она отбрасывается. Маска преобразуется в смещение (bias), которое добавляет большие отрицательные значения к оценкам внимания, соответствующим токенам, подлежащим отбрасыванию. | |
| cross_attention_kwargs (`dict`, *необязательный*) : Словарь kwargs, который при указании передается в `AttentionProcessor`, определенный в `self.processor` в [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| added_cond_kwargs (`dict`, *необязательный*) : Словарь дополнительных эмбеддингов (например, текстовых и временных), используемых для обусловливания модели. | |
| down_block_additional_residuals : (`tuple` из `torch.Tensor`, *необязательный*): Кортеж тензоров, которые при указании добавляются к остаткам (residuals) блоков down unet. | |
| mid_block_additional_residual : (`torch.Tensor`, *необязательный*): тензор, который при указании добавляется к остаточному соединению среднего блока unet. | |
| return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `UNetMotionOutput` вместо обычного кортежа. | |
| **Возвращает:** `UNetMotionOutput` или `tuple` | |
| Если `return_dict` равно True, возвращается `UNetMotionOutput`, иначе возвращается `tuple`, где первый элемент — это тензор сэмпла. | |
| Метод forward модели [UNetMotionModel](/docs/diffusers/main/ru/api/models/unet-motion#diffusers.UNetMotionModel). | |
| #### freeze_unet2d_params[[diffusers.UNetMotionModel.freeze_unet2d_params]] | |
| ```python | |
| freeze_unet2d_params() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1691) | |
| Заморозьте веса только модели UNet2DConditionModel, оставив модули движения незамороженными для дообучения. | |
| #### fuse_qkv_projections[[diffusers.UNetMotionModel.fuse_qkv_projections]] | |
| ```python | |
| fuse_qkv_projections() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1851) | |
| Включает объединённые проекции QKV. Для модулей само-внимания все матрицы проекций (т. е. запрос, ключ, значение) объединяются. Для модулей кросс-внимания объединяются матрицы проекций ключа и значения. | |
| > [!WARNING] > Этот API 🧪 экспериментальный. | |
| #### set_default_attn_processor[[diffusers.UNetMotionModel.set_default_attn_processor]] | |
| ```python | |
| set_default_attn_processor() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1801) | |
| Отключает пользовательские обработчики внимания и устанавливает реализацию внимания по умолчанию. | |
| #### unfuse_qkv_projections[[diffusers.UNetMotionModel.unfuse_qkv_projections]] | |
| ```python | |
| unfuse_qkv_projections() | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_motion_model.py#L1873) | |
| Отключает объединенную проекцию QKV, если она включена. | |
| > [!WARNING] > Этот API 🧪 экспериментальный. | |
| ## UNet3DConditionOutput[[diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput]] | |
| #### diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput[[diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput]] | |
| ```python | |
| diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput(sample: Tensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_3d_condition.py#L50) | |
| **Параметры:** | |
| sample (`torch.Tensor` формы `(batch_size, num_channels, num_frames, height, width)`) : Выходные скрытые состояния, обусловленные входом `encoder_hidden_states`. Выход последнего слоя модели. | |
| Вывод [UNet3DConditionModel](/docs/diffusers/main/ru/api/models/unet3d-cond#diffusers.UNet3DConditionModel). | |
Xet Storage Details
- Size:
- 15.7 kB
- Xet hash:
- 74c63282ce3753e98229381457e16aa84f1f9514a4f9d3127651f323e59993a3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.