Diffusers documentation
SD3 Transformer モデル
SD3 Transformer モデル
Stable Diffusion 3で導入されたTransformerモデルです。その新しさは、MMDiT Transformerブロックにあります。
SD3Transformer2DModel
クラス diffusers.SD3Transformer2DModel
< source >( 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
< source >( chunk_size: int | None = Nonedim: int = 0 )
フィードフォワードチャンク分割を使用するアテンションプロセッサを設定します。
forward
< source >( 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 (
listoftorch.Tensor) — 指定された場合、transformer ブロックの残差に追加されるテンソルのリストです。 - joint_attention_kwargs (
dict、省略可) — 指定された場合、diffusers.models.attention_processor で定義されているself.processor配下のAttentionProcessorに渡される kwargs の辞書です。 - return_dict (
bool、任意、デフォルトはTrue) — プレーンなタプルではなく~models.transformer_2d.Transformer2DModelOutputを返すかどうか。 - skip_layers (
listofint, 任意) — フォワードパス中にスキップするレイヤーのインデックスのリストです。
SD3Transformer2DModelのforwardメソッド。
融合された QKV 投影を有効にします。自己注意モジュールでは、すべての投影行列(つまり、クエリ、キー、バリュー)が融合されます。相互注意モジュールでは、キーとバリューの投影行列が融合されます。
> このAPIは🧪実験的です。