Diffusers documentation

KandinskyS2VTransformer3DModel

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

KandinskyS2VTransformer3DModel

Le Diffusion Transformer (DiT) de Kandinsky S2V 1.0, conditionné par une image de référence et une piste audio.

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 )

Transformeur de diffusion pour la conversion de la parole en vidéo.

Les noms des paramètres correspondent aux points de contrôle d’entraînement, de sorte qu’un fichier .safetensors converti se charge sans remappage des clés. L’inférence est effectuée avec une taille de lot de 1 : la séquence est compactée et l’attention croisée avec la parole est alignée sur les trames, de sorte que forward prend un axe de lot de tête de taille 1 et le supprime.

Le flux visuel est une séquence compacte [memory | ref | visual] :

  • memory — contexte FramePack du bloc précédent avec un sous-échantillonnage temporel 4x / 2x / 1x, placé aux positions temporelles RoPE négatives ;
  • ref — le repère de référence, fixé à l'index temporel RoPE index_rope_ref_image ;
  • visual — le latent bruité en cours de débruitage.

memory et ref sont propres, ils sont donc modulés avec t = 0 tandis que visual utilise le pas de temps réel ; la modulation contient les deux lignes et un index sélectionne par jeton.

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

Paramètres

  • hidden_states — latent bruité, (1, T, H, W, C).
  • encoder_hidden_states — embeddings de texte, (1, S_text, in_text_dim).
  • audio_hidden_states — caractéristiques vocales, (1, S_audio, in_audio_dim).
  • reference_hidden_states — latent de la référence, (1, 1, H, W, C).
  • memory_hidden_states — Mémoire FramePack à 4x / 2x / 1x, chacune de forme (1, T_i, H_i, W_i, C).
  • timestep — pas de temps actuel, (1,).
  • pooled_projections — embedding de texte CLIP agrégé, (1, in_text_dim2).
  • visual_rope_pos — positions RoPE par axe du latent bruité.
  • reference_rope_pos — positions RoPE par axe du repère de référence.
  • memory_rope_pos — positions RoPE par axe de chaque échelle de mémoire FramePack.
  • text_rope_pos — positions RoPE 1-D des jetons de texte.
  • audio_rope_pos — cadre latent auquel chaque jeton de parole appartient.
  • scale_factor — facteur d'échelle RoPE par axe, défini par le seau de résolution.
  • return_dict — renvoie un Transformer2DModelOutput au lieu d'un tuple.

Retourne

[~models.modeling_outputs.Transformer2DModelOutput] ou tuple

la vitesse prédite, de forme hidden_states.

Dénuiser un bloc.

La taille du lot doit être 1 : la séquence est compactée et l'attention croisée vocale est alignée sur les trames.

Update on GitHub