Diffusers documentation
LTX2VideoTransformer3DModel
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
< source >( 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
< source >( 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.