Buckets:

hf-doc-build/doc / diffusers /main /ko /api /models /sd3_transformer2d.md
mishig's picture
|
download
raw
6.25 kB

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.