Buckets:

hf-doc-build/doc / diffusers /main /pt /api /models /consisid_transformer3d.md
mishig's picture
|
download
raw
12.9 kB
# ConsisIDTransformer3DModel
Um modelo Diffusion Transformer para dados 3D do [ConsisID](https://github.com/PKU-YuanGroup/ConsisID) foi introduzido em [Identity-Preserving Text-to-Video Generation by Frequency Decomposition](https://huggingface.co/papers/2411.17440) pela Peking University & University of Rochester & etc.
O modelo pode ser carregado com o seguinte trecho de código.
```python
from diffusers import ConsisIDTransformer3DModel
transformer = ConsisIDTransformer3DModel.from_pretrained("BestWishYsh/ConsisID-preview", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"
```
## ConsisIDTransformer3DModel[[diffusers.ConsisIDTransformer3DModel]]
#### diffusers.ConsisIDTransformer3DModel[[diffusers.ConsisIDTransformer3DModel]]
```python
diffusers.ConsisIDTransformer3DModel(num_attention_heads: int = 30, attention_head_dim: int = 64, in_channels: int = 16, out_channels: int | None = 16, flip_sin_to_cos: bool = True, freq_shift: int = 0, time_embed_dim: int = 512, text_embed_dim: int = 4096, num_layers: int = 30, dropout: float = 0.0, attention_bias: bool = True, sample_width: int = 90, sample_height: int = 60, sample_frames: int = 49, patch_size: int = 2, temporal_compression_ratio: int = 4, max_text_seq_length: int = 226, activation_fn: str = 'gelu-approximate', timestep_activation_fn: str = 'silu', norm_elementwise_affine: bool = True, norm_eps: float = 1e-05, spatial_interpolation_scale: float = 1.875, temporal_interpolation_scale: float = 1.0, use_rotary_positional_embeddings: bool = False, use_learned_positional_embeddings: bool = False, is_train_face: bool = False, is_kps: bool = False, cross_attn_interval: int = 2, cross_attn_dim_head: int = 128, cross_attn_num_heads: int = 16, LFE_id_dim: int = 1280, LFE_vit_dim: int = 1024, LFE_depth: int = 10, LFE_dim_head: int = 64, LFE_num_heads: int = 16, LFE_num_id_token: int = 5, LFE_num_querie: int = 32, LFE_output_dim: int = 2048, LFE_ff_mult: int = 4, LFE_num_scale: int = 5, local_face_scale: float = 1.0)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/consisid_transformer_3d.py#L351)
**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 head.
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 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 taxa 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 do 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 características.
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 de alta frequência relacionadas ao rosto 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 características visuais. 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.
local_face_scale (`float`, padrão `1.0`) : Um 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](https://github.com/PKU-YuanGroup/ConsisID).
#### forward[[diffusers.ConsisIDTransformer3DModel.forward]]
```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: typing.Union[int, float, torch.LongTensor], timestep_cond: typing.Optional[torch.Tensor] = None, image_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = None, attention_kwargs: dict[str, typing.Any] | None = None, id_cond: typing.Optional[torch.Tensor] = None, id_vit_hidden: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/consisid_transformer_3d.py#L623)
**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)`) : Embeddings condicionais (embeddings calculados a partir das condições de entrada, como prompts) a serem usados.
timestep (`torch.LongTensor`) : Usado para indicar o passo de desruidamento.
timestep_cond (`torch.Tensor`, *opcional*) : Embebimentos condicionais para o passo de tempo. Se fornecidos, os embebimentos serão somados às amostras passadas pela camada `self.time_embedding` para obter os embebimentos finais do passo de tempo.
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 para o `AttentionProcessor` conforme definido em `self.processor` em [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
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`) : Indica se deve retornar um `~models.transformer_2d.Transformer2DModelOutput` em vez de uma tupla simples.
**Retorna:**
Se `return_dict` for True, um `~models.transformer_2d.Transformer2DModelOutput` é retornado; caso contrário, uma `tuple` onde o primeiro elemento é o tensor da amostra.
O método forward do [ConsisIDTransformer3DModel](/docs/diffusers/main/pt/api/models/consisid_transformer3d#diffusers.ConsisIDTransformer3DModel).
## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
#### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
```python
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21)
**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](/docs/diffusers/main/pt/api/models/transformer2d#diffusers.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](/docs/diffusers/main/pt/api/models/transformer2d#diffusers.Transformer2DModel).

Xet Storage Details

Size:
12.9 kB
·
Xet hash:
300251b4ac4d63e6083e93a04bb5ce0c722fbe6f145783b7e5f0e70520b024c4

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.