Buckets:
| # Modèle Transformer SD3 | |
| Le modèle Transformer introduit dans [Stable Diffusion 3](https://hf.co/papers/2403.03206). Sa nouveauté réside dans le bloc transformer MMDiT. | |
| ## SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]] | |
| #### diffusers.SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]] | |
| ```python | |
| 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[int, ...] = (), qk_norm: str | None = None) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L79) | |
| **Paramètres :** | |
| sample_size (`int`, par défaut `128`) : La largeur/hauteur des latents. Cette valeur est fixe pendant l'entraînement, car elle est utilisée pour apprendre un nombre d'embeddings de position. | |
| patch_size (`int`, par défaut `2`) : Taille des patches pour découper les données d'entrée en petits patches. | |
| in_channels (`int`, par défaut `16`) : Le nombre de canaux latents dans l'entrée. | |
| num_layers (`int`, par défaut `18`) : Le nombre de blocs de transformeurs à utiliser. | |
| attention_head_dim (`int`, par défaut `64`) : Le nombre de canaux dans chaque tête. | |
| num_attention_heads (`int`, par défaut `18`) : Le nombre de têtes à utiliser pour l'attention multi-têtes. | |
| joint_attention_dim (`int`, par défaut `4096`) : La dimension d'embedding à utiliser pour l'attention conjointe texte-image. | |
| caption_projection_dim (`int`, par défaut `1152`) : La dimension d'incorporation des incorporations de légendes. | |
| pooled_projection_dim (`int`, par défaut `2048`) : La dimension d'incorporation des projections de texte agrégées. | |
| out_channels (`int`, par défaut `16`) : Le nombre de canaux latents dans la sortie. | |
| pos_embed_max_size (`int`, par défaut `96`) : La hauteur/largeur latente maximale des embeddings positionnels. | |
| dual_attention_layers (`tuple[int, ...]`, par défaut `()`) : Le nombre de blocs de transformateur à double flux à utiliser. | |
| qk_norm (`str`, *facultatif*, valeur par défaut `None`) : La normalisation à utiliser pour la requête et la clé dans la couche d'attention. Si `None`, aucune normalisation n'est utilisée. | |
| Le modèle Transformer introduit dans [Stable Diffusion 3](https://huggingface.co/papers/2403.03206). | |
| #### enable_forward_chunking[[diffusers.SD3Transformer2DModel.enable_forward_chunking]] | |
| ```python | |
| enable_forward_chunking(chunk_size: int | None = None, dim: int = 0) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L175) | |
| **Paramètres :** | |
| chunk_size (`int`, *facultatif*) : La taille des blocs des couches feed-forward. Si non spécifiée, la couche feed-forward est exécutée individuellement sur chaque tenseur de dim=`dim`. | |
| dim (`int`, *facultatif*, par défaut `0`) : La dimension sur laquelle le calcul feed-forward doit être découpé. Choisissez entre dim=0 (batch) ou dim=1 (longueur de séquence). | |
| Définit le processeur d'attention à utiliser [feed forward chunking](https://huggingface.co/blog/reformer#2-chunked-feed-forward-layers). | |
| #### forward[[diffusers.SD3Transformer2DModel.forward]] | |
| ```python | |
| 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) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L248) | |
| **Paramètres :** | |
| hidden_states (`torch.Tensor` de forme `(batch size, channel, height, width)`) : `hidden_states` en entrée. | |
| encoder_hidden_states (`torch.Tensor` de forme `(batch size, sequence_len, embed_dims)`) : Embeddings conditionnels (embeddings calculés à partir des conditions d'entrée telles que les prompts) à utiliser. | |
| pooled_projections (`torch.Tensor` de forme `(batch_size, projection_dim)`) : Embeddings projetés à partir des embeddings des conditions d'entrée. | |
| timestep (`torch.LongTensor`) : Utilisé pour indiquer l'étape de débruitage. | |
| block_controlnet_hidden_states (`list` de `torch.Tensor`) : Une liste de tenseurs qui, si elle est spécifiée, est ajoutée aux résidus des blocs de transformeur. | |
| joint_attention_kwargs (`dict`, *facultatif*) : Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'`AttentionProcessor` tel que défini sous `self.processor` dans [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| return_dict (`bool`, *facultatif*, par défaut `True`) : Indique s'il faut retourner un `~models.transformer_2d.Transformer2DModelOutput` plutôt qu'un simple tuple. | |
| skip_layers (`list` de `int`, *facultatif*) : Une liste d'indices de couches à ignorer lors du passage avant. | |
| **Retourne :** | |
| Si `return_dict` est True, un `~models.transformer_2d.Transformer2DModelOutput` est renvoyé, sinon un `tuple` dont le premier élément est le tenseur d'échantillon. | |
| La méthode forward du [SD3Transformer2DModel](/docs/diffusers/main/fr/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel). | |
| #### fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]] | |
| ```python | |
| fuse_qkv_projections() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L217) | |
| Active les projections QKV fusionnées. Pour les modules d'auto-attention, toutes les matrices de projection (c'est-à-dire requête, clé, valeur) sont fusionnées. Pour les modules d'attention croisée, les matrices de projection des clés et des valeurs sont fusionnées. | |
| > [!WARNING] > Cette API est 🧪 expérimentale. | |
| #### unfuse_qkv_projections[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]] | |
| ```python | |
| unfuse_qkv_projections() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L239) | |
| Désactive la projection QKV fusionnée si elle est activée. | |
| > [!WARNING] > Cette API est 🧪 expérimentale. | |
Xet Storage Details
- Size:
- 6.45 kB
- Xet hash:
- a38d77418aca06dbdb269a7cec11c3a6d8193bbd9b54a01feef8b333670ba059
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.