Buckets:

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

PriorTransformer

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

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

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

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)

Источник

Параметры:

num_attention_heads (int, optional, по умолчанию 32) : Количество головок для использования в механизме внимания с несколькими головками.

attention_head_dim (int, необязательный, по умолчанию 64) : Количество каналов в каждой голове.

num_layers (int, optional, по умолчанию 20) : Количество блоков Transformer, которые следует использовать.

embedding_dim (int, необязательный, по умолчанию 768) : размерность входных данных модели hidden_states

num_embeddings (int, необязательный, по умолчанию 77) : количество эмбеддингов входных данных модели hidden_states

additional_embeddings (int, optional, по умолчанию 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, optional, по умолчанию 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[[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)

Источник

Параметры:

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

Если return_dict равно True, возвращается PriorTransformerOutput, иначе возвращается кортеж, первым элементом которого является тензор выборки.

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

set_default_attn_processor[[diffusers.PriorTransformer.set_default_attn_processor]]

set_default_attn_processor()

Источник

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

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)

Источник

Параметры:

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

Вывод PriorTransformer.

Xet Storage Details

Size:
11 kB
·
Xet hash:
b22c42c6a591ca5acefd6887cb539bf880a0204861981aa4c7da17e78ce94255

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