Buckets:
| import{s as Xe,f as Ne,o as Ze,n as Be}from"../chunks/scheduler.85c25b89.js";import{S as Ge,i as Fe,g as o,s,r as p,A as Ve,h as r,f as l,c as a,j as he,u as m,x as U,k as y,y as _e,a as n,v as u,d as c,t as M,w as d}from"../chunks/index.c9bcf812.js";import{T as We}from"../chunks/Tip.d8f753fa.js";import{D as Ie}from"../chunks/Docstring.e86a2d02.js";import{C as z}from"../chunks/CodeBlock.c004bd26.js";import{H as q}from"../chunks/getInferenceSnippets.5ea0a804.js";function Se(R){let i,j="We recommend using a <code>inf2.24xlarge</code> instance with tensor parallel size 8 for the model compilation and inference.";return{c(){i=o("p"),i.innerHTML=j},l(f){i=r(f,"P",{"data-svelte-h":!0}),U(i)!=="svelte-1s0w8k8"&&(i.innerHTML=j)},m(f,Q){n(f,i,Q)},p:Be,d(f){f&&l(i)}}}function Ae(R){let i,j,f,Q,T,Y,J,ge="Flux is a series of text-to-image generation models based on diffusion transformers.",P,g,D,b,K,C,Ue="<li>Option 1: CLI</li>",O,$,ee,x,je="<li>Option 2: Python API</li>",te,v,le,N,ne,I,Te="<li>The guidance-distilled variant takes about 50 sampling steps for good-quality generation.</li>",se,X,ae,h,Je,ie,Z,oe,B,be="<li>max_sequence_length cannot be more than 256.</li> <li>guidance_scale needs to be 0.</li> <li>As this is a timestep-distilled model, it benefits from fewer sampling steps.</li>",re,G,pe,F,me,w,Ce,ue,V,ce,W,$e="The Flux pipeline for text-to-image generation.",Me,_,S,we,L,A,de,E,xe='Are there any other diffusion features that you want us to support in 🤗<code>Optimum-neuron</code>? Please file an issue to <a href="https://github.com/huggingface/optimum-neuron" rel="nofollow"><code>Optimum-neuron</code> Github repo</a> or discuss with us on <a href="https://discuss.huggingface.co/c/optimum/" rel="nofollow">HuggingFace’s community forum</a>, cheers 🤗 !',ye,H,fe;return T=new q({props:{title:"Flux",local:"flux",headingTag:"h1"}}),g=new We({props:{warning:!1,$$slots:{default:[Se]},$$scope:{ctx:R}}}),b=new q({props:{title:"Export to Neuron",local:"export-to-neuron",headingTag:"h3"}}),$=new z({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBuZXVyb24lMjAtLW1vZGVsJTIwYmxhY2stZm9yZXN0LWxhYnMlMkZGTFVYLjEtZGV2JTIwLS10ZW5zb3JfcGFyYWxsZWxfc2l6ZSUyMDglMjAtLWJhdGNoX3NpemUlMjAxJTIwLS1oZWlnaHQlMjAxMDI0JTIwLS13aWR0aCUyMDEwMjQlMjAtLW51bV9pbWFnZXNfcGVyX3Byb21wdCUyMDElMjAtLXRvcmNoX2R0eXBlJTIwYmZsb2F0MTYlMjBmbHV4X2Rldl9uZXVyb24lMkY=",highlighted:'optimum-cli <span class="hljs-built_in">export</span> neuron --model black-forest-labs/FLUX.1-dev --tensor_parallel_size 8 --batch_size 1 --height 1024 --width 1024 --num_images_per_prompt 1 --torch_dtype bfloat16 flux_dev_neuron/',wrap:!1}}),v=new z({props:{code:"ZnJvbSUyMG9wdGltdW0ubmV1cm9uJTIwaW1wb3J0JTIwTmV1cm9uRmx1eFBpcGVsaW5lJTBBJTBBaWYlMjBfX25hbWVfXyUyMCUzRCUzRCUyMCUyMl9fbWFpbl9fJTIyJTNBJTBBJTIwJTIwJTIwJTIwY29tcGlsZXJfYXJncyUyMCUzRCUyMCU3QiUyMmF1dG9fY2FzdCUyMiUzQSUyMCUyMm5vbmUlMjIlN0QlMEElMjAlMjAlMjAlMjBpbnB1dF9zaGFwZXMlMjAlM0QlMjAlN0IlMjJiYXRjaF9zaXplJTIyJTNBJTIwMSUyQyUyMCUyMmhlaWdodCUyMiUzQSUyMDEwMjQlMkMlMjAlMjJ3aWR0aCUyMiUzQSUyMDEwMjQlN0QlMEElMEElMjAlMjAlMjAlMjBwaXBlJTIwJTNEJTIwTmV1cm9uRmx1eFBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJibGFjay1mb3Jlc3QtbGFicyUyRkZMVVguMS1kZXYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZXhwb3J0JTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRlbnNvcl9wYXJhbGxlbF9zaXplJTNEOCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCoqY29tcGlsZXJfYXJncyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCoqaW5wdXRfc2hhcGVzJTBBJTIwJTIwJTIwJTIwKSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMFNhdmUlMjBsb2NhbGx5JTBBJTIwJTIwJTIwJTIwcGlwZS5zYXZlX3ByZXRyYWluZWQoJTIyZmx1eF9kZXZfbmV1cm9uXzEwMjRfdHA4JTJGJTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMFVwbG9hZCUyMHRvJTIwdGhlJTIwSHVnZ2luZ0ZhY2UlMjBIdWIlMEElMjAlMjAlMjAlMjBwaXBlLnB1c2hfdG9faHViKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmZsdXhfZGV2X25ldXJvbl8xMDI0X3RwOCUyRiUyMiUyQyUyMHJlcG9zaXRvcnlfaWQlM0QlMjJKaW5neWElMkZGTFVYLjEtZGV2LW5ldXJvbngtMTAyNHgxMDI0LXRwOCUyMiUyMCUyMCUyMyUyMFJlcGxhY2UlMjB3aXRoJTIweW91ciUyMEhGJTIwSHViJTIwcmVwbyUyMGlkJTBBJTIwJTIwJTIwJTIwKQ==",highlighted:`<span class="hljs-keyword">from</span> optimum.neuron <span class="hljs-keyword">import</span> NeuronFluxPipeline | |
| <span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">"__main__"</span>: | |
| compiler_args = {<span class="hljs-string">"auto_cast"</span>: <span class="hljs-string">"none"</span>} | |
| input_shapes = {<span class="hljs-string">"batch_size"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"height"</span>: <span class="hljs-number">1024</span>, <span class="hljs-string">"width"</span>: <span class="hljs-number">1024</span>} | |
| pipe = NeuronFluxPipeline.from_pretrained( | |
| <span class="hljs-string">"black-forest-labs/FLUX.1-dev"</span>, | |
| torch_dtype=torch.bfloat16, | |
| export=<span class="hljs-literal">True</span>, | |
| tensor_parallel_size=<span class="hljs-number">8</span>, | |
| **compiler_args, | |
| **input_shapes | |
| ) | |
| <span class="hljs-comment"># Save locally</span> | |
| pipe.save_pretrained(<span class="hljs-string">"flux_dev_neuron_1024_tp8/"</span>) | |
| <span class="hljs-comment"># Upload to the HuggingFace Hub</span> | |
| pipe.push_to_hub( | |
| <span class="hljs-string">"flux_dev_neuron_1024_tp8/"</span>, repository_id=<span class="hljs-string">"Jingya/FLUX.1-dev-neuronx-1024x1024-tp8"</span> <span class="hljs-comment"># Replace with your HF Hub repo id</span> | |
| )`,wrap:!1}}),N=new q({props:{title:"Guidance-distilled",local:"guidance-distilled",headingTag:"h2"}}),X=new z({props:{code:"ZnJvbSUyMG9wdGltdW0ubmV1cm9uJTIwaW1wb3J0JTIwTmV1cm9uRmx1eFBpcGVsaW5lJTBBJTBBcGlwZSUyMCUzRCUyME5ldXJvbkZsdXhQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyZmx1eF9kZXZfbmV1cm9uXzEwMjRfdHA4JTJGJTIyKSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBjYXQlMjBob2xkaW5nJTIwYSUyMHNpZ24lMjB0aGF0JTIwc2F5cyUyMGhlbGxvJTIwd29ybGQlMjIlMEFvdXQlMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNEMy41JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDUwJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEdG9yY2guR2VuZXJhdG9yKCUyMmNwdSUyMikubWFudWFsX3NlZWQoMCklMEEpLmltYWdlcyU1QjAlNUQlMEFvdXQuc2F2ZSglMjJmbHV4X29wdGltdW0ucG5nJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> optimum.neuron <span class="hljs-keyword">import</span> NeuronFluxPipeline | |
| pipe = NeuronFluxPipeline.from_pretrained(<span class="hljs-string">"flux_dev_neuron_1024_tp8/"</span>) | |
| prompt = <span class="hljs-string">"A cat holding a sign that says hello world"</span> | |
| out = pipe( | |
| prompt, | |
| guidance_scale=<span class="hljs-number">3.5</span>, | |
| num_inference_steps=<span class="hljs-number">50</span>, | |
| generator=torch.Generator(<span class="hljs-string">"cpu"</span>).manual_seed(<span class="hljs-number">0</span>) | |
| ).images[<span class="hljs-number">0</span>] | |
| out.save(<span class="hljs-string">"flux_optimum.png"</span>)`,wrap:!1}}),Z=new q({props:{title:"Timestep-distilled",local:"timestep-distilled",headingTag:"h2"}}),G=new z({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBuZXVyb24lMjAtLW1vZGVsJTIwYmxhY2stZm9yZXN0LWxhYnMlMkZGTFVYLjEtc2NobmVsbCUyMC0tdGVuc29yX3BhcmFsbGVsX3NpemUlMjA4JTIwLS1iYXRjaF9zaXplJTIwMSUyMC0taGVpZ2h0JTIwMTAyNCUyMC0td2lkdGglMjAxMDI0JTIwLS1udW1faW1hZ2VzX3Blcl9wcm9tcHQlMjAxJTIwLS1zZXF1ZW5jZV9sZW5ndGglMjAyNTYlMjAtLXRvcmNoX2R0eXBlJTIwYmZsb2F0MTYlMjBmbHV4X3NjaG5lbGxfbmV1cm9uXzEwMjRfdHA4JTJG",highlighted:'optimum-cli <span class="hljs-built_in">export</span> neuron --model black-forest-labs/FLUX.1-schnell --tensor_parallel_size 8 --batch_size 1 --height 1024 --width 1024 --num_images_per_prompt 1 --sequence_length 256 --torch_dtype bfloat16 flux_schnell_neuron_1024_tp8/',wrap:!1}}),F=new z({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwb3B0aW11bS5uZXVyb24lMjBpbXBvcnQlMjBOZXVyb25GbHV4UGlwZWxpbmUlMEElMEFwaXBlJTIwJTNEJTIwTmV1cm9uRmx1eFBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJmbHV4X3NjaG5lbGxfbmV1cm9uXzEwMjRfdHA4JTIyKSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBjYXQlMjBob2xkaW5nJTIwYSUyMHNpZ24lMjB0aGF0JTIwc2F5cyUyMGhlbGxvJTIwd29ybGQlMjIlMEFvdXQlMjAlM0QlMjBwaXBlKHByb21wdCUyQyUyMG1heF9zZXF1ZW5jZV9sZW5ndGglM0QyNTYlMkMlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENCkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> optimum.neuron <span class="hljs-keyword">import</span> NeuronFluxPipeline | |
| pipe = NeuronFluxPipeline.from_pretrained(<span class="hljs-string">"flux_schnell_neuron_1024_tp8"</span>) | |
| prompt = <span class="hljs-string">"A cat holding a sign that says hello world"</span> | |
| out = pipe(prompt, max_sequence_length=<span class="hljs-number">256</span>, num_inference_steps=<span class="hljs-number">4</span>).images[<span class="hljs-number">0</span>]`,wrap:!1}}),V=new q({props:{title:"NeuronFluxPipeline",local:"optimum.neuron.NeuronFluxPipeline",headingTag:"h2"}}),S=new Ie({props:{name:"class optimum.neuron.NeuronFluxPipeline",anchor:"optimum.neuron.NeuronFluxPipeline",parameters:[{name:"config",val:": dict[str, typing.Any]"},{name:"configs",val:": dict[str, 'PretrainedConfig']"},{name:"neuron_configs",val:": dict[str, 'NeuronDefaultConfig']"},{name:"data_parallel_mode",val:": typing.Literal['none', 'unet', 'transformer', 'all']"},{name:"scheduler",val:": diffusers.schedulers.scheduling_utils.SchedulerMixin | None"},{name:"vae_decoder",val:": torch.jit._script.ScriptModule | NeuronModelVaeDecoder"},{name:"text_encoder",val:": torch.jit._script.ScriptModule | NeuronModelTextEncoder | None = None"},{name:"text_encoder_2",val:": torch.jit._script.ScriptModule | NeuronModelTextEncoder | None = None"},{name:"unet",val:": torch.jit._script.ScriptModule | NeuronModelUnet | None = None"},{name:"transformer",val:": torch.jit._script.ScriptModule | NeuronModelTransformer | None = None"},{name:"vae_encoder",val:": torch.jit._script.ScriptModule | NeuronModelVaeEncoder | None = None"},{name:"image_encoder",val:": torch.jit._script.ScriptModule | None = None"},{name:"safety_checker",val:": torch.jit._script.ScriptModule | None = None"},{name:"tokenizer",val:": transformers.models.clip.tokenization_clip.CLIPTokenizer | transformers.models.t5.tokenization_t5.T5Tokenizer | None = None"},{name:"tokenizer_2",val:": transformers.models.clip.tokenization_clip.CLIPTokenizer | None = None"},{name:"feature_extractor",val:": transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor | None = None"},{name:"controlnet",val:": torch.jit._script.ScriptModule | list[torch.jit._script.ScriptModule]| NeuronControlNetModel | NeuronMultiControlNetModel | None = None"},{name:"requires_aesthetics_score",val:": bool = False"},{name:"force_zeros_for_empty_prompt",val:": bool = True"},{name:"add_watermarker",val:": bool | None = None"},{name:"model_save_dir",val:": str | pathlib.Path | tempfile.TemporaryDirectory | None = None"},{name:"model_and_config_save_paths",val:": dict[str, tuple[str, pathlib.Path]] | None = None"}],source:"https://github.com/huggingface/optimum-neuron/blob/v0.3.0/optimum/neuron/modeling_diffusion.py#L1603"}}),A=new Ie({props:{name:"__call__",anchor:"optimum.neuron.NeuronFluxPipeline.__call__",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/optimum-neuron/blob/v0.3.0/optimum/neuron/modeling_diffusion.py#L1084"}}),{c(){i=o("meta"),j=s(),f=o("p"),Q=s(),p(T.$$.fragment),Y=s(),J=o("p"),J.textContent=ge,P=s(),p(g.$$.fragment),D=s(),p(b.$$.fragment),K=s(),C=o("ul"),C.innerHTML=Ue,O=s(),p($.$$.fragment),ee=s(),x=o("ul"),x.innerHTML=je,te=s(),p(v.$$.fragment),le=s(),p(N.$$.fragment),ne=s(),I=o("ul"),I.innerHTML=Te,se=s(),p(X.$$.fragment),ae=s(),h=o("img"),ie=s(),p(Z.$$.fragment),oe=s(),B=o("ul"),B.innerHTML=be,re=s(),p(G.$$.fragment),pe=s(),p(F.$$.fragment),me=s(),w=o("img"),ue=s(),p(V.$$.fragment),ce=s(),W=o("p"),W.textContent=$e,Me=s(),_=o("div"),p(S.$$.fragment),we=s(),L=o("div"),p(A.$$.fragment),de=s(),E=o("p"),E.innerHTML=xe,ye=s(),H=o("p"),this.h()},l(e){const t=Ve("svelte-u9bgzb",document.head);i=r(t,"META",{name:!0,content:!0}),t.forEach(l),j=a(e),f=r(e,"P",{}),he(f).forEach(l),Q=a(e),m(T.$$.fragment,e),Y=a(e),J=r(e,"P",{"data-svelte-h":!0}),U(J)!=="svelte-11vliac"&&(J.textContent=ge),P=a(e),m(g.$$.fragment,e),D=a(e),m(b.$$.fragment,e),K=a(e),C=r(e,"UL",{"data-svelte-h":!0}),U(C)!=="svelte-mgkwwv"&&(C.innerHTML=Ue),O=a(e),m($.$$.fragment,e),ee=a(e),x=r(e,"UL",{"data-svelte-h":!0}),U(x)!=="svelte-dzs8tq"&&(x.innerHTML=je),te=a(e),m(v.$$.fragment,e),le=a(e),m(N.$$.fragment,e),ne=a(e),I=r(e,"UL",{"data-svelte-h":!0}),U(I)!=="svelte-4ij2qu"&&(I.innerHTML=Te),se=a(e),m(X.$$.fragment,e),ae=a(e),h=r(e,"IMG",{src:!0,width:!0,height:!0,alt:!0}),ie=a(e),m(Z.$$.fragment,e),oe=a(e),B=r(e,"UL",{"data-svelte-h":!0}),U(B)!=="svelte-195s5cj"&&(B.innerHTML=be),re=a(e),m(G.$$.fragment,e),pe=a(e),m(F.$$.fragment,e),me=a(e),w=r(e,"IMG",{src:!0,width:!0,height:!0,alt:!0}),ue=a(e),m(V.$$.fragment,e),ce=a(e),W=r(e,"P",{"data-svelte-h":!0}),U(W)!=="svelte-77uxl4"&&(W.textContent=$e),Me=a(e),_=r(e,"DIV",{class:!0});var k=he(_);m(S.$$.fragment,k),we=a(k),L=r(k,"DIV",{class:!0});var ve=he(L);m(A.$$.fragment,ve),ve.forEach(l),k.forEach(l),de=a(e),E=r(e,"P",{"data-svelte-h":!0}),U(E)!=="svelte-1wos5lv"&&(E.innerHTML=xe),ye=a(e),H=r(e,"P",{}),he(H).forEach(l),this.h()},h(){y(i,"name","hf:doc:metadata"),y(i,"content",Ee),Ne(h.src,Je="https://huggingface.co/datasets/Jingya/document_images/resolve/main/optimum/neuron/flux_optimum.png")||y(h,"src",Je),y(h,"width","256"),y(h,"height","256"),y(h,"alt","Flux dev generated image."),Ne(w.src,Ce="https://huggingface.co/datasets/Jingya/document_images/resolve/main/optimum/neuron/flux_schnell_optimum.png")||y(w,"src",Ce),y(w,"width","256"),y(w,"height","256"),y(w,"alt","Flux schnell generated image."),y(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(_,"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,t){_e(document.head,i),n(e,j,t),n(e,f,t),n(e,Q,t),u(T,e,t),n(e,Y,t),n(e,J,t),n(e,P,t),u(g,e,t),n(e,D,t),u(b,e,t),n(e,K,t),n(e,C,t),n(e,O,t),u($,e,t),n(e,ee,t),n(e,x,t),n(e,te,t),u(v,e,t),n(e,le,t),u(N,e,t),n(e,ne,t),n(e,I,t),n(e,se,t),u(X,e,t),n(e,ae,t),n(e,h,t),n(e,ie,t),u(Z,e,t),n(e,oe,t),n(e,B,t),n(e,re,t),u(G,e,t),n(e,pe,t),u(F,e,t),n(e,me,t),n(e,w,t),n(e,ue,t),u(V,e,t),n(e,ce,t),n(e,W,t),n(e,Me,t),n(e,_,t),u(S,_,null),_e(_,we),_e(_,L),u(A,L,null),n(e,de,t),n(e,E,t),n(e,ye,t),n(e,H,t),fe=!0},p(e,[t]){const k={};t&2&&(k.$$scope={dirty:t,ctx:e}),g.$set(k)},i(e){fe||(c(T.$$.fragment,e),c(g.$$.fragment,e),c(b.$$.fragment,e),c($.$$.fragment,e),c(v.$$.fragment,e),c(N.$$.fragment,e),c(X.$$.fragment,e),c(Z.$$.fragment,e),c(G.$$.fragment,e),c(F.$$.fragment,e),c(V.$$.fragment,e),c(S.$$.fragment,e),c(A.$$.fragment,e),fe=!0)},o(e){M(T.$$.fragment,e),M(g.$$.fragment,e),M(b.$$.fragment,e),M($.$$.fragment,e),M(v.$$.fragment,e),M(N.$$.fragment,e),M(X.$$.fragment,e),M(Z.$$.fragment,e),M(G.$$.fragment,e),M(F.$$.fragment,e),M(V.$$.fragment,e),M(S.$$.fragment,e),M(A.$$.fragment,e),fe=!1},d(e){e&&(l(j),l(f),l(Q),l(Y),l(J),l(P),l(D),l(K),l(C),l(O),l(ee),l(x),l(te),l(le),l(ne),l(I),l(se),l(ae),l(h),l(ie),l(oe),l(B),l(re),l(pe),l(me),l(w),l(ue),l(ce),l(W),l(Me),l(_),l(de),l(E),l(ye),l(H)),l(i),d(T,e),d(g,e),d(b,e),d($,e),d(v,e),d(N,e),d(X,e),d(Z,e),d(G,e),d(F,e),d(V,e),d(S),d(A)}}}const Ee='{"title":"Flux","local":"flux","sections":[{"title":"Export to Neuron","local":"export-to-neuron","sections":[],"depth":3},{"title":"Guidance-distilled","local":"guidance-distilled","sections":[],"depth":2},{"title":"Timestep-distilled","local":"timestep-distilled","sections":[],"depth":2},{"title":"NeuronFluxPipeline","local":"optimum.neuron.NeuronFluxPipeline","sections":[],"depth":2}],"depth":1}';function ke(R){return Ze(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ye extends Ge{constructor(i){super(),Fe(this,i,ke,Ae,Xe,{})}}export{Ye as component}; | |
Xet Storage Details
- Size:
- 16.1 kB
- Xet hash:
- 03b44dbadfba170c19ece903c45cc9ef9c2f62793a23207f7aabb314d1534562
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.