Buckets:

download
raw
13.7 kB
import{s as ce,n as ue,o as pe}from"../chunks/scheduler.53228c21.js";import{S as _e,i as he,e as d,s as r,c as l,h as ge,a as i,d as t,b as s,f as q,g as c,j,k as Z,l as u,m as o,n as p,t as _,o as h,p as g}from"../chunks/index.cac5d66a.js";import{C as Te}from"../chunks/CopyLLMTxtMenu.127444ce.js";import{D as re}from"../chunks/Docstring.3f02c614.js";import{C as be}from"../chunks/CodeBlock.606cbaf4.js";import{H as se,E as $e}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.1e8e5da3.js";function ve(ae){let m,V,E,H,b,P,$,O,v,de='A Diffusion Transformer model for 3D video-like data was introduced in <a href="https://github.com/Wan-Video/Wan2.1" rel="nofollow">Wan 2.1</a> by the Alibaba Wan Team.',R,M,ie="The model can be loaded with the following code snippet.",U,D,A,w,G,a,x,ee,J,me="A Transformer model for video-like data used in the Wan model.",ne,T,W,te,C,fe='The <a href="/docs/diffusers/pr_13751/en/api/models/wan_transformer_3d#diffusers.WanTransformer3DModel">WanTransformer3DModel</a> forward method.',S,y,X,f,k,oe,I,le='The output of <a href="/docs/diffusers/pr_13751/en/api/models/transformer2d#diffusers.Transformer2DModel">Transformer2DModel</a>.',F,z,Q,L,Y;return b=new Te({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),$=new se({props:{title:"WanTransformer3DModel",local:"wantransformer3dmodel",headingTag:"h1"}}),D=new be({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFdhblRyYW5zZm9ybWVyM0RNb2RlbCUwQSUwQXRyYW5zZm9ybWVyJTIwJTNEJTIwV2FuVHJhbnNmb3JtZXIzRE1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJXYW4tQUklMkZXYW4yLjEtVDJWLTEuM0ItRGlmZnVzZXJzJTIyJTJDJTIwc3ViZm9sZGVyJTNEJTIydHJhbnNmb3JtZXIlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2KQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> WanTransformer3DModel
transformer = WanTransformer3DModel.from_pretrained(<span class="hljs-string">&quot;Wan-AI/Wan2.1-T2V-1.3B-Diffusers&quot;</span>, subfolder=<span class="hljs-string">&quot;transformer&quot;</span>, torch_dtype=torch.bfloat16)`,lang:"python",wrap:!1}}),w=new se({props:{title:"WanTransformer3DModel",local:"diffusers.WanTransformer3DModel",headingTag:"h2"}}),x=new re({props:{name:"class diffusers.WanTransformer3DModel",anchor:"diffusers.WanTransformer3DModel",parameters:[{name:"patch_size",val:": tuple = (1, 2, 2)"},{name:"num_attention_heads",val:": int = 40"},{name:"attention_head_dim",val:": int = 128"},{name:"in_channels",val:": int = 16"},{name:"out_channels",val:": int = 16"},{name:"text_dim",val:": int = 4096"},{name:"freq_dim",val:": int = 256"},{name:"ffn_dim",val:": int = 13824"},{name:"num_layers",val:": int = 40"},{name:"cross_attn_norm",val:": bool = True"},{name:"qk_norm",val:": str | None = 'rms_norm_across_heads'"},{name:"eps",val:": float = 1e-06"},{name:"image_dim",val:": int | None = None"},{name:"added_kv_proj_dim",val:": int | None = None"},{name:"rope_max_seq_len",val:": int = 1024"},{name:"pos_embed_seq_len",val:": int | None = None"}],parametersDescription:[{anchor:"diffusers.WanTransformer3DModel.patch_size",description:`<strong>patch_size</strong> (<code>tuple[int]</code>, defaults to <code>(1, 2, 2)</code>) &#x2014;
3D patch dimensions for video embedding (t_patch, h_patch, w_patch).`,name:"patch_size"},{anchor:"diffusers.WanTransformer3DModel.num_attention_heads",description:`<strong>num_attention_heads</strong> (<code>int</code>, defaults to <code>40</code>) &#x2014;
Fixed length for text embeddings.`,name:"num_attention_heads"},{anchor:"diffusers.WanTransformer3DModel.attention_head_dim",description:`<strong>attention_head_dim</strong> (<code>int</code>, defaults to <code>128</code>) &#x2014;
The number of channels in each head.`,name:"attention_head_dim"},{anchor:"diffusers.WanTransformer3DModel.in_channels",description:`<strong>in_channels</strong> (<code>int</code>, defaults to <code>16</code>) &#x2014;
The number of channels in the input.`,name:"in_channels"},{anchor:"diffusers.WanTransformer3DModel.out_channels",description:`<strong>out_channels</strong> (<code>int</code>, defaults to <code>16</code>) &#x2014;
The number of channels in the output.`,name:"out_channels"},{anchor:"diffusers.WanTransformer3DModel.text_dim",description:`<strong>text_dim</strong> (<code>int</code>, defaults to <code>512</code>) &#x2014;
Input dimension for text embeddings.`,name:"text_dim"},{anchor:"diffusers.WanTransformer3DModel.freq_dim",description:`<strong>freq_dim</strong> (<code>int</code>, defaults to <code>256</code>) &#x2014;
Dimension for sinusoidal time embeddings.`,name:"freq_dim"},{anchor:"diffusers.WanTransformer3DModel.ffn_dim",description:`<strong>ffn_dim</strong> (<code>int</code>, defaults to <code>13824</code>) &#x2014;
Intermediate dimension in feed-forward network.`,name:"ffn_dim"},{anchor:"diffusers.WanTransformer3DModel.num_layers",description:`<strong>num_layers</strong> (<code>int</code>, defaults to <code>40</code>) &#x2014;
The number of layers of transformer blocks to use.`,name:"num_layers"},{anchor:"diffusers.WanTransformer3DModel.window_size",description:`<strong>window_size</strong> (<code>tuple[int]</code>, defaults to <code>(-1, -1)</code>) &#x2014;
Window size for local attention (-1 indicates global attention).`,name:"window_size"},{anchor:"diffusers.WanTransformer3DModel.cross_attn_norm",description:`<strong>cross_attn_norm</strong> (<code>bool</code>, defaults to <code>True</code>) &#x2014;
Enable cross-attention normalization.`,name:"cross_attn_norm"},{anchor:"diffusers.WanTransformer3DModel.qk_norm",description:`<strong>qk_norm</strong> (<code>bool</code>, defaults to <code>True</code>) &#x2014;
Enable query/key normalization.`,name:"qk_norm"},{anchor:"diffusers.WanTransformer3DModel.eps",description:`<strong>eps</strong> (<code>float</code>, defaults to <code>1e-6</code>) &#x2014;
Epsilon value for normalization layers.`,name:"eps"},{anchor:"diffusers.WanTransformer3DModel.add_img_emb",description:`<strong>add_img_emb</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether to use img_emb.`,name:"add_img_emb"},{anchor:"diffusers.WanTransformer3DModel.added_kv_proj_dim",description:`<strong>added_kv_proj_dim</strong> (<code>int</code>, <em>optional</em>, defaults to <code>None</code>) &#x2014;
The number of channels to use for the added key and value projections. If <code>None</code>, no projection is used.`,name:"added_kv_proj_dim"}],source:"https://github.com/huggingface/diffusers/blob/vr_13751/src/diffusers/models/transformers/transformer_wan.py#L507"}}),W=new re({props:{name:"forward",anchor:"diffusers.WanTransformer3DModel.forward",parameters:[{name:"hidden_states",val:": Tensor"},{name:"timestep",val:": LongTensor"},{name:"encoder_hidden_states",val:": Tensor"},{name:"encoder_hidden_states_image",val:": torch.Tensor | None = None"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": dict[str, typing.Any] | None = None"}],parametersDescription:[{anchor:"diffusers.WanTransformer3DModel.forward.hidden_states",description:`<strong>hidden_states</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, num_channels, num_frames, height, width)</code>) &#x2014;
Input <code>hidden_states</code>.`,name:"hidden_states"},{anchor:"diffusers.WanTransformer3DModel.forward.timestep",description:`<strong>timestep</strong> (<code>torch.LongTensor</code>) &#x2014;
Used to indicate denoising step.`,name:"timestep"},{anchor:"diffusers.WanTransformer3DModel.forward.encoder_hidden_states",description:`<strong>encoder_hidden_states</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, sequence_len, embed_dims)</code>) &#x2014;
Conditional embeddings (embeddings computed from the input conditions such as prompts) to use.`,name:"encoder_hidden_states"},{anchor:"diffusers.WanTransformer3DModel.forward.encoder_hidden_states_image",description:`<strong>encoder_hidden_states_image</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Conditional image embeddings for image-conditioned generation.`,name:"encoder_hidden_states_image"},{anchor:"diffusers.WanTransformer3DModel.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 <code>~models.transformer_2d.Transformer2DModelOutput</code> instead of a plain
tuple.`,name:"return_dict"},{anchor:"diffusers.WanTransformer3DModel.forward.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</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:"attention_kwargs"}],source:"https://github.com/huggingface/diffusers/blob/vr_13751/src/diffusers/models/transformers/transformer_wan.py#L628",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>
`}}),y=new se({props:{title:"Transformer2DModelOutput",local:"diffusers.models.modeling_outputs.Transformer2DModelOutput",headingTag:"h2"}}),k=new re({props:{name:"class diffusers.models.modeling_outputs.Transformer2DModelOutput",anchor:"diffusers.models.modeling_outputs.Transformer2DModelOutput",parameters:[{name:"sample",val:": torch.Tensor"}],parametersDescription:[{anchor:"diffusers.models.modeling_outputs.Transformer2DModelOutput.sample",description:`<strong>sample</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, num_channels, height, width)</code> or <code>(batch size, num_vector_embeds - 1, num_latent_pixels)</code> if <a href="/docs/diffusers/pr_13751/en/api/models/transformer2d#diffusers.Transformer2DModel">Transformer2DModel</a> is discrete) &#x2014;
The hidden states output conditioned on the <code>encoder_hidden_states</code> input. If discrete, returns probability
distributions for the unnoised latent pixels.`,name:"sample"}],source:"https://github.com/huggingface/diffusers/blob/vr_13751/src/diffusers/models/modeling_outputs.py#L21"}}),z=new $e({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/models/wan_transformer_3d.md"}}),{c(){m=d("meta"),V=r(),E=d("p"),H=r(),l(b.$$.fragment),P=r(),l($.$$.fragment),O=r(),v=d("p"),v.innerHTML=de,R=r(),M=d("p"),M.textContent=ie,U=r(),l(D.$$.fragment),A=r(),l(w.$$.fragment),G=r(),a=d("div"),l(x.$$.fragment),ee=r(),J=d("p"),J.textContent=me,ne=r(),T=d("div"),l(W.$$.fragment),te=r(),C=d("p"),C.innerHTML=fe,S=r(),l(y.$$.fragment),X=r(),f=d("div"),l(k.$$.fragment),oe=r(),I=d("p"),I.innerHTML=le,F=r(),l(z.$$.fragment),Q=r(),L=d("p"),this.h()},l(e){const n=ge("svelte-u9bgzb",document.head);m=i(n,"META",{name:!0,content:!0}),n.forEach(t),V=s(e),E=i(e,"P",{}),q(E).forEach(t),H=s(e),c(b.$$.fragment,e),P=s(e),c($.$$.fragment,e),O=s(e),v=i(e,"P",{"data-svelte-h":!0}),j(v)!=="svelte-1h7uf3v"&&(v.innerHTML=de),R=s(e),M=i(e,"P",{"data-svelte-h":!0}),j(M)!=="svelte-1vuni30"&&(M.textContent=ie),U=s(e),c(D.$$.fragment,e),A=s(e),c(w.$$.fragment,e),G=s(e),a=i(e,"DIV",{class:!0});var N=q(a);c(x.$$.fragment,N),ee=s(N),J=i(N,"P",{"data-svelte-h":!0}),j(J)!=="svelte-1idrolf"&&(J.textContent=me),ne=s(N),T=i(N,"DIV",{class:!0});var B=q(T);c(W.$$.fragment,B),te=s(B),C=i(B,"P",{"data-svelte-h":!0}),j(C)!=="svelte-y2rx3i"&&(C.innerHTML=fe),B.forEach(t),N.forEach(t),S=s(e),c(y.$$.fragment,e),X=s(e),f=i(e,"DIV",{class:!0});var K=q(f);c(k.$$.fragment,K),oe=s(K),I=i(K,"P",{"data-svelte-h":!0}),j(I)!=="svelte-1acihvv"&&(I.innerHTML=le),K.forEach(t),F=s(e),c(z.$$.fragment,e),Q=s(e),L=i(e,"P",{}),q(L).forEach(t),this.h()},h(){Z(m,"name","hf:doc:metadata"),Z(m,"content",Me),Z(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),Z(a,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),Z(f,"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,n){u(document.head,m),o(e,V,n),o(e,E,n),o(e,H,n),p(b,e,n),o(e,P,n),p($,e,n),o(e,O,n),o(e,v,n),o(e,R,n),o(e,M,n),o(e,U,n),p(D,e,n),o(e,A,n),p(w,e,n),o(e,G,n),o(e,a,n),p(x,a,null),u(a,ee),u(a,J),u(a,ne),u(a,T),p(W,T,null),u(T,te),u(T,C),o(e,S,n),p(y,e,n),o(e,X,n),o(e,f,n),p(k,f,null),u(f,oe),u(f,I),o(e,F,n),p(z,e,n),o(e,Q,n),o(e,L,n),Y=!0},p:ue,i(e){Y||(_(b.$$.fragment,e),_($.$$.fragment,e),_(D.$$.fragment,e),_(w.$$.fragment,e),_(x.$$.fragment,e),_(W.$$.fragment,e),_(y.$$.fragment,e),_(k.$$.fragment,e),_(z.$$.fragment,e),Y=!0)},o(e){h(b.$$.fragment,e),h($.$$.fragment,e),h(D.$$.fragment,e),h(w.$$.fragment,e),h(x.$$.fragment,e),h(W.$$.fragment,e),h(y.$$.fragment,e),h(k.$$.fragment,e),h(z.$$.fragment,e),Y=!1},d(e){e&&(t(V),t(E),t(H),t(P),t(O),t(v),t(R),t(M),t(U),t(A),t(G),t(a),t(S),t(X),t(f),t(F),t(Q),t(L)),t(m),g(b,e),g($,e),g(D,e),g(w,e),g(x),g(W),g(y,e),g(k),g(z,e)}}}const Me='{"title":"WanTransformer3DModel","local":"wantransformer3dmodel","sections":[{"title":"WanTransformer3DModel","local":"diffusers.WanTransformer3DModel","sections":[],"depth":2},{"title":"Transformer2DModelOutput","local":"diffusers.models.modeling_outputs.Transformer2DModelOutput","sections":[],"depth":2}],"depth":1}';function De(ae){return pe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Je extends _e{constructor(m){super(),he(this,m,De,ve,ce,{})}}export{Je as component};

Xet Storage Details

Size:
13.7 kB
·
Xet hash:
6402c43acd60a71b2be810bd7077d8a789da93bc3a5045a1734578affa2ca826

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