Diffusers documentation

KandinskyS2VTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

KandinskyS2VTransformer3DModel

O Diffusion Transformer (DiT) do Kandinsky S2V 1.0, condicionado em um quadro de referência e uma trilha de fala.

KandinskyS2VTransformer3DModel

classe diffusers.KandinskyS2VTransformer3DModel

< >

( in_visual_dim: int = 16out_visual_dim: int = 16in_text_dim: int = 3584in_text_dim2: int = 768in_audio_dim: int = 3584time_dim: int = 512patch_size: tuple[int, int, int] = (1, 2, 2)frame_buckets: tuple[int, int, int] = (2, 4, 24)enable_framepack: bool = Trueindex_rope_ref_image: int = 40patch_proj1x_coef: tuple[int, int, int] = (1, 1, 1)patch_proj2x_coef: tuple[int, int, int] = (2, 2, 2)patch_proj4x_coef: tuple[int, int, int] = (4, 4, 4)model_dim: int = 1792ff_dim: int = 7168num_text_blocks: int = 2num_audio_blocks: int = 2num_visual_blocks: int = 32axes_dims: tuple[int, int, int] = (16, 24, 24)audio_inject_layers: tuple[int, ...] = ()text_rope_max_pos: int = 4096 )

Transformador de difusão para conversão de fala em vídeo.

Os nomes dos parâmetros correspondem aos checkpoints de treinamento, portanto um .safetensors convertido é carregado sem remapeamento de chaves. A inferência é com tamanho de lote 1: a sequência é empacotada e a atenção cruzada de fala é alinhada por quadro, de modo que forward recebe um eixo de lote inicial de 1 e o comprime.

O fluxo visual é uma sequência compacta [memory | ref | visual]:

  • memory — contexto do FramePack do chunk anterior com downsampling temporal de 4x / 2x / 1x, posicionado em posições temporais de RoPE negativas;
  • ref — o referencial, fixado no índice temporal de RoPE index_rope_ref_image;
  • visual — o latente ruidoso sendo desruidado.

memory e ref são limpos, portanto são modulados com t = 0, enquanto visual usa o timestep real; a modulação contém ambas as linhas e um índice seleciona por token.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensoraudio_hidden_states: Tensorreference_hidden_states: Tensormemory_hidden_states: tuple[Tensor, Tensor, Tensor]timestep: Tensorpooled_projections: Tensorvisual_rope_pos: list[Tensor]reference_rope_pos: list[Tensor]memory_rope_pos: tuple[list[Tensor], list[Tensor], list[Tensor]]text_rope_pos: Tensoraudio_rope_pos: Tensorscale_factor: tuple[float, float, float] = (1.0, 1.0, 1.0)return_dict: bool = True ) → [~models.modeling_outputs.Transformer2DModelOutput] or tuple

Parâmetros

  • hidden_states — latente com ruído, (1, T, H, W, C).
  • encoder_hidden_states — embeddings de texto, (1, S_text, in_text_dim).
  • audio_hidden_states — recursos de fala, (1, S_audio, in_audio_dim).
  • reference_hidden_states — latente do quadro de referência, (1, 1, H, W, C).
  • memory_hidden_states — memória do FramePack em 4x / 2x / 1x, cada uma com (1, T_i, H_i, W_i, C).
  • timestep — timestep atual, (1,).
  • pooled_projections — incorporações de texto CLIP agregadas, (1, in_text_dim2).
  • visual_rope_pos — posições de RoPE por eixo do latente com ruído.
  • reference_rope_pos — posições de RoPE por eixo do quadro de referência.
  • memory_rope_pos — posições de RoPE por eixo de cada escala de memória do FramePack.
  • text_rope_pos — posições 1-D de RoPE dos tokens de texto.
  • audio_rope_pos — quadro latente ao qual cada token de fala pertence.
  • scale_factor — escala do RoPE por eixo, definida pelo bucket de resolução.
  • return_dict — retorna um Transformer2DModelOutput em vez de uma tupla.

Retorna

[~models.modeling_outputs.Transformer2DModelOutput] ou tuple

a velocidade prevista, com a forma de hidden_states.

Remova o ruído de um bloco.

O tamanho do lote deve ser 1: a sequência é empacotada e a atenção cruzada de fala é alinhada por quadro.

Update on GitHub