Diffusers documentation
MotifVideoTransformer3DModel
MotifVideoTransformer3DModel
Модель Diffusion Transformer для 3D-видеоподобных данных была представлена в Motif-Video командой Motif Technologies.
Модель использует трёхэтапную архитектуру с 12 слоями декодера dual-stream + 16 слоями single-stream + 8 слоями DDT и вращательными позиционными эмбеддингами (RoPE) для генерации видео.
Модель можно загрузить с помощью следующего фрагмента кода.
from diffusers import MotifVideoTransformer3DModel
transformer = MotifVideoTransformer3DModel.from_pretrained("Motif-Technologies/Motif-Video-2B", subfolder="transformer", dtype=torch.bfloat16)MotifVideoTransformer3DModel
класс diffusers.MotifVideoTransformer3DModel
< source >( in_channels: int = 33out_channels: int = 16num_attention_heads: int = 24attention_head_dim: int = 128num_layers: int = 20num_single_layers: int = 40num_decoder_layers: int = 0mlp_ratio: float = 4.0patch_size: int = 2patch_size_t: int = 1qk_norm: str = 'rms_norm'norm_type: str = 'layer_norm'text_embed_dim: int = 4096image_embed_dim: int | None = Nonerope_theta: float = 256.0rope_axes_dim: typing.Tuple[int, ...] = (16, 56, 56)enable_text_cross_attention_dual: bool = Falseenable_text_cross_attention_single: bool = False )
Параметры
- in_channels (
int, по умолчанию33) — Количество каналов на входе. - out_channels (
int, по умолчанию16) — Количество каналов на выходе. - num_attention_heads (
int, по умолчанию24) — Количество голов, используемых для многоголовного внимания. - attention_head_dim (
int, по умолчанию128) — Количество каналов в каждой голове. - num_layers (
int, по умолчанию20) — Количество используемых блоков dual-stream. - num_single_layers (
int, по умолчанию40) — Количество слоев однопоточных блоков, которые следует использовать. - num_decoder_layers (
int, по умолчанию0) — Количество декодерных слоёв в однопоточных блоках. - mlp_ratio (
float, по умолчанию4.0) — Соотношение размера скрытого слоя к размеру входа в полносвязной сети. - patch_size (
int, по умолчанию2) — Размер пространственных патчей, используемых в слое встраивания патчей. - patch_size_t (
int, по умолчанию1) — Размер временных патчей, используемых в слое встраивания патчей. - qk_norm (
str, по умолчаниюrms_norm) — Тип нормализации, применяемой к проекциям запроса и ключа в слоях внимания. - text_embed_dim (
int, по умолчанию4096) — Входное измерение текстовых эмбеддингов от текстового энкодера. - image_embed_dim (
int, необязательный) — Входное измерение эмбеддингов изображений от визуального энкодера. Если указано, включает условное формирование на основе изображений. - rope_theta (
float, по умолчанию256.0) — Значение theta, используемое в слое RoPE. - rope_axes_dim (
Tuple[int], по умолчанию(16, 56, 56)) — Размерности осей, используемых в слое RoPE.
Модель Transformer для видеоподобных данных, используемая в модели Motif-Video.
forward
< source >( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_attention_mask: typing.Optional[torch.Tensor] = Noneimage_embeds: typing.Optional[torch.Tensor] = Noneattention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonereturn_dict: bool = True ) → Transformer2DModelOutput or tuple
Параметры
- hidden_states (
torch.Tensor) — Входной латентный тензор формы(batch_size, channels, num_frames, height, width). - timestep (
torch.LongTensor) — Шаги диффузии формы(batch_size,). - encoder_hidden_states (
torch.Tensor) — Текстовое условие формы(batch_size, sequence_length, embed_dim). - encoder_attention_mask (
torch.Tensor) — Маска для текстового условия формы(batch_size, sequence_length). - image_embeds (
torch.Tensor, необязательный) — Векторы изображений из визуального кодировщика формы(batch_size, num_tokens, embed_dim). - attention_kwargs (
dict, необязательный) — Дополнительные аргументы для процессоров внимания. - return_dict (
bool, по умолчаниюTrue) — Следует ли возвращать Transformer2DModelOutput.
Возвращает
Transformer2DModelOutput или tuple
Предсказанные образцы.
Прямой проход модели MotifVideoTransformer3DModel.
Transformer2DModelOutput
класс diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Параметры
- sample (
torch.Tensorформы(batch_size, num_channels, height, width)или(batch size, num_vector_embeds - 1, num_latent_pixels), если Transformer2DModel дискретный) — Выходные скрытые состояния, обусловленные входомencoder_hidden_states. Если модель дискретная, возвращает распределения вероятностей для латентных пикселей без шума.
Вывод Transformer2DModel.