Buckets:

HuggingFaceDocBuilder's picture
download
raw
13.7 kB
import{s as me,n as le,o as ce}from"../chunks/scheduler.53228c21.js";import{S as fe,i as ue,e as d,s,c,h as pe,a as i,d as t,b as r,f as j,g as f,j as X,k as Z,l as u,m as o,n as p,t as g,o as h,p as _}from"../chunks/index.cac5d66a.js";import{C as ge}from"../chunks/CopyLLMTxtMenu.5ac9ab94.js";import{D as te}from"../chunks/Docstring.8a316450.js";import{C as he}from"../chunks/CodeBlock.606cbaf4.js";import{H as oe,E as _e}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.92b2cd9d.js";function Te(se){let m,L,J,R,b,q,w,E,$,re="The model can be loaded with the following code snippet.",P,v,W,M,H,a,y,B,k,ae="The Transformer model introduced in Qwen.",K,T,D,ee,C,de="The <code>QwenTransformer2DModel</code> forward method.",V,x,G,l,I,ne,z,ie='The output of <a href="/docs/diffusers/pr_13813/en/api/models/transformer2d#diffusers.Transformer2DModel">Transformer2DModel</a>.',O,Q,F,U,Y;return b=new ge({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new oe({props:{title:"QwenImageTransformer2DModel",local:"qwenimagetransformer2dmodel",headingTag:"h1"}}),v=new he({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFF3ZW5JbWFnZVRyYW5zZm9ybWVyMkRNb2RlbCUwQSUwQXRyYW5zZm9ybWVyJTIwJTNEJTIwUXdlbkltYWdlVHJhbnNmb3JtZXIyRE1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJRd2VuJTJGUXdlbkltYWdlLTIwQiUyMiUyQyUyMHN1YmZvbGRlciUzRCUyMnRyYW5zZm9ybWVyJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNik=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> QwenImageTransformer2DModel
transformer = QwenImageTransformer2DModel.from_pretrained(<span class="hljs-string">&quot;Qwen/QwenImage-20B&quot;</span>, subfolder=<span class="hljs-string">&quot;transformer&quot;</span>, torch_dtype=torch.bfloat16)`,lang:"python",wrap:!1}}),M=new oe({props:{title:"QwenImageTransformer2DModel",local:"diffusers.QwenImageTransformer2DModel",headingTag:"h2"}}),y=new te({props:{name:"class diffusers.QwenImageTransformer2DModel",anchor:"diffusers.QwenImageTransformer2DModel",parameters:[{name:"patch_size",val:": int = 2"},{name:"in_channels",val:": int = 64"},{name:"out_channels",val:": int | None = 16"},{name:"num_layers",val:": int = 60"},{name:"attention_head_dim",val:": int = 128"},{name:"num_attention_heads",val:": int = 24"},{name:"joint_attention_dim",val:": int = 3584"},{name:"guidance_embeds",val:": bool = False"},{name:"axes_dims_rope",val:": tuple = (16, 56, 56)"},{name:"zero_cond_t",val:": bool = False"},{name:"use_additional_t_cond",val:": bool = False"},{name:"use_layer3d_rope",val:": bool = False"}],parametersDescription:[{anchor:"diffusers.QwenImageTransformer2DModel.patch_size",description:`<strong>patch_size</strong> (<code>int</code>, defaults to <code>2</code>) &#x2014;
Patch size to turn the input data into small patches.`,name:"patch_size"},{anchor:"diffusers.QwenImageTransformer2DModel.in_channels",description:`<strong>in_channels</strong> (<code>int</code>, defaults to <code>64</code>) &#x2014;
The number of channels in the input.`,name:"in_channels"},{anchor:"diffusers.QwenImageTransformer2DModel.out_channels",description:`<strong>out_channels</strong> (<code>int</code>, <em>optional</em>, defaults to <code>None</code>) &#x2014;
The number of channels in the output. If not specified, it defaults to <code>in_channels</code>.`,name:"out_channels"},{anchor:"diffusers.QwenImageTransformer2DModel.num_layers",description:`<strong>num_layers</strong> (<code>int</code>, defaults to <code>60</code>) &#x2014;
The number of layers of dual stream DiT blocks to use.`,name:"num_layers"},{anchor:"diffusers.QwenImageTransformer2DModel.attention_head_dim",description:`<strong>attention_head_dim</strong> (<code>int</code>, defaults to <code>128</code>) &#x2014;
The number of dimensions to use for each attention head.`,name:"attention_head_dim"},{anchor:"diffusers.QwenImageTransformer2DModel.num_attention_heads",description:`<strong>num_attention_heads</strong> (<code>int</code>, defaults to <code>24</code>) &#x2014;
The number of attention heads to use.`,name:"num_attention_heads"},{anchor:"diffusers.QwenImageTransformer2DModel.joint_attention_dim",description:`<strong>joint_attention_dim</strong> (<code>int</code>, defaults to <code>3584</code>) &#x2014;
The number of dimensions to use for the joint attention (embedding/channel dimension of
<code>encoder_hidden_states</code>).`,name:"joint_attention_dim"},{anchor:"diffusers.QwenImageTransformer2DModel.guidance_embeds",description:`<strong>guidance_embeds</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether to use guidance embeddings for guidance-distilled variant of the model.`,name:"guidance_embeds"},{anchor:"diffusers.QwenImageTransformer2DModel.axes_dims_rope",description:`<strong>axes_dims_rope</strong> (<code>tuple[int]</code>, defaults to <code>(16, 56, 56)</code>) &#x2014;
The dimensions to use for the rotary positional embeddings.`,name:"axes_dims_rope"}],source:"https://github.com/huggingface/diffusers/blob/vr_13813/src/diffusers/models/transformers/transformer_qwenimage.py#L733"}}),D=new te({props:{name:"forward",anchor:"diffusers.QwenImageTransformer2DModel.forward",parameters:[{name:"hidden_states",val:": Tensor"},{name:"encoder_hidden_states",val:": Tensor = None"},{name:"encoder_hidden_states_mask",val:": Tensor = None"},{name:"timestep",val:": LongTensor = None"},{name:"img_shapes",val:": list[tuple[int, int, int]] | None = None"},{name:"guidance",val:": Tensor = None"},{name:"attention_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"controlnet_block_samples",val:" = None"},{name:"additional_t_cond",val:" = None"},{name:"return_dict",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.QwenImageTransformer2DModel.forward.hidden_states",description:`<strong>hidden_states</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, image_sequence_length, in_channels)</code>) &#x2014;
Input <code>hidden_states</code>.`,name:"hidden_states"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.encoder_hidden_states",description:`<strong>encoder_hidden_states</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, text_sequence_length, joint_attention_dim)</code>) &#x2014;
Conditional embeddings (embeddings computed from the input conditions such as prompts) to use.`,name:"encoder_hidden_states"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.encoder_hidden_states_mask",description:`<strong>encoder_hidden_states_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, text_sequence_length)</code>, <em>optional</em>) &#x2014;
Mask for the encoder hidden states. Expected to have 1.0 for valid tokens and 0.0 for padding tokens.
Used in the attention processor to prevent attending to padding tokens. The mask can have any pattern
(not just contiguous valid tokens followed by padding) since it&#x2019;s applied element-wise in attention.`,name:"encoder_hidden_states_mask"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.timestep",description:`<strong>timestep</strong> ( <code>torch.LongTensor</code>) &#x2014;
Used to indicate denoising step.`,name:"timestep"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.img_shapes",description:`<strong>img_shapes</strong> (<code>list[tuple[int, int, int]]</code>, <em>optional</em>) &#x2014;
Image shapes for RoPE computation.`,name:"img_shapes"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.guidance",description:`<strong>guidance</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Guidance tensor for conditional generation.`,name:"guidance"},{anchor:"diffusers.QwenImageTransformer2DModel.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"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.controlnet_block_samples",description:`<strong>controlnet_block_samples</strong> (<em>optional</em>) &#x2014;
ControlNet block samples to add to the transformer blocks.`,name:"controlnet_block_samples"},{anchor:"diffusers.QwenImageTransformer2DModel.forward.additional_t_cond",description:`<strong>additional_t_cond</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Additional timestep conditioning added to the timestep embedding.`,name:"additional_t_cond"},{anchor:"diffusers.QwenImageTransformer2DModel.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"}],source:"https://github.com/huggingface/diffusers/blob/vr_13813/src/diffusers/models/transformers/transformer_qwenimage.py#L833",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>
`}}),x=new oe({props:{title:"Transformer2DModelOutput",local:"diffusers.models.modeling_outputs.Transformer2DModelOutput",headingTag:"h2"}}),I=new te({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_13813/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_13813/src/diffusers/models/modeling_outputs.py#L21"}}),Q=new _e({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/models/qwenimage_transformer2d.md"}}),{c(){m=d("meta"),L=s(),J=d("p"),R=s(),c(b.$$.fragment),q=s(),c(w.$$.fragment),E=s(),$=d("p"),$.textContent=re,P=s(),c(v.$$.fragment),W=s(),c(M.$$.fragment),H=s(),a=d("div"),c(y.$$.fragment),B=s(),k=d("p"),k.textContent=ae,K=s(),T=d("div"),c(D.$$.fragment),ee=s(),C=d("p"),C.innerHTML=de,V=s(),c(x.$$.fragment),G=s(),l=d("div"),c(I.$$.fragment),ne=s(),z=d("p"),z.innerHTML=ie,O=s(),c(Q.$$.fragment),F=s(),U=d("p"),this.h()},l(e){const n=pe("svelte-u9bgzb",document.head);m=i(n,"META",{name:!0,content:!0}),n.forEach(t),L=r(e),J=i(e,"P",{}),j(J).forEach(t),R=r(e),f(b.$$.fragment,e),q=r(e),f(w.$$.fragment,e),E=r(e),$=i(e,"P",{"data-svelte-h":!0}),X($)!=="svelte-1vuni30"&&($.textContent=re),P=r(e),f(v.$$.fragment,e),W=r(e),f(M.$$.fragment,e),H=r(e),a=i(e,"DIV",{class:!0});var N=j(a);f(y.$$.fragment,N),B=r(N),k=i(N,"P",{"data-svelte-h":!0}),X(k)!=="svelte-1kyfnic"&&(k.textContent=ae),K=r(N),T=i(N,"DIV",{class:!0});var S=j(T);f(D.$$.fragment,S),ee=r(S),C=i(S,"P",{"data-svelte-h":!0}),X(C)!=="svelte-htyx6t"&&(C.innerHTML=de),S.forEach(t),N.forEach(t),V=r(e),f(x.$$.fragment,e),G=r(e),l=i(e,"DIV",{class:!0});var A=j(l);f(I.$$.fragment,A),ne=r(A),z=i(A,"P",{"data-svelte-h":!0}),X(z)!=="svelte-zeg0js"&&(z.innerHTML=ie),A.forEach(t),O=r(e),f(Q.$$.fragment,e),F=r(e),U=i(e,"P",{}),j(U).forEach(t),this.h()},h(){Z(m,"name","hf:doc:metadata"),Z(m,"content",be),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(l,"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,L,n),o(e,J,n),o(e,R,n),p(b,e,n),o(e,q,n),p(w,e,n),o(e,E,n),o(e,$,n),o(e,P,n),p(v,e,n),o(e,W,n),p(M,e,n),o(e,H,n),o(e,a,n),p(y,a,null),u(a,B),u(a,k),u(a,K),u(a,T),p(D,T,null),u(T,ee),u(T,C),o(e,V,n),p(x,e,n),o(e,G,n),o(e,l,n),p(I,l,null),u(l,ne),u(l,z),o(e,O,n),p(Q,e,n),o(e,F,n),o(e,U,n),Y=!0},p:le,i(e){Y||(g(b.$$.fragment,e),g(w.$$.fragment,e),g(v.$$.fragment,e),g(M.$$.fragment,e),g(y.$$.fragment,e),g(D.$$.fragment,e),g(x.$$.fragment,e),g(I.$$.fragment,e),g(Q.$$.fragment,e),Y=!0)},o(e){h(b.$$.fragment,e),h(w.$$.fragment,e),h(v.$$.fragment,e),h(M.$$.fragment,e),h(y.$$.fragment,e),h(D.$$.fragment,e),h(x.$$.fragment,e),h(I.$$.fragment,e),h(Q.$$.fragment,e),Y=!1},d(e){e&&(t(L),t(J),t(R),t(q),t(E),t($),t(P),t(W),t(H),t(a),t(V),t(G),t(l),t(O),t(F),t(U)),t(m),_(b,e),_(w,e),_(v,e),_(M,e),_(y),_(D),_(x,e),_(I),_(Q,e)}}}const be='{"title":"QwenImageTransformer2DModel","local":"qwenimagetransformer2dmodel","sections":[{"title":"QwenImageTransformer2DModel","local":"diffusers.QwenImageTransformer2DModel","sections":[],"depth":2},{"title":"Transformer2DModelOutput","local":"diffusers.models.modeling_outputs.Transformer2DModelOutput","sections":[],"depth":2}],"depth":1}';function we(se){return ce(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ie extends fe{constructor(m){super(),ue(this,m,we,Te,me,{})}}export{Ie as component};

Xet Storage Details

Size:
13.7 kB
·
Xet hash:
7e56f35df2bc5ade2902e034d4ce3f47631c8d8eb1fe58823aa28260ae7b9ab0

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