Diffusers documentation
HunyuanDiT2DModel
HunyuanDiT2DModel
Hunyuan-DiT의 2D 데이터를 위한 Diffusion Transformer 모델입니다.
HunyuanDiT2DModel
클래스 diffusers.HunyuanDiT2DModel
< source >( num_attention_heads: int = 16attention_head_dim: int = 88in_channels: int | None = Nonepatch_size: int | None = Noneactivation_fn: str = 'gelu-approximate'sample_size = 32hidden_size = 1152num_layers: int = 28mlp_ratio: float = 4.0learn_sigma: bool = Truecross_attention_dim: int = 1024norm_type: str = 'layer_norm'cross_attention_dim_t5: int = 2048pooled_projection_dim: int = 1024text_len: int = 77text_len_t5: int = 256use_style_cond_and_image_meta_size: bool = True )
매개변수
- num_attention_heads (
int, 선택 사항, 기본값 16) — multi-head attention에 사용할 헤드 수입니다. - attention_head_dim (
int, 선택 사항, 기본값 88) — 각 헤드당 채널 수입니다. - in_channels (
int, 선택 사항) — 입력과 출력의 채널 수(입력이 연속형인 경우 지정). - patch_size (
int, 선택 사항) — 입력에 사용할 패치의 크기입니다. - activation_fn (
str, 선택 사항, 기본값"geglu") — 피드포워드에서 사용할 활성화 함수. - sample_size (
int, 선택 사항) — 잠재 이미지(latent images)의 너비입니다. 학습 중에 위치 임베딩(position embeddings)의 수를 학습하는 데 사용되므로 고정됩니다. - dropout (
float, 선택 사항, 기본값 0.0) — 사용할 dropout 확률입니다. - cross_attention_dim (
int, 선택 사항) — clip 텍스트 임베딩의 차원 수입니다. - hidden_size (
int, 선택 사항) — 조건부 임베딩 레이어의 숨겨진 레이어 크기입니다. - num_layers (
int, 선택 사항, 기본값 1) — 사용할 Transformer 블록의 레이어 수입니다. - mlp_ratio (
float, 선택 사항, 기본값 4.0) — 숨겨진 레이어의 크기와 입력 크기의 비율입니다. - learn_sigma (
bool, 선택 사항, 기본값True) — 분산을 예측할지 여부. - cross_attention_dim_t5 (
int, 선택 사항) — t5 텍스트 임베딩의 차원 수입니다. - pooled_projection_dim (
int, 선택 사항) — 풀링된 투영의 크기입니다. - text_len (
int, 선택 사항) — 클립 텍스트 임베딩의 길이입니다. - text_len_t5 (
int, 선택 사항) — T5 텍스트 임베딩의 길이입니다. - use_style_cond_and_image_meta_size (
bool, 선택 사항) — 스타일 조건과 이미지 메타 크기를 사용할지 여부입니다. 버전 <=1.1의 경우 True, 버전 >= 1.2의 경우 False입니다.
HunYuanDiT: Transformer 기반의 Diffusion 모델.
diffusers의 StableDiffusionPipeline 샘플러와 호환되도록 ModelMixin과 ConfigMixin을 상속하세요.
enable_forward_chunking
< source >( chunk_size: int | None = Nonedim: int = 0 )
피드 포워드 청킹을 사용할 어텐션 프로세서를 설정합니다.
forward
< source >( hidden_statestimestepencoder_hidden_states = Nonetext_embedding_mask = Noneencoder_hidden_states_t5 = Nonetext_embedding_mask_t5 = Noneimage_meta_size = Nonestyle = Noneimage_rotary_emb = Nonecontrolnet_block_samples = Nonereturn_dict = True )
매개변수
- hidden_states (
torch.Tensor, shape(batch size, dim, height, width)) — 입력 텐서입니다. - timestep (
torch.LongTensor, 선택 사항) — 디노이징 단계를 나타내는 데 사용됩니다. - encoder_hidden_states (
torch.Tensor, shape(batch size, sequence len, embed dims), 선택 사항) — 크로스 어텐션 레이어에 사용되는 조건부 임베딩입니다. 이는BertModel의 출력입니다. - text_embedding_mask — torch.Tensor
(batch, key_tokens)모양의 어텐션 마스크가encoder_hidden_states에 적용됩니다. 이는BertModel의 출력입니다. - encoder_hidden_states_t5 (
torch.Tensor, shape(batch size, sequence len, embed dims), 선택 사항) — 크로스 어텐션 레이어에 사용되는 조건부 임베딩입니다. 이는 T5 Text Encoder의 출력입니다. - text_embedding_mask_t5 — torch.Tensor
encoder_hidden_states에(batch, key_tokens)모양의 어텐션 마스크가 적용됩니다. 이는 T5 Text Encoder의 출력입니다. - image_meta_size (torch.Tensor) — 이미지 크기를 나타내는 조건부 임베딩
- style — torch.Tensor: 스타일을 나타내는 조건부 임베딩
- image_rotary_emb (
torch.Tensor) — attention 계산 시 query 및 key 텐서에 적용할 image rotary embeddings입니다. - controlnet_block_samples (
listoftorch.Tensor, 선택 사항) — 지정된 경우 transformer 블록의 잔차에 추가되는 텐서 목록입니다. - return_dict — bool 사전(dict)을 반환할지 여부.
HunyuanDiT2DModel의 forward 메서드입니다.
융합된 QKV 투영을 활성화합니다. 셀프 어텐션 모듈의 경우, 모든 투영 행렬(즉, 쿼리, 키, 값)이 융합됩니다. 크로스 어텐션 모듈의 경우, 키와 값 투영 행렬이 융합됩니다.
> 이 API는 🧪 실험적입니다.
커스텀 어텐션 프로세서를 비활성화하고 기본 어텐션 구현을 설정합니다.