Buckets:

hf-doc-build/doc / diffusers /main /id /api /models /prior_transformer.md
mishig's picture
|
download
raw
7.79 kB

PriorTransformer

Prior Transformer pertama kali diperkenalkan dalam Hierarchical Text-Conditional Image Generation with CLIP Latents oleh Ramesh dkk. Model ini digunakan untuk memprediksi embedding gambar CLIP dari embedding teks CLIP; embedding gambar diprediksi melalui proses denoising diffusion.

Abstrak dari makalah tersebut adalah:

Model kontrasif seperti CLIP telah terbukti mampu mempelajari representasi gambar yang robust, yang menangkap baik semantik maupun gaya. Untuk memanfaatkan representasi ini untuk generasi gambar, kami mengusulkan model dua tahap: prior yang menghasilkan embedding gambar CLIP berdasarkan caption teks, dan decoder yang menghasilkan gambar yang dikondisikan pada embedding gambar tersebut. Kami menunjukkan bahwa secara eksplisit menghasilkan representasi gambar meningkatkan keragaman gambar dengan kehilangan minimal dalam hal fotorealisme dan kemiripan caption. Decoder kami yang dikondisikan pada representasi gambar juga dapat menghasilkan variasi dari sebuah gambar yang mempertahankan baik semantik maupun gayanya, sambil memvariasikan detail non-esensial yang tidak ada dalam representasi gambar tersebut. Selain itu, ruang embedding gabungan dari CLIP memungkinkan manipulasi gambar yang dipandu bahasa secara zero-shot. Kami menggunakan model difusi untuk decoder dan bereksperimen dengan model autoregresif maupun model difusi untuk prior, dan menemukan bahwa yang terakhir secara komputasi lebih efisien dan menghasilkan sampel dengan kualitas yang lebih tinggi.

PriorTransformer[[diffusers.PriorTransformer]]

diffusers.PriorTransformer[[diffusers.PriorTransformer]]

diffusers.PriorTransformer(num_attention_heads: int = 32, attention_head_dim: int = 64, num_layers: int = 20, embedding_dim: int = 768, num_embeddings = 77, additional_embeddings = 4, dropout: float = 0.0, time_embed_act_fn: str = 'silu', norm_in_type: str | None = None, embedding_proj_norm_type: str | None = None, encoder_hid_proj_type: str | None = 'linear', added_emb_type: str | None = 'prd', time_embed_dim: int | None = None, embedding_proj_dim: int | None = None, clip_embed_dim: int | None = None)

Sumber

Parameter:

num_attention_heads (int, opsional, defaultnya 32) : Jumlah head yang digunakan untuk multi-head attention.

attention_head_dim (int, opsional, defaultnya 64) : Jumlah channel di setiap head.

num_layers (int, opsional, defaultnya 20) : Jumlah lapisan blok Transformer yang akan digunakan.

embedding_dim (int, opsional, default 768) : Dimensi dari input model hidden_states

num_embeddings (int, opsional, defaultnya 77) : Jumlah embedding dari input model hidden_states

additional_embeddings (int, opsional, default 4) : Jumlah token tambahan yang ditambahkan ke hidden_states yang diproyeksikan. Panjang aktual dari hidden_states yang digunakan adalah num_embeddings + additional_embeddings.

dropout (float, opsional, default 0.0) : Probabilitas dropout yang akan digunakan.

time_embed_act_fn (str, opsional, defaultnya 'silu') : Fungsi aktivasi yang digunakan untuk membuat embedding timestep.

norm_in_type (str, opsional, defaultnya None) : Lapisan normalisasi yang diterapkan pada hidden states sebelum diteruskan ke blok Transformer. Atur menjadi None jika normalisasi tidak diperlukan.

embedding_proj_norm_type (str, opsional, defaultnya None) : Lapisan normalisasi yang diterapkan pada input proj_embedding. Atur menjadi None jika normalisasi tidak diperlukan.

encoder_hid_proj_type (str, opsional, defaultnya linear) : Lapisan proyeksi yang diterapkan pada input encoder_hidden_states. Atur menjadi None jika encoder_hidden_states adalah None.

added_emb_type (str, opsional, defaultnya prd) : Embedding tambahan untuk mengondisikan model. Pilih dari prd atau None. Jika memilih prd, sebuah token yang menunjukkan hasil perkalian titik (kuantisasi) antara embedding teks dan embedding gambar akan ditambahkan di depan, sebagaimana diusulkan dalam paper unclip https://huggingface.co/papers/2204.06125 Jika nilainya None, tidak ada embedding tambahan yang akan ditambahkan di depan.

time_embed_dim (int, *optional*, defaults to None) : The dimension of timestep embeddings. If None, will be set to num_attention_heads * attention_head_dim`

embedding_proj_dim (int, opsional, default None) : Dimensi dari proj_embedding. Jika None, akan diset ke embedding_dim.

clip_embed_dim (int, opsional, default None) : Dimensi dari output. Jika None, akan diset ke embedding_dim.

Model Transformer Prior.

forward[[diffusers.PriorTransformer.forward]]

forward(hidden_states, timestep: typing.Union[torch.Tensor, float, int], proj_embedding: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.BoolTensor] = None, return_dict: bool = True)

Sumber

Parameter:

hidden_states (torch.Tensor dengan bentuk (batch_size, embedding_dim)) : Embedding gambar yang saat ini diprediksi.

timestep (torch.LongTensor) : Langkah denoising saat ini.

proj_embedding (torch.Tensor dengan bentuk (batch_size, embedding_dim)) : Vektor embedding terproyeksi yang menjadi kondisi bagi proses denoising.

encoder_hidden_states (torch.Tensor dengan bentuk (batch_size, num_embeddings, embedding_dim)) : Hidden states dari text embeddings yang menjadi kondisi bagi proses denoising.

attention_mask (torch.BoolTensor dengan bentuk (batch_size, num_embeddings)) : Mask teks untuk embedding teks.

return_dict (bool, opsional, defaultnya True) : Apakah akan mengembalikan PriorTransformerOutput alih-alih tuple biasa.

Mengembalikan: PriorTransformerOutput atau tuple

If return_dict is True, a PriorTransformerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

Metode forward dari PriorTransformer.

set_default_attn_processor[[diffusers.PriorTransformer.set_default_attn_processor]]

set_default_attn_processor()

Sumber

Menonaktifkan prosesor perhatian kustom dan mengatur implementasi perhatian default.

PriorTransformerOutput[[diffusers.models.transformers.prior_transformer.PriorTransformerOutput]]

diffusers.models.transformers.prior_transformer.PriorTransformerOutput[[diffusers.models.transformers.prior_transformer.PriorTransformerOutput]]

diffusers.models.transformers.prior_transformer.PriorTransformerOutput(predicted_image_embedding: Tensor)

Sumber

Parameter:

predicted_image_embedding (torch.Tensor dengan bentuk (batch_size, embedding_dim)) : Embedding gambar CLIP yang diprediksi berdasarkan input embedding teks CLIP.

Output dari PriorTransformer.

Xet Storage Details

Size:
7.79 kB
·
Xet hash:
67a6874f786846388453d9edde834523fc3fc3de88365670e4c210b88fb22f23

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