Diffusers documentation
ConsisIDTransformer3DModel
ConsisIDTransformer3DModel
Model Diffusion Transformer untuk data 3D dari ConsisID diperkenalkan dalam Identity-Preserving Text-to-Video Generation by Frequency Decomposition oleh Peking University & University of Rochester & lainnya.
Model dapat dimuat dengan potongan kode berikut.
from diffusers import ConsisIDTransformer3DModel
transformer = ConsisIDTransformer3DModel.from_pretrained("BestWishYsh/ConsisID-preview", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"ConsisIDTransformer3DModel
kelas 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 )
Parameter
- num_attention_heads (
int, defaultnya30) — Jumlah head yang digunakan untuk multi-head attention. - attention_head_dim (
int, defaultnya64) — Jumlah saluran di setiap head. - in_channels (
int, defaultnya16) — Jumlah channel pada input. - out_channels (
int, opsional, default16) — Jumlah channel pada output. - flip_sin_to_cos (
bool, defaultnyaTrue) — Apakah akan membalik sin menjadi cos pada time embedding. - time_embed_dim (
int, defaultnya512) — Dimensi output dari embedding timestep. - text_embed_dim (
int, defaultnya4096) — Dimensi input dari text embeddings yang berasal dari text encoder. - num_layers (
int, defaultnya30) — Jumlah lapisan blok Transformer yang akan digunakan. - dropout (
float, defaultnya0.0) — Probabilitas dropout yang digunakan. - attention_bias (
bool, defaultnyaTrue) — Apakah akan menggunakan bias pada lapisan proyeksi perhatian. - sample_width (
int, defaultnya90) — Lebar dari latens input. - sample_height (
int, defaultnya60) — Tinggi dari latents input. - sample_frames (
int, defaultnya49) — Jumlah frame pada latens input. Perhatikan bahwa parameter ini diinisialisasi secara keliru menjadi 49 sebagai gantinya 13 karena ConsisID memproses 13 frame latens sekaligus pada pengaturan default dan yang direkomendasikannya, namun tidak dapat diubah ke nilai yang benar untuk memastikan kompatibilitas mundur. Untuk membuat transformer dengan K frame latens, nilai yang benar untuk dilewatkan di sini adalah: ((K - 1) * temporal_compression_ratio + 1). - patch_size (
int, defaultnya2) — Ukuran patch yang akan digunakan di lapisan patch embedding. - temporal_compression_ratio (
int, defaultnya4) — Rasio kompresi di sepanjang dimensi temporal. Lihat dokumentasi untuksample_frames. - max_text_seq_length (
int, defaultnya226) — Panjang maksimum sekuens dari embedding teks input. - activation_fn (
str, defaultnya"gelu-approximate") — Fungsi aktivasi yang digunakan dalam feed-forward. - timestep_activation_fn (
str, defaultnya"silu") — Fungsi aktivasi yang digunakan saat menghasilkan embedding timestep. - norm_elementwise_affine (
bool, defaultnyaTrue) — Apakah akan menggunakan elementwise affine pada lapisan normalisasi. - norm_eps (
float, defaultnya1e-5) — Nilai epsilon yang digunakan dalam lapisan normalisasi. - spatial_interpolation_scale (
float, defaultnya1.875) — Faktor skala yang diterapkan pada embedding posisional 3D di sepanjang dimensi spasial. - temporal_interpolation_scale (
float, defaultnya1.0) — Faktor penskalaan yang diterapkan pada embedding posisional 3D di sepanjang dimensi temporal. - is_train_face (
bool, defaultnyaFalse) — Apakah akan mengaktifkan modul pelestarian identitas selama proses pelatihan. Jika diatur keTrue, model akan berfokus pada tugas pelestarian identitas. - is_kps (
bool, defaultnyaFalse) — Apakah akan mengaktifkan keypoint untuk ekstraktor wajah global. JikaTrue, keypoint akan ada di dalam model. - cross_attn_interval (
int, defaultnya2) — Interval antara lapisan cross-attention dalam arsitektur Transformer. Nilai yang lebih besar dapat mengurangi frekuensi komputasi cross-attention, yang dapat membantu mengurangi overhead komputasi. - cross_attn_dim_head (
int, opsional, default128) — Dimensi dari setiap kepala perhatian (attention head) pada lapisan cross-attention dalam arsitektur Transformer. Nilai yang lebih besar meningkatkan kapasitas untuk memperhatikan pola yang lebih kompleks, tetapi juga meningkatkan biaya memori dan komputasi. - cross_attn_num_heads (
int, opsional, default16) — Jumlah kepala perhatian pada lapisan cross-attention. Semakin banyak kepala memungkinkan mekanisme perhatian paralel yang lebih banyak, menangkap hubungan yang beragam antara komponen berbeda dari input, tetapi juga dapat meningkatkan persyaratan komputasi. - LFE_id_dim (
int, opsional, default1280) — Dimensi dari vektor identitas yang digunakan dalam Local Facial Extractor (LFE). Vektor ini merepresentasikan fitur identitas dari wajah, yang penting untuk tugas seperti pengenalan wajah dan preservasi identitas di berbagai frame. - LFE_vit_dim (
int, opsional, default1024) — Dimensi dari output vision transformer (ViT) yang digunakan dalam Local Facial Extractor (LFE). Nilai ini menentukan ukuran vektor fitur yang dihasilkan transformer yang akan diproses untuk ekstraksi fitur wajah. - LFE_depth (
int, opsional, default10) — Jumlah lapisan dalam Local Facial Extractor (LFE). Meningkatkan kedalaman memungkinkan model untuk menangkap representasi fitur wajah yang lebih kompleks, tetapi juga meningkatkan beban komputasi. - LFE_dim_head (
int, opsional, default64) — Dimensi dari setiap kepala perhatian (attention head) dalam Local Facial Extractor (LFE). Parameter ini memengaruhi seberapa halus model dapat memproses dan memfokuskan pada bagian-bagian berbeda dari fitur wajah selama proses ekstraksi. - LFE_num_heads (
int, opsional, default16) — Jumlah kepala perhatian (attention heads) dalam Local Facial Extractor (LFE). Semakin banyak kepala, semakin baik kemampuan model untuk menangkap fitur wajah yang beragam, namun dengan biaya kompleksitas komputasi yang lebih tinggi. - LFE_num_id_token (
int, opsional, default5) — Jumlah token identitas yang digunakan dalam Local Facial Extractor (LFE). Ini menentukan berapa banyak token terkait identitas yang akan diproses oleh model untuk memastikan pelestarian identitas wajah selama ekstraksi fitur. - LFE_num_querie (
int, opsional, default32) — Jumlah token query yang digunakan dalam Local Facial Extractor (LFE). Token-token ini digunakan untuk menangkap informasi wajah berfrekuensi tinggi yang membantu dalam ekstraksi fitur wajah yang akurat. - LFE_output_dim (
int, opsional, default2048) — Dimensi output dari Local Facial Extractor (LFE). Dimensi ini menentukan ukuran vektor fitur yang dihasilkan oleh modul LFE, yang akan digunakan untuk tugas-tugas selanjutnya seperti pengenalan wajah atau pelacakan. - LFE_ff_mult (
int, opsional, default4) — Faktor perkalian yang diterapkan pada ukuran lapisan tersembunyi jaringan feed-forward dalam Local Facial Extractor (LFE). Nilai yang lebih tinggi meningkatkan kapasitas model untuk mempelajari transformasi fitur wajah yang lebih kompleks, tetapi juga meningkatkan persyaratan komputasi dan memori. - LFE_num_scale (
int, opsional, default5) — Jumlah skala fitur visual yang berbeda. Nilai yang lebih tinggi meningkatkan kapasitas model untuk mempelajari transformasi fitur wajah yang lebih kompleks, tetapi juga meningkatkan persyaratan komputasi dan memori. - local_face_scale (
float, defaultnya1.0) — Faktor penskalaan yang digunakan untuk menyesuaikan pentingnya fitur wajah lokal dalam model. Hal ini dapat memengaruhi seberapa kuat model berfokus pada konten terkait wajah dengan frekuensi tinggi.
Model Transformer untuk data seperti video di ConsisID.
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 )
Parameter
- hidden_states (
torch.Tensordengan bentuk(batch_size, num_frames, channels, height, width)) —hidden_statesmasukan. - encoder_hidden_states (
torch.Tensordengan bentuk(batch_size, sequence_len, embed_dims)) — Embedding kondisional (embedding yang dihitung dari kondisi input seperti prompt) yang akan digunakan. - timestep (
torch.LongTensor) — Digunakan untuk menunjukkan langkah denoising. - timestep_cond (
torch.Tensor, opsional) — Embedding kondisional untuk timestep. Jika diberikan, embedding akan dijumlahkan dengan sampel yang melewati lapisanself.time_embeddinguntuk mendapatkan embedding timestep akhir. - image_rotary_emb (
tupledaritorch.Tensor, opsional) — Embedding posisi rotasi yang telah dihitung sebelumnya. - attention_kwargs (
dict, opsional) — Kamus kwargs yang jika ditentukan akan diteruskan keAttentionProcessorseperti yang didefinisikan di bawahself.processordalam diffusers.models.attention_processor. - id_cond (
torch.Tensor, opsional) — Embedding wajah yang diekstrak oleh ekstraktor wajah lokal yang digunakan untuk kondisioning identitas. - id_vit_hidden (
torch.Tensor, opsional) — State tersembunyi ViT yang diekstrak dari gambar wajah yang digunakan untuk kondisioning identitas. - return_dict (
bool, opsional, defaultTrue) — Apakah akan mengembalikan~models.transformer_2d.Transformer2DModelOutputalih-alih tuple biasa.
Metode forward dari ConsisIDTransformer3DModel.
Transformer2DModelOutput
kelas diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parameter
- sample (
torch.Tensordengan bentuk(batch_size, num_channels, height, width)atau(batch size, num_vector_embeds - 1, num_latent_pixels)jika Transformer2DModel bersifat diskrit) — Output hidden states yang dikondisikan pada inputencoder_hidden_states. Jika diskrit, mengembalikan distribusi probabilitas untuk latent pixels yang tidak berisik.
Output dari Transformer2DModel.