Diffusers documentation
Модель SD3 Transformer
Модель SD3 Transformer
Модель Transformer, представленная в Stable Diffusion 3. Её новизна заключается в блоке трансформера MMDiT.
SD3Transformer2DModel
класс diffusers.SD3Transformer2DModel
< source >( 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
< source >( 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
< source >( 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 (
listoftorch.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.
Включает объединённые проекции QKV. Для модулей само-внимания все матрицы проекций (т. е. запрос, ключ, значение) объединяются. Для модулей кросс-внимания объединяются матрицы проекций ключа и значения.
> Этот API 🧪 экспериментальный.
Отключает объединенную проекцию QKV, если она включена.
> Этот API 🧪 экспериментальный.