Diffusers documentation

CogView3PlusTransformer2DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

CogView3PlusTransformer2DModel

청화대학교 & ZhipuAI의 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) — 패치 임베딩 레이어에서 사용할 패치의 크기입니다.
  • 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) — timestep 임베딩의 출력 차원입니다.
  • condition_dim (int, 기본값 256) — 입력 SDXL 스타일 해상도 조건(original_size, target_size, crop_coords)의 임베딩 차원입니다.
  • pos_embed_max_size (int, 기본값 128) — 위치 임베딩의 최대 해상도입니다. 여기서 H x W 모양의 슬라이스를 잘라 입력 패치된 잠재 변수(latents)에 더합니다. H와 W는 각각 잠재 변수의 높이와 너비를 나타냅니다. 값이 128인 경우 이미지 생성에서 지원하는 최대 높이와 너비는 128 * vae_scale_factor * patch_size => 128 * 8 * 2 => 2048입니다.
  • sample_size (int, 기본값 128) — 입력 latents의 기본 해상도입니다. 생성 시 height/width가 제공되지 않으면 이 값을 사용하여 sample_size * vae_scale_factor => 128 * 8 => 1024로 해상도를 결정합니다.

The Transformer model introduced in CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion.

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) — (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은 https://huggingface.co/papers/2307.01952의 2.2절에서 설명된 바와 같이 원본 이미지 크기에 대해 SDXL과 유사한 micro-conditioning을 사용합니다.
  • target_size (torch.Tensor) — CogView3은 https://huggingface.co/papers/2307.01952의 2.2절에서 설명된 바와 같이 SDXL과 유사한 마이크로 컨디셔닝을 사용하여 대상 이미지 크기를 처리합니다.
  • crop_coords (torch.Tensor) — CogView3는 https://huggingface.co/papers/2307.01952의 2.2절에서 설명된 바와 같이 SDXL과 유사한 마이크로 컨디셔닝을 크롭 좌표에 사용합니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 단순 tuple 대신 ~models.transformer_2d.Transformer2DModelOutput를 반환할지 여부.

반환값

torch.Tensor 또는 ~models.transformer_2d.Transformer2DModelOutput

제공된 입력을 조건으로 사용하여 노이즈를 제거한 잠재 변수(latents).

CogView3PlusTransformer2DModel의 forward 메서드입니다.

Transformer2DModelOutput

클래스 diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

매개변수

  • sample (torch.Tensor, shape (batch_size, num_channels, height, width) 또는 Transformer2DModel이 discrete인 경우 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 입력에 조건부인 hidden states 출력입니다. discrete인 경우, 노이즈가 제거된 latent 픽셀에 대한 확률 분포를 반환합니다.

Transformer2DModel의 출력입니다.

Update on GitHub