Diffusers documentation

ConsisIDTransformer3DModel

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

ConsisIDTransformer3DModel

Um modelo Diffusion Transformer para dados 3D do ConsisID foi introduzido em Identity-Preserving Text-to-Video Generation by Frequency Decomposition pela Peking University & University of Rochester & etc.

O modelo pode ser carregado com o seguinte trecho de código.

from diffusers import ConsisIDTransformer3DModel

transformer = ConsisIDTransformer3DModel.from_pretrained("BestWishYsh/ConsisID-preview", subfolder="transformer", dtype=torch.bfloat16).to("cuda")  # or "mps", "xpu", "cpu"

ConsisIDTransformer3DModel

classe diffusers.ConsisIDTransformer3DModel

< >

( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512text_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2temporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falseis_train_face: bool = Falseis_kps: bool = Falsecross_attn_interval: int = 2cross_attn_dim_head: int = 128cross_attn_num_heads: int = 16LFE_id_dim: int = 1280LFE_vit_dim: int = 1024LFE_depth: int = 10LFE_dim_head: int = 64LFE_num_heads: int = 16LFE_num_id_token: int = 5LFE_num_querie: int = 32LFE_output_dim: int = 2048LFE_ff_mult: int = 4LFE_num_scale: int = 5local_face_scale: float = 1.0 )

Parâmetros

  • num_attention_heads (int, padrão 30) — O número de cabeças a serem usadas para a atenção multi-cabeça.
  • attention_head_dim (int, padrão 64) — O número de canais em cada cabeça.
  • in_channels (int, padrão 16) — O número de canais na entrada.
  • out_channels (int, opcional, padrão 16) — O número de canais na saída.
  • flip_sin_to_cos (bool, padrão True) — Se deve inverter o sin para cos no embedding de tempo.
  • time_embed_dim (int, padrão 512) — Dimensão de saída dos embeddings de timestep.
  • text_embed_dim (int, padrão 4096) — Dimensão de entrada dos embeddings de texto do codificador de texto.
  • num_layers (int, padrão 30) — O número de blocos de camadas de Transformer a serem usados.
  • dropout (float, padrão 0.0) — A probabilidade de dropout a ser utilizada.
  • attention_bias (bool, padrão True) — Se deve usar viés nas camadas de projeção de atenção.
  • sample_width (int, padrão 90) — A largura dos latentes de entrada.
  • sample_height (int, padrão 60) — A altura dos latentes de entrada.
  • sample_frames (int, padrão 49) — O número de quadros nos latentes de entrada. Observe que este parâmetro foi inicializado incorretamente como 49 em vez de 13, pois o ConsisID processava 13 quadros latentes de uma vez em suas configurações padrão e recomendadas, mas não pode ser alterado para o valor correto para garantir compatibilidade reversa. Para criar um transformer com K quadros latentes, o valor correto a ser passado aqui seria: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, padrão 2) — O tamanho dos patches a serem usados na camada de incorporação de patches.
  • temporal_compression_ratio (int, padrão 4) — A razão de compressão ao longo da dimensão temporal. Consulte a documentação de sample_frames.
  • max_text_seq_length (int, padrão 226) — O comprimento máximo da sequência dos embeddings de texto de entrada.
  • activation_fn (str, padrão "gelu-approximate") — Função de ativação a ser usada no feed-forward.
  • timestep_activation_fn (str, padrão "silu") — Função de ativação a ser usada ao gerar os embeddings de timestep.
  • norm_elementwise_affine (bool, padrão True) — Se deve usar afinidade elementar em camadas de normalização.
  • norm_eps (float, padrão 1e-5) — O valor de epsilon a ser usado nas camadas de normalização.
  • spatial_interpolation_scale (float, padrão 1.875) — Fator de escala a ser aplicado nos embeddings posicionais 3D ao longo das dimensões espaciais.
  • temporal_interpolation_scale (float, padrão 1.0) — Fator de escala a ser aplicado nos embeddings posicionais 3D ao longo das dimensões temporais.
  • is_train_face (bool, padrão False) — Se deve habilitar o módulo de preservação de identidade durante o processo de treinamento. Quando definido como True, o modelo se concentrará em tarefas de preservação de identidade.
  • is_kps (bool, padrão False) — Se deve habilitar keypoint para o extrator facial global. Se True, os keypoints estarão no modelo.
  • cross_attn_interval (int, padrão 2) — O intervalo entre as camadas de atenção cruzada na arquitetura Transformer. Um valor maior pode reduzir a frequência dos cálculos de atenção cruzada, o que pode ajudar a reduzir a sobrecarga computacional.
  • cross_attn_dim_head (int, opcional, padrão 128) — A dimensionalidade de cada cabeça de atenção nas camadas de atenção cruzada da arquitetura Transformer. Um valor maior aumenta a capacidade de prestar atenção a padrões mais complexos, mas também aumenta os custos de memória e computação.
  • cross_attn_num_heads (int, opcional, padrão 16) — O número de cabeças de atenção nas camadas de atenção cruzada. Mais cabeças permitem mecanismos de atenção mais paralelos, capturando relações diversas entre diferentes componentes da entrada, mas também podem aumentar os requisitos computacionais.
  • LFE_id_dim (int, opcional, padrão 1280) — A dimensionalidade do vetor de identidade usado no Local Facial Extractor (LFE). Este vetor representa os recursos de identidade de um rosto, que são importantes para tarefas como reconhecimento facial e preservação de identidade entre diferentes quadros.
  • LFE_vit_dim (int, opcional, padrão 1024) — A dimensão da saída do vision transformer (ViT) utilizada no Local Facial Extractor (LFE). Este valor determina o tamanho dos vetores de características gerados pelo transformer que serão processados para a extração de características faciais.
  • LFE_depth (int, opcional, padrão 10) — O número de camadas no Local Facial Extractor (LFE). Aumentar a profundidade permite que o modelo capture representações mais complexas das características faciais, mas também aumenta a carga computacional.
  • LFE_dim_head (int, opcional, padrão 64) — A dimensionalidade de cada cabeça de atenção no Local Facial Extractor (LFE). Este parâmetro afeta o quão finamente o modelo pode processar e focar em diferentes partes das características faciais durante o processo de extração.
  • LFE_num_heads (int, opcional, padrão 16) — O número de cabeças de atenção no Local Facial Extractor (LFE). Mais cabeças podem melhorar a capacidade do modelo de capturar características faciais diversas, mas ao custo de uma maior complexidade computacional.
  • LFE_num_id_token (int, opcional, padrão 5) — O número de tokens de identidade usados no Local Facial Extractor (LFE). Isso define quantos tokens relacionados à identidade o modelo processará para garantir a preservação da identidade facial durante a extração de recursos.
  • LFE_num_querie (int, opcional, padrão 32) — O número de tokens de consulta usados no Local Facial Extractor (LFE). Esses tokens são usados para capturar informações faciais de alta frequência que auxiliam na extração precisa de características faciais.
  • LFE_output_dim (int, opcional, padrão 2048) — A dimensão de saída do Local Facial Extractor (LFE). Essa dimensão determina o tamanho dos vetores de características produzidos pelo módulo LFE, que serão usados em tarefas subsequentes, como reconhecimento facial ou rastreamento.
  • LFE_ff_mult (int, opcional, padrão 4) — O fator de multiplicação aplicado ao tamanho da camada oculta da rede feed-forward no Local Facial Extractor (LFE). Um valor maior aumenta a capacidade do modelo de aprender transformações mais complexas de características faciais, mas também aumenta os requisitos de computação e memória.
  • LFE_num_scale (int, opcional, padrão 5) — O número de diferentes escalas de recurso visual. Um valor maior aumenta a capacidade do modelo de aprender transformações mais complexas de recursos faciais, mas também aumenta os requisitos de computação e memória.
  • local_face_scale (float, padrão 1.0) — Fator de escala usado para ajustar a importância dos recursos faciais locais no modelo. Isso pode influenciar o quão fortemente o modelo se concentra em conteúdo facial de alta frequência.

Um modelo Transformer para dados semelhantes a vídeo em ConsisID.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Noneid_cond: typing.Optional[torch.Tensor] = Noneid_vit_hidden: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Parâmetros

  • hidden_states (torch.Tensor de forma (batch_size, num_frames, channels, height, width)) — hidden_states de entrada.
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_len, embed_dims)) — Incorporações condicionais (incorporações calculadas a partir das condições de entrada, como prompts) a serem usadas.
  • timestep (torch.LongTensor) — Usado para indicar o passo de desruido.
  • timestep_cond (torch.Tensor, opcional) — Incorporações condicionais para o timestep. Se fornecidas, as incorporações serão somadas às amostras passadas pela camada self.time_embedding para obter as incorporações finais de timestep.
  • image_rotary_emb (tuple de torch.Tensor, opcional) — Incorporações posicionais rotativas pré-computadas.
  • attention_kwargs (dict, opcional) — Um dicionário de kwargs que, se especificado, é passado ao AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
  • id_cond (torch.Tensor, opcional) — O embedding facial extraído pelo extrator facial local usado para condicionamento de identidade.
  • id_vit_hidden (torch.Tensor, opcional) — Os estados ocultos do ViT extraídos de imagens faciais usados para condicionamento de identidade.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.

O método forward do ConsisIDTransformer3DModel.

Transformer2DModelOutput

classe diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parâmetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width) ou (batch size, num_vector_embeds - 1, num_latent_pixels) se Transformer2DModel for discreto) — A saída dos estados ocultos condicionada à entrada encoder_hidden_states. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.

A saída de Transformer2DModel.

Update on GitHub