Diffusers documentation
HeliosTransformer3DModel
HeliosTransformer3DModel
Um modelo de 14B de Transformer de Difusão Autogerativa em Tempo Real (suporta T2V, I2V e V2V) para dados de vídeo 3D da Helios foi introduzido em Helios: Real Real-Time Long Video Generation Model pela Universidade de Pequim & ByteDance & etc.
O modelo pode ser carregado com o seguinte trecho de código.
from diffusers import HeliosTransformer3DModel
# Best Quality
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Base", subfolder="transformer", dtype=torch.bfloat16)
# Intermediate Weight
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Mid", subfolder="transformer", dtype=torch.bfloat16)
# Best Efficiency
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Distilled", subfolder="transformer", dtype=torch.bfloat16)HeliosTransformer3DModel
classe diffusers.HeliosTransformer3DModel
< source >( patch_size: tuple = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int = 16out_channels: int = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueqk_norm: str | None = 'rms_norm_across_heads'eps: float = 1e-06added_kv_proj_dim: int | None = Nonerope_dim: tuple = (44, 42, 42)rope_theta: float = 10000.0guidance_cross_attn: bool = Truezero_history_timestep: bool = Truehas_multi_term_memory_patch: bool = Trueis_amplify_history: bool = Falsehistory_scale_mode: str = 'per_head' )
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ão40) — Comprimento fixo para embeddings de texto. - attention_head_dim (
int, padrão128) — O número de canais em cada head. - in_channels (
int, padrão16) — O número de canais na entrada. - out_channels (
int, padrão16) — O número de canais na saída. - text_dim (
int, padrão512) — Dimensão de entrada para embeddings de texto. - freq_dim (
int, padrão256) — Dimensão para incorporações de tempo sinusoidais. - ffn_dim (
int, padrão13824) — Dimensão intermediária na rede feed-forward. - num_layers (
int, padrão40) — O número de blocos de transformadores 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ãoTrue) — Ativa a normalização de atenção cruzada. - qk_norm (
bool, padrãoTrue) — Ativa a normalização de query/key. - eps (
float, padrão1e-6) — Valor de epsilon para as camadas de normalização. - add_img_emb (
bool, padrãoFalse) — Se deve usar img_emb. - added_kv_proj_dim (
int, opcional, padrãoNone) — O número de canais a serem usados para as projeções de chave e valor adicionadas. SeNone, nenhuma projeção é usada.
Um modelo Transformer para dados semelhantes a vídeo usado no modelo Helios.
forward
< source >( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorindices_hidden_states = Noneindices_latents_history_short = Noneindices_latents_history_mid = Noneindices_latents_history_long = Nonelatents_history_short = Nonelatents_history_mid = Nonelatents_history_long = Nonereturn_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = None )
Parâmetros
- hidden_states (
torch.Tensorde forma(batch_size, num_channels, num_frames, height, width)) —hidden_statesde entrada. - timestep (
torch.LongTensor) — Usado para indicar o passo de desruido. - encoder_hidden_states (
torch.Tensorde 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. - indices_hidden_states (
torch.Tensor, opcional) — Índices de quadros parahidden_statesusados para calcular os embeddings posicionais rotativos. - indices_latents_history_short (
torch.Tensor, opcional) — Índices dos quadros para os latentes do histórico curto. - indices_latents_history_mid (
torch.Tensor, opcional) — Índices dos quadros para os latentes do histórico intermediário. - indices_latents_history_long (
torch.Tensor, opcional) — Índices dos quadros para os latentes de histórico longo. - latents_history_short (
torch.Tensor, opcional) — Condição de latentes de histórico curto. - latents_history_mid (
torch.Tensor, opcional) — Condição dos latentes do histórico intermediário. - latents_history_long (
torch.Tensor, opcional) — Condição de latentes de histórico longo. - return_dict (
bool, opcional, padrãoTrue) — Se deve ou não retornar um~models.transformer_2d.Transformer2DModelOutputem vez de uma tupla simples. - attention_kwargs (
dict, opcional) — Um dicionário de kwargs que, se especificado, é passado aoAttentionProcessorconforme definido emself.processorem diffusers.models.attention_processor.
O método forward do HeliosTransformer3DModel.
Transformer2DModelOutput
classe diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parâmetros
- sample (
torch.Tensorde 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 à entradaencoder_hidden_states. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.
A saída de Transformer2DModel.