Diffusers 文档
CogView3PlusTransformer2DModel
并获得增强的文档体验
开始使用
CogView3PlusTransformer2DModel
一个来自 CogView3Plus 的用于 2D 数据的 Diffusion Transformer 模型,由清华大学和智谱 AI 在 CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion 中介绍。
该模型可以使用以下代码片段加载。
from diffusers import CogView3PlusTransformer2DModel
vae = CogView3PlusTransformer2DModel.from_pretrained("THUDM/CogView3Plus-3b", subfolder="transformer", torch_dtype=torch.bfloat16).to("cuda")
CogView3PlusTransformer2DModel
class diffusers.CogView3PlusTransformer2DModel
< source >( patch_size: int = 2 in_channels: int = 16 num_layers: int = 30 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 pos_embed_max_size: int = 128 sample_size: int = 128 )
参数
- patch_size (
int
, 默认为2
) — 在 patch 嵌入层中使用的 patch 大小。 - in_channels (
int
, 默认为16
) — 输入中的通道数。 - num_layers (
int
, 默认为30
) — 要使用的 Transformer 块的层数。 - attention_head_dim (
int
, 默认为40
) — 每个 head 中的通道数。 - num_attention_heads (
int
, 默认为64
) — 用于多头注意力的 head 数量。 - 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
的切片,并添加到输入 patch 后的潜在变量中,其中H
和W
分别是潜在的高度和宽度。 值 128 表示图像生成支持的最大高度和宽度为128 * vae_scale_factor * patch_size => 128 * 8 * 2 => 2048
。 - sample_size (
int
, 默认为128
) — 输入潜在变量的基本分辨率。 如果在生成过程中未提供 height/width,则此值用于确定分辨率,计算方式为sample_size * vae_scale_factor => 128 * 8 => 1024
在 CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion 中介绍的 Transformer 模型。
forward
< source >( hidden_states: Tensor encoder_hidden_states: Tensor timestep: LongTensor original_size: Tensor target_size: Tensor crop_coords: Tensor return_dict: bool = True ) → torch.Tensor
或 ~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 使用类似于 SDXL 的微调原始图像尺寸,如 https://huggingface.ac.cn/papers/2307.01952 的 2.2 节所述。 - target_size (
torch.Tensor
) — CogView3 使用类似于 SDXL 的微调目标图像尺寸,如 https://huggingface.ac.cn/papers/2307.01952 的 2.2 节所述。 - crop_coords (
torch.Tensor
) — CogView3 使用类似于 SDXL 的微调裁剪坐标,如 https://huggingface.ac.cn/papers/2307.01952 的 2.2 节所述。 - return_dict (
bool
, 可选, 默认为True
) — 是否返回~models.transformer_2d.Transformer2DModelOutput
而不是普通元组。
返回值
torch.Tensor
或 ~models.transformer_2d.Transformer2DModelOutput
使用提供的输入作为条件的去噪后的潜在变量。
CogView3PlusTransformer2DModel 的 forward 方法。
set_attn_processor
< source >( processor: typing.Union[diffusers.models.attention_processor.AttnProcessor, diffusers.models.attention_processor.CustomDiffusionAttnProcessor, diffusers.models.attention_processor.AttnAddedKVProcessor, diffusers.models.attention_processor.AttnAddedKVProcessor2_0, diffusers.models.attention_processor.JointAttnProcessor2_0, diffusers.models.attention_processor.PAGJointAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0, diffusers.models.attention_processor.FusedJointAttnProcessor2_0, diffusers.models.attention_processor.AllegroAttnProcessor2_0, diffusers.models.attention_processor.AuraFlowAttnProcessor2_0, diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0, diffusers.models.attention_processor.FluxAttnProcessor2_0, diffusers.models.attention_processor.FluxAttnProcessor2_0_NPU, diffusers.models.attention_processor.FusedFluxAttnProcessor2_0, diffusers.models.attention_processor.FusedFluxAttnProcessor2_0_NPU, diffusers.models.attention_processor.CogVideoXAttnProcessor2_0, diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0, diffusers.models.attention_processor.XFormersAttnAddedKVProcessor, diffusers.models.attention_processor.XFormersAttnProcessor, diffusers.models.attention_processor.XLAFlashAttnProcessor2_0, diffusers.models.attention_processor.AttnProcessorNPU, diffusers.models.attention_processor.AttnProcessor2_0, diffusers.models.attention_processor.MochiVaeAttnProcessor2_0, diffusers.models.attention_processor.MochiAttnProcessor2_0, diffusers.models.attention_processor.StableAudioAttnProcessor2_0, diffusers.models.attention_processor.HunyuanAttnProcessor2_0, diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0, diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0, diffusers.models.attention_processor.LuminaAttnProcessor2_0, diffusers.models.attention_processor.FusedAttnProcessor2_0, diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor, diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0, diffusers.models.attention_processor.SlicedAttnProcessor, diffusers.models.attention_processor.SlicedAttnAddedKVProcessor, diffusers.models.attention_processor.SanaLinearAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0, diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0, diffusers.models.attention_processor.SanaMultiscaleLinearAttention, diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0, diffusers.models.attention_processor.SanaMultiscaleAttentionProjection, diffusers.models.attention_processor.IPAdapterAttnProcessor, diffusers.models.attention_processor.IPAdapterAttnProcessor2_0, diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor, diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0, diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0, diffusers.models.attention_processor.LoRAAttnProcessor, diffusers.models.attention_processor.LoRAAttnProcessor2_0, diffusers.models.attention_processor.LoRAXFormersAttnProcessor, diffusers.models.attention_processor.LoRAAttnAddedKVProcessor]]] )
设置用于计算注意力的注意力处理器。
Transformer2DModelOutput
class diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
参数
- sample (形状为
(batch_size, num_channels, height, width)
或(batch size, num_vector_embeds - 1, num_latent_pixels)
的torch.Tensor
,如果 Transformer2DModel 是离散的) — 以encoder_hidden_states
输入为条件的隐藏状态输出。 如果是离散的,则返回未噪声潜在像素的概率分布。
Transformer2DModel 的输出。