Diffusers documentation

PixArtTransformer2DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

PixArtTransformer2DModel

Модель Transformer для изображений от PixArt-Alpha и PixArt-Sigma.

PixArtTransformer2DModel

класс diffusers.PixArtTransformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = 8num_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = 1152attention_bias: bool = Truesample_size: int = 128patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_single'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06interpolation_scale: int | None = Noneuse_additional_conditions: bool | None = Nonecaption_channels: int | None = Noneattention_type: str | None = 'default' )

Параметры

  • num_attention_heads (int, optional, по умолчанию 16) — количество головок для использования в механизме внимания с несколькими головками.
  • attention_head_dim (int, optional, по умолчанию 72) — количество каналов в каждой голове.
  • in_channels (int, по умолчанию 4) — количество каналов на входе.
  • out_channels (int, optional) — Количество каналов на выходе. Укажите этот параметр, если количество выходных каналов отличается от входного.
  • num_layers (int, optional, по умолчанию 28) — Количество блоков Transformer, используемых в модели.
  • dropout (float, optional, по умолчанию 0.0) — Вероятность dropout, используемая внутри блоков Transformer.
  • norm_num_groups (int, optional, по умолчанию 32) — Количество групп для групповой нормализации внутри блоков Transformer.
  • cross_attention_dim (int, optional) — Размерность для слоёв кросс-внимания, как правило, совпадающая с размерностью скрытых состояний энкодера.
  • attention_bias (bool, optional, по умолчанию True) — Определяет, должен ли параметр смещения (bias) присутствовать в механизме внимания блоков Transformer.
  • sample_size (int, по умолчанию 128) — Ширина латентных изображений. Этот параметр фиксируется во время обучения.
  • patch_size (int, по умолчанию 2) — Размер патчей, которые обрабатывает модель; актуально для архитектур, работающих с нелинейными данными.
  • activation_fn (str, optional, по умолчанию “gelu-approximate”) — Функция активации, используемая в полносвязных сетях внутри блоков Transformer.
  • num_embeds_ada_norm (int, optional, по умолчанию 1000) — Количество эмбеддингов для AdaLayerNorm, фиксированное во время обучения и влияющее на максимальное количество шагов денойзинга при инференсе.
  • upcast_attention (bool, optional, по умолчанию False) — Если установлено в true, повышает разрядность размерностей механизма внимания для потенциального улучшения производительности.
  • norm_type (str, optional, по умолчанию “ada_norm_zero”) — Указывает тип используемой нормализации, может быть ‘ada_norm_zero’.
  • norm_elementwise_affine (bool, optional, по умолчанию False) — Если true, включает аффинные параметры поэлементно в слоях нормализации.
  • norm_eps (float, optional, по умолчанию 1e-6) — Небольшая константа, добавляемая к знаменателю в слоях нормализации для предотвращения деления на ноль.
  • interpolation_scale (int, optional) — Коэффициент масштабирования, используемый при интерполяции позиционных эмбеддингов.
  • use_additional_conditions (bool, optional) — Использовать дополнительные условия в качестве входных данных.
  • attention_type (str, optional, по умолчанию “default”) — Тип механизма внимания, который будет использоваться.
  • caption_channels (int, optional, по умолчанию None) — Количество каналов, используемых для проекции эмбеддингов описаний.
  • use_linear_projection (bool, optional, по умолчанию False) — Устаревший аргумент. Будет удалён в будущей версии.
  • num_vector_embeds (bool, optional, по умолчанию False) — Устаревший аргумент. Будет удалён в будущей версии.

Двумерная модель Transformer, представленная в семействе моделей PixArt (https://huggingface.co/papers/2310.00426, https://huggingface.co/papers/2403.04692).

forward

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict = Nonecross_attention_kwargs: dict = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Параметры

  • hidden_states (torch.FloatTensor формы (batch size, channel, height, width)) — Входные hidden_states.
  • encoder_hidden_states (torch.FloatTensor формы (batch size, sequence len, embed dims), необязательный) — Условные эмбеддинги для слоя кросс-внимания. Если не заданы, кросс-внимание по умолчанию заменяется на само-внимание.
  • timestep (torch.LongTensor, необязательный) — Используется для указания шага денойзинга. Необязательный timestep, применяемый как эмбеддинг в AdaLayerNorm.
  • added_cond_kwargs — (dict[str, Any], необязательный): Дополнительные условия, используемые в качестве входных данных.
  • cross_attention_kwargs ( dict[str, Any], необязательный) — Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.
  • attention_mask ( torch.Tensor, необязательный) — Маска внимания формы (batch, key_tokens) применяется к encoder_hidden_states. Если значение равно 1, маска сохраняется, иначе, если равно 0, — отбрасывается. Маска преобразуется в смещение (bias), которое добавляет большие отрицательные значения к оценкам внимания, соответствующим токенам, подлежащим отбрасыванию.
  • encoder_attention_mask ( torch.Tensor, необязательный) — Маска кросс-внимания, применяемая к encoder_hidden_states. Поддерживаются два формата:
    • Маска (batch, sequence_length) True = сохранить, False = отбросить.
    • Смещение (batch, 1, sequence_length) 0 = сохранить, -10000 = отбросить.

    Если ndim == 2: значение будет интерпретировано как маска, а затем преобразовано в смещение, соответствующее формату, описанному выше. Это смещение будет добавлено к оценкам кросс-внимания.

  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать UNet2DConditionOutput вместо обычного кортежа.

Метод forward модели PixArtTransformer2DModel.

fuse_qkv_projections

< >

( )

Включает объединённые проекции QKV. Для модулей само-внимания все матрицы проекций (т. е. запрос, ключ, значение) объединяются. Для модулей кросс-внимания объединяются матрицы проекций ключа и значения.

> Этот API 🧪 экспериментальный.

set_default_attn_processor

< >

( )

Отключает пользовательские обработчики внимания и устанавливает реализацию внимания по умолчанию.

Можно просто использовать AttnProcessor(), так как в стандартной модели PixArt нет каких-либо нестандартных процессоров внимания.

unfuse_qkv_projections

< >

( )

Отключает объединенную проекцию QKV, если она включена.

> Этот API 🧪 экспериментальный.

Update on GitHub