Diffusers documentation

CogView3PlusTransformer2DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

CogView3PlusTransformer2DModel

清华大学 & 智谱 AI 在 CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion 中介绍了 CogView3Plus 的 2D 数据 Diffusion Transformer 模型。

可以使用以下代码片段加载该模型。

from diffusers import CogView3PlusTransformer2DModel

transformer = CogView3PlusTransformer2DModel.from_pretrained("THUDM/CogView3Plus-3b", subfolder="transformer", dtype=torch.bfloat16).to("cuda")  # or "mps", "xpu", "cpu"

CogView3PlusTransformer2DModel

类 diffusers.CogView3PlusTransformer2DModel

< >

( patch_size: int = 2in_channels: int = 16num_layers: int = 30attention_head_dim: int = 40num_attention_heads: int = 64out_channels: int = 16text_embed_dim: int = 4096time_embed_dim: int = 512condition_dim: int = 256pos_embed_max_size: int = 128sample_size: int = 128 )

参数

  • 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

CogView3:通过中继扩散实现更精细、更快速的文本到图像生成 中介绍的 Transformer 模型。

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensororiginal_size: Tensortarget_size: Tensorcrop_coords: Tensorreturn_dict: bool = True ) → torch.Tensor or ~models.transformer_2d.Transformer2DModelOutput

参数

  • hidden_states (torch.Tensor) — 输入 hidden_states,形状为 (batch size, channel, height, width)。
  • encoder_hidden_states (torch.Tensor) — 条件嵌入(由输入条件(例如提示词)计算得出的嵌入),形状为 (batch_size, sequence_len, text_embed_dim)
  • timestep (torch.LongTensor) — 用于指示去噪步骤。
  • original_size (torch.Tensor) — CogView3 使用类似 SDXL 的微条件机制来处理原始图像尺寸,具体说明见 https://huggingface.co/papers/2307.01952 中的 2.2 节。
  • target_size (torch.Tensor) — CogView3 使用类似 SDXL 的微条件机制来处理目标图像尺寸,具体说明见 https://huggingface.co/papers/2307.01952 中的第 2.2 节。
  • crop_coords (torch.Tensor) — CogView3 使用类似 SDXL 的微条件机制来处理裁剪坐标,具体说明见 https://huggingface.co/papers/2307.01952 中的第 2.2 节。
  • return_dict (bool,可选,默认为 True) — 是否返回 ~models.transformer_2d.Transformer2DModelOutput 而不是普通的元组。

返回值

torch.Tensor 或 ~models.transformer_2d.Transformer2DModelOutput

使用提供的输入作为条件进行去噪后的潜在变量。

CogView3PlusTransformer2DModel 的前向方法。

Transformer2DModelOutput

类 diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( 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 的输出。

Update on GitHub