Diffusers documentation
ConsisIDTransformer3DModel
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
< source >( 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ılan30) — Çok başlı dikkat (multi-head attention) için kullanılacak baş sayısı. - attention_head_dim (
int, varsayılan64) — Her baştaki kanal sayısı. - in_channels (
int, varsayılan16) — Girdideki kanal sayısı. - out_channels (
int, isteğe bağlı, varsayılan16) — Çıktıdaki kanal sayısı. - flip_sin_to_cos (
bool, varsayılanTrue) — Zaman gömme (embedding) içinde sin'in cos'a çevrilip çevrilmeyeceğini belirtir. - time_embed_dim (
int, varsayılan512) — Zaman adımı gömme çıktısının boyutu. - text_embed_dim (
int, varsayılan4096) — Metin kodlayıcıdan gelen metin gömme girdi boyutu. - num_layers (
int, varsayılan30) — Kullanılacak Transformer bloklarının katman sayısı. - dropout (
float, varsayılan0.0) — Kullanılacak dropout olasılığı. - attention_bias (
bool, varsayılanTrue) — Dikkat projeksiyon katmanlarında sapma (bias) kullanılıp kullanılmayacağı. - sample_width (
int, varsayılan90) — Girdi latentlerinin genişliği. - sample_height (
int, varsayılan60) — Girdi latentlerinin yüksekliği. - sample_frames (
int, varsayılan49) — 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ılan2) — Patch gömme katmanında kullanılacak yamaların boyutu. - temporal_compression_ratio (
int, varsayılan4) — Zamansal boyut boyunca sıkıştırma oranı.sample_framesbelgelerine bakın. - max_text_seq_length (
int, varsayılan226) — 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ılanTrue) — Normalizasyon katmanlarında elementwise affine kullanılacak mı. - norm_eps (
float, varsayılan1e-5) — Normalizasyon katmanlarında kullanılacak epsilon değeri. - spatial_interpolation_scale (
float, varsayılan1.875) — Uzamsal boyutlar boyunca 3D konumsal gömme (embedding) içinde uygulanacak ölçekleme faktörü. - temporal_interpolation_scale (
float, varsayılan1.0) — Zamansal boyutlar boyunca 3D konumsal gömme (embedding) içinde uygulanacak ölçekleme faktörü. - is_train_face (
bool, varsayılanFalse) — Eğitim sürecinde kimlik koruma modülünün etkinleştirilip etkinleştirilmeyeceğini belirtir.Trueolarak ayarlandığında, model kimlik koruma görevlerine odaklanır. - is_kps (
bool, varsayılanFalse) — Küresel yüz çıkarıcısı için anahtar nokta (keypoint) etkinleştirilip etkinleştirilmeyeceğini belirtir.Trueise, anahtar noktalar modele dahil edilir. - cross_attn_interval (
int, varsayılan2) — 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ılan128) — 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ılan16) — Ç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ılan1280) — 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 to1024) — 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ılan10) — 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ılan64) — 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ılan16) — 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ılan5) — 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ılan32) — 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ılan2048) — 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ılan4) — 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ılan5) — 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ılan1.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
< source >( 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)) — Girdihidden_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ğerleriself.time_embeddingkatmanından geçirilen örneklerle toplanarak nihai timestep gömme değerleri elde edilir. - image_rotary_emb (
tupleoftorch.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çindekiself.processoraltında tanımlananAttentionProcessor'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ılanTrue) — Düz bir tuple yerine~models.transformer_2d.Transformer2DModelOutputdöndürülüp döndürülmemesi.
ConsisIDTransformer3DModel ileri yöntemi.
Transformer2DModelOutput
sınıf diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( 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_statesgirdisine 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ı.