Diffusers documentation
LTX2VideoTransformer3DModel
LTX2VideoTransformer3DModel
Un modelo Diffusion Transformer para datos 3D de LTX fue introducido por Lightricks.
El modelo se puede cargar con el siguiente fragmento de código.
from diffusers import LTX2VideoTransformer3DModel
transformer = LTX2VideoTransformer3DModel.from_pretrained("Lightricks/LTX-2", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"LTX2VideoTransformer3DModel
clase 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[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 )
Parámetros
- in_channels (
int, por defecto128) — El número de canales en la entrada. - out_channels (
int, por defecto128) — El número de canales en la salida. - patch_size (
int, por defecto1) — El tamaño de los parches espaciales que se usarán en la capa de incrustación de parches. - patch_size_t (
int, por defecto1) — El tamaño de los parches temporales que se usarán en la capa de incrustación de parches. - num_attention_heads (
int, por defecto32) — El número de cabezas a utilizar para la atención multi-cabeza. - attention_head_dim (
int, por defecto64) — El número de canales en cada cabeza. - cross_attention_dim (
int, por defecto2048) — El número de canales para las cabezas de atención cruzada. - num_layers (
int, por defecto28) — El número de capas de bloques Transformer a utilizar. - activation_fn (
str, por defecto"gelu-approximate") — Función de activación a utilizar en la red feed-forward. - qk_norm (
str, por defecto"rms_norm_across_heads") — La capa de normalización a utilizar. - ff_bias (
bool, por defectoTrue) — Si las capas lineales de la capa feed-forward del vídeo incluyen un término de sesgo.Falsepara LTX-2.5. - audio_ff_bias (
bool, por defectoTrue) — Si las capas lineales de la capa de avance hacia adelante de audio incluyen un término de sesgo. - use_prompt_adaln_single (
bool, por defectoTrue) — Indica si la modulación de Key/Value de la atención cruzada del prompt depende del paso de tiempo. Cuando esFalse, se utiliza en su lugar una tabla fija por capa, lo que permite cachear los valores de Key/Value de la atención cruzada entre los pasos de desruido para un prompt dado. - use_keyframes_abs_pos_embedding (
bool, valor predeterminadoFalse) — Indica si se debe almacenar un embebido de posición absoluta aprendido de(1, inner_dim)para los tokens de keyframes generados (LTX-2.5). CuandoTrue, los tokens seleccionados porvideo_keyframes_maskreciben este embebido. El argumento es opcional; omitirlo deja sin cambios la ruta de propagación hacia adelante destilada.
Un modelo Transformer para datos tipo video utilizado en 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
Parámetros
- hidden_states (
torch.Tensor) — Latentes de video segmentados en parches de entrada con forma(batch_size, num_video_tokens, in_channels). - audio_hidden_states (
torch.Tensor) — Latentes de audio segmentados de entrada con forma(batch_size, num_audio_tokens, audio_in_channels). - encoder_hidden_states (
torch.Tensor) — Incorporaciones de texto de video de entrada con forma(batch_size, text_seq_len, self.config.caption_channels). - audio_encoder_hidden_states (
torch.Tensor) — Embeddings de texto de audio de entrada con forma(batch_size, text_seq_len, self.config.caption_channels). - timestep (
torch.Tensor) — Paso de tiempo de entrada de forma(batch_size, num_video_tokens). Estos ya deben haberse escalado porself.config.timestep_scale_multiplier. - audio_timestep (
torch.Tensor, opcional) — Paso de tiempo de entrada de forma(batch_size,)o(batch_size, num_audio_tokens)para los parámetros de modulación de audio. Esto solo se utiliza en ciertas pipelines, como la pipeline I2V. - sigma (
torch.Tensor, opcional) — Paso temporal de entrada escalado de forma (batch_size,). Se utiliza para la modulación de la atención cruzada del prompt de vídeo en modelos como LTX-2.3. - audio_sigma (
torch.Tensor, opcional) — Paso temporal de entrada escalado de forma (batch_size,). Se utiliza para la modulación de la atención cruzada de prompts de audio en modelos como LTX-2.3. Si se proporcionasigmapero noaudio_sigma,audio_sigmase establecerá en el valor desigmaproporcionado. - encoder_attention_mask (
torch.Tensor, opcional) — Máscara de atención de texto multiplicativa opcional de forma(batch_size, text_seq_len). - audio_encoder_attention_mask (
torch.Tensor, opcional) — Máscara de atención de texto multiplicativa opcional de forma(batch_size, text_seq_len)para el modelado de audio. - num_frames (
int, opcional) — El número de fotogramas latentes del video. Se utiliza al calcular las coordenadas del video para RoPE. - height (
int, opcional) — La altura del video latente. Se utiliza si se calculan las coordenadas del video para RoPE. - width (
int, opcional) — El ancho del video latente. Se utiliza si se calculan las coordenadas del video para RoPE. - fps — (
float, opcional, valor predeterminado24.0): Los fotogramas por segundo deseados del video generado. Se utiliza al calcular las coordenadas del video para RoPE. - audio_num_frames — (
int, opcional): El número de fotogramas latentes de audio. Se utiliza al calcular las coordenadas de audio para RoPE. - video_coords (
torch.Tensor, opcional) — Las coordenadas del video que se utilizarán al calcular los embeddings posicionales rotatorios (RoPE) de forma(batch_size, 3, num_video_tokens, 2). Si no se proporciona, se calculará dentro deforward. - audio_coords (
torch.Tensor, opcional) — Las coordenadas de audio que se utilizarán al calcular los embeddings posicionales rotatorios (RoPE) de forma(batch_size, 1, num_audio_tokens, 2). Si no se proporciona, se calculará dentro deforward. - isolate_modalities (
bool, opcional, valor predeterminadoFalse) — Si se aísla cada modalidad desactivando la atención cruzada entre modalidades (de audio a video y de video a audio) (en todos los bloques). Úsalo para la guía de modalidades en LTX-2.3. - spatio_temporal_guidance_blocks (
list[int], opcional, valor predeterminadoNone) — Los índices de bloques del transformer en los que se aplica la guía espaciotemporal (STG), que acorta las operaciones de autoatención utilizando simplemente los valores en lugar de la operación completa de atención de producto escalar (SDPA). Si esNoneo está vacío, no se aplicará STG a ningún bloque. - perturbation_mask (
torch.Tensor, opcional) — Máscara de perturbación para STG de forma(batch_size,)o(batch_size, 1, 1). Debe ser 0 en los elementos del lote donde se debe aplicar STG y 1 en el resto. Si se está usando STG pero no se proporcionaperturbation_mask, por defecto se aplicará STG (perturbación) a todos los elementos del lote. - use_cross_timestep (
boolopcional, valor predeterminadoFalse) — Indica si se debe utilizar la sigma de la modalidad cruzada (el audio es la modalidad cruzada del video, y viceversa) al calcular los parámetros de modulación de la atención cruzada.Truees el comportamiento más reciente (p. ej. LTX-2.3);Falsees el comportamiento heredado de LTX-2.0. - attention_kwargs (
dict[str, Any], opcional) — Diccionario opcional de argumentos de palabra clave que se pasarán al procesador de atención. - video_self_attention_mask (
torch.Tensor, opcional) — Máscara de autoatención multiplicativa opcional de forma(batch_size, num_video_tokens, num_video_tokens)aplicada a la autoatención del video en cada bloque transformer. Valores en[0, 1]donde1significa atención completa y0significa enmascarado. Se usa, por ejemplo, en el pipeline IC-LoRA para controlar la intensidad de la atención entre los tokens ruidosos y los tokens de referencia añadidos. La autoatención del audio no se ve afectada. - video_keyframes_mask (
torch.Tensor, opcional) — Marcador opcional por token de forma(batch_size, num_video_tokens, 1), no nulo en los tokens de video cuyo frame latente codifica un solo frame de píxeles. Esos tokens recibenkeyframes_abs_pos_embedding. Se ignora cuando el modelo se construyó sinuse_keyframes_abs_pos_embedding. - return_dict (
bool, opcional, valor predeterminadoTrue) — Si se devuelve una salida estructurada tipo diccionario de tipoAudioVisualModelOutputo una tupla.
Devuelve
AudioVisualModelOutput o tuple
Si return_dict es True, devuelve una salida estructurada de tipo AudioVisualModelOutput; en caso contrario, se devuelve una tuple cuyo primer elemento es la secuencia de parches latentes del video desruidado y cuyo segundo elemento es la secuencia de parches latentes del audio desruido.
Paso hacia adelante para el transformador audiovisual de video LTX-2.0.