Diffusers documentation

PriorTransformer

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

PriorTransformer

Prior Transformer, Ramesh ve ark. tarafından Hierarchical Text-Conditional Image Generation with CLIP Latents makalesinde ilk kez tanıtılmıştır. CLIP metin gömcelerinden CLIP görüntü gömcelerini tahmin etmek için kullanılır; görüntü gömceleri, gürültü azaltma difüzyon süreci aracılığıyla tahmin edilir.

Makalenin özeti şudur:

CLIP gibi kontrastif modellerin, hem semantiği hem de stili yakalayan, görüntülerin sağlam temsillerini öğrendiği gösterilmiştir. Bu temsilleri görüntü üretimi için kullanmak amacıyla iki aşamalı bir model öneriyoruz: bir metin açıklaması verildiğinde bir CLIP görüntü gömümünü üreten bir öncül (prior) ve görüntü gömümüne koşullu olarak bir görüntü üreten bir çözücü (decoder). Görüntü temsillerinin açıkça üretilmesinin, fotogerçekçilikte ve açıklama benzerliğinde minimal kayıpla görüntü çeşitliliğini artırdığını gösteriyoruz. Görüntü temsillerine koşullu çözücülerimiz, görüntü temsilinde bulunmayan, önemsiz detayları değiştirirken hem semantiği hem de stili koruyan bir görüntünün varyasyonlarını da üretebilir. Ayrıca, CLIP'in ortak gömüm uzayı, sıfır atış (zero-shot) bir şekilde dil yönlendirmeli görüntü manipülasyonlarını mümkün kılar. Çözücü için difüzyon modelleri kullanıyor ve öncül için hem otoregresif hem de difüzyon modelleriyle deney yapıyoruz; sonuncuların hesaplama açısından daha verimli olduğunu ve daha yüksek kaliteli örnekler ürettiğini buluyoruz.

PriorTransformer

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

Parametreler

  • num_attention_heads (int, isteğe bağlı, varsayılan 32) — Çok başlı dikkat (multi-head attention) için kullanılacak baş sayısı.
  • attention_head_dim (int, isteğe bağlı, varsayılan 64) — Her baştaki kanal sayısı.
  • num_layers (int, isteğe bağlı, varsayılan 20) — Kullanılacak Transformer bloklarının katman sayısı.
  • embedding_dim (int, isteğe bağlı, varsayılan 768) — Model girdisi hidden_states'nin boyutu
  • num_embeddings (int, isteğe bağlı, varsayılan 77) — Model girdisi hidden_states için gömme sayısı
  • additional_embeddings (int, isteğe bağlı, varsayılan 4) — Projelendirilmiş hidden_states'e eklenen ek token sayısı. Kullanılan hidden_states'in gerçek uzunluğu num_embeddings + additional_embeddings'tir.
  • dropout (float, isteğe bağlı, varsayılan 0.0) — Kullanılacak dropout olasılığı.
  • time_embed_act_fn (str, isteğe bağlı, varsayılan ‘silu’) — Adım (timestep) gömmelemelerini oluşturmak için kullanılacak aktivasyon fonksiyonu.
  • norm_in_type (str, isteğe bağlı, varsayılan None) — Transformer bloklarına aktarılmasından önce gizli durumlara uygulanacak normalizasyon katmanı. Normalizasyona gerek yoksa None olarak ayarlayın.
  • embedding_proj_norm_type (str, isteğe bağlı, varsayılanı None) — Giriş proj_embedding üzerinde uygulanacak normalizasyon katmanı. Normalizasyona gerek yoksa None olarak ayarlayın.
  • encoder_hid_proj_type (str, isteğe bağlı, varsayılan linear) — Giriş encoder_hidden_states üzerinde uygulanacak projeksiyon katmanı. encoder_hidden_states None ise bunu None olarak ayarlayın.
  • added_emb_type (str, isteğe bağlı, varsayılan prd) — Modeli koşullandırmak için ek gömlemeler. prd veya None arasından seçim yapın. prd seçilirse, unclip makalesinde önerildiği gibi metin gömlemesi ile görüntü gömlemesi arasındaki (kuantize) nokta çarpımını gösteren bir jeton başa eklenir https://huggingface.co/papers/2204.06125 None ise, ek gömlemeler başa eklenmez.
  • 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, isteğe bağlı, varsayılan None) — proj_embedding boyutu. None ise embedding_dim olarak ayarlanır.
  • clip_embed_dim (int, isteğe bağlı, varsayılan None) — Çıktının boyutu. None ise embedding_dim olarak ayarlanır.

A Prior Transformer modeli.

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

Parametreler

  • hidden_states (torch.Tensor, şekli (batch_size, embedding_dim)) — Şu anda tahmin edilen gömme (embedding) değerleri.
  • timestep (torch.LongTensor) — Güncel gürültü azaltma adımı.
  • proj_embedding (torch.Tensor, şekli (batch_size, embedding_dim)) — Gürültü azaltma sürecinin koşullandığı projeksiyon gömme vektörü.
  • encoder_hidden_states (torch.Tensor, şekli (batch_size, num_embeddings, embedding_dim)) — Gürültü azaltma sürecinin koşullandığı metin gömme gizli durumları.
  • attention_mask (torch.BoolTensor, şekli (batch_size, num_embeddings)) — Metin gömme vektörleri için metin maskesi.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine PriorTransformerOutput döndürülüp döndürülmemesi.

Dönüş değeri

PriorTransformerOutput veya tuple

return_dict True ise, PriorTransformerOutput döndürülür, aksi takdirde bir tuple döndürülür ve bu tuple'ın ilk öğesi örnek tensörüdür.

PriorTransformer ileri yöntemi.

set_default_attn_processor

< >

( )

Özel dikkat işleyicilerini devre dışı bırakır ve varsayılan dikkat uygulamasını ayarlar.

PriorTransformerOutput

sınıf diffusers.models.transformers.prior_transformer.PriorTransformerOutput

< >

( predicted_image_embedding: Tensor )

Parametreler

  • predicted_image_embedding (torch.Tensor, şekli (batch_size, embedding_dim)) — CLIP metin gömme girdisine koşullu olarak tahmin edilen CLIP görüntü gömme.

PriorTransformer'ın çıktısı.

Update on GitHub