Buckets:
PriorTransformer
Prior Transformer는 Ramesh 외의 Hierarchical Text-Conditional Image Generation with CLIP Latents 논문에서 처음 소개되었습니다. CLIP 텍스트 임베딩에서 CLIP 이미지 임베딩을 예측하는 데 사용되며, 이미지 임베딩은 디노이징 디퓨전 과정을 통해 예측됩니다.
해당 논문의 초록은 다음과 같습니다:
CLIP과 같은 대조적 모델은 의미와 스타일을 모두 포착하는 이미지의 견고한 표현을 학습할 수 있음이 입증되었습니다. 이러한 표현을 이미지 생성에 활용하기 위해, 텍스트 캡션이 주어졌을 때 CLIP 이미지 임베딩을 생성하는 사전 모델(prior)과 이미지 임베딩에 조건부화된 이미지를 생성하는 디코더로 구성된 2단계 모델을 제안합니다. 이미지 표현을 명시적으로 생성하는 것이 사진적 사실성과 캡션 유사성의 손실을 최소화하면서 이미지 다양성을 향상시킨다는 것을 보여줍니다. 이미지 표현에 조건부화된 우리의 디코더는 이미지 표현에 없는 비필수적인 세부 사항을 변화시키면서도 의미와 스타일을 모두 보존하는 이미지의 변형을 생성할 수 있습니다. 또한, CLIP의 결합 임베딩 공간은 제로샷 방식으로 언어 기반 이미지 조작을 가능하게 합니다. 디코더에는 확산 모델을 사용하고, 사전 모델에는 오토레그레시브 모델과 확산 모델 모두를 실험해 보았으며, 후자가 계산적으로 더 효율적이고 더 높은 품질의 샘플을 생성한다는 것을 발견했습니다.
PriorTransformer[[diffusers.PriorTransformer]]
diffusers.PriorTransformer[[diffusers.PriorTransformer]]
diffusers.PriorTransformer(num_attention_heads: int = 32, attention_head_dim: int = 64, num_layers: int = 20, embedding_dim: int = 768, num_embeddings = 77, additional_embeddings = 4, dropout: float = 0.0, time_embed_act_fn: str = 'silu', norm_in_type: str | None = None, embedding_proj_norm_type: str | None = None, encoder_hid_proj_type: str | None = 'linear', added_emb_type: str | None = 'prd', time_embed_dim: int | None = None, embedding_proj_dim: int | None = None, clip_embed_dim: int | None = None)
매개변수:
num_attention_heads (int, 선택 사항, 기본값 32) : 멀티 헤드 어텐션에 사용할 헤드 수입니다.
attention_head_dim (int, 선택 사항, 기본값 64) : 각 헤드당 채널 수입니다.
num_layers (int, 선택 사항, 기본값 20) : 사용할 Transformer 블록의 레이어 수입니다.
embedding_dim (int, 선택 사항, 기본값 768) : 모델 입력 hidden_states의 차원
num_embeddings (int, 선택 사항, 기본값 77) : 모델 입력 hidden_states의 임베딩 수
additional_embeddings (int, 선택 사항, 기본값 4) : 투영된 hidden_states에 추가되는 토큰의 수입니다. 실제로 사용되는 hidden_states의 길이는 num_embeddings + additional_embeddings입니다.
dropout (float, 선택 사항, 기본값 0.0) : 사용할 dropout 확률입니다.
time_embed_act_fn (str, 선택 사항, 기본값 'silu') : 타임스텝 임베딩을 생성하는 데 사용할 활성화 함수입니다.
norm_in_type (str, 선택 사항, 기본값 None) : Transformer 블록으로 전달하기 전에 hidden states에 적용할 정규화 레이어입니다. 정규화가 필요하지 않으면 None으로 설정하세요.
embedding_proj_norm_type (str, 선택 사항, 기본값 None) : 입력 proj_embedding에 적용할 정규화 레이어입니다. 정규화가 필요하지 않으면 None으로 설정하세요.
encoder_hid_proj_type (str, 선택 사항, 기본값 linear) : 입력 encoder_hidden_states에 적용할 투영 레이어입니다. encoder_hidden_states가 None인 경우 None으로 설정하세요.
added_emb_type (str, 선택 사항, 기본값 prd) : 모델을 조건부화하기 위한 추가 임베딩입니다. prd 또는 None 중 하나를 선택합니다. prd를 선택하면, unclip 논문(https://huggingface.co/papers/2204.06125)에서 제안한 대로 텍스트 임베딩과 이미지 임베딩 간의 (양자화된) 내적을 나타내는 토큰을 앞에 붙입니다. None인 경우 추가 임베딩이 붙여지지 않습니다.
time_embed_dim (int, *optional*, defaults to None) : The dimension of timestep embeddings. If None, will be set to num_attention_heads * attention_head_dim`
embedding_proj_dim (int, 선택 사항, 기본값 None) : proj_embedding의 차원입니다. None인 경우 embedding_dim으로 설정됩니다.
clip_embed_dim (int, 선택 사항, 기본값 None) : 출력의 차원입니다. None인 경우 embedding_dim으로 설정됩니다.
A Prior Transformer 모델.
forward[[diffusers.PriorTransformer.forward]]
forward(hidden_states, timestep: typing.Union[torch.Tensor, float, int], proj_embedding: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.BoolTensor] = None, return_dict: bool = True)
매개변수:
hidden_states (torch.Tensor, shape (batch_size, embedding_dim)) : 현재 예측된 이미지 임베딩.
timestep (torch.LongTensor) : 현재 노이즈 제거 단계.
proj_embedding (torch.Tensor, shape (batch_size, embedding_dim)) : 노이즈 제거(denoising) 과정이 조건으로 사용하는 투영된 임베딩 벡터.
encoder_hidden_states (torch.Tensor, shape (batch_size, num_embeddings, embedding_dim)) : 노이즈 제거(denoising) 과정의 조건이 되는 텍스트 임베딩의 히든 스테이트(hidden states)입니다.
attention_mask (torch.BoolTensor, shape (batch_size, num_embeddings)) : 텍스트 임베딩에 대한 텍스트 마스크입니다.
return_dict (bool, 선택 사항, 기본값 True) : 일반 튜플 대신 PriorTransformerOutput를 반환할지 여부.
반환값: PriorTransformerOutput 또는 tuple
return_dict가 True이면 PriorTransformerOutput가 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 튜플이 반환됩니다.
PriorTransformer의 forward 메서드입니다.
set_default_attn_processor[[diffusers.PriorTransformer.set_default_attn_processor]]
set_default_attn_processor()
커스텀 어텐션 프로세서를 비활성화하고 기본 어텐션 구현을 설정합니다.
PriorTransformerOutput[[diffusers.models.transformers.prior_transformer.PriorTransformerOutput]]
diffusers.models.transformers.prior_transformer.PriorTransformerOutput[[diffusers.models.transformers.prior_transformer.PriorTransformerOutput]]
diffusers.models.transformers.prior_transformer.PriorTransformerOutput(predicted_image_embedding: Tensor)
매개변수:
predicted_image_embedding (torch.Tensor, shape (batch_size, embedding_dim)) : CLIP 텍스트 임베딩 입력에 조건부인 예측된 CLIP 이미지 임베딩.
PriorTransformer의 출력입니다.
Xet Storage Details
- Size:
- 8.19 kB
- Xet hash:
- 9dfdacf30fe4a08b2eea8499be417fd72440f39c6372a6707099961764349f6e
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.