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

Pekin Üniversitesi & Rochester Üniversitesi & diğerleri tarafından Identity-Preserving Text-to-Video Generation by Frequency Decomposition makalesinde ConsisID'den 3D veriler için bir Diffusion Transformer modeli tanıtılmıştır.

Model, aşağıdaki kod parçasıyla yüklenebilir.

from diffusers import ConsisIDTransformer3DModel

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

ConsisIDTransformer3DModel

sınıf 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 )

Parametreler

  • num_attention_heads (int, varsayılan 30) — Çok başlı dikkat (multi-head attention) için kullanılacak baş sayısı.
  • attention_head_dim (int, varsayılan 64) — Her baştaki kanal sayısı.
  • in_channels (int, varsayılan 16) — Girdideki kanal sayısı.
  • out_channels (int, isteğe bağlı, varsayılan 16) — Çıktıdaki kanal sayısı.
  • flip_sin_to_cos (bool, varsayılan True) — Zaman gömme (embedding) içinde sin'in cos'a çevrilip çevrilmeyeceğini belirtir.
  • time_embed_dim (int, varsayılan 512) — Zaman adımı gömme çıktısının boyutu.
  • text_embed_dim (int, varsayılan 4096) — Metin kodlayıcıdan gelen metin gömme girdi boyutu.
  • num_layers (int, varsayılan 30) — Kullanılacak Transformer bloklarının katman sayısı.
  • dropout (float, varsayılan 0.0) — Kullanılacak dropout olasılığı.
  • attention_bias (bool, varsayılan True) — Dikkat projeksiyon katmanlarında sapma (bias) kullanılıp kullanılmayacağı.
  • sample_width (int, varsayılan 90) — Girdi latentlerinin genişliği.
  • sample_height (int, varsayılan 60) — Girdi latentlerinin yüksekliği.
  • sample_frames (int, varsayılan 49) — Girdi latentlerindeki kare sayısı. Not: ConsisID, varsayılan ve önerilen ayarlarında 13 latent kareyi birden işlemekle birlikte, bu parametre geriye dönük uyumluluğu sağlamak için doğru değere değiştirilemediğinden, 13 yerine yanlışlıkla 49 olarak başlatılmıştır. K latent kareli bir dönüştürücü oluşturmak için buraya geçirilmesi gereken doğru değer şudur: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, varsayılan 2) — Patch gömme katmanında kullanılacak yamaların boyutu.
  • temporal_compression_ratio (int, varsayılan 4) — Zamansal boyut boyunca sıkıştırma oranı. sample_frames belgelerine bakın.
  • max_text_seq_length (int, varsayılan 226) — Girdi metin gömme (embedding) dizilerinin maksimum uzunluğu.
  • activation_fn (str, varsayılan "gelu-approximate") — İleri beslemeli ağda kullanılacak aktivasyon fonksiyonu.
  • timestep_activation_fn (str, varsayılan "silu") — Zaman adımları gömmelemelerini üretirken kullanılacak aktivasyon fonksiyonu.
  • norm_elementwise_affine (bool, varsayılan True) — Normalizasyon katmanlarında elementwise affine kullanılacak mı.
  • norm_eps (float, varsayılan 1e-5) — Normalizasyon katmanlarında kullanılacak epsilon değeri.
  • spatial_interpolation_scale (float, varsayılan 1.875) — Uzamsal boyutlar boyunca 3D konumsal gömme (embedding) içinde uygulanacak ölçekleme faktörü.
  • temporal_interpolation_scale (float, varsayılan 1.0) — Zamansal boyutlar boyunca 3D konumsal gömme (embedding) içinde uygulanacak ölçekleme faktörü.
  • is_train_face (bool, varsayılan False) — Eğitim sürecinde kimlik koruma modülünün etkinleştirilip etkinleştirilmeyeceğini belirtir. True olarak ayarlandığında, model kimlik koruma görevlerine odaklanır.
  • is_kps (bool, varsayılan False) — Küresel yüz çıkarıcısı için anahtar nokta (keypoint) etkinleştirilip etkinleştirilmeyeceğini belirtir. True ise, anahtar noktalar modele dahil edilir.
  • cross_attn_interval (int, varsayılan 2) — Transformer mimarisinde çapraz dikkat katmanları arasındaki aralık. Daha büyük bir değer, çapraz dikkat hesaplamalarının sıklığını azaltabilir ve bu da hesaplama yükünü azaltmaya yardımcı olabilir.
  • cross_attn_dim_head (int, isteğe bağlı, varsayılan 128) — Transformer mimarisindeki çapraz dikkat katmanlarında her dikkat başlığının boyutu. Daha büyük bir değer, daha karmaşık kalıplara odaklanma kapasitesini artırır ancak bellek ve hesaplama maliyetlerini de yükseltir.
  • cross_attn_num_heads (int, isteğe bağlı, varsayılan 16) — Çapraz dikkat katmanlarındaki dikkat başlarının sayısı. Daha fazla baş, girdinin farklı bileşenleri arasındaki çeşitli ilişkileri yakalamak için daha paralel dikkat mekanizmalarına olanak tanır, ancak hesaplama gereksinimlerini de artırabilir.
  • LFE_id_dim (int, isteğe bağlı, varsayılan 1280) — Local Facial Extractor (LFE) içinde kullanılan kimlik vektörünün boyutluluğu. Bu vektör, yüzün kimlik özelliklerini temsil eder ve yüz tanıma ile farklı kareler arasında kimliğin korunması gibi görevler için önemlidir.
  • LFE_vit_dim (int, optional, defaults to 1024) — Local Facial Extractor (LFE) içinde kullanılan vision transformer (ViT) çıktısının boyutu. Bu değer, yüz özelliği çıkarımı için işlenecek transformer tarafından üretilen özellik vektörlerinin boyutunu belirler.
  • LFE_depth (int, isteğe bağlı, varsayılan 10) — Yerel Yüz Çıkarıcısının (LFE) katman sayısı. Derinliğin artırılması, modelin yüz özelliklerinin daha karmaşık temsillerini yakalamasına olanak tanır, ancak hesaplama yükünü de artırır.
  • LFE_dim_head (int, isteğe bağlı, varsayılan 64) — Yerel Yüz Çıkarıcısı'ndaki (LFE) her dikkat başlığının boyutluluğu. Bu parametre, çıkarım sürecinde modelin yüz özelliklerinin farklı bölümlerini ne kadar ince işleyip odaklanabileceğini etkiler.
  • LFE_num_heads (int, isteğe bağlı, varsayılan 16) — Local Facial Extractor (LFE) içindeki dikkat başlarının sayısı. Daha fazla baş, modelin çeşitli yüz özelliklerini yakalama yeteneğini artırabilir, ancak bunun bedeli artan hesaplama karmaşıklığıdır.
  • LFE_num_id_token (int, isteğe bağlı, varsayılan 5) — Local Facial Extractor (LFE) içinde kullanılan kimlik belirteçlerinin sayısı. Bu, modelin özellik çıkarımı sırasında yüz kimliğinin korunmasını sağlamak için işleyeceği kimlikle ilgili belirteç sayısını tanımlar.
  • LFE_num_querie (int, isteğe bağlı, varsayılan 32) — Local Facial Extractor (LFE) içinde kullanılan sorgu belirteçlerinin sayısı. Bu belirteçler, doğru yüz özelliği çıkarımına yardımcı olan yüksek frekanslı yüzle ilgili bilgileri yakalamak için kullanılır.
  • LFE_output_dim (int, isteğe bağlı, varsayılan 2048) — Yerel Yüz Çıkarıcısının (LFE) çıktı boyutu. Bu boyut, LFE modülünün ürettiği ve yüz tanıma veya izleme gibi sonraki görevlerde kullanılacak özellik vektörlerinin boyutunu belirler.
  • LFE_ff_mult (int, isteğe bağlı, varsayılan 4) — Local Facial Extractor (LFE) içindeki ileri beslemeli ağın gizli katman boyutuna uygulanan çarpım faktörü. Daha yüksek bir değer, modelin daha karmaşık yüz özelliği dönüşümlerini öğrenme kapasitesini artırır, ancak hesaplama ve bellek gereksinimlerini de artırır.
  • LFE_num_scale (int, isteğe bağlı, varsayılan 5) — Görsel özelliğin farklı ölçek sayısı. Daha yüksek bir değer, modelin daha karmaşık yüz özelliği dönüşümlerini öğrenme kapasitesini artırır, ancak hesaplama ve bellek gereksinimlerini de artırır.
  • local_face_scale (float, varsayılan 1.0) — Modelde yerel yüz özelliklerinin önemini ayarlamak için kullanılan ölçekleme faktörü. Bu, modelin yüksek frekanslı yüz içeriğine ne kadar yoğunlaştığını etkileyebilir.

ConsisID içinde video benzeri veriler için bir Transformer modeli.

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 )

Parametreler

  • hidden_states (torch.Tensor, şekli (batch_size, num_frames, channels, height, width)) — Girdi hidden_states.
  • encoder_hidden_states (torch.Tensor, şekli (batch_size, sequence_len, embed_dims)) — Kullanılacak koşullu gömme değerleri (prompt gibi girdi koşullarından hesaplanan gömme değerleri).
  • timestep (torch.LongTensor) — Gürültü azaltma adımını belirtmek için kullanılır.
  • timestep_cond (torch.Tensor, isteğe bağlı) — Timestep için koşullu gömme (embedding) değerleri. Sağlanırsa, gömme değerleri self.time_embedding katmanından geçirilen örneklerle toplanarak nihai timestep gömme değerleri elde edilir.
  • image_rotary_emb (tuple of torch.Tensor, opsiyonel) — Önceden hesaplanmış döner konumsal gömme (embedding) değerleri.
  • attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • id_cond (torch.Tensor, isteğe bağlı) — Kimlik koşullandırma için kullanılan yerel yüz çıkarıcısı tarafından çıkarılan yüz gömme (embedding).
  • id_vit_hidden (torch.Tensor, isteğe bağlı) — Kimlik koşullandırma için yüz görüntülerinden çıkarılan ViT gizli durumları.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~models.transformer_2d.Transformer2DModelOutput döndürülüp döndürülmemesi.

ConsisIDTransformer3DModel ileri yöntemi.

Transformer2DModelOutput

sınıf diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parametreler

  • sample (torch.Tensor, şekli (batch_size, num_channels, height, width) veya Transformer2DModel ayrık (discrete) ise (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states girdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü kaldırılmış (unnoised) gizli (latent) pikseller için olasılık dağıtımlarını döndürür.

Transformer2DModel'nin çıktısı.

Update on GitHub