Diffusers documentation

PriorTransformer

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

kelas diffusers.PriorTransformer

< >

( num_attention_heads: int = 32attention_head_dim: int = 64num_layers: int = 20embedding_dim: int = 768num_embeddings = 77additional_embeddings = 4dropout: float = 0.0time_embed_act_fn: str = 'silu'norm_in_type: str | None = Noneembedding_proj_norm_type: str | None = Noneencoder_hid_proj_type: str | None = 'linear'added_emb_type: str | None = 'prd'time_embed_dim: int | None = Noneembedding_proj_dim: int | None = Noneclip_embed_dim: int | None = None )

Parameter

  • num_attention_heads (int, opsional, default 32) — Jumlah head yang digunakan untuk multi-head attention.
  • attention_head_dim (int, opsional, default 64) — Jumlah channel di setiap head.
  • num_layers (int, opsional, default 20) — Jumlah lapisan blok Transformer yang akan digunakan.
  • embedding_dim (int, opsional, default 768) — Dimensi dari input model hidden_states
  • num_embeddings (int, opsional, default 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 digunakan.
  • time_embed_act_fn (str, opsional, default ‘silu’) — Fungsi aktivasi yang digunakan untuk membuat embedding timestep.
  • norm_in_type (str, opsional, default None) — Lapisan normalisasi yang diterapkan pada hidden states sebelum dilewatkan ke blok Transformer. Atur menjadi None jika normalisasi tidak diperlukan.
  • embedding_proj_norm_type (str, opsional, default 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, default 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

< >

( hidden_statestimestep: typing.Union[torch.Tensor, float, int]proj_embedding: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.BoolTensor] = Nonereturn_dict: bool = True ) → PriorTransformerOutput or tuple

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 embedding teks 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

< >

( )

Menonaktifkan prosesor perhatian kustom dan mengatur implementasi perhatian default.

PriorTransformerOutput

kelas diffusers.models.transformers.prior_transformer.PriorTransformerOutput

< >

( predicted_image_embedding: Tensor )

Parameter

  • predicted_image_embedding (torch.Tensor dengan bentuk (batch_size, embedding_dim)) — Embedding gambar CLIP yang diprediksi, dikondisikan pada input embedding teks CLIP.

Output dari PriorTransformer.

Update on GitHub