Buckets:

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

PriorTransformer

Prior Transformer は、Ramesh らによる Hierarchical Text-Conditional Image Generation with CLIP Latents で初めて紹介されました。CLIP テキスト埋め込みから CLIP 画像埋め込みを予測するために使用され、画像埋め込みはデノイジング拡散プロセスを通じて予測されます。

論文の抄録は以下の通りです:

CLIPのような対照的モデルは、意味とスタイルの両方を捉える画像の頑健な表現を学習できることが示されています。これらの表現を画像生成に活用するために、2段階のモデルを提案します。1つは、テキストキャプションが与えられたときにCLIPの画像埋め込みを生成する事前分布(prior)、もう1つは、画像埋め込みを条件として画像を生成するデコーダーです。画像表現を明示的に生成することで、フォトリアリズムとキャプション類似度の損失を最小限に抑えながら、画像の多様性を向上させることを示します。画像表現を条件とする私たちのデコーダーは、画像表現に含まれていない非本質的な詳細を変化させつつ、意味とスタイルの両方を保持した画像のバリエーションを生成することもできます。さらに、CLIPの結合埋め込み空間により、ゼロショットで言語による画像操作が可能になります。デコーダーには拡散モデルを使用し、事前分布には自己回帰モデルと拡散モデルの両方を試しましたが、後者の方が計算効率が良く、より高品質なサンプルを生成することがわかりました。

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、任意、デフォルトは 32) : マルチヘッドアテンションで使用するヘッド数。

attention_head_dim (int、optional、デフォルトは 64) : 各ヘッドのチャネル数。

num_layers (int、optional、デフォルトは 20) : 使用する Transformer ブロックの層数。

embedding_dim (int、optional、デフォルトは 768) : モデル入力 hidden_states の次元

num_embeddings (int、optional、デフォルトは 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に適用する投影層。encoder_hidden_statesがNoneの場合は、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、optional、デフォルトは None) : 出力の次元数です。None の場合、embedding_dim に設定されます。

事前学習済み 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、shape (batch_size, embedding_dim)) : 現在予測されている画像埋め込み。

timestep (torch.LongTensor) : 現在のノイズ除去ステップ。

proj_embedding (torch.Tensor、shape (batch_size, embedding_dim)) : 去噪プロセスの条件となる、射影された埋め込みベクトル。

encoder_hidden_states (torch.Tensor、shape (batch_size, num_embeddings, embedding_dim)) : デノイジングプロセスの条件となるテキスト埋め込みの隠れ状態。

attention_mask (torch.BoolTensor、shape (batch_size, num_embeddings)) : テキスト埋め込み用のテキストマスク。

return_dict (bool、任意、デフォルトはTrue) : プレーンなタプルではなくPriorTransformerOutputを返すかどうか。

戻り値: PriorTransformerOutput または tuple

return_dict が True の場合、PriorTransformerOutput が返され、それ以外の場合は、最初の要素がサンプルテンソルであるタプルが返されます。

PriorTransformerのforwardメソッドです。

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、shape (batch_size, embedding_dim)) : CLIP テキスト埋め込み入力を条件として予測された CLIP 画像埋め込み。

PriorTransformerの出力。

Xet Storage Details

Size:
8.47 kB
·
Xet hash:
6f646c90e6c01c346a14eaace9d141d81b4922ab11eebda6426d49a1b7056912

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