Buckets:
| import{s as al,o as el,n as sl}from"../chunks/scheduler.5c93273d.js";import{S as tl,i as nl,g as y,s as c,r as J,A as Ml,h as m,f as n,c as j,j as L,u as d,x as C,k as K,y as pl,a as M,v as U,d as u,t as T,w as b}from"../chunks/index.e43dd92b.js";import{C as V}from"../chunks/CodeBlock.6896320e.js";import{H as cl,E as jl}from"../chunks/getInferenceSnippets.7d64e4c6.js";import{H as ol,a as ll}from"../chunks/HfOption.d50154c3.js";function il(w){let s,p;return s=new V({props:{code:"ZnJvbSUyMGRpZmZ1c2Vycy5tb2R1bGFyX3BpcGVsaW5lcyUyMGltcG9ydCUyME1vZHVsYXJQaXBlbGluZUJsb2NrcyUyQyUyMElucHV0UGFyYW0lMkMlMjBPdXRwdXRQYXJhbSUwQSUwQWNsYXNzJTIwSW5wdXRCbG9jayhNb2R1bGFyUGlwZWxpbmVCbG9ja3MpJTNBJTBBJTBBJTIwJTIwJTIwJTIwJTQwcHJvcGVydHklMEElMjAlMjAlMjAlMjBkZWYlMjBpbnB1dHMoc2VsZiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBJbnB1dFBhcmFtKG5hbWUlM0QlMjJwcm9tcHQlMjIlMkMlMjB0eXBlX2hpbnQlM0RsaXN0JTJDJTIwZGVzY3JpcHRpb24lM0QlMjJsaXN0JTIwb2YlMjB0ZXh0JTIwcHJvbXB0cyUyMiklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBJbnB1dFBhcmFtKG5hbWUlM0QlMjJudW1faW1hZ2VzX3Blcl9wcm9tcHQlMjIlMkMlMjB0eXBlX2hpbnQlM0RpbnQlMkMlMjBkZXNjcmlwdGlvbiUzRCUyMm51bWJlciUyMG9mJTIwaW1hZ2VzJTIwcGVyJTIwcHJvbXB0JTIyKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1RCUwQSUwQSUyMCUyMCUyMCUyMCU0MHByb3BlcnR5JTBBJTIwJTIwJTIwJTIwZGVmJTIwaW50ZXJtZWRpYXRlX291dHB1dHMoc2VsZiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBPdXRwdXRQYXJhbShuYW1lJTNEJTIyYmF0Y2hfc2l6ZSUyMiUyQyUyMGRlc2NyaXB0aW9uJTNEJTIyY2FsY3VsYXRlZCUyMGJhdGNoJTIwc2l6ZSUyMiklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMEElMEElMjAlMjAlMjAlMjAlNDBwcm9wZXJ0eSUwQSUyMCUyMCUyMCUyMGRlZiUyMGRlc2NyaXB0aW9uKHNlbGYpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTIyQSUyMGJsb2NrJTIwdGhhdCUyMGRldGVybWluZXMlMjBiYXRjaF9zaXplJTIwYmFzZWQlMjBvbiUyMHRoZSUyMG51bWJlciUyMG9mJTIwcHJvbXB0cyUyMGFuZCUyMG51bV9pbWFnZXNfcGVyX3Byb21wdCUyMGFyZ3VtZW50LiUyMiUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMF9fY2FsbF9fKHNlbGYlMkMlMjBjb21wb25lbnRzJTJDJTIwc3RhdGUpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmxvY2tfc3RhdGUlMjAlM0QlMjBzZWxmLmdldF9ibG9ja19zdGF0ZShzdGF0ZSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBiYXRjaF9zaXplJTIwJTNEJTIwbGVuKGJsb2NrX3N0YXRlLnByb21wdCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBibG9ja19zdGF0ZS5iYXRjaF9zaXplJTIwJTNEJTIwYmF0Y2hfc2l6ZSUyMColMjBibG9ja19zdGF0ZS5udW1faW1hZ2VzX3Blcl9wcm9tcHQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzZWxmLnNldF9ibG9ja19zdGF0ZShzdGF0ZSUyQyUyMGJsb2NrX3N0YXRlKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGNvbXBvbmVudHMlMkMlMjBzdGF0ZQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers.modular_pipelines <span class="hljs-keyword">import</span> ModularPipelineBlocks, InputParam, OutputParam | |
| <span class="hljs-keyword">class</span> <span class="hljs-title class_">InputBlock</span>(<span class="hljs-title class_ inherited__">ModularPipelineBlocks</span>): | |
| <span class="hljs-meta"> @property</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">inputs</span>(<span class="hljs-params">self</span>): | |
| <span class="hljs-keyword">return</span> [ | |
| InputParam(name=<span class="hljs-string">"prompt"</span>, type_hint=<span class="hljs-built_in">list</span>, description=<span class="hljs-string">"list of text prompts"</span>), | |
| InputParam(name=<span class="hljs-string">"num_images_per_prompt"</span>, type_hint=<span class="hljs-built_in">int</span>, description=<span class="hljs-string">"number of images per prompt"</span>), | |
| ] | |
| <span class="hljs-meta"> @property</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">intermediate_outputs</span>(<span class="hljs-params">self</span>): | |
| <span class="hljs-keyword">return</span> [ | |
| OutputParam(name=<span class="hljs-string">"batch_size"</span>, description=<span class="hljs-string">"calculated batch size"</span>), | |
| ] | |
| <span class="hljs-meta"> @property</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">description</span>(<span class="hljs-params">self</span>): | |
| <span class="hljs-keyword">return</span> <span class="hljs-string">"A block that determines batch_size based on the number of prompts and num_images_per_prompt argument."</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">__call__</span>(<span class="hljs-params">self, components, state</span>): | |
| block_state = self.get_block_state(state) | |
| batch_size = <span class="hljs-built_in">len</span>(block_state.prompt) | |
| block_state.batch_size = batch_size * block_state.num_images_per_prompt | |
| self.set_block_state(state, block_state) | |
| <span class="hljs-keyword">return</span> components, state`,wrap:!1}}),{c(){J(s.$$.fragment)},l(a){d(s.$$.fragment,a)},m(a,o){U(s,a,o),p=!0},p:sl,i(a){p||(u(s.$$.fragment,a),p=!0)},o(a){T(s.$$.fragment,a),p=!1},d(a){b(s,a)}}}function rl(w){let s,p;return s=new V({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzLm1vZHVsYXJfcGlwZWxpbmVzJTIwaW1wb3J0JTIwTW9kdWxhclBpcGVsaW5lQmxvY2tzJTJDJTIwSW5wdXRQYXJhbSUyQyUyME91dHB1dFBhcmFtJTBBJTBBY2xhc3MlMjBJbWFnZUVuY29kZXJCbG9jayhNb2R1bGFyUGlwZWxpbmVCbG9ja3MpJTNBJTBBJTBBJTIwJTIwJTIwJTIwJTQwcHJvcGVydHklMEElMjAlMjAlMjAlMjBkZWYlMjBpbnB1dHMoc2VsZiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBJbnB1dFBhcmFtKG5hbWUlM0QlMjJpbWFnZSUyMiUyQyUyMHR5cGVfaGludCUzRCUyMlBJTC5JbWFnZSUyMiUyQyUyMGRlc2NyaXB0aW9uJTNEJTIycmF3JTIwaW5wdXQlMjBpbWFnZSUyMHRvJTIwcHJvY2VzcyUyMiklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBJbnB1dFBhcmFtKG5hbWUlM0QlMjJiYXRjaF9zaXplJTIyJTJDJTIwdHlwZV9oaW50JTNEaW50KSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1RCUwQSUwQSUyMCUyMCUyMCUyMCU0MHByb3BlcnR5JTBBJTIwJTIwJTIwJTIwZGVmJTIwaW50ZXJtZWRpYXRlX291dHB1dHMoc2VsZiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBPdXRwdXRQYXJhbShuYW1lJTNEJTIyaW1hZ2VfbGF0ZW50cyUyMiUyQyUyMGRlc2NyaXB0aW9uJTNEJTIybGF0ZW50cyUyMHJlcHJlc2VudGluZyUyMHRoZSUyMGltYWdlJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVEJTBBJTBBJTIwJTIwJTIwJTIwJTQwcHJvcGVydHklMEElMjAlMjAlMjAlMjBkZWYlMjBkZXNjcmlwdGlvbihzZWxmKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMCUyMkVuY29kZSUyMHJhdyUyMGltYWdlJTIwaW50byUyMGl0cyUyMGxhdGVudCUyMHByZXNlbnRhdGlvbiUyMiUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMF9fY2FsbF9fKHNlbGYlMkMlMjBjb21wb25lbnRzJTJDJTIwc3RhdGUpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmxvY2tfc3RhdGUlMjAlM0QlMjBzZWxmLmdldF9ibG9ja19zdGF0ZShzdGF0ZSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjAlRTYlQTglQTElRTYlOEIlOUYlRTUlQTQlODQlRTclOTAlODYlRTUlOUIlQkUlRTUlODMlOEYlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjAlRTglQkYlOTklRTUlQjAlODYlRTYlOTQlQjklRTUlOEYlOTglRTYlODklODAlRTYlOUMlODklRTUlOUQlOTclRTclOUElODQlRTUlOUIlQkUlRTUlODMlOEYlRTclOEElQjYlRTYlODAlODElRUYlQkMlOEMlRTQlQkIlOEVQSUwlRTUlOUIlQkUlRTUlODMlOEYlRTUlOEYlOTglRTQlQjglQkElRTUlQkMlQTAlRTklODclOEYlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBibG9ja19zdGF0ZS5pbWFnZSUyMCUzRCUyMHRvcmNoLnJhbmRuKDElMkMlMjAzJTJDJTIwNTEyJTJDJTIwNTEyKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJsb2NrX3N0YXRlLmJhdGNoX3NpemUlMjAlM0QlMjBibG9ja19zdGF0ZS5iYXRjaF9zaXplJTIwKiUyMDIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBibG9ja19zdGF0ZS5pbWFnZV9sYXRlbnRzJTIwJTNEJTIwdG9yY2gucmFuZG4oMSUyQyUyMDQlMkMlMjA2NCUyQyUyMDY0KSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNlbGYuc2V0X2Jsb2NrX3N0YXRlKHN0YXRlJTJDJTIwYmxvY2tfc3RhdGUpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwY29tcG9uZW50cyUyQyUyMHN0YXRl",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers.modular_pipelines <span class="hljs-keyword">import</span> ModularPipelineBlocks, InputParam, OutputParam | |
| <span class="hljs-keyword">class</span> <span class="hljs-title class_">ImageEncoderBlock</span>(<span class="hljs-title class_ inherited__">ModularPipelineBlocks</span>): | |
| <span class="hljs-meta"> @property</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">inputs</span>(<span class="hljs-params">self</span>): | |
| <span class="hljs-keyword">return</span> [ | |
| InputParam(name=<span class="hljs-string">"image"</span>, type_hint=<span class="hljs-string">"PIL.Image"</span>, description=<span class="hljs-string">"raw input image to process"</span>), | |
| InputParam(name=<span class="hljs-string">"batch_size"</span>, type_hint=<span class="hljs-built_in">int</span>), | |
| ] | |
| <span class="hljs-meta"> @property</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">intermediate_outputs</span>(<span class="hljs-params">self</span>): | |
| <span class="hljs-keyword">return</span> [ | |
| OutputParam(name=<span class="hljs-string">"image_latents"</span>, description=<span class="hljs-string">"latents representing the image"</span> | |
| ] | |
| <span class="hljs-meta"> @property</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">description</span>(<span class="hljs-params">self</span>): | |
| <span class="hljs-keyword">return</span> <span class="hljs-string">"Encode raw image into its latent presentation"</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">__call__</span>(<span class="hljs-params">self, components, state</span>): | |
| block_state = self.get_block_state(state) | |
| <span class="hljs-comment"># 模拟处理图像</span> | |
| <span class="hljs-comment"># 这将改变所有块的图像状态,从PIL图像变为张量</span> | |
| block_state.image = torch.randn(<span class="hljs-number">1</span>, <span class="hljs-number">3</span>, <span class="hljs-number">512</span>, <span class="hljs-number">512</span>) | |
| block_state.batch_size = block_state.batch_size * <span class="hljs-number">2</span> | |
| block_state.image_latents = torch.randn(<span class="hljs-number">1</span>, <span class="hljs-number">4</span>, <span class="hljs-number">64</span>, <span class="hljs-number">64</span>) | |
| self.set_block_state(state, block_state) | |
| <span class="hljs-keyword">return</span> components, state`,wrap:!1}}),{c(){J(s.$$.fragment)},l(a){d(s.$$.fragment,a)},m(a,o){U(s,a,o),p=!0},p:sl,i(a){p||(u(s.$$.fragment,a),p=!0)},o(a){T(s.$$.fragment,a),p=!1},d(a){b(s,a)}}}function yl(w){let s,p,a,o;return s=new ll({props:{id:"sequential",option:"InputBlock",$$slots:{default:[il]},$$scope:{ctx:w}}}),a=new ll({props:{id:"sequential",option:"ImageEncoderBlock",$$slots:{default:[rl]},$$scope:{ctx:w}}}),{c(){J(s.$$.fragment),p=c(),J(a.$$.fragment)},l(t){d(s.$$.fragment,t),p=j(t),d(a.$$.fragment,t)},m(t,i){U(s,t,i),M(t,p,i),U(a,t,i),o=!0},p(t,i){const r={};i&2&&(r.$$scope={dirty:i,ctx:t}),s.$set(r);const E={};i&2&&(E.$$scope={dirty:i,ctx:t}),a.$set(E)},i(t){o||(u(s.$$.fragment,t),u(a.$$.fragment,t),o=!0)},o(t){T(s.$$.fragment,t),T(a.$$.fragment,t),o=!1},d(t){t&&n(p),b(s,t),b(a,t)}}}function ml(w){let s,p,a,o,t,i,r,E="<code>SequentialPipelineBlocks</code> 是一种多块类型,它将其他 <code>ModularPipelineBlocks</code> 按顺序组合在一起。数据通过 <code>intermediate_inputs</code> 和 <code>intermediate_outputs</code> 线性地从一个块流向下一个块。<code>SequentialPipelineBlocks</code> 中的每个块通常代表管道中的一个步骤,通过组合它们,您逐步构建一个管道。",$,h,v="本指南向您展示如何将两个块连接成一个 <code>SequentialPipelineBlocks</code>。",Z,f,q="创建两个 <code>ModularPipelineBlocks</code>。第一个块 <code>InputBlock</code> 输出一个 <code>batch_size</code> 值,第二个块 <code>ImageEncoderBlock</code> 使用 <code>batch_size</code> 作为 <code>intermediate_inputs</code>。",Y,A,X,B,O="通过定义一个<code>InsertableDict</code>来连接两个块,将块名称映射到块实例。块按照它们在<code>blocks_dict</code>中注册的顺序执行。",N,I,P="使用<code>from_blocks_dict()</code>来创建一个<code>SequentialPipelineBlocks</code>。",g,k,W,_,x="通过调用<code>blocks</code>来检查<code>SequentialPipelineBlocks</code>中的子块,要获取更多关于输入和输出的详细信息,可以访问<code>docs</code>属性。",S,G,H,R,F,Q,z;return t=new cl({props:{title:"顺序管道块",local:"顺序管道块",headingTag:"h1"}}),A=new ol({props:{id:"sequential",options:["InputBlock","ImageEncoderBlock"],$$slots:{default:[yl]},$$scope:{ctx:w}}}),k=new V({props:{code:"ZnJvbSUyMGRpZmZ1c2Vycy5tb2R1bGFyX3BpcGVsaW5lcyUyMGltcG9ydCUyMFNlcXVlbnRpYWxQaXBlbGluZUJsb2NrcyUyQyUyMEluc2VydGFibGVEaWN0JTBBJTBBYmxvY2tzX2RpY3QlMjAlM0QlMjBJbnNlcnRhYmxlRGljdCgpJTBBYmxvY2tzX2RpY3QlNUIlMjJpbnB1dCUyMiU1RCUyMCUzRCUyMGlucHV0X2Jsb2NrJTBBYmxvY2tzX2RpY3QlNUIlMjJpbWFnZV9lbmNvZGVyJTIyJTVEJTIwJTNEJTIwaW1hZ2VfZW5jb2Rlcl9ibG9jayUwQSUwQWJsb2NrcyUyMCUzRCUyMFNlcXVlbnRpYWxQaXBlbGluZUJsb2Nrcy5mcm9tX2Jsb2Nrc19kaWN0KGJsb2Nrc19kaWN0KQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers.modular_pipelines <span class="hljs-keyword">import</span> SequentialPipelineBlocks, InsertableDict | |
| blocks_dict = InsertableDict() | |
| blocks_dict[<span class="hljs-string">"input"</span>] = input_block | |
| blocks_dict[<span class="hljs-string">"image_encoder"</span>] = image_encoder_block | |
| blocks = SequentialPipelineBlocks.from_blocks_dict(blocks_dict)`,wrap:!1}}),G=new V({props:{code:"cHJpbnQoYmxvY2tzKSUwQXByaW50KGJsb2Nrcy5kb2Mp",highlighted:`<span class="hljs-built_in">print</span>(blocks) | |
| <span class="hljs-built_in">print</span>(blocks.doc)`,wrap:!1}}),R=new jl({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/modular_diffusers/sequential_pipeline_blocks.md"}}),{c(){s=y("meta"),p=c(),a=y("p"),o=c(),J(t.$$.fragment),i=c(),r=y("p"),r.innerHTML=E,$=c(),h=y("p"),h.innerHTML=v,Z=c(),f=y("p"),f.innerHTML=q,Y=c(),J(A.$$.fragment),X=c(),B=y("p"),B.innerHTML=O,N=c(),I=y("p"),I.innerHTML=P,g=c(),J(k.$$.fragment),W=c(),_=y("p"),_.innerHTML=x,S=c(),J(G.$$.fragment),H=c(),J(R.$$.fragment),F=c(),Q=y("p"),this.h()},l(l){const e=Ml("svelte-u9bgzb",document.head);s=m(e,"META",{name:!0,content:!0}),e.forEach(n),p=j(l),a=m(l,"P",{}),L(a).forEach(n),o=j(l),d(t.$$.fragment,l),i=j(l),r=m(l,"P",{"data-svelte-h":!0}),C(r)!=="svelte-14yok8a"&&(r.innerHTML=E),$=j(l),h=m(l,"P",{"data-svelte-h":!0}),C(h)!=="svelte-djrbc9"&&(h.innerHTML=v),Z=j(l),f=m(l,"P",{"data-svelte-h":!0}),C(f)!=="svelte-hr24ox"&&(f.innerHTML=q),Y=j(l),d(A.$$.fragment,l),X=j(l),B=m(l,"P",{"data-svelte-h":!0}),C(B)!=="svelte-77kwcm"&&(B.innerHTML=O),N=j(l),I=m(l,"P",{"data-svelte-h":!0}),C(I)!=="svelte-1o0hkrv"&&(I.innerHTML=P),g=j(l),d(k.$$.fragment,l),W=j(l),_=m(l,"P",{"data-svelte-h":!0}),C(_)!=="svelte-1r6xy17"&&(_.innerHTML=x),S=j(l),d(G.$$.fragment,l),H=j(l),d(R.$$.fragment,l),F=j(l),Q=m(l,"P",{}),L(Q).forEach(n),this.h()},h(){K(s,"name","hf:doc:metadata"),K(s,"content",Jl)},m(l,e){pl(document.head,s),M(l,p,e),M(l,a,e),M(l,o,e),U(t,l,e),M(l,i,e),M(l,r,e),M(l,$,e),M(l,h,e),M(l,Z,e),M(l,f,e),M(l,Y,e),U(A,l,e),M(l,X,e),M(l,B,e),M(l,N,e),M(l,I,e),M(l,g,e),U(k,l,e),M(l,W,e),M(l,_,e),M(l,S,e),U(G,l,e),M(l,H,e),U(R,l,e),M(l,F,e),M(l,Q,e),z=!0},p(l,[e]){const D={};e&2&&(D.$$scope={dirty:e,ctx:l}),A.$set(D)},i(l){z||(u(t.$$.fragment,l),u(A.$$.fragment,l),u(k.$$.fragment,l),u(G.$$.fragment,l),u(R.$$.fragment,l),z=!0)},o(l){T(t.$$.fragment,l),T(A.$$.fragment,l),T(k.$$.fragment,l),T(G.$$.fragment,l),T(R.$$.fragment,l),z=!1},d(l){l&&(n(p),n(a),n(o),n(i),n(r),n($),n(h),n(Z),n(f),n(Y),n(X),n(B),n(N),n(I),n(g),n(W),n(_),n(S),n(H),n(F),n(Q)),n(s),b(t,l),b(A,l),b(k,l),b(G,l),b(R,l)}}}const Jl='{"title":"顺序管道块","local":"顺序管道块","sections":[],"depth":1}';function dl(w){return el(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Al extends tl{constructor(s){super(),nl(this,s,dl,ml,al,{})}}export{Al as component}; | |
Xet Storage Details
- Size:
- 16 kB
- Xet hash:
- 71a7fa8349b6bb6d54fef4a26b85c6089eecc9b190512ef8638b58cb8c993261
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.