SD3 Transformer 模型
稳定扩散 3中引入的 Transformer 模型。它的新颖之处在于 MMDiT Transformer 模块。
SD3Transformer2DModel
类 diffusers.SD3Transformer2DModel
< 源代码 >( sample_size: int = 128 patch_size: int = 2 in_channels: int = 16 num_layers: int = 18 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 )
Stable Diffusion 3 中引入的 Transformer 模型。
参考:https://arxiv.org/abs/2403.03206
forward
< 源代码 > ( hidden_states: FloatTensor encoder_hidden_states: FloatTensor = None pooled_projections: FloatTensor = None timestep: LongTensor = None block_controlnet_hidden_states: List = None joint_attention_kwargs: Optional = None return_dict: bool = True )
参数
- hidden_states(
(batch_size, 通道数, 高さ, 幅)
形状のtorch.FloatTensor
)— 入力hidden_states
。 - encoder_hidden_states(
(batch_size, シーケンス長, 埋め込みの次元)
のtorch.FloatTensor
)—使用する条件付き埋め込み(プロンプトなどの入力条件から計算される埋め込み)。 - joint_attention_kwargs (
dict
,可选) — 如果指定,则将 kwargs 词典作为AttentionProcessor
传递,如self.processor
中定义的 diffusers.models.attention_processor 中所示。 - return_dict (
bool
, optional, defaults toTrue
) — 是否返回~models.transformer_2d.Transformer2DModelOutput
而不是普通元组。
SD3Transformer2DModel 前向方法。
启用融合的 QKV 投影。对于自注意力模块,所有投影矩阵(即查询、键、值)都是融合的。对于注意力模块,键值投影矩阵是融合的。
此 API 🧪 处于实验阶段。
set_attn_processor
< 源 > ( processor: Union )
设置用于计算注意力的注意力处理器。