Buckets:

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

Krea2Transformer2DModel

Krea 2에서 사용하는 단일 스트림 MMDiT 플로우 매칭 트랜스포머입니다.

Krea2Transformer2DModel[[diffusers.Krea2Transformer2DModel]]

diffusers.Krea2Transformer2DModel[[diffusers.Krea2Transformer2DModel]]

diffusers.Krea2Transformer2DModel(in_channels: int = 64, num_layers: int = 28, attention_head_dim: int = 128, num_attention_heads: int = 48, num_key_value_heads: int = 12, intermediate_size: int = 16384, timestep_embed_dim: int = 256, text_hidden_dim: int = 2560, num_text_layers: int = 12, text_num_attention_heads: int = 20, text_num_key_value_heads: int = 20, text_intermediate_size: int = 6912, num_layerwise_text_blocks: int = 2, num_refiner_text_blocks: int = 2, axes_dims_rope: tuple = (32, 48, 48), rope_theta: float = 1000.0, norm_eps: float = 1e-05)

소스

매개변수:

in_channels (int, 기본값 64) : 패치화 이후의 잠재 채널 수 (vae_channels * patch_size ** 2).

num_layers (int, 기본값 28) : Transformer 블록의 수.

attention_head_dim (int, 기본값 128) : 각 attention head의 차원; 전체 hidden size는 attention_head_dim * num_attention_heads입니다.

num_attention_heads (int, 기본값 48) : 쿼리 헤드 수.

num_key_value_heads (int, 기본값 12) : grouped-query attention에 사용할 key/value 헤드 수입니다.

intermediate_size (int, 기본값 16384) : 각 블록 내부의 SwiGLU MLP의 피드포워드 히든 크기입니다.

timestep_embed_dim (int, 기본값 256) : MLP 이전 사인oidal 타임스텝 임베딩의 폭.

text_hidden_dim (int, 기본값 2560) : 소비되는 hidden states를 가진 텍스트 인코더의 hidden size입니다.

num_text_layers (int, 기본값 12) : 토큰당 스택되는 탭된 텍스트 인코더 히든 상태의 개수.

text_num_attention_heads (int, 기본값 20) : 텍스트 퓨전 블록의 쿼리 헤드 수입니다.

text_num_key_value_heads (int, 기본값 20) : 텍스트 퓨전 블록의 key/value 헤드 수입니다.

text_intermediate_size (int, 기본값 6912) : 텍스트 퓨전 블록 내부의 SwiGLU MLP 피드포워드 히든 크기.

num_layerwise_text_blocks (int, 기본값 2) : 토큰별로 tapped-layer 축에 걸쳐 적용되는 텍스트 퓨전 블록의 수.

num_refiner_text_blocks (int, 기본값 2) : 토큰 시퀀스에 걸쳐 적용되는 텍스트 퓨전 블록의 수.

axes_dims_rope (tuple[int, int, int], 기본값 (32, 48, 48)) : (t, h, w) 회전 위치 축에 걸쳐 head-dim을 분할하는 값입니다.

rope_theta (float, 기본값 1000.0) : rotary position embedding에 사용되는 기본값(base).

norm_eps (float, 기본값 1e-5) : 모든 RMSNorm 모듈에서 사용되는 Epsilon 값입니다.

Krea 2 파이프라인에서 사용하는 단일 스트림 MMDiT 플로우 매칭 백본입니다.

Text conditioning은 멀티모달 텍스트 인코더의 여러 레이어에서 추출된 hidden states 스택으로 입력됩니다. 작은 text-fusion transformer가 레이어 축을 축소하고 토큰 시퀀스를 정제하며, 그 결과는 패치화된 이미지 latents와 결합되어 단일 [text, image] 시퀀스를 형성하고 transformer 블록에 의해 처리됩니다. Timestep은 하나의 공유 modulation 벡터와 블록별 학습된 테이블을 통해 모든 블록에 조건을 부여합니다.

forward[[diffusers.Krea2Transformer2DModel.forward]]

forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: Tensor, position_ids: Tensor, encoder_attention_mask: typing.Optional[torch.Tensor] = None, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)

소스

매개변수:

hidden_states (torch.Tensor, shape (batch_size, image_seq_len, in_channels)) : 패킹(패치화)된 노이즈 이미지 레이턴트.

encoder_hidden_states (torch.Tensor, shape (batch_size, text_seq_len, num_text_layers, text_hidden_dim)) : 토큰별 텍스트 인코더의 탭된(hidden states) 스택.

timestep (torch.Tensor, shape (batch_size,)) : [0, 1] 범위의 Flow-matching 시간 (1은 순수 노이즈, 0은 깨끗한 데이터).

position_ids (torch.Tensor, shape (text_seq_len + image_seq_len, 3)) : 결합된 시퀀스에 대한 (t, h, w) rotary 좌표. 텍스트 행은 모두 0이며, 이미지 행에는 latent-grid 좌표가 포함됩니다.

encoder_attention_mask (torch.Tensor, shape (batch_size, text_seq_len), 선택 사항) : 유효한 텍스트 토큰을 표시하는 불리언 마스크입니다. 모든 텍스트 토큰이 유효한 경우 None을 전달합니다.

attention_kwargs (dict, 선택 사항) : scale 항목을 포함할 경우, forward pass 동안 이 transformer의 어댑터에 적용되는 LoRA scale을 설정하는 kwargs 사전입니다.

return_dict (bool, 선택 사항, 기본값 True) : 일반 튜플 대신 Transformer2DModelOutput을 반환할지 여부.

반환값:

Transformer2DModelOutput 또는 첫 번째 요소가 (batch_size, image_seq_len, in_channels) 형태의 속도 텐서인 tuple.

이미지 토큰에 대한 flow-matching 속도를 예측합니다.

Xet Storage Details

Size:
5.72 kB
·
Xet hash:
0f3a8066b8af58e40f02e0a51f3bf98ec2a0321aebaa756b0c79dba4faec9c12

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.