Diffusers documentation

CogView3PlusTransformer2DModel

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

CogView3PlusTransformer2DModel

清華大学およびZhipuAIによるCogView3: Finer and Faster Text-to-Image Generation via Relay Diffusionにおいて、CogView3Plusの2Dデータ向けのDiffusion Transformerモデルが紹介されました。

モデルは、以下のコードスニペットで読み込むことができます。

from diffusers import CogView3PlusTransformer2DModel

transformer = CogView3PlusTransformer2DModel.from_pretrained("THUDM/CogView3Plus-3b", subfolder="transformer", dtype=torch.bfloat16).to("cuda")  # or "mps", "xpu", "cpu"

CogView3PlusTransformer2DModel

class diffusers.CogView3PlusTransformer2DModel

< >

( patch_size: int = 2in_channels: int = 16num_layers: int = 30attention_head_dim: int = 40num_attention_heads: int = 64out_channels: int = 16text_embed_dim: int = 4096time_embed_dim: int = 512condition_dim: int = 256pos_embed_max_size: int = 128sample_size: int = 128 )

パラメータ

  • patch_size (int, デフォルトは 2) — パッチ埋め込み層で使用するパッチのサイズです。
  • in_channels (int, デフォルトは 16) — 入力におけるチャネル数。
  • num_layers (int、デフォルトは 30) — 使用する Transformer ブロックの層数です。
  • attention_head_dim (int、デフォルトは40) — 各ヘッドのチャネル数です。
  • num_attention_heads (int、デフォルトは64) — マルチヘッドアテンションで使用するヘッドの数。
  • out_channels (int、デフォルトは16) — 出力のチャネル数です。
  • text_embed_dim (int、デフォルトは 4096) — テキストエンコーダーからのテキスト埋め込みの入力次元数。
  • time_embed_dim (int、デフォルトは 512) — タイムステップ埋め込みの出力次元数。
  • condition_dim (int、デフォルトは 256) — 入力される SDXL 形式の解像度条件 (original_size, target_size, crop_coords) の埋め込み次元です。
  • pos_embed_max_size (int、デフォルト値は 128) — 位置埋め込みの最大解像度です。入力されたパッチ化された潜在変数に、H x W の形状のスライスが切り出されて加算されます。ここで H と W はそれぞれ潜在変数の高さおよび幅です。値が 128 である場合、画像生成でサポートされる最大の高さと幅は 128 * vae_scale_factor * patch_size => 128 * 8 * 2 => 2048 となります。
  • sample_size (int、デフォルトは 128) — 入力ラテンツのベース解像度です。生成時に高さ/幅が指定されない場合、この値を使用して解像度を sample_size * vae_scale_factor => 128 * 8 => 1024 と決定します。

Relay Diffusionによるより細かく高速なテキストから画像への生成で紹介されたTransformerモデル。

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensororiginal_size: Tensortarget_size: Tensorcrop_coords: Tensorreturn_dict: bool = True ) → torch.Tensor or ~models.transformer_2d.Transformer2DModelOutput

パラメータ

  • hidden_states (torch.Tensor) — 形状が(batch size, channel, height, width)のhidden_statesを入力します。
  • encoder_hidden_states (torch.Tensor) — プロンプトなどの入力条件から計算される条件付き埋め込みで、形状は (batch_size, sequence_len, text_embed_dim) です
  • timestep (torch.LongTensor) — デノイジングステップを示すために使用されます。
  • original_size (torch.Tensor) — CogView3 は、https://huggingface.co/papers/2307.01952 のセクション 2.2 で説明されているように、元の画像サイズに対して SDXL 風のマイクロ条件付けを使用します。
  • target_size (torch.Tensor) — CogView3 は、https://huggingface.co/papers/2307.01952 のセクション 2.2 で説明されているように、ターゲット画像サイズに対して SDXL 風のマイクロ条件付けを使用します。
  • crop_coords (torch.Tensor) — CogView3 は、https://huggingface.co/papers/2307.01952 のセクション 2.2 で説明されているように、クロップ座標に対して SDXL 風のマイクロ条件付けを使用します。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく ~models.transformer_2d.Transformer2DModelOutput を返すかどうか。

戻り値

torch.Tensor または ~models.transformer_2d.Transformer2DModelOutput

提供された入力を用いて条件付けを行い、ノイズ除去された潜在変数。

CogView3PlusTransformer2DModelのforwardメソッドです。

Transformer2DModelOutput

クラス diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

パラメータ

  • sample (torch.Tensor、形状 (batch_size, num_channels, height, width)、または Transformer2DModel が離散型の場合 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 入力を条件とする隠れ状態の出力です。離散型の場合、ノイズ除去されていない潜在ピクセルの確率分布を返します。

Transformer2DModelの出力です。

Update on GitHub