Buckets:

rtrm's picture
download
raw
16.3 kB
import{s as al,o as nl,n as tl}from"../chunks/scheduler.e4ff9b64.js";import{S as Ml,i as pl,e as T,s as c,c as y,h as cl,a as b,d as n,b as j,f as ll,g as m,j as E,k as sl,l as jl,m as M,n as J,t as d,o as U,p as u}from"../chunks/index.09f1bca0.js";import{C as il,H as ol,E as rl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.be5a66d3.js";import{C as v}from"../chunks/CodeBlock.a57faa9f.js";import{H as yl,a as el}from"../chunks/HfOption.44827c7f.js";function ml(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">&quot;prompt&quot;</span>, type_hint=<span class="hljs-built_in">list</span>, description=<span class="hljs-string">&quot;list of text prompts&quot;</span>),
InputParam(name=<span class="hljs-string">&quot;num_images_per_prompt&quot;</span>, type_hint=<span class="hljs-built_in">int</span>, description=<span class="hljs-string">&quot;number of images per prompt&quot;</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">&quot;batch_size&quot;</span>, description=<span class="hljs-string">&quot;calculated batch size&quot;</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">&quot;A block that determines batch_size based on the number of prompts and num_images_per_prompt argument.&quot;</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(){y(s.$$.fragment)},l(e){m(s.$$.fragment,e)},m(e,i){J(s,e,i),p=!0},p:tl,i(e){p||(d(s.$$.fragment,e),p=!0)},o(e){U(s.$$.fragment,e),p=!1},d(e){u(s,e)}}}function Jl(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">&quot;image&quot;</span>, type_hint=<span class="hljs-string">&quot;PIL.Image&quot;</span>, description=<span class="hljs-string">&quot;raw input image to process&quot;</span>),
InputParam(name=<span class="hljs-string">&quot;batch_size&quot;</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">&quot;image_latents&quot;</span>, description=<span class="hljs-string">&quot;latents representing the image&quot;</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">&quot;Encode raw image into its latent presentation&quot;</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(){y(s.$$.fragment)},l(e){m(s.$$.fragment,e)},m(e,i){J(s,e,i),p=!0},p:tl,i(e){p||(d(s.$$.fragment,e),p=!0)},o(e){U(s.$$.fragment,e),p=!1},d(e){u(s,e)}}}function dl(w){let s,p,e,i;return s=new el({props:{id:"sequential",option:"InputBlock",$$slots:{default:[ml]},$$scope:{ctx:w}}}),e=new el({props:{id:"sequential",option:"ImageEncoderBlock",$$slots:{default:[Jl]},$$scope:{ctx:w}}}),{c(){y(s.$$.fragment),p=c(),y(e.$$.fragment)},l(a){m(s.$$.fragment,a),p=j(a),m(e.$$.fragment,a)},m(a,o){J(s,a,o),M(a,p,o),J(e,a,o),i=!0},p(a,o){const r={};o&2&&(r.$$scope={dirty:o,ctx:a}),s.$set(r);const h={};o&2&&(h.$$scope={dirty:o,ctx:a}),e.$set(h)},i(a){i||(d(s.$$.fragment,a),d(e.$$.fragment,a),i=!0)},o(a){U(s.$$.fragment,a),U(e.$$.fragment,a),i=!1},d(a){a&&n(p),u(s,a),u(e,a)}}}function Ul(w){let s,p,e,i,a,o,r,h,f,q="<code>SequentialPipelineBlocks</code> 是一种多块类型,它将其他 <code>ModularPipelineBlocks</code> 按顺序组合在一起。数据通过 <code>intermediate_inputs</code> 和 <code>intermediate_outputs</code> 线性地从一个块流向下一个块。<code>SequentialPipelineBlocks</code> 中的每个块通常代表管道中的一个步骤,通过组合它们,您逐步构建一个管道。",Z,B,O="本指南向您展示如何将两个块连接成一个 <code>SequentialPipelineBlocks</code>。",Y,I,P="创建两个 <code>ModularPipelineBlocks</code>。第一个块 <code>InputBlock</code> 输出一个 <code>batch_size</code> 值,第二个块 <code>ImageEncoderBlock</code> 使用 <code>batch_size</code> 作为 <code>intermediate_inputs</code>。",X,A,g,k,x="通过定义一个<code>InsertableDict</code>来连接两个块,将块名称映射到块实例。块按照它们在<code>blocks_dict</code>中注册的顺序执行。",N,_,D="使用<code>from_blocks_dict()</code>来创建一个<code>SequentialPipelineBlocks</code>。",W,G,S,R,L="通过调用<code>blocks</code>来检查<code>SequentialPipelineBlocks</code>中的子块,要获取更多关于输入和输出的详细信息,可以访问<code>docs</code>属性。",H,$,F,C,z,Q,V;return a=new il({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),r=new ol({props:{title:"顺序管道块",local:"顺序管道块",headingTag:"h1"}}),A=new yl({props:{id:"sequential",options:["InputBlock","ImageEncoderBlock"],$$slots:{default:[dl]},$$scope:{ctx:w}}}),G=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">&quot;input&quot;</span>] = input_block
blocks_dict[<span class="hljs-string">&quot;image_encoder&quot;</span>] = image_encoder_block
blocks = SequentialPipelineBlocks.from_blocks_dict(blocks_dict)`,wrap:!1}}),$=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}}),C=new rl({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/modular_diffusers/sequential_pipeline_blocks.md"}}),{c(){s=T("meta"),p=c(),e=T("p"),i=c(),y(a.$$.fragment),o=c(),y(r.$$.fragment),h=c(),f=T("p"),f.innerHTML=q,Z=c(),B=T("p"),B.innerHTML=O,Y=c(),I=T("p"),I.innerHTML=P,X=c(),y(A.$$.fragment),g=c(),k=T("p"),k.innerHTML=x,N=c(),_=T("p"),_.innerHTML=D,W=c(),y(G.$$.fragment),S=c(),R=T("p"),R.innerHTML=L,H=c(),y($.$$.fragment),F=c(),y(C.$$.fragment),z=c(),Q=T("p"),this.h()},l(l){const t=cl("svelte-u9bgzb",document.head);s=b(t,"META",{name:!0,content:!0}),t.forEach(n),p=j(l),e=b(l,"P",{}),ll(e).forEach(n),i=j(l),m(a.$$.fragment,l),o=j(l),m(r.$$.fragment,l),h=j(l),f=b(l,"P",{"data-svelte-h":!0}),E(f)!=="svelte-14yok8a"&&(f.innerHTML=q),Z=j(l),B=b(l,"P",{"data-svelte-h":!0}),E(B)!=="svelte-djrbc9"&&(B.innerHTML=O),Y=j(l),I=b(l,"P",{"data-svelte-h":!0}),E(I)!=="svelte-hr24ox"&&(I.innerHTML=P),X=j(l),m(A.$$.fragment,l),g=j(l),k=b(l,"P",{"data-svelte-h":!0}),E(k)!=="svelte-77kwcm"&&(k.innerHTML=x),N=j(l),_=b(l,"P",{"data-svelte-h":!0}),E(_)!=="svelte-1o0hkrv"&&(_.innerHTML=D),W=j(l),m(G.$$.fragment,l),S=j(l),R=b(l,"P",{"data-svelte-h":!0}),E(R)!=="svelte-1r6xy17"&&(R.innerHTML=L),H=j(l),m($.$$.fragment,l),F=j(l),m(C.$$.fragment,l),z=j(l),Q=b(l,"P",{}),ll(Q).forEach(n),this.h()},h(){sl(s,"name","hf:doc:metadata"),sl(s,"content",ul)},m(l,t){jl(document.head,s),M(l,p,t),M(l,e,t),M(l,i,t),J(a,l,t),M(l,o,t),J(r,l,t),M(l,h,t),M(l,f,t),M(l,Z,t),M(l,B,t),M(l,Y,t),M(l,I,t),M(l,X,t),J(A,l,t),M(l,g,t),M(l,k,t),M(l,N,t),M(l,_,t),M(l,W,t),J(G,l,t),M(l,S,t),M(l,R,t),M(l,H,t),J($,l,t),M(l,F,t),J(C,l,t),M(l,z,t),M(l,Q,t),V=!0},p(l,[t]){const K={};t&2&&(K.$$scope={dirty:t,ctx:l}),A.$set(K)},i(l){V||(d(a.$$.fragment,l),d(r.$$.fragment,l),d(A.$$.fragment,l),d(G.$$.fragment,l),d($.$$.fragment,l),d(C.$$.fragment,l),V=!0)},o(l){U(a.$$.fragment,l),U(r.$$.fragment,l),U(A.$$.fragment,l),U(G.$$.fragment,l),U($.$$.fragment,l),U(C.$$.fragment,l),V=!1},d(l){l&&(n(p),n(e),n(i),n(o),n(h),n(f),n(Z),n(B),n(Y),n(I),n(X),n(g),n(k),n(N),n(_),n(W),n(S),n(R),n(H),n(F),n(z),n(Q)),n(s),u(a,l),u(r,l),u(A,l),u(G,l),u($,l),u(C,l)}}}const ul='{"title":"顺序管道块","local":"顺序管道块","sections":[],"depth":1}';function Tl(w){return nl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Bl extends Ml{constructor(s){super(),pl(this,s,Tl,Ul,al,{})}}export{Bl as component};

Xet Storage Details

Size:
16.3 kB
·
Xet hash:
131a17bc586158ea786b51ad753f36f9f6ce7a28a637cc16179717988d056ae9

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