Diffusers documentation
CogView4Transformer2DModel
CogView4Transformer2DModel
来自 CogView4 的用于 2D 数据的 Diffusion Transformer 模型
可以使用以下代码片段加载该模型。
from diffusers import CogView4Transformer2DModel
transformer = CogView4Transformer2DModel.from_pretrained("THUDM/CogView4-6B", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"CogView4Transformer2DModel
类 diffusers.CogView4Transformer2DModel
< source >( patch_size: int = 2in_channels: int = 16out_channels: int = 16num_layers: int = 30attention_head_dim: int = 40num_attention_heads: int = 64text_embed_dim: int = 4096time_embed_dim: int = 512condition_dim: int = 256pos_embed_max_size: int = 128sample_size: int = 128rope_axes_dim: tuple[int, int] = (256, 256) )
参数
- patch_size (
int,默认为2) — 用于 patch 嵌入层的 patch 大小。 - in_channels (
int,默认为16) — 输入数据的通道数。 - num_layers (
int,默认为30) — 要使用的 Transformer 块层数。 - 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) — 输入 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
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensororiginal_size: Tensortarget_size: Tensorcrop_coords: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueattention_mask: typing.Optional[torch.Tensor] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | list[tuple[torch.Tensor, torch.Tensor]] | None = None )
参数
- hidden_states(形状为
(batch_size, in_channels, height, width)的torch.Tensor)— 输入的hidden_states。 - encoder_hidden_states (
torch.Tensor,形状为(batch_size, sequence_len, embed_dims)) — 要使用的条件嵌入(从输入条件(例如提示词)计算得出的嵌入)。 - timestep (
torch.LongTensor) — 用于指示去噪步骤。 - original_size (
torch.Tensor) — 原始图像尺寸条件。 - target_size (
torch.Tensor) — 目标图像尺寸条件。 - crop_coords (
torch.Tensor) — 裁剪坐标条件。 - attention_kwargs (
dict, 可选) — 一个 kwargs 字典,如果指定,将传递给 diffusers.models.attention_processor 中定义的AttentionProcessor,该处理器在self.processor下定义。 - return_dict (
bool,可选,默认为True) — 是否返回~models.transformer_2d.Transformer2DModelOutput而不是普通的元组。 - attention_mask (
torch.Tensor, 可选) — 应用于注意力分数的掩码。 - image_rotary_emb (
tupleoftorch.Tensor, 可选) — 预计算的旋转位置嵌入。
CogView4Transformer2DModel 的前向方法。
Transformer2DModelOutput
类 diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
参数
- sample(形状为
(batch_size, num_channels, height, width)的torch.Tensor,或者如果 Transformer2DModel 是离散的,则为(batch size, num_vector_embeds - 1, num_latent_pixels))— 以encoder_hidden_states输入为条件的隐藏状态输出。如果是离散的,则返回未加噪潜在像素的概率分布。
Transformer2DModel 的输出。