Diffusers documentation

LTX2VideoTransformer3DModel

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

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 = (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