Buckets:
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.