Diffusers documentation
BriaTransformer2DModel
BriaTransformer2DModel
来自 Bria 的改进版 flux Transformer 模型
BriaTransformer2DModel
class diffusers.BriaTransformer2DModel
< source >( patch_size: int = 1in_channels: int = 64num_layers: int = 19num_single_layers: int = 38attention_head_dim: int = 128num_attention_heads: int = 24joint_attention_dim: int = 4096pooled_projection_dim: int = Noneguidance_embeds: bool = Falseaxes_dims_rope: list[int] = [16, 56, 56]rope_theta = 10000time_theta = 10000 )
参数
- patch_size (
int) — 用于将输入数据划分为小块的块大小。 - in_channels (
int,可选,默认为 16) — 输入中的通道数。 - num_layers (
int,可选,默认为 18) — 要使用的 MMDiT 块层数。 - num_single_layers (
int,可选,默认为 18) — 要使用的单层 DiT 块的数量。 - attention_head_dim (
int,可选,默认为 64) — 每个注意力头中的通道数。 - num_attention_heads (
int,可选,默认为 18) — 多头注意力机制中使用的注意力头数量。 - joint_attention_dim (
int,可选) — 要使用的encoder_hidden_states维度数量。 - pooled_projection_dim (
int) — 用于投影pooled_projections的维度数。 - guidance_embeds(
bool,默认为 False)—— 是否使用 guidance embeddings。
Flux 中引入的 Transformer 模型。基于 FluxPipeline,并进行了以下更改:
- 没有池化嵌入
- 我们对提示词使用零填充
- 由于这不是蒸馏版本,因此没有使用引导嵌入 参考:https://blackforestlabs.ai/announcing-black-forest-labs/
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneimg_ids: Tensor = Nonetxt_ids: Tensor = Noneguidance: Tensor = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Truecontrolnet_block_samples = Nonecontrolnet_single_block_samples = None )
参数
- hidden_states(形状为
(batch size, channel, height, width)的torch.FloatTensor)— 输入的hidden_states。 - encoder_hidden_states (
torch.FloatTensor,形状为(batch size, sequence_len, embed_dims)) — 要使用的条件嵌入(由输入条件(例如提示词)计算得出的嵌入)。 - pooled_projections(形状为
(batch_size, projection_dim)的torch.FloatTensor)— 由输入条件的嵌入投影得到的嵌入。 - timestep (
torch.LongTensor) — 用于指示去噪步骤。 - img_ids (
torch.Tensor) — 用于计算旋转位置嵌入的图像位置 ID。 - txt_ids (
torch.Tensor) — 用于计算旋转位置嵌入的文本位置 ID。 - guidance (
torch.Tensor, 可选) — 用于模型引导蒸馏变体的引导尺度嵌入。 - controlnet_block_samples(
listoftorch.Tensor,可选)— 一个张量列表,如果指定,将被添加到 transformer 块的残差中。 - controlnet_single_block_samples (
listoftorch.Tensor,可选) — 一个张量列表,如果指定,将被添加到单个 Transformer 块的残差中。 - attention_kwargs (
dict, 可选) — 一个 kwargs 字典,如果指定,将传递给 diffusers.models.attention_processor 中定义的AttentionProcessor,该处理器在self.processor下定义。 - return_dict (
bool,可选,默认为True) — 是否返回~models.transformer_2d.Transformer2DModelOutput而不是普通的元组。
BriaTransformer2DModel 的前向方法。