Buckets:

hf-doc-build/doc / diffusers /main /pt /api /models /chronoedit_transformer_3d.md
mishig's picture
|
download
raw
6.22 kB

ChronoEditTransformer3DModel

Um modelo Diffusion Transformer para dados de vídeo 3D do ChronoEdit: Towards Temporal Reasoning for Image Editing and World Simulation da NVIDIA e da University of Toronto, por Jay Zhangjie Wu, Xuanchi Ren, Tianchang Shen, Tianshi Cao, Kai He, Yifan Lu, Ruiyuan Gao, Enze Xie, Shiyi Lan, Jose M. Alvarez, Jun Gao, Sanja Fidler, Zian Wang, Huan Ling.

Resumo: O ChronoEdit reformula a edição de imagens como uma tarefa de geração de vídeo, utilizando as imagens de entrada e editadas como quadros inicial e final para aproveitar modelos de vídeo pré-treinados com consistência temporal. Um estágio de raciocínio temporal introduz tokens de raciocínio para garantir edições fisicamente plausíveis e visualizar a trajetória da edição.

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

from diffusers import ChronoEditTransformer3DModel

transformer = ChronoEditTransformer3DModel.from_pretrained("nvidia/ChronoEdit-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)

ChronoEditTransformer3DModel[[diffusers.ChronoEditTransformer3DModel]]

diffusers.ChronoEditTransformer3DModel[[diffusers.ChronoEditTransformer3DModel]]

diffusers.ChronoEditTransformer3DModel(patch_size: tuple[int] = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, qk_norm: str | None = 'rms_norm_across_heads', eps: float = 1e-06, image_dim: int | None = None, added_kv_proj_dim: int | None = None, rope_max_seq_len: int = 1024, pos_embed_seq_len: int | None = None, rope_temporal_skip_len: int = 8)

Fonte

Parâmetros:

patch_size (tuple[int], padrão (1, 2, 2)) : dimensões do patch 3D para incorporação de vídeo (t_patch, h_patch, w_patch).

num_attention_heads (int, padrão 40) : Comprimento fixo para incorporações de texto.

attention_head_dim (int, padrão 128) : O número de canais em cada head.

in_channels (int, padrão 16) : O número de canais na entrada.

out_channels (int, padrão 16) : O número de canais na saída.

text_dim (int, padrão 512) : Dimensão de entrada para embeddings de texto.

freq_dim (int, padrão 256) : Dimensão para embeddings de tempo sinusoidais.

ffn_dim (int, padrão 13824) : Dimensão intermediária na rede feed-forward.

num_layers (int, padrão 40) : O número de blocos de transformador a serem usados.

window_size (tuple[int], padrão (-1, -1)) : Tamanho da janela para atenção local (-1 indica atenção global).

cross_attn_norm (bool, padrão True) : Ativa a normalização de atenção cruzada.

qk_norm (bool, padrão True) : Ativa a normalização de query/key.

eps (float, padrão 1e-6) : Valor de epsilon para as camadas de normalização.

add_img_emb (bool, padrão False) : Se deve usar img_emb.

added_kv_proj_dim (int, opcional, padrão None) : O número de canais a serem usados para as projeções de chave e valor adicionadas. Se None, nenhuma projeção é usada.

Um modelo Transformer para dados semelhantes a vídeo usado no modelo ChronoEdit.

forward[[diffusers.ChronoEditTransformer3DModel.forward]]

forward(hidden_states: Tensor, timestep: LongTensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None)

Fonte

Parâmetros:

hidden_states (torch.Tensor de forma (batch_size, num_channels, num_frames, height, width)) : hidden_states de entrada.

timestep (torch.LongTensor) : Usado para indicar o passo de desruidamento.

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.

encoder_hidden_states_image (torch.Tensor, opcional) : Incorporações de imagem condicionais para geração condicionada por imagem.

return_dict (bool, opcional, padrão True) : Indica se deve retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.

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.

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 ChronoEditTransformer3DModel.

Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)

Fonte

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.

Xet Storage Details

Size:
6.22 kB
·
Xet hash:
5e29235298ca3e851afc05b00ae3d3a6c4d3f156ccf5f1386a350d7daaf38a2b

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