import{s as ft,n as mt,o as ut}from"../chunks/scheduler.e4ff9b64.js";import{S as Mt,i as rt,e as a,s as n,c as m,q as yt,h as ot,a as p,d as l,b as s,f as pt,g as u,j as f,r as ct,k as c,l as Tt,m as i,n as M,t as r,o as y,p as o}from"../chunks/index.09f1bca0.js";import{C as Ut,H as q,E as dt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.dde31fc2.js";import{C as Se}from"../chunks/CodeBlock.54e44b16.js";function wt(Xe){let T,ee,K,te,v,le,Z,ie,_,Fe='<a href="https://github.com/xdit-project/xDiT" rel="nofollow">xDiT</a> 是一个推理引擎，专为大规模并行部署扩散变换器（DiTs）而设计。xDiT 提供了一套用于扩散模型的高效并行方法，以及 GPU 内核加速。',ne,$,Le='xDiT 支持四种并行方法，包括<a href="https://huggingface.co/papers/2405.07719" rel="nofollow">统一序列并行</a>、<a href="https://huggingface.co/papers/2405.14430" rel="nofollow">PipeFusion</a>、CFG 并行和数据并行。xDiT 中的这四种并行方法可以以混合方式配置，优化通信模式以最适合底层网络硬件。',se,b,Qe="与并行化正交的优化侧重于加速单个 GPU 的性能。除了利用知名的注意力优化库外，我们还利用编译加速技术，如 torch.compile 和 onediff。",ae,I,We="xDiT 的概述如下所示。",pe,U,Re='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/methods/xdit_overview.png"/>',fe,j,me,V,Ae="以下是一个使用 xDiT 加速 Diffusers 模型推理的示例。",ue,G,Me,B,Ne="如您所见，我们只需要使用 xDiT 中的 xFuserArgs 来获取配置参数，并将这些参数与来自 Diffusers 库的管道对象一起传递给 xDiTParallel，即可完成对 Diffusers 中特定管道的并行化。",re,H,Ee=`xDiT 运行时参数可以在命令行中使用 <code>-h</code> 查看，您可以参考此<a href="https://github.com/xdit-project/xDiT?tab=readme-ov-file#2-usage" rel="nofollow">使用</a>示例以获取更多详细信息。
ils。`,ye,D,Pe="xDiT 需要使用 torchrun 启动，以支持其多节点、多 GPU 并行能力。例如，以下命令可用于 8-GPU 并行推理：",oe,S,ce,X,Te,F,ze='在 xDiT 中支持 Diffusers 模型的一个子集，例如 Flux.1、Stable Diffusion 3 等。最新支持的模型可以在<a href="https://github.com/xdit-project/xDiT?tab=readme-ov-file#-supported-dits" rel="nofollow">这里</a>找到。',Ue,L,de,Q,Ye="我们在不同机器上测试了各种模型，以下是一些基准数据。",we,W,Ce,d,ke='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/flux/Flux-2k-L40.png"/>',Je,w,qe='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/flux/Flux-2K-A100.png"/>',ge,R,xe,C,Ke='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/sd3/L40-SD3.png"/>',he,J,Oe='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/sd3/A100-SD3.png"/>',ve,A,Ze,g,et='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/hunuyuandit/L40-HunyuanDiT.png"/>',_e,x,tt='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/hunuyuandit/V100-HunyuanDiT.png"/>',$e,h,lt='<img src="https://huggingface.co/datasets/xDiT/documentation-images/resolve/main/performance/hunuyuandit/T4-HunyuanDiT.png"/>',be,N,it='更详细的性能指标可以在我们的 <a href="https://github.com/xdit-project/xDiT?tab=readme-ov-file#perf" rel="nofollow">GitHub 页面</a> 上找到。',Ie,E,je,P,nt='<a href="https://github.com/xdit-project/xDiT" rel="nofollow">xDiT-project</a>',Ve,z,st='<a href="https://huggingface.co/papers/2405.07719" rel="nofollow">USP: A Unified Sequence Parallelism Approach for Long Context Generative AI</a>',Ge,Y,at='<a href="https://huggingface.co/papers/2405.14430" rel="nofollow">PipeFusion: Displaced Patch Pipeline Parallelism for Inference of Diffusion Transformer Models</a>',Be,k,He,O,De;return v=new Ut({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),Z=new q({props:{title:"xDiT",local:"xdit",headingTag:"h1"}}),j=new Se({props:{code:"cGlwJTIwaW5zdGFsbCUyMHhmdXNlcg==",highlighted:"pip install xfuser",wrap:!1}}),G=new Se({props:{code:"JTIwaW1wb3J0JTIwdG9yY2glMEElMjBmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uM1BpcGVsaW5lJTBBJTBBJTIwZnJvbSUyMHhmdXNlciUyMGltcG9ydCUyMHhGdXNlckFyZ3MlMkMlMjB4RGlUUGFyYWxsZWwlMEElMjBmcm9tJTIweGZ1c2VyLmNvbmZpZyUyMGltcG9ydCUyMEZsZXhpYmxlQXJndW1lbnRQYXJzZXIlMEElMjBmcm9tJTIweGZ1c2VyLmNvcmUuZGlzdHJpYnV0ZWQlMjBpbXBvcnQlMjBnZXRfd29ybGRfZ3JvdXAlMEElMEElMjBkZWYlMjBtYWluKCklM0ElMEElMkIlMjAlMjAlMjAlMjBwYXJzZXIlMjAlM0QlMjBGbGV4aWJsZUFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uJTNEJTIyeEZ1c2VyJTIwQXJndW1lbnRzJTIyKSUwQSUyQiUyMCUyMCUyMCUyMGFyZ3MlMjAlM0QlMjB4RnVzZXJBcmdzLmFkZF9jbGlfYXJncyhwYXJzZXIpLnBhcnNlX2FyZ3MoKSUwQSUyQiUyMCUyMCUyMCUyMGVuZ2luZV9hcmdzJTIwJTNEJTIweEZ1c2VyQXJncy5mcm9tX2NsaV9hcmdzKGFyZ3MpJTBBJTJCJTIwJTIwJTIwJTIwZW5naW5lX2NvbmZpZyUyQyUyMGlucHV0X2NvbmZpZyUyMCUzRCUyMGVuZ2luZV9hcmdzLmNyZWF0ZV9jb25maWcoKSUwQSUwQSUyMCUyMCUyMCUyMCUyMGxvY2FsX3JhbmslMjAlM0QlMjBnZXRfd29ybGRfZ3JvdXAoKS5sb2NhbF9yYW5rJTBBJTIwJTIwJTIwJTIwJTIwcGlwZSUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvbjNQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglM0RlbmdpbmVfY29uZmlnLm1vZGVsX2NvbmZpZy5tb2RlbCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUwQSUyMCUyMCUyMCUyMCUyMCkudG8oZiUyMmN1ZGElM0ElN0Jsb2NhbF9yYW5rJTdEJTIyKSUwQSUyMCUyMCUyMCUyMCUwQSUyMyUyMCVFNSU5QyVBOCVFOCVCRiU5OSVFOSU4NyU4QyVFNSVBRiVCOSVFNyVBRSVBMSVFOSU4MSU5MyVFOCVCRiU5QiVFOCVBMSU4QyVFNCVCQiVCQiVFNCVCRCU5NSVFNiU5MyU4RCVFNCVCRCU5QyUwQSUwQSUyQiUyMCUyMCUyMCUyMHBpcGUlMjAlM0QlMjB4RGlUUGFyYWxsZWwocGlwZSUyQyUyMGVuZ2luZV9jb25maWclMkMlMjBpbnB1dF9jb25maWcpJTBBJTBBJTIwJTIwJTIwJTIwJTIwcGlwZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBoZWlnaHQlM0RpbnB1dF9jb25maWcuaGVpZ2h0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2lkdGglM0RpbnB1dF9jb25maWcuaGVpZ2h0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJvbXB0JTNEaW5wdXRfY29uZmlnLnByb21wdCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0RpbnB1dF9jb25maWcubnVtX2luZmVyZW5jZV9zdGVwcyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG91dHB1dF90eXBlJTNEaW5wdXRfY29uZmlnLm91dHB1dF90eXBlJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEdG9yY2guR2VuZXJhdG9yKGRldmljZSUzRCUyMmN1ZGElMjIpLm1hbnVhbF9zZWVkKGlucHV0X2NvbmZpZy5zZWVkKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCklMEElMEElMkIlMjAlMjAlMjAlMjBpZiUyMGlucHV0X2NvbmZpZy5vdXRwdXRfdHlwZSUyMCUzRCUzRCUyMCUyMnBpbCUyMiUzQSUwQSUyQiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHBpcGUuc2F2ZSglMjJyZXN1bHRzJTIyJTJDJTIwJTIyc3RhYmxlX2RpZmZ1c2lvbl8zJTIyKSUwQSUwQWlmJTIwX19uYW1lX18lMjAlM0QlM0QlMjAlMjJfX21haW5fXyUyMiUzQSUwQSUyMCUyMCUyMCUyMG1haW4oKQ==",highlighted:` import torch
 from diffusers import StableDiffusion3Pipeline

 from xfuser import xFuserArgs, xDiTParallel
 from xfuser.config import FlexibleArgumentParser
 from xfuser.core.distributed import get_world_group

 def main():
<span class="hljs-addition">+    parser = FlexibleArgumentParser(description=&quot;xFuser Arguments&quot;)</span>
<span class="hljs-addition">+    args = xFuserArgs.add_cli_args(parser).parse_args()</span>
<span class="hljs-addition">+    engine_args = xFuserArgs.from_cli_args(args)</span>
<span class="hljs-addition">+    engine_config, input_config = engine_args.create_config()</span>

     local_rank = get_world_group().local_rank
     pipe = StableDiffusion3Pipeline.from_pretrained(
         pretrained_model_name_or_path=engine_config.model_config.model,
         torch_dtype=torch.float16,
     ).to(f&quot;cuda:{local_rank}&quot;)
    
# 在这里对管道进行任何操作

<span class="hljs-addition">+    pipe = xDiTParallel(pipe, engine_config, input_config)</span>

     pipe(
         height=input_config.height,
         width=input_config.height,
         prompt=input_config.prompt,
         num_inference_steps=input_config.num_inference_steps,
         output_type=input_config.output_type,
         generator=torch.Generator(device=&quot;cuda&quot;).manual_seed(input_config.seed),
     )

<span class="hljs-addition">+    if input_config.output_type == &quot;pil&quot;:</span>
<span class="hljs-addition">+        pipe.save(&quot;results&quot;, &quot;stable_diffusion_3&quot;)</span>

if __name__ == &quot;__main__&quot;:
    main()`,wrap:!1}}),S=new Se({props:{code:"dG9yY2hydW4lMjAtLW5wcm9jX3Blcl9ub2RlJTNEOCUyMC4lMkZpbmZlcmVuY2UucHklMjAtLW1vZGVsJTIwbW9kZWxzJTJGRkxVWC4xLWRldiUyMC0tZGF0YV9wYXJhbGxlbF9kZWdyZWUlMjAyJTIwLS11bHlzc2VzX2RlZ3JlZSUyMDIlMjAtLXJpbmdfZGVncmVlJTIwMiUyMC0tcHJvbXB0JTIwJTIyQSUyMHNub3d5JTIwbW91bnRhaW4lMjIlMjAlMjJBJTIwc21hbGwlMjBkb2clMjIlMjAtLW51bV9pbmZlcmVuY2Vfc3RlcHMlMjA1MA==",highlighted:'torchrun --nproc_per_node=8 ./inference.py --model models/FLUX.1-dev --data_parallel_degree 2 --ulysses_degree 2 --ring_degree 2 --prompt <span class="hljs-string">&quot;A snowy mountain&quot;</span> <span class="hljs-string">&quot;A small dog&quot;</span> --num_inference_steps 50',wrap:!1}}),X=new q({props:{title:"支持的模型",local:"支持的模型",headingTag:"h2"}}),L=new q({props:{title:"基准测试",local:"基准测试",headingTag:"h2"}}),W=new q({props:{title:"Flux.1-schnell",local:"flux1-schnell",headingTag:"h3"}}),R=new q({props:{title:"Stable Diffusion 3",local:"stable-diffusion-3",headingTag:"h3"}}),A=new q({props:{title:"HunyuanDiT",local:"hunyuandit",headingTag:"h3"}}),E=new q({props:{title:"参考文献",local:"参考文献",headingTag:"h2"}}),k=new dt({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/optimization/xdit.md"}}),{c(){T=a("meta"),ee=n(),K=a("p"),te=n(),m(v.$$.fragment),le=n(),m(Z.$$.fragment),ie=n(),_=a("p"),_.innerHTML=Fe,ne=n(),$=a("p"),$.innerHTML=Le,se=n(),b=a("p"),b.textContent=Qe,ae=n(),I=a("p"),I.textContent=We,pe=n(),U=a("div"),U.innerHTML=Re,fe=yt(`
您可以使用以下命令安装 xDiT：

	`),m(j.$$.fragment),me=n(),V=a("p"),V.textContent=Ae,ue=n(),m(G.$$.fragment),Me=n(),B=a("p"),B.textContent=Ne,re=n(),H=a("p"),H.innerHTML=Ee,ye=n(),D=a("p"),D.textContent=Pe,oe=n(),m(S.$$.fragment),ce=n(),m(X.$$.fragment),Te=n(),F=a("p"),F.innerHTML=ze,Ue=n(),m(L.$$.fragment),de=n(),Q=a("p"),Q.textContent=Ye,we=n(),m(W.$$.fragment),Ce=n(),d=a("div"),d.innerHTML=ke,Je=n(),w=a("div"),w.innerHTML=qe,ge=n(),m(R.$$.fragment),xe=n(),C=a("div"),C.innerHTML=Ke,he=n(),J=a("div"),J.innerHTML=Oe,ve=n(),m(A.$$.fragment),Ze=n(),g=a("div"),g.innerHTML=et,_e=n(),x=a("div"),x.innerHTML=tt,$e=n(),h=a("div"),h.innerHTML=lt,be=n(),N=a("p"),N.innerHTML=it,Ie=n(),m(E.$$.fragment),je=n(),P=a("p"),P.innerHTML=nt,Ve=n(),z=a("p"),z.innerHTML=st,Ge=n(),Y=a("p"),Y.innerHTML=at,Be=n(),m(k.$$.fragment),He=n(),O=a("p"),this.h()},l(e){const t=ot("svelte-u9bgzb",document.head);T=p(t,"META",{name:!0,content:!0}),t.forEach(l),ee=s(e),K=p(e,"P",{}),pt(K).forEach(l),te=s(e),u(v.$$.fragment,e),le=s(e),u(Z.$$.fragment,e),ie=s(e),_=p(e,"P",{"data-svelte-h":!0}),f(_)!=="svelte-1svyjti"&&(_.innerHTML=Fe),ne=s(e),$=p(e,"P",{"data-svelte-h":!0}),f($)!=="svelte-9m2vqr"&&($.innerHTML=Le),se=s(e),b=p(e,"P",{"data-svelte-h":!0}),f(b)!=="svelte-13qghg"&&(b.textContent=Qe),ae=s(e),I=p(e,"P",{"data-svelte-h":!0}),f(I)!=="svelte-c43u88"&&(I.textContent=We),pe=s(e),U=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(U)!=="svelte-1jymm8y"&&(U.innerHTML=Re),fe=ct(e,`
您可以使用以下命令安装 xDiT：

	`),u(j.$$.fragment,e),me=s(e),V=p(e,"P",{"data-svelte-h":!0}),f(V)!=="svelte-1u9bmj0"&&(V.textContent=Ae),ue=s(e),u(G.$$.fragment,e),Me=s(e),B=p(e,"P",{"data-svelte-h":!0}),f(B)!=="svelte-1y848ni"&&(B.textContent=Ne),re=s(e),H=p(e,"P",{"data-svelte-h":!0}),f(H)!=="svelte-1sp2tgw"&&(H.innerHTML=Ee),ye=s(e),D=p(e,"P",{"data-svelte-h":!0}),f(D)!=="svelte-1few9ai"&&(D.textContent=Pe),oe=s(e),u(S.$$.fragment,e),ce=s(e),u(X.$$.fragment,e),Te=s(e),F=p(e,"P",{"data-svelte-h":!0}),f(F)!=="svelte-meap7h"&&(F.innerHTML=ze),Ue=s(e),u(L.$$.fragment,e),de=s(e),Q=p(e,"P",{"data-svelte-h":!0}),f(Q)!=="svelte-ys34n"&&(Q.textContent=Ye),we=s(e),u(W.$$.fragment,e),Ce=s(e),d=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(d)!=="svelte-ysqez7"&&(d.innerHTML=ke),Je=s(e),w=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(w)!=="svelte-195epjt"&&(w.innerHTML=qe),ge=s(e),u(R.$$.fragment,e),xe=s(e),C=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(C)!=="svelte-6afexp"&&(C.innerHTML=Ke),he=s(e),J=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(J)!=="svelte-1ju6xid"&&(J.innerHTML=Oe),ve=s(e),u(A.$$.fragment,e),Ze=s(e),g=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(g)!=="svelte-1wq76oc"&&(g.innerHTML=et),_e=s(e),x=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(x)!=="svelte-c4plsv"&&(x.innerHTML=tt),$e=s(e),h=p(e,"DIV",{class:!0,"data-svelte-h":!0}),f(h)!=="svelte-srcu1c"&&(h.innerHTML=lt),be=s(e),N=p(e,"P",{"data-svelte-h":!0}),f(N)!=="svelte-1120ksj"&&(N.innerHTML=it),Ie=s(e),u(E.$$.fragment,e),je=s(e),P=p(e,"P",{"data-svelte-h":!0}),f(P)!=="svelte-1tn43qd"&&(P.innerHTML=nt),Ve=s(e),z=p(e,"P",{"data-svelte-h":!0}),f(z)!=="svelte-5nrl9w"&&(z.innerHTML=st),Ge=s(e),Y=p(e,"P",{"data-svelte-h":!0}),f(Y)!=="svelte-fllf4"&&(Y.innerHTML=at),Be=s(e),u(k.$$.fragment,e),He=s(e),O=p(e,"P",{}),pt(O).forEach(l),this.h()},h(){c(T,"name","hf:doc:metadata"),c(T,"content",Ct),c(U,"class","flex justify-center"),c(d,"class","flex justify-center"),c(w,"class","flex justify-center"),c(C,"class","flex justify-center"),c(J,"class","flex justify-center"),c(g,"class","flex justify-center"),c(x,"class","flex justify-center"),c(h,"class","flex justify-center")},m(e,t){Tt(document.head,T),i(e,ee,t),i(e,K,t),i(e,te,t),M(v,e,t),i(e,le,t),M(Z,e,t),i(e,ie,t),i(e,_,t),i(e,ne,t),i(e,$,t),i(e,se,t),i(e,b,t),i(e,ae,t),i(e,I,t),i(e,pe,t),i(e,U,t),i(e,fe,t),M(j,e,t),i(e,me,t),i(e,V,t),i(e,ue,t),M(G,e,t),i(e,Me,t),i(e,B,t),i(e,re,t),i(e,H,t),i(e,ye,t),i(e,D,t),i(e,oe,t),M(S,e,t),i(e,ce,t),M(X,e,t),i(e,Te,t),i(e,F,t),i(e,Ue,t),M(L,e,t),i(e,de,t),i(e,Q,t),i(e,we,t),M(W,e,t),i(e,Ce,t),i(e,d,t),i(e,Je,t),i(e,w,t),i(e,ge,t),M(R,e,t),i(e,xe,t),i(e,C,t),i(e,he,t),i(e,J,t),i(e,ve,t),M(A,e,t),i(e,Ze,t),i(e,g,t),i(e,_e,t),i(e,x,t),i(e,$e,t),i(e,h,t),i(e,be,t),i(e,N,t),i(e,Ie,t),M(E,e,t),i(e,je,t),i(e,P,t),i(e,Ve,t),i(e,z,t),i(e,Ge,t),i(e,Y,t),i(e,Be,t),M(k,e,t),i(e,He,t),i(e,O,t),De=!0},p:mt,i(e){De||(r(v.$$.fragment,e),r(Z.$$.fragment,e),r(j.$$.fragment,e),r(G.$$.fragment,e),r(S.$$.fragment,e),r(X.$$.fragment,e),r(L.$$.fragment,e),r(W.$$.fragment,e),r(R.$$.fragment,e),r(A.$$.fragment,e),r(E.$$.fragment,e),r(k.$$.fragment,e),De=!0)},o(e){y(v.$$.fragment,e),y(Z.$$.fragment,e),y(j.$$.fragment,e),y(G.$$.fragment,e),y(S.$$.fragment,e),y(X.$$.fragment,e),y(L.$$.fragment,e),y(W.$$.fragment,e),y(R.$$.fragment,e),y(A.$$.fragment,e),y(E.$$.fragment,e),y(k.$$.fragment,e),De=!1},d(e){e&&(l(ee),l(K),l(te),l(le),l(ie),l(_),l(ne),l($),l(se),l(b),l(ae),l(I),l(pe),l(U),l(fe),l(me),l(V),l(ue),l(Me),l(B),l(re),l(H),l(ye),l(D),l(oe),l(ce),l(Te),l(F),l(Ue),l(de),l(Q),l(we),l(Ce),l(d),l(Je),l(w),l(ge),l(xe),l(C),l(he),l(J),l(ve),l(Ze),l(g),l(_e),l(x),l($e),l(h),l(be),l(N),l(Ie),l(je),l(P),l(Ve),l(z),l(Ge),l(Y),l(Be),l(He),l(O)),l(T),o(v,e),o(Z,e),o(j,e),o(G,e),o(S,e),o(X,e),o(L,e),o(W,e),o(R,e),o(A,e),o(E,e),o(k,e)}}}const Ct='{"title":"xDiT","local":"xdit","sections":[{"title":"支持的模型","local":"支持的模型","sections":[],"depth":2},{"title":"基准测试","local":"基准测试","sections":[{"title":"Flux.1-schnell","local":"flux1-schnell","sections":[],"depth":3},{"title":"Stable Diffusion 3","local":"stable-diffusion-3","sections":[],"depth":3},{"title":"HunyuanDiT","local":"hunyuandit","sections":[],"depth":3}],"depth":2},{"title":"参考文献","local":"参考文献","sections":[],"depth":2}],"depth":1}';function Jt(Xe){return ut(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Zt extends Mt{constructor(T){super(),rt(this,T,Jt,wt,ft,{})}}export{Zt as component};
