Diffusers documentation
LTX2VideoTransformer3DModel
LTX2VideoTransformer3DModel
Um modelo Diffusion Transformer para dados 3D da LTX foi introduzido pela Lightricks.
O modelo pode ser carregado com o seguinte trecho 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
classe 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 )
Parâmetros
- in_channels (
int, padrão128) — O número de canais na entrada. - out_channels (
int, padrão128) — O número de canais na saída. - patch_size (
int, padrão1) — O tamanho dos patches espaciais a serem usados na camada de incorporação de patches. - patch_size_t (
int, padrão1) — O tamanho dos patches temporais a serem usados na camada de incorporação de patches. - num_attention_heads (
int, padrão32) — O número de cabeças a serem usadas para a atenção multi-cabeça. - attention_head_dim (
int, padrão64) — O número de canais em cada cabeça. - cross_attention_dim (
int, padrão2048) — O número de canais para as cabeças de atenção cruzada. - num_layers (
int, padrão28) — O número de blocos de camadas de Transformer a serem usados. - activation_fn (
str, padrão"gelu-approximate") — Função de ativação a ser usada no feed-forward. - qk_norm (
str, padrão"rms_norm_across_heads") — A camada de normalização a ser usada. - ff_bias (
bool, padrãoTrue) — Se as camadas lineares da camada feed-forward do vídeo incluem um termo de viés.Falsepara LTX-2.5. - audio_ff_bias (
bool, padrãoTrue) — Se as camadas lineares da camada feed-forward de áudio incluem um termo de viés. - use_prompt_adaln_single (
bool, padrãoTrue) — Se a modulação de Key/Value da cross-attention do prompt é dependente do timestep. QuandoFalse, usa uma tabela fixa por camada, tornando os valores de Key/Value da cross-attention cacheáveis entre as etapas de desruidamento para um prompt dado. - use_keyframes_abs_pos_embedding (
bool, padrãoFalse) — Se deve armazenar um embedding absoluto de posição aprendido(1, inner_dim)para tokens de keyframes gerados (LTX-2.5). QuandoTrue, os tokens selecionados porvideo_keyframes_maskrecebem esse embedding. O argumento é opcional; omiti-lo mantém o caminho de forward destilado inalterado.
Um modelo Transformer para dados semelhantes a vídeo usado no 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 vídeo em patches de entrada com forma(batch_size, num_video_tokens, in_channels). - audio_hidden_states (
torch.Tensor) — Latentes de áudio em patches de entrada com forma(batch_size, num_audio_tokens, audio_in_channels). - encoder_hidden_states (
torch.Tensor) — Incorporações de texto de vídeo de entrada com forma(batch_size, text_seq_len, self.config.caption_channels). - audio_encoder_hidden_states (
torch.Tensor) — Inserções de texto de áudio de entrada com forma(batch_size, text_seq_len, self.config.caption_channels). - timestep (
torch.Tensor) — Timestep de entrada com forma(batch_size, num_video_tokens). Estes devem já ter sido escalados porself.config.timestep_scale_multiplier. - audio_timestep (
torch.Tensor, opcional) — Timestep de entrada com forma(batch_size,)ou(batch_size, num_audio_tokens)para os parâmetros de modulação de áudio. Isso é usado apenas por determinados pipelines, como o pipeline I2V. - sigma (
torch.Tensor, opcional) — Passo de tempo de entrada escalado, com forma (batch_size,). Usado para modulação de atenção cruzada do prompt de vídeo em modelos como LTX-2.3. - audio_sigma (
torch.Tensor, opcional) — Timestep de entrada escalado, com forma (batch_size,). Usado para modulação de atenção cruzada de prompt de áudio em modelos como LTX-2.3. Sesigmafor fornecido, masaudio_sigmanão,audio_sigmaserá definido como o valor desigmafornecido. - encoder_attention_mask (
torch.Tensor, opcional) — Máscara de atenção de texto multiplicativa opcional com forma(batch_size, text_seq_len). - audio_encoder_attention_mask (
torch.Tensor, opcional) — Máscara de atenção de texto multiplicativa opcional, de forma(batch_size, text_seq_len), para modelagem de áudio. - num_frames (
int, opcional) — O número de quadros de vídeo latentes. Usado ao calcular as coordenadas do vídeo para o RoPE. - height (
int, opcional) — A altura do vídeo latente. Usada ao calcular as coordenadas do vídeo para o RoPE. - width (
int, opcional) — A largura do vídeo latente. Usada ao calcular as coordenadas do vídeo para o RoPE. - fps — (
float, opcional, padrão24.0): Os quadros por segundo desejados do vídeo gerado. Usado ao calcular as coordenadas do vídeo para o RoPE. - audio_num_frames — (
int, opcional): O número de quadros de áudio latentes. Usado ao calcular as coordenadas de áudio para o RoPE. - video_coords (
torch.Tensor, opcional) — As coordenadas do vídeo a serem usadas ao calcular os embeddings posicionais rotativos (RoPE) de forma(batch_size, 3, num_video_tokens, 2). Se não fornecidas, serão calculadas dentro deforward. - audio_coords (
torch.Tensor, opcional) — As coordenadas de áudio a serem usadas ao calcular os embeddings posicionais rotativos (RoPE) de forma(batch_size, 1, num_audio_tokens, 2). Se não fornecidas, serão calculadas dentro deforward. - isolate_modalities (
bool, opcional, padrãoFalse) — Se deve isolar cada modalidade desativando a atenção cruzada entre modalidades (de áudio para vídeo e de vídeo para áudio) em todos os blocos. Use para orientação de modalidade no LTX-2.3. - spatio_temporal_guidance_blocks (
list[int], opcional, padrãoNone) — Os índices dos blocos do transformer nos quais aplicar a orientação espaço-temporal (STG), que simplifica as operações de autoatenção usando diretamente os valores em vez da operação completa de atenção de produto escalar normalizado (SDPA). SeNoneou vazio, a STG não será aplicada a nenhum bloco. - perturbation_mask (
torch.Tensor, opcional) — Máscara de perturbação para STG com forma(batch_size,)ou(batch_size, 1, 1). Deve ser 0 nos elementos do lote onde o STG deve ser aplicado e 1 nos demais. Se o STG estiver sendo usado, masperturbation_masknão for fornecido, o padrão será aplicar o STG (perturbar) todos os elementos do lote. - use_cross_timestep (
boolopcional, padrãoFalse) — Se deve usar o sigma da modalidade cruzada (áudio é a modalidade cruzada de vídeo, e vice-versa) ao calcular os parâmetros de modulação da atenção cruzada.Trueé o comportamento mais recente (ex.: LTX-2.3);Falseé o comportamento legado do LTX-2.0. - attention_kwargs (
dict[str, Any], opcional) — Dicionário opcional de argumentos de palavra-chave a serem passados para o processador de atenção. - video_self_attention_mask (
torch.Tensor, opcional) — Máscara multiplicativa opcional de autoatenção com forma(batch_size, num_video_tokens, num_video_tokens)aplicada à autoatenção de vídeo em cada bloco do transformer. Valores em[0, 1], onde1significa atenção total e0significa mascarado. Usado, por exemplo, pelo pipeline IC-LoRA para controlar a intensidade da atenção entre tokens ruidosos e tokens de referência anexados. A autoatenção de áudio não é afetada. - video_keyframes_mask (
torch.Tensor, opcional) — Marcador opcional por token, de forma(batch_size, num_video_tokens, 1), não nulo nos tokens de vídeo cujo frame latente codifica um único frame de pixels. Esses tokens recebemkeyframes_abs_pos_embedding. Ignorado quando o modelo foi construído semuse_keyframes_abs_pos_embedding. - return_dict (
bool, opcional, padrãoTrue) — Se deve retornar uma saída estruturada em formato de dicionário do tipoAudioVisualModelOutputou uma tupla.
Retorna
AudioVisualModelOutput ou tuple
Se return_dict for True, retorna uma saída estruturada do tipo AudioVisualModelOutput; caso contrário, é retornada uma
tuple em que o primeiro elemento é a sequência de patches latentes do vídeo dessonada e o segundo
elemento é a sequência de patches latentes do áudio dessonada.
Passada para frente do transformador audiovisual de vídeo LTX-2.0.