import{s as Me,n as ke,o as Ce}from"../chunks/scheduler.53228c21.js";import{S as Le,i as ze,e as i,s as o,c as _,h as Oe,a as d,d as n,b as r,f as j,g as h,j as g,k as x,l as t,m,n as b,t as v,o as T,p as $}from"../chunks/index.100fac89.js";import{C as Ne}from"../chunks/CopyLLMTxtMenu.999d3d86.js";import{D as G}from"../chunks/Docstring.46d0934e.js";import{H as we,E as Ie}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.d27ae4df.js";function je(ge){let u,R,B,J,D,X,A,Y,P,xe='A Transformer model for image-like data from <a href="https://huggingface.co/papers/2310.00426" rel="nofollow">PixArt-Alpha</a> and <a href="https://huggingface.co/papers/2403.04692" rel="nofollow">PixArt-Sigma</a>.',Z,w,ee,a,M,se,q,be=`A 2D Transformer model as introduced in PixArt family of models (<a href="https://huggingface.co/papers/2310.00426" rel="nofollow">https://huggingface.co/papers/2310.00426</a>,
<a href="https://huggingface.co/papers/2403.04692" rel="nofollow">https://huggingface.co/papers/2403.04692</a>).`,ae,y,k,ie,E,ve='The <a href="/docs/diffusers/main/en/api/models/pixart_transformer2d#diffusers.PixArtTransformer2DModel">PixArtTransformer2DModel</a> forward method.',de,f,C,le,H,Te=`Enables fused QKV projections. For self-attention modules, all projection matrices (i.e., query, key, value)
are fused. For cross-attention modules, key and value projection matrices are fused.`,me,L,$e="<p>&gt; This API is 🧪 experimental.</p>",fe,c,z,ce,F,ye="Disables custom attention processors and sets the default attention implementation.",pe,S,De="Safe to just use <code>AttnProcessor()</code> as PixArt doesn’t have any exotic attention processors in default model.",ue,p,O,_e,V,Ae="Disables the fused QKV projection if enabled.",he,N,Pe="<p>&gt; This API is 🧪 experimental.</p>",te,I,ne,W,oe;return D=new Ne({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),A=new we({props:{title:"PixArtTransformer2DModel",local:"pixarttransformer2dmodel",headingTag:"h1"}}),w=new we({props:{title:"PixArtTransformer2DModel",local:"diffusers.PixArtTransformer2DModel",headingTag:"h2"}}),M=new G({props:{name:"class diffusers.PixArtTransformer2DModel",anchor:"diffusers.PixArtTransformer2DModel",parameters:[{name:"num_attention_heads",val:": int = 16"},{name:"attention_head_dim",val:": int = 72"},{name:"in_channels",val:": int = 4"},{name:"out_channels",val:": typing.Optional[int] = 8"},{name:"num_layers",val:": int = 28"},{name:"dropout",val:": float = 0.0"},{name:"norm_num_groups",val:": int = 32"},{name:"cross_attention_dim",val:": typing.Optional[int] = 1152"},{name:"attention_bias",val:": bool = True"},{name:"sample_size",val:": int = 128"},{name:"patch_size",val:": int = 2"},{name:"activation_fn",val:": str = 'gelu-approximate'"},{name:"num_embeds_ada_norm",val:": typing.Optional[int] = 1000"},{name:"upcast_attention",val:": bool = False"},{name:"norm_type",val:": str = 'ada_norm_single'"},{name:"norm_elementwise_affine",val:": bool = False"},{name:"norm_eps",val:": float = 1e-06"},{name:"interpolation_scale",val:": typing.Optional[int] = None"},{name:"use_additional_conditions",val:": typing.Optional[bool] = None"},{name:"caption_channels",val:": typing.Optional[int] = None"},{name:"attention_type",val:": typing.Optional[str] = 'default'"}],parametersDescription:[{anchor:"diffusers.PixArtTransformer2DModel.num_attention_heads",description:"<strong>num_attention_heads</strong> (int, optional, defaults to 16) &#x2014; The number of heads to use for multi-head attention.",name:"num_attention_heads"},{anchor:"diffusers.PixArtTransformer2DModel.attention_head_dim",description:"<strong>attention_head_dim</strong> (int, optional, defaults to 72) &#x2014; The number of channels in each head.",name:"attention_head_dim"},{anchor:"diffusers.PixArtTransformer2DModel.in_channels",description:"<strong>in_channels</strong> (int, defaults to 4) &#x2014; The number of channels in the input.",name:"in_channels"},{anchor:"diffusers.PixArtTransformer2DModel.out_channels",description:`<strong>out_channels</strong> (int, optional) &#x2014;
The number of channels in the output. Specify this parameter if the output channel number differs from the
input.`,name:"out_channels"},{anchor:"diffusers.PixArtTransformer2DModel.num_layers",description:"<strong>num_layers</strong> (int, optional, defaults to 28) &#x2014; The number of layers of Transformer blocks to use.",name:"num_layers"},{anchor:"diffusers.PixArtTransformer2DModel.dropout",description:"<strong>dropout</strong> (float, optional, defaults to 0.0) &#x2014; The dropout probability to use within the Transformer blocks.",name:"dropout"},{anchor:"diffusers.PixArtTransformer2DModel.norm_num_groups",description:`<strong>norm_num_groups</strong> (int, optional, defaults to 32) &#x2014;
Number of groups for group normalization within Transformer blocks.`,name:"norm_num_groups"},{anchor:"diffusers.PixArtTransformer2DModel.cross_attention_dim",description:`<strong>cross_attention_dim</strong> (int, optional) &#x2014;
The dimensionality for cross-attention layers, typically matching the encoder&#x2019;s hidden dimension.`,name:"cross_attention_dim"},{anchor:"diffusers.PixArtTransformer2DModel.attention_bias",description:`<strong>attention_bias</strong> (bool, optional, defaults to True) &#x2014;
Configure if the Transformer blocks&#x2019; attention should contain a bias parameter.`,name:"attention_bias"},{anchor:"diffusers.PixArtTransformer2DModel.sample_size",description:`<strong>sample_size</strong> (int, defaults to 128) &#x2014;
The width of the latent images. This parameter is fixed during training.`,name:"sample_size"},{anchor:"diffusers.PixArtTransformer2DModel.patch_size",description:`<strong>patch_size</strong> (int, defaults to 2) &#x2014;
Size of the patches the model processes, relevant for architectures working on non-sequential data.`,name:"patch_size"},{anchor:"diffusers.PixArtTransformer2DModel.activation_fn",description:`<strong>activation_fn</strong> (str, optional, defaults to &#x201C;gelu-approximate&#x201D;) &#x2014;
Activation function to use in feed-forward networks within Transformer blocks.`,name:"activation_fn"},{anchor:"diffusers.PixArtTransformer2DModel.num_embeds_ada_norm",description:`<strong>num_embeds_ada_norm</strong> (int, optional, defaults to 1000) &#x2014;
Number of embeddings for AdaLayerNorm, fixed during training and affects the maximum denoising steps during
inference.`,name:"num_embeds_ada_norm"},{anchor:"diffusers.PixArtTransformer2DModel.upcast_attention",description:`<strong>upcast_attention</strong> (bool, optional, defaults to False) &#x2014;
If true, upcasts the attention mechanism dimensions for potentially improved performance.`,name:"upcast_attention"},{anchor:"diffusers.PixArtTransformer2DModel.norm_type",description:`<strong>norm_type</strong> (str, optional, defaults to &#x201C;ada_norm_zero&#x201D;) &#x2014;
Specifies the type of normalization used, can be &#x2018;ada_norm_zero&#x2019;.`,name:"norm_type"},{anchor:"diffusers.PixArtTransformer2DModel.norm_elementwise_affine",description:`<strong>norm_elementwise_affine</strong> (bool, optional, defaults to False) &#x2014;
If true, enables element-wise affine parameters in the normalization layers.`,name:"norm_elementwise_affine"},{anchor:"diffusers.PixArtTransformer2DModel.norm_eps",description:`<strong>norm_eps</strong> (float, optional, defaults to 1e-6) &#x2014;
A small constant added to the denominator in normalization layers to prevent division by zero.`,name:"norm_eps"},{anchor:"diffusers.PixArtTransformer2DModel.interpolation_scale",description:"<strong>interpolation_scale</strong> (int, optional) &#x2014; Scale factor to use during interpolating the position embeddings.",name:"interpolation_scale"},{anchor:"diffusers.PixArtTransformer2DModel.use_additional_conditions",description:"<strong>use_additional_conditions</strong> (bool, optional) &#x2014; If we&#x2019;re using additional conditions as inputs.",name:"use_additional_conditions"},{anchor:"diffusers.PixArtTransformer2DModel.attention_type",description:"<strong>attention_type</strong> (str, optional, defaults to &#x201C;default&#x201D;) &#x2014; Kind of attention mechanism to be used.",name:"attention_type"},{anchor:"diffusers.PixArtTransformer2DModel.caption_channels",description:`<strong>caption_channels</strong> (int, optional, defaults to None) &#x2014;
Number of channels to use for projecting the caption embeddings.`,name:"caption_channels"},{anchor:"diffusers.PixArtTransformer2DModel.use_linear_projection",description:`<strong>use_linear_projection</strong> (bool, optional, defaults to False) &#x2014;
Deprecated argument. Will be removed in a future version.`,name:"use_linear_projection"},{anchor:"diffusers.PixArtTransformer2DModel.num_vector_embeds",description:`<strong>num_vector_embeds</strong> (bool, optional, defaults to False) &#x2014;
Deprecated argument. Will be removed in a future version.`,name:"num_vector_embeds"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/pixart_transformer_2d.py#L32"}}),k=new G({props:{name:"forward",anchor:"diffusers.PixArtTransformer2DModel.forward",parameters:[{name:"hidden_states",val:": Tensor"},{name:"encoder_hidden_states",val:": typing.Optional[torch.Tensor] = None"},{name:"timestep",val:": typing.Optional[torch.LongTensor] = None"},{name:"added_cond_kwargs",val:": typing.Dict[str, torch.Tensor] = None"},{name:"cross_attention_kwargs",val:": typing.Dict[str, typing.Any] = None"},{name:"attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"encoder_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"return_dict",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.PixArtTransformer2DModel.forward.hidden_states",description:`<strong>hidden_states</strong> (<code>torch.FloatTensor</code> of shape <code>(batch size, channel, height, width)</code>) &#x2014;
Input <code>hidden_states</code>.`,name:"hidden_states"},{anchor:"diffusers.PixArtTransformer2DModel.forward.encoder_hidden_states",description:`<strong>encoder_hidden_states</strong> (<code>torch.FloatTensor</code> of shape <code>(batch size, sequence len, embed dims)</code>, <em>optional</em>) &#x2014;
Conditional embeddings for cross attention layer. If not given, cross-attention defaults to
self-attention.`,name:"encoder_hidden_states"},{anchor:"diffusers.PixArtTransformer2DModel.forward.timestep",description:`<strong>timestep</strong> (<code>torch.LongTensor</code>, <em>optional</em>) &#x2014;
Used to indicate denoising step. Optional timestep to be applied as an embedding in <code>AdaLayerNorm</code>.`,name:"timestep"},{anchor:"diffusers.PixArtTransformer2DModel.forward.added_cond_kwargs",description:"<strong>added_cond_kwargs</strong> &#x2014; (<code>Dict[str, Any]</code>, <em>optional</em>): Additional conditions to be used as inputs.",name:"added_cond_kwargs"},{anchor:"diffusers.PixArtTransformer2DModel.forward.cross_attention_kwargs",description:`<strong>cross_attention_kwargs</strong> ( <code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
A kwargs dictionary that if specified is passed along to the <code>AttentionProcessor</code> as defined under
<code>self.processor</code> in
<a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py" rel="nofollow">diffusers.models.attention_processor</a>.`,name:"cross_attention_kwargs"},{anchor:"diffusers.PixArtTransformer2DModel.forward.attention_mask",description:`<strong>attention_mask</strong> ( <code>torch.Tensor</code>, <em>optional</em>) &#x2014;
An attention mask of shape <code>(batch, key_tokens)</code> is applied to <code>encoder_hidden_states</code>. If <code>1</code> the mask
is kept, otherwise if <code>0</code> it is discarded. Mask will be converted into a bias, which adds large
negative values to the attention scores corresponding to &#x201C;discard&#x201D; tokens.`,name:"attention_mask"},{anchor:"diffusers.PixArtTransformer2DModel.forward.encoder_attention_mask",description:`<strong>encoder_attention_mask</strong> ( <code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Cross-attention mask applied to <code>encoder_hidden_states</code>. Two formats supported:</p>
<ul>
<li>Mask <code>(batch, sequence_length)</code> True = keep, False = discard.</li>
<li>Bias <code>(batch, 1, sequence_length)</code> 0 = keep, -10000 = discard.</li>
</ul>
<p>If <code>ndim == 2</code>: will be interpreted as a mask, then converted into a bias consistent with the format
above. This bias will be added to the cross-attention scores.`,name:"encoder_attention_mask"},{anchor:"diffusers.PixArtTransformer2DModel.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <a href="/docs/diffusers/main/en/api/models/unet2d-cond#diffusers.models.unets.unet_2d_condition.UNet2DConditionOutput">UNet2DConditionOutput</a> instead of a plain
tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/pixart_transformer_2d.py#L227",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>If <code>return_dict</code> is True, an <code>~models.transformer_2d.Transformer2DModelOutput</code> is returned, otherwise a
<code>tuple</code> where the first element is the sample tensor.</p>
`}}),C=new G({props:{name:"fuse_qkv_projections",anchor:"diffusers.PixArtTransformer2DModel.fuse_qkv_projections",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/pixart_transformer_2d.py#L196"}}),z=new G({props:{name:"set_default_attn_processor",anchor:"diffusers.PixArtTransformer2DModel.set_default_attn_processor",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/pixart_transformer_2d.py#L187"}}),O=new G({props:{name:"unfuse_qkv_projections",anchor:"diffusers.PixArtTransformer2DModel.unfuse_qkv_projections",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/pixart_transformer_2d.py#L218"}}),I=new Ie({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/models/pixart_transformer2d.md"}}),{c(){u=i("meta"),R=o(),B=i("p"),J=o(),_(D.$$.fragment),X=o(),_(A.$$.fragment),Y=o(),P=i("p"),P.innerHTML=xe,Z=o(),_(w.$$.fragment),ee=o(),a=i("div"),_(M.$$.fragment),se=o(),q=i("p"),q.innerHTML=be,ae=o(),y=i("div"),_(k.$$.fragment),ie=o(),E=i("p"),E.innerHTML=ve,de=o(),f=i("div"),_(C.$$.fragment),le=o(),H=i("p"),H.textContent=Te,me=o(),L=i("blockquote"),L.innerHTML=$e,fe=o(),c=i("div"),_(z.$$.fragment),ce=o(),F=i("p"),F.textContent=ye,pe=o(),S=i("p"),S.innerHTML=De,ue=o(),p=i("div"),_(O.$$.fragment),_e=o(),V=i("p"),V.textContent=Ae,he=o(),N=i("blockquote"),N.innerHTML=Pe,te=o(),_(I.$$.fragment),ne=o(),W=i("p"),this.h()},l(e){const s=Oe("svelte-u9bgzb",document.head);u=d(s,"META",{name:!0,content:!0}),s.forEach(n),R=r(e),B=d(e,"P",{}),j(B).forEach(n),J=r(e),h(D.$$.fragment,e),X=r(e),h(A.$$.fragment,e),Y=r(e),P=d(e,"P",{"data-svelte-h":!0}),g(P)!=="svelte-p8z7gn"&&(P.innerHTML=xe),Z=r(e),h(w.$$.fragment,e),ee=r(e),a=d(e,"DIV",{class:!0});var l=j(a);h(M.$$.fragment,l),se=r(l),q=d(l,"P",{"data-svelte-h":!0}),g(q)!=="svelte-1v9f4ml"&&(q.innerHTML=be),ae=r(l),y=d(l,"DIV",{class:!0});var re=j(y);h(k.$$.fragment,re),ie=r(re),E=d(re,"P",{"data-svelte-h":!0}),g(E)!=="svelte-750pvl"&&(E.innerHTML=ve),re.forEach(n),de=r(l),f=d(l,"DIV",{class:!0});var U=j(f);h(C.$$.fragment,U),le=r(U),H=d(U,"P",{"data-svelte-h":!0}),g(H)!=="svelte-1254b9i"&&(H.textContent=Te),me=r(U),L=d(U,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),g(L)!=="svelte-6y4o4y"&&(L.innerHTML=$e),U.forEach(n),fe=r(l),c=d(l,"DIV",{class:!0});var K=j(c);h(z.$$.fragment,K),ce=r(K),F=d(K,"P",{"data-svelte-h":!0}),g(F)!=="svelte-1lxcwhv"&&(F.textContent=ye),pe=r(K),S=d(K,"P",{"data-svelte-h":!0}),g(S)!=="svelte-1vivlhg"&&(S.innerHTML=De),K.forEach(n),ue=r(l),p=d(l,"DIV",{class:!0});var Q=j(p);h(O.$$.fragment,Q),_e=r(Q),V=d(Q,"P",{"data-svelte-h":!0}),g(V)!=="svelte-1vhtc74"&&(V.textContent=Ae),he=r(Q),N=d(Q,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),g(N)!=="svelte-6y4o4y"&&(N.innerHTML=Pe),Q.forEach(n),l.forEach(n),te=r(e),h(I.$$.fragment,e),ne=r(e),W=d(e,"P",{}),j(W).forEach(n),this.h()},h(){x(u,"name","hf:doc:metadata"),x(u,"content",qe),x(y,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(L,"class","warning"),x(f,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(c,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(N,"class","warning"),x(p,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(a,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,s){t(document.head,u),m(e,R,s),m(e,B,s),m(e,J,s),b(D,e,s),m(e,X,s),b(A,e,s),m(e,Y,s),m(e,P,s),m(e,Z,s),b(w,e,s),m(e,ee,s),m(e,a,s),b(M,a,null),t(a,se),t(a,q),t(a,ae),t(a,y),b(k,y,null),t(y,ie),t(y,E),t(a,de),t(a,f),b(C,f,null),t(f,le),t(f,H),t(f,me),t(f,L),t(a,fe),t(a,c),b(z,c,null),t(c,ce),t(c,F),t(c,pe),t(c,S),t(a,ue),t(a,p),b(O,p,null),t(p,_e),t(p,V),t(p,he),t(p,N),m(e,te,s),b(I,e,s),m(e,ne,s),m(e,W,s),oe=!0},p:ke,i(e){oe||(v(D.$$.fragment,e),v(A.$$.fragment,e),v(w.$$.fragment,e),v(M.$$.fragment,e),v(k.$$.fragment,e),v(C.$$.fragment,e),v(z.$$.fragment,e),v(O.$$.fragment,e),v(I.$$.fragment,e),oe=!0)},o(e){T(D.$$.fragment,e),T(A.$$.fragment,e),T(w.$$.fragment,e),T(M.$$.fragment,e),T(k.$$.fragment,e),T(C.$$.fragment,e),T(z.$$.fragment,e),T(O.$$.fragment,e),T(I.$$.fragment,e),oe=!1},d(e){e&&(n(R),n(B),n(J),n(X),n(Y),n(P),n(Z),n(ee),n(a),n(te),n(ne),n(W)),n(u),$(D,e),$(A,e),$(w,e),$(M),$(k),$(C),$(z),$(O),$(I,e)}}}const qe='{"title":"PixArtTransformer2DModel","local":"pixarttransformer2dmodel","sections":[{"title":"PixArtTransformer2DModel","local":"diffusers.PixArtTransformer2DModel","sections":[],"depth":2}],"depth":1}';function Ee(ge){return Ce(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ke extends Le{constructor(u){super(),ze(this,u,Ee,je,Me,{})}}export{Ke as component};
