Diffusers documentation

SD3 Transformer 모델

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

SD3 Transformer 모델

Stable Diffusion 3에 소개된 Transformer 모델입니다. MMDiT transformer 블록에 그 독창성이 있습니다.

SD3Transformer2DModel

클래스 diffusers.SD3Transformer2DModel

< >

( sample_size: int = 128patch_size: int = 2in_channels: int = 16num_layers: int = 18attention_head_dim: int = 64num_attention_heads: int = 18joint_attention_dim: int = 4096caption_projection_dim: int = 1152pooled_projection_dim: int = 2048out_channels: int = 16pos_embed_max_size: int = 96dual_attention_layers: tuple = ()qk_norm: str | None = None )

매개변수

  • sample_size (int, 기본값 128) — Latents의 너비/높이입니다. 학습 중에 position embeddings의 수를 학습하는 데 사용되므로 고정됩니다.
  • patch_size (int, 기본값 2) — 입력 데이터를 작은 패치로 변환할 때 사용할 패치 크기입니다.
  • in_channels (int, 기본값 16) — 입력의 latent 채널 수입니다.
  • num_layers (int, 기본값 18) — 사용할 transformer 블록의 레이어 수입니다.
  • attention_head_dim (int, 기본값 64) — 각 헤드당 채널 수입니다.
  • num_attention_heads (int, 기본값 18) — 멀티헤드 어텐션에 사용할 헤드의 수입니다.
  • joint_attention_dim (int, 기본값 4096) — 텍스트-이미지 결합 주의를 사용할 임베딩 차원입니다.
  • caption_projection_dim (int, 기본값 1152) — 캡션 임베딩의 차원입니다.
  • pooled_projection_dim (int, 기본값 2048) — 풀링된 텍스트 투영의 임베딩 차원입니다.
  • out_channels (int, 기본값 16) — 출력의 잠재 채널 수입니다.
  • pos_embed_max_size (int, 기본값 96) — 위치 임베딩의 최대 잠재 높이/너비입니다.
  • dual_attention_layers (tuple[int, ...], 기본값 ()) — 사용할 dual-stream transformer 블록의 수입니다.
  • qk_norm (str, 선택 사항, 기본값 None) — Attention 레이어에서 query와 key에 사용할 정규화입니다. None인 경우 정규화를 사용하지 않습니다.

Stable Diffusion 3에 소개된 Transformer 모델입니다.

enable_forward_chunking

< >

( chunk_size: int | None = Nonedim: int = 0 )

매개변수

  • chunk_size (int, 선택 사항) — 피드포워드 레이어의 청크 크기입니다. 지정하지 않으면 dim 차원의 각 텐서에 대해 피드포워드 레이어를 개별적으로 실행합니다.
  • dim (int, 선택 사항, 기본값 0) — 피드포워드 계산을 청킹할 차원입니다. dim=0 (배치) 또는 dim=1 (시퀀스 길이) 중 하나를 선택합니다.

피드 포워드 청킹을 사용할 어텐션 프로세서를 설정합니다.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )

매개변수

  • hidden_states (torch.Tensor, shape (batch size, channel, height, width)) — 입력 hidden_states.
  • encoder_hidden_states (torch.Tensor, shape (batch size, sequence_len, embed_dims)) — 사용할 조건 임베딩(프롬프트와 같은 입력 조건에서 계산된 임베딩).
  • pooled_projections (torch.Tensor, shape (batch_size, projection_dim)) — 입력 조건의 임베딩에서 투영된 임베딩입니다.
  • timestep (torch.LongTensor) — 디노이징 단계를 나타내는 데 사용됩니다.
  • block_controlnet_hidden_states (list of torch.Tensor) — 지정된 경우 transformer 블록의 잔차에 추가되는 텐서 목록입니다.
  • joint_attention_kwargs (dict, 선택 사항) — 지정된 경우 diffusers.models.attention_processor의 self.processor에서 정의된 AttentionProcessor로 전달되는 kwargs 사전입니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 단순 tuple 대신 ~models.transformer_2d.Transformer2DModelOutput를 반환할지 여부.
  • skip_layers (list of int, 선택 사항) — 포워드 패스 중에 건너뛸 레이어 인덱스 목록입니다.

SD3Transformer2DModel의 forward 메서드입니다.

fuse_qkv_projections

< >

( )

융합된 QKV 투영을 활성화합니다. 셀프 어텐션 모듈의 경우, 모든 투영 행렬(즉, 쿼리, 키, 값)이 융합됩니다. 크로스 어텐션 모듈의 경우, 키와 값 투영 행렬이 융합됩니다.

> 이 API는 🧪 실험적입니다.

unfuse_qkv_projections

< >

( )

활성화된 경우, 융합된 QKV 투영을 비활성화합니다.

> 이 API는 🧪 실험적입니다.

Update on GitHub