Diffusers documentation

SD3 Transformer モデル

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SD3 Transformer モデル

Stable Diffusion 3で導入されたTransformerモデルです。その新しさは、MMDiT Transformerブロックにあります。

SD3Transformer2DModel

クラス diffusers.SD3Transformer2DModel

< >

( sample_size: int = 128patch_size: int = 2in_channels: int = 16num_layers: int = 18attention_head_dim: int = 64num_attention_heads: int = 18joint_attention_dim: int = 4096caption_projection_dim: int = 1152pooled_projection_dim: int = 2048out_channels: int = 16pos_embed_max_size: int = 96dual_attention_layers: tuple[int, ...] = ()qk_norm: str | None = None )

パラメータ

  • sample_size (int、デフォルトは 128) — 潜在変数の幅/高さです。これは位置埋め込みの数を学習するために使用されるため、トレーニング中は固定されます。
  • patch_size (int、デフォルトは2) — 入力データを小さなパッチに変換するためのパッチサイズ。
  • in_channels (int、デフォルトは16) — 入力における潜在チャネルの数です。
  • num_layers (int、デフォルトは 18) — 使用する transformer ブロックの層数です。
  • attention_head_dim (int, デフォルトは 64) — 各ヘッドのチャネル数です。
  • num_attention_heads (int、デフォルトは18) — マルチヘッドアテンションに使用するヘッドの数。
  • joint_attention_dim (int、デフォルトは 4096) — テキストと画像の結合アテンションに使用する埋め込み次元数。
  • caption_projection_dim (int、デフォルトは 1152) — キャプション埋め込みの次元数です。
  • pooled_projection_dim (int, デフォルトは 2048) — プーリングされたテキスト投影の埋め込み次元です。
  • out_channels (int、デフォルトは 16) — 出力の潜在チャネル数です。
  • pos_embed_max_size (int、デフォルトは 96) — 位置埋め込みの潜在高さ/幅の最大値。
  • dual_attention_layers (tuple[int, ...]、デフォルトは()) — 使用するデュアルストリームtransformerブロックの数です。
  • qk_norm (str、省略可、デフォルトはNone) — アテンション層のクエリとキーに使用する正規化です。Noneの場合、正規化は行われません。

Stable Diffusion 3で導入されたTransformerモデル。

enable_forward_chunking

< >

( chunk_size: int | None = Nonedim: int = 0 )

パラメータ

  • chunk_size (int, 任意) — フィードフォワード層のチャンクサイズです。指定しない場合、dim 次元の各テンソルに対してフィードフォワード層を個別に実行します。
  • dim (int, 任意、デフォルトは 0) — フィードフォワード計算をチャンク分割する次元を指定します。dim=0 (バッチ) または dim=1 (シーケンス長) のいずれかを選択してください。

フィードフォワードチャンク分割を使用するアテンションプロセッサを設定します。

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )

パラメータ

  • hidden_states (torch.Tensor、形状 (batch size, channel, height, width)) — 入力となる hidden_states。
  • encoder_hidden_states (torch.Tensor、形状 (batch size, sequence_len, embed_dims)) — 使用する条件埋め込み(プロンプトなどの入力条件から計算される埋め込み)。
  • pooled_projections(torch.Tensor、形状 (batch_size, projection_dim))— 入力条件の埋め込みから射影された埋め込みです。
  • timestep (torch.LongTensor) — デノイジングステップを示すために使用されます。
  • block_controlnet_hidden_states (list of torch.Tensor) — 指定された場合、transformer ブロックの残差に追加されるテンソルのリストです。
  • joint_attention_kwargs (dict、省略可) — 指定された場合、diffusers.models.attention_processor で定義されている self.processor 配下の AttentionProcessor に渡される kwargs の辞書です。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく ~models.transformer_2d.Transformer2DModelOutput を返すかどうか。
  • skip_layers (list of int, 任意) — フォワードパス中にスキップするレイヤーのインデックスのリストです。

SD3Transformer2DModelのforwardメソッド。

fuse_qkv_projections

< >

( )

融合された QKV 投影を有効にします。自己注意モジュールでは、すべての投影行列(つまり、クエリ、キー、バリュー)が融合されます。相互注意モジュールでは、キーとバリューの投影行列が融合されます。

> このAPIは🧪実験的です。

unfuse_qkv_projections

< >

( )

有効化されている場合、融合された QKV 投影を無効にします。

> このAPIは🧪実験的です。

Update on GitHub