Diffusers documentation

Модель SD3 Transformer

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Модель SD3 Transformer

Модель Transformer, представленная в Stable Diffusion 3. Её новизна заключается в блоке трансформера MMDiT.

SD3Transformer2DModel

класс diffusers.SD3Transformer2DModel

< >

( sample_size: int = 128patch_size: int = 2in_channels: int = 16num_layers: int = 18attention_head_dim: int = 64num_attention_heads: int = 18joint_attention_dim: int = 4096caption_projection_dim: int = 1152pooled_projection_dim: int = 2048out_channels: int = 16pos_embed_max_size: int = 96dual_attention_layers: tuple[int, ...] = ()qk_norm: str | None = None )

Параметры

  • sample_size (int, по умолчанию 128) — Ширина/высота латентов. Это значение фиксировано во время обучения, поскольку используется для обучения набора позиционных эмбеддингов.
  • patch_size (int, по умолчанию 2) — Размер патча для разбиения входных данных на небольшие патчи.
  • in_channels (int, по умолчанию 16) — Количество латентных каналов на входе.
  • num_layers (int, по умолчанию 18) — Количество блоков трансформера, которые будут использоваться.
  • attention_head_dim (int, по умолчанию 64) — Количество каналов в каждой голове.
  • num_attention_heads (int, по умолчанию 18) — Количество голов, используемых для многоголовного внимания.
  • joint_attention_dim (int, по умолчанию 4096) — Размерность эмбеддингов для совместного внимания текста и изображения.
  • caption_projection_dim (int, по умолчанию 1152) — Размерность встраиваний подписей.
  • pooled_projection_dim (int, по умолчанию 2048) — Размерность встраивания для пул-проекций текста.
  • out_channels (int, по умолчанию 16) — Количество латентных каналов на выходе.
  • pos_embed_max_size (int, по умолчанию 96) — Максимальная высота/ширина латентных векторов позиционных эмбеддингов.
  • dual_attention_layers (tuple[int, ...], по умолчанию ()) — Количество блоков трансформера с двойным потоком, которые следует использовать.
  • qk_norm (str, необязательный, по умолчанию None) — Нормализация, используемая для query и key в слое внимания. Если None, нормализация не применяется.

Модель Transformer, представленная в Stable Diffusion 3.

enable_forward_chunking

< >

( chunk_size: int | None = Nonedim: int = 0 )

Параметры

  • chunk_size (int, необязательный) — Размер блока для полносвязных слоёв. Если не указан, полносвязный слой будет выполняться отдельно для каждого тензора с dim=dim.
  • dim (int, необязательный, по умолчанию 0) — Размерность, по которой вычисления в блоке прямой передачи (feed-forward) должны быть разбиты на части. Выберите dim=0 (размер батча) или dim=1 (длина последовательности).

Устанавливает процессор внимания для использования feed forward chunking.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )

Параметры

  • hidden_states (torch.Tensor формы (batch size, channel, height, width)) — Входные hidden_states.
  • encoder_hidden_states (torch.Tensor формы (batch size, sequence_len, embed_dims)) — Условные эмбеддинги (эмбеддинги, вычисленные на основе входных условий, таких как промпты), которые следует использовать.
  • pooled_projections (torch.Tensor формы (batch_size, projection_dim)) — Векторы, полученные проекцией эмбеддингов входных условий.
  • timestep (torch.LongTensor) — Используется для указания шага денойзинга.
  • block_controlnet_hidden_states (list of torch.Tensor) — Список тензоров, которые при указании добавляются к остаточным связям блоков трансформера.
  • joint_attention_kwargs (dict, необязательный) — Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в модуле diffusers.models.attention_processor.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать ~models.transformer_2d.Transformer2DModelOutput вместо обычного кортежа.
  • skip_layers (list из int, необязательный) — Список индексов слоёв, которые нужно пропустить при прямом проходе.

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

fuse_qkv_projections

< >

( )

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

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

unfuse_qkv_projections

< >

( )

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

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

Update on GitHub