Diffusers documentation

Модель SD3 Transformer

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

Модель 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 = ()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