Diffusers documentation

LTX2VideoTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

LTX2VideoTransformer3DModel

Модель Diffusion Transformer для 3D-данных от LTX была представлена компанией Lightricks.

Модель можно загрузить с помощью следующего фрагмента кода.

from diffusers import LTX2VideoTransformer3DModel

transformer = LTX2VideoTransformer3DModel.from_pretrained("Lightricks/LTX-2", subfolder="transformer", dtype=torch.bfloat16).to("cuda")  # or "mps", "xpu", "cpu"

LTX2VideoTransformer3DModel

класс diffusers.LTX2VideoTransformer3DModel

< >

( in_channels: int = 128out_channels: int | None = 128patch_size: int = 1patch_size_t: int = 1num_attention_heads: int = 32attention_head_dim: int = 128cross_attention_dim: int = 4096vae_scale_factors: tuple[int, int, int] = (8, 32, 32)pos_embed_max_pos: int = 20base_height: int = 2048base_width: int = 2048gated_attn: bool = Falsecross_attn_mod: bool = Falseaudio_in_channels: int = 128audio_out_channels: int | None = 128audio_patch_size: int = 1audio_patch_size_t: int = 1audio_num_attention_heads: int = 32audio_attention_head_dim: int = 64audio_cross_attention_dim: int = 2048audio_scale_factor: int = 4audio_pos_embed_max_pos: int = 20audio_sampling_rate: int = 16000audio_hop_length: int = 160audio_gated_attn: bool = Falseaudio_cross_attn_mod: bool = Falsenum_layers: int = 48activation_fn: str = 'gelu-approximate'qk_norm: str = 'rms_norm_across_heads'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06caption_channels: int = 3840attention_bias: bool = Trueattention_out_bias: bool = Truerope_theta: float = 10000.0rope_double_precision: bool = Truecausal_offset: int = 1timestep_scale_multiplier: int = 1000cross_attn_timestep_scale_multiplier: int = 1000rope_type: str = 'interleaved'use_prompt_embeddings = Trueperturbed_attn: bool = Falseff_bias: bool = Trueaudio_ff_bias: bool = Trueuse_prompt_adaln_single: bool = Trueuse_keyframes_abs_pos_embedding: bool = False )

Параметры

  • in_channels (int, по умолчанию 128) — Количество каналов на входе.
  • out_channels (int, по умолчанию 128) — Количество каналов на выходе.
  • patch_size (int, по умолчанию 1) — Размер пространственных патчей, используемых в слое встраивания патчей.
  • patch_size_t (int, по умолчанию 1) — Размер временных патчей, используемых в слое встраивания патчей.
  • num_attention_heads (int, по умолчанию 32) — Количество голов, используемых для многоголовного внимания.
  • attention_head_dim (int, по умолчанию 64) — Количество каналов в каждой голове.
  • cross_attention_dim (int, по умолчанию 2048 ) — Количество каналов для головок кросс-внимания.
  • num_layers (int, по умолчанию 28) — Количество блоков Transformer, используемых в модели.
  • activation_fn (str, по умолчанию "gelu-approximate") — Функция активации, используемая в полносвязном слое.
  • qk_norm (str, по умолчанию "rms_norm_across_heads") — Слой нормализации, который следует использовать.
  • ff_bias (bool, по умолчанию True) — Указывает, включают ли линейные слои слоя feed-forward видеопотока смещение (bias). Для LTX-2.5 — False.
  • audio_ff_bias (bool, по умолчанию True) — Включают ли линейные слои аудио-слоя прямой передачи (feed-forward) смещение (bias).
  • use_prompt_adaln_single (bool, по умолчанию True) — Определяет, зависит ли модуляция Key/Value кросс-внимания для промпта от временного шага. Если False, используется фиксированная таблица для каждого слоя, что позволяет кэшировать значения Key/Value кросс-внимания между шагами денойзинга для данного промпта.
  • use_keyframes_abs_pos_embedding (bool, по умолчанию False) — Определяет, следует ли сохранять обученное абсолютное позиционное вложение размера (1, inner_dim) для токенов сгенерированных ключевых кадров (LTX-2.5). Если установлено в True, токены, выбранные с помощью video_keyframes_mask, получают это вложение. Аргумент необязательный; при его отсутствии дистиллированный прямой проход остаётся без изменений.

Модель Transformer для видеоподобных данных, используемая в LTX.

forward

< >

( hidden_states: Tensoraudio_hidden_states: Tensorencoder_hidden_states: Tensoraudio_encoder_hidden_states: Tensortimestep: LongTensoraudio_timestep: typing.Optional[torch.LongTensor] = Nonesigma: typing.Optional[torch.Tensor] = Noneaudio_sigma: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Noneaudio_encoder_attention_mask: typing.Optional[torch.Tensor] = Nonenum_frames: int | None = Noneheight: int | None = Nonewidth: int | None = Nonefps: float = 24.0audio_num_frames: int | None = Nonevideo_coords: typing.Optional[torch.Tensor] = Noneaudio_coords: typing.Optional[torch.Tensor] = Noneisolate_modalities: bool = Falsespatio_temporal_guidance_blocks: list[int] | None = Noneperturbation_mask: typing.Optional[torch.Tensor] = Noneuse_cross_timestep: bool = Falseattention_kwargs: dict[str, typing.Any] | None = Nonevideo_self_attention_mask: typing.Optional[torch.Tensor] = Nonevideo_keyframes_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → AudioVisualModelOutput or tuple

Параметры

  • hidden_states (torch.Tensor) — Входные латенты видео, разбитые на патчи, с формой (batch_size, num_video_tokens, in_channels).
  • audio_hidden_states (torch.Tensor) — Входные патчифицированные аудио-латенты формы (batch_size, num_audio_tokens, audio_in_channels).
  • encoder_hidden_states (torch.Tensor) — Входные текстовые эмбеддинги видео формы (batch_size, text_seq_len, self.config.caption_channels).
  • audio_encoder_hidden_states (torch.Tensor) — Входные аудио-текстовые эмбеддинги формы (batch_size, text_seq_len, self.config.caption_channels).
  • timestep (torch.Tensor) — Входной временной шаг формы (batch_size, num_video_tokens). Значения должны быть уже масштабированы с помощью self.config.timestep_scale_multiplier.
  • audio_timestep (torch.Tensor, необязательный) — Входной timestep формы (batch_size,) или (batch_size, num_audio_tokens) для параметров модуляции аудио. Используется только в некоторых пайплайнах, например, в пайплайне I2V.
  • sigma (torch.Tensor, необязательный) — Входной масштабированный временной шаг формы (batch_size,). Используется для модуляции кросс-внимания видеопромпта в моделях, таких как LTX-2.3.
  • audio_sigma (torch.Tensor, необязательный) — Входной масштабированный временной шаг формы (batch_size,). Используется для модуляции кросс-внимания аудио-промпта в моделях, таких как LTX-2.3. Если sigma передан, а audio_sigma — нет, audio_sigma будет установлен в значение переданного sigma.
  • encoder_attention_mask (torch.Tensor, необязательный) — Необязательная мультипликативная маска внимания для текста с формой (batch_size, text_seq_len).
  • audio_encoder_attention_mask (torch.Tensor, необязательный) — Необязательная мультипликативная маска внимания для текста формы (batch_size, text_seq_len) для моделирования аудио.
  • num_frames (int, необязательный) — Количество латентных кадров видео. Используется при вычислении координат видео для RoPE.
  • height (int, необязательный) — Высота латентного видео. Используется при вычислении координат видео для RoPE.
  • width (int, необязательный) — Ширина латентного видео. Используется при вычислении координат видео для RoPE.
  • fps — (float, необязательный, по умолчанию 24.0): Требуемое количество кадров в секунде для генерируемого видео. Используется при вычислении координат видео для RoPE.
  • audio_num_frames — (int, необязательный): Количество латентных аудиокадров. Используется при вычислении координат аудио для RoPE.
  • video_coords (torch.Tensor, необязательный) — Координаты видео, используемые при вычислении вращательных позиционных эмбеддингов (RoPE) формы (batch_size, 3, num_video_tokens, 2). Если не переданы, они будут вычислены внутри forward.
  • audio_coords (torch.Tensor, необязательный) — Координаты аудио, используемые при вычислении вращательных позиционных эмбеддингов (RoPE) формы (batch_size, 1, num_audio_tokens, 2). Если не переданы, они будут вычислены внутри forward.
  • isolate_modalities (bool, необязательный, по умолчанию False) — Определяет, следует ли изолировать каждую модальность, отключая кросс-модальное (аудио-в-видео и видео-в-аудио) внимание (для всех блоков). Используйте для направленного управления модальностями в LTX-2.3.
  • spatio_temporal_guidance_blocks (list[int], необязательный, по умолчанию None) — Индексы блоков трансформера, к которым применяется пространственно-временное наведение (STG), сокращающее операции само-внимания путём использования значений вместо полной операции масштабированного внимания на основе скалярного произведения (SDPA). Если None или список пуст, STG не применяется ни к одному блоку.
  • perturbation_mask (torch.Tensor, необязательный) — Маска возмущения для STG формы (batch_size,) или (batch_size, 1, 1). Должна быть равна 0 в элементах батча, где STG должен применяться, и 1 в остальных. Если STG используется, но perturbation_mask не передан, по умолчанию STG (возмущение) будет применяться ко всем элементам батча.
  • use_cross_timestep (bool необязательный, по умолчанию False) — Определяет, следует ли использовать сигму кросс-модальности (аудио является кросс-модальностью для видео и наоборот) при вычислении параметров модуляции кросс-внимания. True соответствует новому поведению (например, LTX-2.3); False — устаревшему поведению LTX-2.0.
  • attention_kwargs (dict[str, Any], необязательный) — Необязательный словарь аргументов с ключами, передаваемых в процессор внимания.
  • video_self_attention_mask (torch.Tensor, необязательный) — Необязательная мультипликативная маска само-внимания формы (batch_size, num_video_tokens, num_video_tokens), применяемая к само-вниманию видео в каждом блоке трансформера. Значения в диапазоне [0, 1], где 1 означает полное внимание, а 0 — маскирование. Используется, например, в конвейере IC-LoRA для управления силой внимания между шумовыми токенами и добавленными опорными токенами. Само-внимание аудио не затрагивается.
  • video_keyframes_mask (torch.Tensor, необязательный) — Необязательный маркер для каждого токена формы (batch_size, num_video_tokens, 1), ненулевой для видео-токенов, чей латентный кадр кодирует одиночный пиксельный кадр. Эти токены получают keyframes_abs_pos_embedding. Игнорируется, если модель была создана без use_keyframes_abs_pos_embedding.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, возвращать ли структурированный вывод типа AudioVisualModelOutput в виде словаря или кортеж.

Возвращает

AudioVisualModelOutput или tuple

Если return_dict равно True, возвращается структурированный вывод типа AudioVisualModelOutput, в противном случае возвращается tuple, где первый элемент — это последовательность латентных патчей видео после шумоподавления, а второй — последовательность латентных патчей аудио после шумоподавления.

Прямой проход для аудиовизуального видео-трансформера LTX-2.0.

Update on GitHub