Diffusers documentation

DiTTransformer2DModel

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

DiTTransformer2DModel

DiT의 이미지형 데이터용 Transformer 모델입니다.

DiTTransformer2DModel

클래스 diffusers.DiTTransformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = Nonenum_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32attention_bias: bool = Truesample_size: int = 32patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_zero'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-05 )

매개변수

  • num_attention_heads (int, optional, 기본값 16) — 멀티헤드 어텐션에 사용할 헤드 수입니다.
  • attention_head_dim (int, optional, 기본값 72) — 각 헤드당 채널 수.
  • in_channels (int, 기본값 4) — 입력의 채널 수입니다.
  • out_channels (int, optional) — 출력의 채널 수입니다. 입력과 출력의 채널 수가 다른 경우 이 매개변수를 지정하세요.
  • num_layers (int, optional, 기본값 28) — 사용할 Transformer 블록의 레이어 수입니다.
  • dropout (float, optional, 기본값 0.0) — Transformer 블록 내에서 사용할 dropout 확률입니다.
  • norm_num_groups (int, optional, 기본값 32) — Transformer 블록 내에서 그룹 정규화에 사용할 그룹 수.
  • attention_bias (bool, optional, 기본값 True) — Transformer 블록의 attention에 bias 매개변수를 포함할지 설정합니다.
  • sample_size (int, 기본값 32) — 잠재 이미지(latent images)의 너비입니다. 이 매개변수는 학습 중에 고정됩니다.
  • patch_size (int, 기본값 2) — 모델이 처리하는 패치의 크기입니다. 순차적이지 않은 데이터를 다루는 아키텍처에 관련이 있습니다.
  • activation_fn (str, optional, 기본값 “gelu-approximate”) — Transformer 블록 내 피드포워드 네트워크에 사용할 활성화 함수.
  • num_embeds_ada_norm (int, optional, 기본값 1000) — AdaLayerNorm에 사용되는 임베딩의 수입니다. 학습 중에 고정되며 추론 시 최대 디노이징 스텝에 영향을 줍니다.
  • upcast_attention (bool, optional, 기본값 False) — true인 경우, 성능 향상을 위해 attention 메커니즘의 차원을 upcast합니다.
  • norm_type (str, optional, 기본값 “ada_norm_zero”) — 사용할 정규화 유형을 지정하며, ‘ada_norm_zero’를 사용할 수 있습니다.
  • norm_elementwise_affine (bool, optional, 기본값 False) — true인 경우, 정규화 레이어에서 요소별 affine 매개변수를 활성화합니다.
  • norm_eps (float, optional, 기본값 1e-5) — 0으로 나누는 것을 방지하기 위해 정규화 레이어의 분모에 추가되는 작은 상수입니다.

DiT(https://huggingface.co/papers/2212.09748)에서 소개한 2D Transformer 모델입니다.

forward

< >

( hidden_states: Tensortimestep: typing.Optional[torch.LongTensor] = Noneclass_labels: typing.Optional[torch.LongTensor] = Nonecross_attention_kwargs: dict = Nonereturn_dict: bool = True )

매개변수

  • hidden_states (torch.LongTensor, 이산인 경우 (batch size, num latent pixels) 형태, 연속인 경우 torch.FloatTensor, (batch size, channel, height, width) 형태) — 입력 hidden_states.
  • timestep ( torch.LongTensor, 선택 사항) — 디노이징 단계를 나타내는 데 사용됩니다. AdaLayerNorm에서 임베딩으로 적용될 선택적 timestep입니다.
  • class_labels ( torch.LongTensor, shape (batch size, num classes), 선택 사항) — 클래스 레이블 조건화를 나타내는 데 사용됩니다. AdaLayerZeroNorm에서 임베딩으로 적용될 선택적 클래스 레이블입니다.
  • cross_attention_kwargs ( dict[str, Any], 선택) — 지정된 경우 diffusers.models.attention_processor의 self.processor에서 정의된 AttentionProcessor로 전달되는 kwargs 사전입니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 단순 tuple 대신 UNet2DConditionOutput를 반환할지 여부.

DiTTransformer2DModel의 forward 메서드입니다.

Update on GitHub