Diffusers documentation
Krea2Transformer2DModel
Krea2Transformer2DModel
Le transformateur de correspondance de flux MMDiT à flux unique utilisé par Krea 2.
Krea2Transformer2DModel
classe diffusers.Krea2Transformer2DModel
< source >( in_channels: int = 64num_layers: int = 28attention_head_dim: int = 128num_attention_heads: int = 48num_key_value_heads: int = 12intermediate_size: int = 16384timestep_embed_dim: int = 256text_hidden_dim: int = 2560num_text_layers: int = 12text_num_attention_heads: int = 20text_num_key_value_heads: int = 20text_intermediate_size: int = 6912num_layerwise_text_blocks: int = 2num_refiner_text_blocks: int = 2axes_dims_rope: tuple = (32, 48, 48)rope_theta: float = 1000.0norm_eps: float = 1e-05 )
Paramètres
- in_channels (
int, par défaut 64) — Nombre de canaux latents après patchification (vae_channels * patch_size ** 2). - num_layers (
int, par défaut 28) — Nombre de blocs de transformer. - attention_head_dim (
int, par défaut 128) — Dimension de chaque tête d'attention ; la taille cachée totale estattention_head_dim * num_attention_heads. - num_attention_heads (
int, par défaut 48) — Nombre de têtes de requête. - num_key_value_heads (
int, par défaut 12) — Nombre de têtes clé/valeur pour l'attention à requêtes groupées. - intermediate_size (
int, par défaut 16384) — Taille cachée du réseau de feed-forward SwiGLU dans chaque bloc. - timestep_embed_dim (
int, par défaut 256) — Largeur de l'encodage sinusoïdal du pas de temps avant son MLP. - text_hidden_dim (
int, par défaut 2560) — Taille cachée de l’encodeur de texte dont les états cachés sont consommés. - num_text_layers (
int, par défaut 12) — Nombre d'états cachés de l'encodeur de texte tapés et empilés par jeton. - text_num_attention_heads (
int, par défaut 20) — Nombre de têtes de requête dans les blocs de fusion texte. - text_num_key_value_heads (
int, par défaut 20) — Nombre de têtes clé/valeur dans les blocs de fusion texte. - text_intermediate_size (
int, par défaut 6912) — Taille cachée du réseau de feed-forward du MLP SwiGLU dans les blocs de fusion texte. - num_layerwise_text_blocks (
int, par défaut 2) — Nombre de blocs de fusion de texte appliqués sur l'axe des couches tapées (par jeton). - num_refiner_text_blocks (
int, par défaut 2) — Nombre de blocs de fusion de texte appliqués sur la séquence de jetons. - axes_dims_rope (
tuple[int, int, int], par défaut(32, 48, 48)) — Répartition de la dimension des têtes sur les axes de position rotative (t, h, w). - rope_theta (
float, par défaut 1000.0) — Base utilisée par l'incorporation de position rotative. - norm_eps (
float, par défaut 1e-5) — Epsilon utilisé par tous les modules RMSNorm.
Le backbone de flow-matching MMDiT à flux unique utilisé par le pipeline Krea 2.
Le conditionnement par le texte est introduit sous forme d'une pile d'états cachés prélevés sur plusieurs couches d'un encodeur de texte multimodal. Un petit transformeur de fusion de texte réduit l'axe des couches et affine la séquence de jetons ; le résultat est concaténé avec les latents d'image patchifiés pour former une unique séquence [text, image] traitée par les blocs transformeur. L'horodatage conditionne chaque bloc via un vecteur de modulation partagé ainsi que des tables apprises par bloc.
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensortimestep: Tensorposition_ids: Tensorencoder_attention_mask: typing.Optional[torch.Tensor] = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )
Paramètres
- hidden_states (
torch.Tensorde forme(batch_size, image_seq_len, in_channels)) — Latents d'image bruités empilés (patchifiés). - encoder_hidden_states (
torch.Tensorde forme(batch_size, text_seq_len, num_text_layers, text_hidden_dim)) — Pile des états cachés de l'encodeur de texte tapés par jeton. - timestep (
torch.Tensorde forme(batch_size,)) — Temps de flow-matching dans[0, 1](1 correspond au bruit pur, 0 aux données propres). - position_ids (
torch.Tensorde forme(text_seq_len + image_seq_len, 3)) — coordonnées rotatives(t, h, w)pour la séquence combinée. Les lignes de texte sont toutes nulles ; les lignes d’image contiennent les coordonnées de la grille latente. - encoder_attention_mask (
torch.Tensorde forme(batch_size, text_seq_len), facultatif) — Masque booléen indiquant les jetons de texte valides. PassezNonelorsque tous les jetons de texte sont valides. - attention_kwargs (
dict, facultatif) — Dictionnaire de kwargs qui, s'il contient une entréescale, définit l'échelle LoRA appliquée aux adaptateurs de ce transformateur pendant la durée du passage avant. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un Transformer2DModelOutput plutôt qu'un simple tuple.
Prédire la vitesse de flow-matching pour les jetons d'image.