Buckets:
SD3 Transformer 모델
Stable Diffusion 3에 소개된 Transformer 모델입니다. MMDiT transformer 블록에 그 독창성이 있습니다.
SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]
diffusers.SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]
diffusers.SD3Transformer2DModel(sample_size: int = 128, patch_size: int = 2, in_channels: int = 16, num_layers: int = 18, 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 = (), qk_norm: str | None = None)
매개변수:
sample_size (int, 기본값 128) : latents의 너비/높이입니다. 학습 중에 position embeddings의 수를 학습하는 데 사용되므로 고정됩니다.
patch_size (int, 기본값 2) : 입력 데이터를 작은 패치로 변환하기 위한 패치 크기.
in_channels (int, 기본값 16) : 입력의 잠재 채널 수입니다.
num_layers (int, 기본값 18) : 사용할 transformer 블록의 레이어 수입니다.
attention_head_dim (int, 기본값 64) : 각 헤드(head)의 채널 수.
num_attention_heads (int, 기본값 18) : multi-head attention에 사용할 헤드 수입니다.
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[[diffusers.SD3Transformer2DModel.enable_forward_chunking]]
enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)
매개변수:
chunk_size (int, 선택 사항) : 피드포워드 레이어의 청크 크기입니다. 지정하지 않으면 dim 차원의 각 텐서에 대해 피드포워드 레이어를 개별적으로 실행합니다.
dim (int, 선택 사항, 기본값 0) : 피드포워드 계산을 청킹할 차원입니다. dim=0 (배치) 또는 dim=1 (시퀀스 길이) 중 하나를 선택합니다.
feed forward chunking을 사용할 attention processor를 설정합니다.
forward[[diffusers.SD3Transformer2DModel.forward]]
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, block_controlnet_hidden_states: list = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, skip_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 블록의 잔차(residuals)에 추가되는 텐서 목록입니다.
joint_attention_kwargs (dict, 선택 사항) : 지정된 경우 diffusers.models.attention_processor의 self.processor 아래에서 정의된 AttentionProcessor로 전달되는 kwargs 사전입니다.
return_dict (bool, 선택 사항, 기본값 True) : 일반 튜플 대신 ~models.transformer_2d.Transformer2DModelOutput을 반환할지 여부.
skip_layers (list of int, 선택 사항) : forward pass 중에 건너뛸 레이어 인덱스 목록입니다.
반환값:
return_dict가 True이면 ~models.transformer_2d.Transformer2DModelOutput이 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 tuple이 반환됩니다.
SD3Transformer2DModel의 forward 메서드입니다.
fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]]
fuse_qkv_projections()
융합된 QKV 투영을 활성화합니다. 셀프 어텐션 모듈의 경우, 모든 투영 행렬(즉, 쿼리, 키, 값)이 융합됩니다. 크로스 어텐션 모듈의 경우, 키와 값 투영 행렬이 융합됩니다.
> 이 API는 🧪 실험적입니다.
unfuse_qkv_projections[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]]
unfuse_qkv_projections()
활성화된 경우, 융합된 QKV 투영을 비활성화합니다.
> 이 API는 🧪 실험적입니다.
Xet Storage Details
- Size:
- 6.25 kB
- Xet hash:
- 0c410eb795f479e7a5471c311816507890eb473d07206ca6b3f082a21919740b
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.