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.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

PriorTransformer

Prior Transformer был впервые представлен в работе Hierarchical Text-Conditional Image Generation with CLIP Latents Ramesh et al. Он используется для предсказания изображений CLIP по текстовым эмбеддингам CLIP; эмбеддинги изображений предсказываются с помощью процесса диффузионного шумоподавления.

Аннотация из статьи:

Показано, что контрастивные модели, такие как CLIP, обучают робастные представления изображений, захватывающие как семантику, так и стиль. Чтобы использовать эти представления для генерации изображений, мы предлагаем двухэтапную модель: априорную модель, которая генерирует представление изображения CLIP по текстовому описанию, и декодер, который генерирует изображение с условием на это представление. Мы показываем, что явная генерация представлений изображений повышает разнообразие генерируемых изображений при минимальной потере фотореализма и сходства с описанием. Наши декодеры, работающие с условием на представления изображений, также могут создавать вариации изображения, сохраняя его семантику и стиль, но изменяя несущественные детали, отсутствующие в представлении изображения. Более того, совместное пространство представлений CLIP позволяет выполнять манипуляции с изображениями по языковому запросу в режиме zero-shot. Мы используем диффузионные модели для декодера и проводим эксперименты как с авто регрессионными, так и с диффузионными моделями для априорной модели, обнаружив, что вторые вычислительно более эффективны и дают образцы более высокого качества.

PriorTransformer

класс 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 )

Параметры

  • num_attention_heads (int, необязательный, по умолчанию 32) — количество головок для использования в механизме multi-head attention.
  • attention_head_dim (int, необязательный, по умолчанию 64) — количество каналов в каждой голове.
  • num_layers (int, необязательный, по умолчанию 20) — Количество блоков Transformer, используемых в модели.
  • embedding_dim (int, необязательный, по умолчанию 768) — размерность входных hidden_states модели
  • num_embeddings (int, необязательный, по умолчанию 77) — Количество эмбеддингов входных данных модели hidden_states
  • additional_embeddings (int, необязательный, по умолчанию 4) — количество дополнительных токенов, добавляемых к проецированным hidden_states. Фактическая длина используемых hidden_states равна num_embeddings + additional_embeddings.
  • dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout, которую следует использовать.
  • time_embed_act_fn (str, необязательный, по умолчанию ‘silu’) — Функция активации, используемая для создания эмбеддингов временных шагов.
  • norm_in_type (str, необязательный, по умолчанию None) — слой нормализации, применяемый к скрытым состояниям перед передачей в блоки Transformer. Установите None, если нормализация не требуется.
  • embedding_proj_norm_type (str, необязательный, по умолчанию None) — Слой нормализации, применяемый к входным proj_embedding. Установите значение None, если нормализация не требуется.
  • encoder_hid_proj_type (str, необязательный, по умолчанию linear) — Слой проекции, применяемый к входным encoder_hidden_states. Установите значение None, если encoder_hidden_states равно None.
  • added_emb_type (str, необязательный, по умолчанию prd) — Дополнительные эмбеддинги для условного формирования модели. Выберите prd или None. Если выбрано prd, перед входом добавляется токен, указывающий на (квантованное) скалярное произведение между текстовым и изображенческим эмбеддингами, как предложено в статье unclip https://huggingface.co/papers/2204.06125 Если указано None, дополнительные эмбеддинги не добавляются.
  • 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, необязательный, по умолчанию None) — Размерность proj_embedding. Если значение равно None, будет установлено значение embedding_dim.
  • clip_embed_dim (int, необязательный, по умолчанию None) — Размерность выходных данных. Если значение равно None, устанавливается embedding_dim.

Модель A Prior Transformer.

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

Параметры

  • hidden_states (torch.Tensor формы (batch_size, embedding_dim)) — Текущие предсказанные эмбеддинги изображений.
  • timestep (torch.LongTensor) — Текущий шаг денойзинга.
  • proj_embedding (torch.Tensor формы (batch_size, embedding_dim)) — Проецированный вектор эмбеддинга, на который опирается процесс шумоподавления.
  • encoder_hidden_states (torch.Tensor формы (batch_size, num_embeddings, embedding_dim)) — Скрытые состояния текстовых эмбеддингов, на которые опирается процесс денойзинга.
  • attention_mask (torch.BoolTensor формы (batch_size, num_embeddings)) — Маска текста для текстовых эмбеддингов.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать PriorTransformerOutput вместо обычного кортежа.

Возвращает

PriorTransformerOutput или tuple

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

Метод forward класса PriorTransformer.

set_default_attn_processor

< >

( )

Отключает пользовательские обработчики внимания и устанавливает реализацию внимания по умолчанию.

PriorTransformerOutput

класс diffusers.models.transformers.prior_transformer.PriorTransformerOutput

< >

( predicted_image_embedding: Tensor )

Параметры

  • predicted_image_embedding (torch.Tensor формы (batch_size, embedding_dim)) — Предсказанное CLIP-вложение изображения, обусловленное входным CLIP-вложением текста.

Вывод PriorTransformer.

Update on GitHub