Diffusers documentation
SD3 Transformer 모델
SD3 Transformer 모델
Stable Diffusion 3에 소개된 Transformer 모델입니다. MMDiT transformer 블록에 그 독창성이 있습니다.
SD3Transformer2DModel
클래스 diffusers.SD3Transformer2DModel
< source >( 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
< source >( chunk_size: int | None = Nonedim: int = 0 )
피드 포워드 청킹을 사용할 어텐션 프로세서를 설정합니다.
forward
< source >( 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 (
listoftorch.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 (
listofint, 선택 사항) — 포워드 패스 중에 건너뛸 레이어 인덱스 목록입니다.
SD3Transformer2DModel의 forward 메서드입니다.
융합된 QKV 투영을 활성화합니다. 셀프 어텐션 모듈의 경우, 모든 투영 행렬(즉, 쿼리, 키, 값)이 융합됩니다. 크로스 어텐션 모듈의 경우, 키와 값 투영 행렬이 융합됩니다.
> 이 API는 🧪 실험적입니다.