Buckets:
| import{s as Ut,o as kt,n as Pt}from"../chunks/scheduler.8c3d61f6.js";import{S as It,i as Zt,g as o,s as i,r as f,A as Et,h as r,f as n,c as s,j as C,u as g,x as d,k as x,y as l,a,v as h,d as _,t as b,w as y}from"../chunks/index.da70eac4.js";import{T as Bt}from"../chunks/Tip.1d9b8c37.js";import{D as L}from"../chunks/Docstring.567bc132.js";import{C as jt}from"../chunks/CodeBlock.a9c4becf.js";import{E as Lt}from"../chunks/ExampleCodeBlock.15b54358.js";import{H as ye,E as At}from"../chunks/index.5d4ab994.js";function Wt(pe){let p,T='Make sure to check out the Schedulers <a href="../../using-diffusers/schedulers">guide</a> to learn how to explore the tradeoff between scheduler speed and quality, and see the <a href="../../using-diffusers/loading#reuse-a-pipeline">reuse components across pipelines</a> section to learn how to efficiently load the same components into multiple pipelines.';return{c(){p=o("p"),p.innerHTML=T},l(v){p=r(v,"P",{"data-svelte-h":!0}),d(p)!=="svelte-1qn15hi"&&(p.innerHTML=T)},m(v,w){a(v,p,w)},p:Pt,d(v){v&&n(p)}}}function Nt(pe){let p,T="Examples:",v,w,M;return w=new jt({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU2FuYVNwcmludFBpcGVsaW5lJTBBJTBBcGlwZSUyMCUzRCUyMFNhbmFTcHJpbnRQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyRWZmaWNpZW50LUxhcmdlLU1vZGVsJTJGU2FuYV9TcHJpbnRfMS42Ql8xMDI0cHhfZGlmZnVzZXJzJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUwQSklMEFwaXBlLnRvKCUyMmN1ZGElMjIpJTBBJTBBaW1hZ2UlMjAlM0QlMjBwaXBlKHByb21wdCUzRCUyMmElMjB0aW55JTIwYXN0cm9uYXV0JTIwaGF0Y2hpbmclMjBmcm9tJTIwYW4lMjBlZ2clMjBvbiUyMHRoZSUyMG1vb24lMjIpJTVCMCU1RCUwQWltYWdlJTVCMCU1RC5zYXZlKCUyMm91dHB1dC5wbmclMjIp",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> SanaSprintPipeline | |
| <span class="hljs-meta">>>> </span>pipe = SanaSprintPipeline.from_pretrained( | |
| <span class="hljs-meta">... </span> <span class="hljs-string">"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers"</span>, torch_dtype=torch.bfloat16 | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span>pipe.to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>image = pipe(prompt=<span class="hljs-string">"a tiny astronaut hatching from an egg on the moon"</span>)[<span class="hljs-number">0</span>] | |
| <span class="hljs-meta">>>> </span>image[<span class="hljs-number">0</span>].save(<span class="hljs-string">"output.png"</span>)`,wrap:!1}}),{c(){p=o("p"),p.textContent=T,v=i(),f(w.$$.fragment)},l(m){p=r(m,"P",{"data-svelte-h":!0}),d(p)!=="svelte-kvfsh7"&&(p.textContent=T),v=s(m),g(w.$$.fragment,m)},m(m,S){a(m,p,S),a(m,v,S),h(w,m,S),M=!0},p:Pt,i(m){M||(_(w.$$.fragment,m),M=!0)},o(m){b(w.$$.fragment,m),M=!1},d(m){m&&(n(p),n(v)),y(w,m)}}}function Ht(pe){let p,T,v,w,M,m,S,pt='<img alt="LoRA" src="https://img.shields.io/badge/LoRA-d8b4fe?style=flat"/>',ve,A,dt='<a href="https://huggingface.co/papers/2503.09641" rel="nofollow">SANA-Sprint: One-Step Diffusion with Continuous-Time Consistency Distillation</a> from NVIDIA, MIT HAN Lab, and Hugging Face by Junsong Chen, Shuchen Xue, Yuyang Zhao, Jincheng Yu, Sayak Paul, Junyu Chen, Han Cai, Enze Xie, Song Han',we,W,ct="The abstract from the paper is:",Me,N,mt="<em>This paper presents SANA-Sprint, an efficient diffusion model for ultra-fast text-to-image (T2I) generation. SANA-Sprint is built on a pre-trained foundation model and augmented with hybrid distillation, dramatically reducing inference steps from 20 to 1-4. We introduce three key innovations: (1) We propose a training-free approach that transforms a pre-trained flow-matching model for continuous-time consistency distillation (sCM), eliminating costly training from scratch and achieving high training efficiency. Our hybrid distillation strategy combines sCM with latent adversarial distillation (LADD): sCM ensures alignment with the teacher model, while LADD enhances single-step generation fidelity. (2) SANA-Sprint is a unified step-adaptive model that achieves high-quality generation in 1-4 steps, eliminating step-specific training and improving efficiency. (3) We integrate ControlNet with SANA-Sprint for real-time interactive image generation, enabling instant visual feedback for user interaction. SANA-Sprint establishes a new Pareto frontier in speed-quality tradeoffs, achieving state-of-the-art performance with 7.59 FID and 0.74 GenEval in only 1 step — outperforming FLUX-schnell (7.94 FID / 0.71 GenEval) while being 10× faster (0.1s vs 1.1s on H100). It also achieves 0.1s (T2I) and 0.25s (ControlNet) latency for 1024×1024 images on H100, and 0.31s (T2I) on an RTX 4090, showcasing its exceptional efficiency and potential for AI-powered consumer applications (AIPC). Code and pre-trained models will be open-sourced.</em>",Se,j,xe,H,ut='This pipeline was contributed by <a href="https://github.com/lawrence-cj" rel="nofollow">lawrence-cj</a>, <a href="https://github.com/scxue" rel="nofollow">shuchen Xue</a> and <a href="https://github.com/xieenze" rel="nofollow">Enze Xie</a>. The original codebase can be found <a href="https://github.com/NVlabs/Sana" rel="nofollow">here</a>. The original weights can be found under <a href="https://huggingface.co/Efficient-Large-Model/" rel="nofollow">hf.co/Efficient-Large-Model</a>.',Te,X,ft="Available models:",$e,q,gt='<thead><tr><th align="center">Model</th> <th align="center">Recommended dtype</th></tr></thead> <tbody><tr><td align="center"><a href="https://huggingface.co/Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers" rel="nofollow"><code>Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers</code></a></td> <td align="center"><code>torch.bfloat16</code></td></tr> <tr><td align="center"><a href="https://huggingface.co/Efficient-Large-Model/Sana_Sprint_0.6B_1024px_diffusers" rel="nofollow"><code>Efficient-Large-Model/Sana_Sprint_0.6B_1024px_diffusers</code></a></td> <td align="center"><code>torch.bfloat16</code></td></tr></tbody>',Ce,G,ht='Refer to <a href="https://huggingface.co/collections/Efficient-Large-Model/sana-sprint-67d6810d65235085b3b17c76" rel="nofollow">this</a> collection for more information.',Je,V,_t="Note: The recommended dtype mentioned is for the transformer weights. The text encoder must stay in <code>torch.bfloat16</code> and VAE weights must stay in <code>torch.bfloat16</code> or <code>torch.float32</code> for the model to work correctly. Please refer to the inference example below to see how to load the model with the recommended dtype.",Pe,z,je,R,bt="Quantization helps reduce the memory requirements of very large models by storing model weights in a lower precision data type. However, quantization may have varying impact on video quality depending on the video model.",Ue,F,yt='Refer to the <a href="../../quantization/overview">Quantization</a> overview to learn more about supported quantization backends and selecting a quantization backend that supports your use case. The example below demonstrates how to load a quantized <a href="/docs/diffusers/pr_11234/en/api/pipelines/sana_sprint#diffusers.SanaSprintPipeline">SanaSprintPipeline</a> for inference with bitsandbytes.',ke,D,Ie,Q,Ze,Y,vt="Users can tweak the <code>max_timesteps</code> value for experimenting with the visual quality of the generated outputs. The default <code>max_timesteps</code> value was obtained with an inference-time search process. For more details about it, check out the paper.",Ee,O,Be,c,K,Fe,de,wt='Pipeline for text-to-image generation using <a href="https://huggingface.co/papers/2503.09641" rel="nofollow">SANA-Sprint</a>.',De,$,ee,Qe,ce,Mt="Function invoked when calling the pipeline for generation.",Ye,U,Oe,k,te,Ke,me,St=`Disable sliced VAE decoding. If <code>enable_vae_slicing</code> was previously enabled, this method will go back to | |
| computing decoding in one step.`,et,I,ne,tt,ue,xt=`Disable tiled VAE decoding. If <code>enable_vae_tiling</code> was previously enabled, this method will go back to | |
| computing decoding in one step.`,nt,Z,ae,at,fe,Tt=`Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to | |
| compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.`,it,E,ie,st,ge,$t=`Enable tiled VAE decoding. When this option is enabled, the VAE will split the input tensor into tiles to | |
| compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow | |
| processing larger images.`,ot,B,se,rt,he,Ct="Encodes the prompt into text encoder hidden states.",Le,oe,Ae,J,re,lt,_e,Jt="Output class for Sana pipelines.",We,le,Ne,be,He;return M=new ye({props:{title:"SanaSprintPipeline",local:"sanasprintpipeline",headingTag:"h1"}}),j=new Bt({props:{$$slots:{default:[Wt]},$$scope:{ctx:pe}}}),z=new ye({props:{title:"Quantization",local:"quantization",headingTag:"h2"}}),D=new jt({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQml0c0FuZEJ5dGVzQ29uZmlnJTIwYXMlMjBEaWZmdXNlcnNCaXRzQW5kQnl0ZXNDb25maWclMkMlMjBTYW5hVHJhbnNmb3JtZXIyRE1vZGVsJTJDJTIwU2FuYVNwcmludFBpcGVsaW5lJTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEJpdHNBbmRCeXRlc0NvbmZpZyUyMGFzJTIwQml0c0FuZEJ5dGVzQ29uZmlnJTJDJTIwQXV0b01vZGVsJTBBJTBBcXVhbnRfY29uZmlnJTIwJTNEJTIwQml0c0FuZEJ5dGVzQ29uZmlnKGxvYWRfaW5fOGJpdCUzRFRydWUpJTBBdGV4dF9lbmNvZGVyXzhiaXQlMjAlM0QlMjBBdXRvTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMkVmZmljaWVudC1MYXJnZS1Nb2RlbCUyRlNhbmFfU3ByaW50XzEuNkJfMTAyNHB4X2RpZmZ1c2VycyUyMiUyQyUwQSUyMCUyMCUyMCUyMHN1YmZvbGRlciUzRCUyMnRleHRfZW5jb2RlciUyMiUyQyUwQSUyMCUyMCUyMCUyMHF1YW50aXphdGlvbl9jb25maWclM0RxdWFudF9jb25maWclMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBKSUwQSUwQXF1YW50X2NvbmZpZyUyMCUzRCUyMERpZmZ1c2Vyc0JpdHNBbmRCeXRlc0NvbmZpZyhsb2FkX2luXzhiaXQlM0RUcnVlKSUwQXRyYW5zZm9ybWVyXzhiaXQlMjAlM0QlMjBTYW5hVHJhbnNmb3JtZXIyRE1vZGVsLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJFZmZpY2llbnQtTGFyZ2UtTW9kZWwlMkZTYW5hX1NwcmludF8xLjZCXzEwMjRweF9kaWZmdXNlcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBzdWJmb2xkZXIlM0QlMjJ0cmFuc2Zvcm1lciUyMiUyQyUwQSUyMCUyMCUyMCUyMHF1YW50aXphdGlvbl9jb25maWclM0RxdWFudF9jb25maWclMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBKSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwU2FuYVNwcmludFBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJFZmZpY2llbnQtTGFyZ2UtTW9kZWwlMkZTYW5hX1NwcmludF8xLjZCXzEwMjRweF9kaWZmdXNlcnMlMjIlMkMlMEElMjAlMjAlMjAlMjB0ZXh0X2VuY29kZXIlM0R0ZXh0X2VuY29kZXJfOGJpdCUyQyUwQSUyMCUyMCUyMCUyMHRyYW5zZm9ybWVyJTNEdHJhbnNmb3JtZXJfOGJpdCUyQyUwQSUyMCUyMCUyMCUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMkMlMEElMjAlMjAlMjAlMjBkZXZpY2VfbWFwJTNEJTIyYmFsYW5jZWQlMjIlMkMlMEEpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyYSUyMHRpbnklMjBhc3Ryb25hdXQlMjBoYXRjaGluZyUyMGZyb20lMjBhbiUyMGVnZyUyMG9uJTIwdGhlJTIwbW9vbiUyMiUwQWltYWdlJTIwJTNEJTIwcGlwZWxpbmUocHJvbXB0KS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2Uuc2F2ZSglMjJzYW5hLnBuZyUyMik=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> BitsAndBytesConfig <span class="hljs-keyword">as</span> DiffusersBitsAndBytesConfig, SanaTransformer2DModel, SanaSprintPipeline | |
| <span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> BitsAndBytesConfig <span class="hljs-keyword">as</span> BitsAndBytesConfig, AutoModel | |
| quant_config = BitsAndBytesConfig(load_in_8bit=<span class="hljs-literal">True</span>) | |
| text_encoder_8bit = AutoModel.from_pretrained( | |
| <span class="hljs-string">"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers"</span>, | |
| subfolder=<span class="hljs-string">"text_encoder"</span>, | |
| quantization_config=quant_config, | |
| torch_dtype=torch.bfloat16, | |
| ) | |
| quant_config = DiffusersBitsAndBytesConfig(load_in_8bit=<span class="hljs-literal">True</span>) | |
| transformer_8bit = SanaTransformer2DModel.from_pretrained( | |
| <span class="hljs-string">"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers"</span>, | |
| subfolder=<span class="hljs-string">"transformer"</span>, | |
| quantization_config=quant_config, | |
| torch_dtype=torch.bfloat16, | |
| ) | |
| pipeline = SanaSprintPipeline.from_pretrained( | |
| <span class="hljs-string">"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers"</span>, | |
| text_encoder=text_encoder_8bit, | |
| transformer=transformer_8bit, | |
| torch_dtype=torch.bfloat16, | |
| device_map=<span class="hljs-string">"balanced"</span>, | |
| ) | |
| prompt = <span class="hljs-string">"a tiny astronaut hatching from an egg on the moon"</span> | |
| image = pipeline(prompt).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"sana.png"</span>)`,wrap:!1}}),Q=new ye({props:{title:"Setting max_timesteps",local:"setting-maxtimesteps",headingTag:"h2"}}),O=new ye({props:{title:"SanaSprintPipeline",local:"diffusers.SanaSprintPipeline",headingTag:"h2"}}),K=new L({props:{name:"class diffusers.SanaSprintPipeline",anchor:"diffusers.SanaSprintPipeline",parameters:[{name:"tokenizer",val:": typing.Union[transformers.models.gemma.tokenization_gemma.GemmaTokenizer, transformers.models.gemma.tokenization_gemma_fast.GemmaTokenizerFast]"},{name:"text_encoder",val:": Gemma2PreTrainedModel"},{name:"vae",val:": AutoencoderDC"},{name:"transformer",val:": SanaTransformer2DModel"},{name:"scheduler",val:": DPMSolverMultistepScheduler"}],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L140"}}),ee=new L({props:{name:"__call__",anchor:"diffusers.SanaSprintPipeline.__call__",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]] = None"},{name:"num_inference_steps",val:": int = 2"},{name:"timesteps",val:": typing.List[int] = None"},{name:"max_timesteps",val:": float = 1.5708"},{name:"intermediate_timesteps",val:": float = 1.3"},{name:"guidance_scale",val:": float = 4.5"},{name:"num_images_per_prompt",val:": typing.Optional[int] = 1"},{name:"height",val:": int = 1024"},{name:"width",val:": int = 1024"},{name:"eta",val:": float = 0.0"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None"},{name:"latents",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_type",val:": typing.Optional[str] = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"clean_caption",val:": bool = False"},{name:"use_resolution_binning",val:": bool = True"},{name:"attention_kwargs",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"callback_on_step_end",val:": typing.Optional[typing.Callable[[int, int, typing.Dict], NoneType]] = None"},{name:"callback_on_step_end_tensor_inputs",val:": typing.List[str] = ['latents']"},{name:"max_sequence_length",val:": int = 300"},{name:"complex_human_instruction",val:`: typing.List[str] = ["Given a user prompt, generate an 'Enhanced prompt' that provides detailed visual descriptions suitable for image generation. Evaluate the level of detail in the user prompt:", '- If the prompt is simple, focus on adding specifics about colors, shapes, sizes, textures, and spatial relationships to create vivid and concrete scenes.', '- If the prompt is already detailed, refine and enhance the existing details slightly without overcomplicating.', 'Here are examples of how to transform or refine prompts:', '- User Prompt: A cat sleeping -> Enhanced: A small, fluffy white cat curled up in a round shape, sleeping peacefully on a warm sunny windowsill, surrounded by pots of blooming red flowers.', '- User Prompt: A busy city street -> Enhanced: A bustling city street scene at dusk, featuring glowing street lamps, a diverse crowd of people in colorful clothing, and a double-decker bus passing by towering glass skyscrapers.', 'Please generate only the enhanced description for the prompt below and avoid including any additional commentary or evaluations:', 'User Prompt: ']`}],parametersDescription:[{anchor:"diffusers.SanaSprintPipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) — | |
| The prompt or prompts to guide the image generation. If not defined, one has to pass <code>prompt_embeds</code>. | |
| instead.`,name:"prompt"},{anchor:"diffusers.SanaSprintPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 20) — | |
| The number of denoising steps. More denoising steps usually lead to a higher quality image at the | |
| expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.SanaSprintPipeline.__call__.max_timesteps",description:`<strong>max_timesteps</strong> (<code>float</code>, <em>optional</em>, defaults to 1.57080) — | |
| The maximum timestep value used in the SCM scheduler.`,name:"max_timesteps"},{anchor:"diffusers.SanaSprintPipeline.__call__.intermediate_timesteps",description:`<strong>intermediate_timesteps</strong> (<code>float</code>, <em>optional</em>, defaults to 1.3) — | |
| The intermediate timestep value used in SCM scheduler (only used when num_inference_steps=2).`,name:"intermediate_timesteps"},{anchor:"diffusers.SanaSprintPipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<code>List[int]</code>, <em>optional</em>) — | |
| Custom timesteps to use for the denoising process with schedulers which support a <code>timesteps</code> argument | |
| in their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is | |
| passed will be used. Must be in descending order.`,name:"timesteps"},{anchor:"diffusers.SanaSprintPipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to 4.5) — | |
| Guidance scale as defined in <a href="https://arxiv.org/abs/2207.12598" rel="nofollow">Classifier-Free Diffusion Guidance</a>. | |
| <code>guidance_scale</code> is defined as <code>w</code> of equation 2. of <a href="https://arxiv.org/pdf/2205.11487.pdf" rel="nofollow">Imagen | |
| Paper</a>. Guidance scale is enabled by setting <code>guidance_scale > 1</code>. Higher guidance scale encourages to generate images that are closely linked to the text <code>prompt</code>, | |
| usually at the expense of lower image quality.`,name:"guidance_scale"},{anchor:"diffusers.SanaSprintPipeline.__call__.num_images_per_prompt",description:`<strong>num_images_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) — | |
| The number of images to generate per prompt.`,name:"num_images_per_prompt"},{anchor:"diffusers.SanaSprintPipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to self.unet.config.sample_size) — | |
| The height in pixels of the generated image.`,name:"height"},{anchor:"diffusers.SanaSprintPipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to self.unet.config.sample_size) — | |
| The width in pixels of the generated image.`,name:"width"},{anchor:"diffusers.SanaSprintPipeline.__call__.eta",description:`<strong>eta</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) — | |
| Corresponds to parameter eta (η) in the DDIM paper: <a href="https://arxiv.org/abs/2010.02502" rel="nofollow">https://arxiv.org/abs/2010.02502</a>. Only applies to | |
| <a href="/docs/diffusers/pr_11234/en/api/schedulers/ddim#diffusers.DDIMScheduler">schedulers.DDIMScheduler</a>, will be ignored for others.`,name:"eta"},{anchor:"diffusers.SanaSprintPipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) — | |
| One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a> | |
| to make generation deterministic.`,name:"generator"},{anchor:"diffusers.SanaSprintPipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) — | |
| Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for image | |
| generation. Can be used to tweak the same generation with different prompts. If not provided, a latents | |
| tensor will ge generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.SanaSprintPipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) — | |
| Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not | |
| provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.SanaSprintPipeline.__call__.prompt_attention_mask",description:"<strong>prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) — Pre-generated attention mask for text embeddings.",name:"prompt_attention_mask"},{anchor:"diffusers.SanaSprintPipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"pil"</code>) — | |
| The output format of the generate image. Choose between | |
| <a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.SanaSprintPipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether or not to return a <code>~pipelines.stable_diffusion.IFPipelineOutput</code> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.SanaSprintPipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> — | |
| 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.SanaSprintPipeline.__call__.clean_caption",description:`<strong>clean_caption</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether or not to clean the caption before creating embeddings. Requires <code>beautifulsoup4</code> and <code>ftfy</code> to | |
| be installed. If the dependencies are not installed, the embeddings will be created from the raw | |
| prompt.`,name:"clean_caption"},{anchor:"diffusers.SanaSprintPipeline.__call__.use_resolution_binning",description:`<strong>use_resolution_binning</strong> (<code>bool</code> defaults to <code>True</code>) — | |
| If set to <code>True</code>, the requested height and width are first mapped to the closest resolutions using | |
| <code>ASPECT_RATIO_1024_BIN</code>. After the produced latents are decoded into images, they are resized back to | |
| the requested resolution. Useful for generating non-square images.`,name:"use_resolution_binning"},{anchor:"diffusers.SanaSprintPipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) — | |
| A function that calls at the end of each denoising steps during the inference. The function is called | |
| with the following arguments: <code>callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)</code>. <code>callback_kwargs</code> will include a list of all tensors as specified by | |
| <code>callback_on_step_end_tensor_inputs</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.SanaSprintPipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<code>List</code>, <em>optional</em>) — | |
| The list of tensor inputs for the <code>callback_on_step_end</code> function. The tensors specified in the list | |
| will be passed as <code>callback_kwargs</code> argument. You will only be able to include variables listed in the | |
| <code>._callback_tensor_inputs</code> attribute of your pipeline class.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.SanaSprintPipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code> defaults to <code>300</code>) — | |
| Maximum sequence length to use with the <code>prompt</code>.`,name:"max_sequence_length"},{anchor:"diffusers.SanaSprintPipeline.__call__.complex_human_instruction",description:`<strong>complex_human_instruction</strong> (<code>List[str]</code>, <em>optional</em>) — | |
| Instructions for complex human attention: | |
| <a href="https://github.com/NVlabs/Sana/blob/main/configs/sana_app_config/Sana_1600M_app.yaml#L55" rel="nofollow">https://github.com/NVlabs/Sana/blob/main/configs/sana_app_config/Sana_1600M_app.yaml#L55</a>.`,name:"complex_human_instruction"}],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L592",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>If <code>return_dict</code> is <code>True</code>, <a | |
| href="/docs/diffusers/pr_11234/en/api/pipelines/sana_sprint#diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput" | |
| >SanaPipelineOutput</a> is returned, | |
| otherwise a <code>tuple</code> is returned where the first element is a list with the generated images</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><a | |
| href="/docs/diffusers/pr_11234/en/api/pipelines/sana_sprint#diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput" | |
| >SanaPipelineOutput</a> or <code>tuple</code></p> | |
| `}}),U=new Lt({props:{anchor:"diffusers.SanaSprintPipeline.__call__.example",$$slots:{default:[Nt]},$$scope:{ctx:pe}}}),te=new L({props:{name:"disable_vae_slicing",anchor:"diffusers.SanaSprintPipeline.disable_vae_slicing",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L180"}}),ne=new L({props:{name:"disable_vae_tiling",anchor:"diffusers.SanaSprintPipeline.disable_vae_tiling",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L195"}}),ae=new L({props:{name:"enable_vae_slicing",anchor:"diffusers.SanaSprintPipeline.enable_vae_slicing",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L173"}}),ie=new L({props:{name:"enable_vae_tiling",anchor:"diffusers.SanaSprintPipeline.enable_vae_tiling",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L187"}}),se=new L({props:{name:"encode_prompt",anchor:"diffusers.SanaSprintPipeline.encode_prompt",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"num_images_per_prompt",val:": int = 1"},{name:"device",val:": typing.Optional[torch.device] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"clean_caption",val:": bool = False"},{name:"max_sequence_length",val:": int = 300"},{name:"complex_human_instruction",val:": typing.Optional[typing.List[str]] = None"},{name:"lora_scale",val:": typing.Optional[float] = None"}],parametersDescription:[{anchor:"diffusers.SanaSprintPipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) — | |
| prompt to be encoded`,name:"prompt"},{anchor:"diffusers.SanaSprintPipeline.encode_prompt.num_images_per_prompt",description:`<strong>num_images_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) — | |
| number of images that should be generated per prompt`,name:"num_images_per_prompt"},{anchor:"diffusers.SanaSprintPipeline.encode_prompt.device",description:`<strong>device</strong> — (<code>torch.device</code>, <em>optional</em>): | |
| torch device to place the resulting embeddings on`,name:"device"},{anchor:"diffusers.SanaSprintPipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) — | |
| Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not | |
| provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.SanaSprintPipeline.encode_prompt.clean_caption",description:`<strong>clean_caption</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| If <code>True</code>, the function will preprocess and clean the provided caption before encoding.`,name:"clean_caption"},{anchor:"diffusers.SanaSprintPipeline.encode_prompt.max_sequence_length",description:"<strong>max_sequence_length</strong> (<code>int</code>, defaults to 300) — Maximum sequence length to use for the prompt.",name:"max_sequence_length"},{anchor:"diffusers.SanaSprintPipeline.encode_prompt.complex_human_instruction",description:`<strong>complex_human_instruction</strong> (<code>list[str]</code>, defaults to <code>complex_human_instruction</code>) — | |
| If <code>complex_human_instruction</code> is not empty, the function will use the complex Human instruction for | |
| the prompt.`,name:"complex_human_instruction"}],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_sana_sprint.py#L261"}}),oe=new ye({props:{title:"SanaPipelineOutput",local:"diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput",headingTag:"h2"}}),re=new L({props:{name:"class diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput",anchor:"diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput",parameters:[{name:"images",val:": typing.Union[typing.List[PIL.Image.Image], numpy.ndarray]"}],parametersDescription:[{anchor:"diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput.images",description:`<strong>images</strong> (<code>List[PIL.Image.Image]</code> or <code>np.ndarray</code>) — | |
| List of denoised PIL images of length <code>batch_size</code> or numpy array of shape <code>(batch_size, height, width, num_channels)</code>. PIL images or numpy array present the denoised images of the diffusion pipeline.`,name:"images"}],source:"https://github.com/huggingface/diffusers/blob/vr_11234/src/diffusers/pipelines/sana/pipeline_output.py#L10"}}),le=new At({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/sana_sprint.md"}}),{c(){p=o("meta"),T=i(),v=o("p"),w=i(),f(M.$$.fragment),m=i(),S=o("div"),S.innerHTML=pt,ve=i(),A=o("p"),A.innerHTML=dt,we=i(),W=o("p"),W.textContent=ct,Me=i(),N=o("p"),N.innerHTML=mt,Se=i(),f(j.$$.fragment),xe=i(),H=o("p"),H.innerHTML=ut,Te=i(),X=o("p"),X.textContent=ft,$e=i(),q=o("table"),q.innerHTML=gt,Ce=i(),G=o("p"),G.innerHTML=ht,Je=i(),V=o("p"),V.innerHTML=_t,Pe=i(),f(z.$$.fragment),je=i(),R=o("p"),R.textContent=bt,Ue=i(),F=o("p"),F.innerHTML=yt,ke=i(),f(D.$$.fragment),Ie=i(),f(Q.$$.fragment),Ze=i(),Y=o("p"),Y.innerHTML=vt,Ee=i(),f(O.$$.fragment),Be=i(),c=o("div"),f(K.$$.fragment),Fe=i(),de=o("p"),de.innerHTML=wt,De=i(),$=o("div"),f(ee.$$.fragment),Qe=i(),ce=o("p"),ce.textContent=Mt,Ye=i(),f(U.$$.fragment),Oe=i(),k=o("div"),f(te.$$.fragment),Ke=i(),me=o("p"),me.innerHTML=St,et=i(),I=o("div"),f(ne.$$.fragment),tt=i(),ue=o("p"),ue.innerHTML=xt,nt=i(),Z=o("div"),f(ae.$$.fragment),at=i(),fe=o("p"),fe.textContent=Tt,it=i(),E=o("div"),f(ie.$$.fragment),st=i(),ge=o("p"),ge.textContent=$t,ot=i(),B=o("div"),f(se.$$.fragment),rt=i(),he=o("p"),he.textContent=Ct,Le=i(),f(oe.$$.fragment),Ae=i(),J=o("div"),f(re.$$.fragment),lt=i(),_e=o("p"),_e.textContent=Jt,We=i(),f(le.$$.fragment),Ne=i(),be=o("p"),this.h()},l(e){const t=Et("svelte-u9bgzb",document.head);p=r(t,"META",{name:!0,content:!0}),t.forEach(n),T=s(e),v=r(e,"P",{}),C(v).forEach(n),w=s(e),g(M.$$.fragment,e),m=s(e),S=r(e,"DIV",{class:!0,"data-svelte-h":!0}),d(S)!=="svelte-si9ct8"&&(S.innerHTML=pt),ve=s(e),A=r(e,"P",{"data-svelte-h":!0}),d(A)!=="svelte-2zyjd8"&&(A.innerHTML=dt),we=s(e),W=r(e,"P",{"data-svelte-h":!0}),d(W)!=="svelte-1cwsb16"&&(W.textContent=ct),Me=s(e),N=r(e,"P",{"data-svelte-h":!0}),d(N)!=="svelte-rsnwrp"&&(N.innerHTML=mt),Se=s(e),g(j.$$.fragment,e),xe=s(e),H=r(e,"P",{"data-svelte-h":!0}),d(H)!=="svelte-1rwl4x2"&&(H.innerHTML=ut),Te=s(e),X=r(e,"P",{"data-svelte-h":!0}),d(X)!=="svelte-1bob28v"&&(X.textContent=ft),$e=s(e),q=r(e,"TABLE",{"data-svelte-h":!0}),d(q)!=="svelte-1nolrdp"&&(q.innerHTML=gt),Ce=s(e),G=r(e,"P",{"data-svelte-h":!0}),d(G)!=="svelte-27y0yu"&&(G.innerHTML=ht),Je=s(e),V=r(e,"P",{"data-svelte-h":!0}),d(V)!=="svelte-5fyxa5"&&(V.innerHTML=_t),Pe=s(e),g(z.$$.fragment,e),je=s(e),R=r(e,"P",{"data-svelte-h":!0}),d(R)!=="svelte-1ou2pxc"&&(R.textContent=bt),Ue=s(e),F=r(e,"P",{"data-svelte-h":!0}),d(F)!=="svelte-yk3z9n"&&(F.innerHTML=yt),ke=s(e),g(D.$$.fragment,e),Ie=s(e),g(Q.$$.fragment,e),Ze=s(e),Y=r(e,"P",{"data-svelte-h":!0}),d(Y)!=="svelte-1nuwixv"&&(Y.innerHTML=vt),Ee=s(e),g(O.$$.fragment,e),Be=s(e),c=r(e,"DIV",{class:!0});var u=C(c);g(K.$$.fragment,u),Fe=s(u),de=r(u,"P",{"data-svelte-h":!0}),d(de)!=="svelte-19l2afh"&&(de.innerHTML=wt),De=s(u),$=r(u,"DIV",{class:!0});var P=C($);g(ee.$$.fragment,P),Qe=s(P),ce=r(P,"P",{"data-svelte-h":!0}),d(ce)!=="svelte-v78lg8"&&(ce.textContent=Mt),Ye=s(P),g(U.$$.fragment,P),P.forEach(n),Oe=s(u),k=r(u,"DIV",{class:!0});var Xe=C(k);g(te.$$.fragment,Xe),Ke=s(Xe),me=r(Xe,"P",{"data-svelte-h":!0}),d(me)!=="svelte-1s3c06i"&&(me.innerHTML=St),Xe.forEach(n),et=s(u),I=r(u,"DIV",{class:!0});var qe=C(I);g(ne.$$.fragment,qe),tt=s(qe),ue=r(qe,"P",{"data-svelte-h":!0}),d(ue)!=="svelte-pkn4ui"&&(ue.innerHTML=xt),qe.forEach(n),nt=s(u),Z=r(u,"DIV",{class:!0});var Ge=C(Z);g(ae.$$.fragment,Ge),at=s(Ge),fe=r(Ge,"P",{"data-svelte-h":!0}),d(fe)!=="svelte-14bnrb6"&&(fe.textContent=Tt),Ge.forEach(n),it=s(u),E=r(u,"DIV",{class:!0});var Ve=C(E);g(ie.$$.fragment,Ve),st=s(Ve),ge=r(Ve,"P",{"data-svelte-h":!0}),d(ge)!=="svelte-1xwrf7t"&&(ge.textContent=$t),Ve.forEach(n),ot=s(u),B=r(u,"DIV",{class:!0});var ze=C(B);g(se.$$.fragment,ze),rt=s(ze),he=r(ze,"P",{"data-svelte-h":!0}),d(he)!=="svelte-16q0ax1"&&(he.textContent=Ct),ze.forEach(n),u.forEach(n),Le=s(e),g(oe.$$.fragment,e),Ae=s(e),J=r(e,"DIV",{class:!0});var Re=C(J);g(re.$$.fragment,Re),lt=s(Re),_e=r(Re,"P",{"data-svelte-h":!0}),d(_e)!=="svelte-1h3n85u"&&(_e.textContent=Jt),Re.forEach(n),We=s(e),g(le.$$.fragment,e),Ne=s(e),be=r(e,"P",{}),C(be).forEach(n),this.h()},h(){x(p,"name","hf:doc:metadata"),x(p,"content",Xt),x(S,"class","flex flex-wrap space-x-1"),x($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(c,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(J,"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){l(document.head,p),a(e,T,t),a(e,v,t),a(e,w,t),h(M,e,t),a(e,m,t),a(e,S,t),a(e,ve,t),a(e,A,t),a(e,we,t),a(e,W,t),a(e,Me,t),a(e,N,t),a(e,Se,t),h(j,e,t),a(e,xe,t),a(e,H,t),a(e,Te,t),a(e,X,t),a(e,$e,t),a(e,q,t),a(e,Ce,t),a(e,G,t),a(e,Je,t),a(e,V,t),a(e,Pe,t),h(z,e,t),a(e,je,t),a(e,R,t),a(e,Ue,t),a(e,F,t),a(e,ke,t),h(D,e,t),a(e,Ie,t),h(Q,e,t),a(e,Ze,t),a(e,Y,t),a(e,Ee,t),h(O,e,t),a(e,Be,t),a(e,c,t),h(K,c,null),l(c,Fe),l(c,de),l(c,De),l(c,$),h(ee,$,null),l($,Qe),l($,ce),l($,Ye),h(U,$,null),l(c,Oe),l(c,k),h(te,k,null),l(k,Ke),l(k,me),l(c,et),l(c,I),h(ne,I,null),l(I,tt),l(I,ue),l(c,nt),l(c,Z),h(ae,Z,null),l(Z,at),l(Z,fe),l(c,it),l(c,E),h(ie,E,null),l(E,st),l(E,ge),l(c,ot),l(c,B),h(se,B,null),l(B,rt),l(B,he),a(e,Le,t),h(oe,e,t),a(e,Ae,t),a(e,J,t),h(re,J,null),l(J,lt),l(J,_e),a(e,We,t),h(le,e,t),a(e,Ne,t),a(e,be,t),He=!0},p(e,[t]){const u={};t&2&&(u.$$scope={dirty:t,ctx:e}),j.$set(u);const P={};t&2&&(P.$$scope={dirty:t,ctx:e}),U.$set(P)},i(e){He||(_(M.$$.fragment,e),_(j.$$.fragment,e),_(z.$$.fragment,e),_(D.$$.fragment,e),_(Q.$$.fragment,e),_(O.$$.fragment,e),_(K.$$.fragment,e),_(ee.$$.fragment,e),_(U.$$.fragment,e),_(te.$$.fragment,e),_(ne.$$.fragment,e),_(ae.$$.fragment,e),_(ie.$$.fragment,e),_(se.$$.fragment,e),_(oe.$$.fragment,e),_(re.$$.fragment,e),_(le.$$.fragment,e),He=!0)},o(e){b(M.$$.fragment,e),b(j.$$.fragment,e),b(z.$$.fragment,e),b(D.$$.fragment,e),b(Q.$$.fragment,e),b(O.$$.fragment,e),b(K.$$.fragment,e),b(ee.$$.fragment,e),b(U.$$.fragment,e),b(te.$$.fragment,e),b(ne.$$.fragment,e),b(ae.$$.fragment,e),b(ie.$$.fragment,e),b(se.$$.fragment,e),b(oe.$$.fragment,e),b(re.$$.fragment,e),b(le.$$.fragment,e),He=!1},d(e){e&&(n(T),n(v),n(w),n(m),n(S),n(ve),n(A),n(we),n(W),n(Me),n(N),n(Se),n(xe),n(H),n(Te),n(X),n($e),n(q),n(Ce),n(G),n(Je),n(V),n(Pe),n(je),n(R),n(Ue),n(F),n(ke),n(Ie),n(Ze),n(Y),n(Ee),n(Be),n(c),n(Le),n(Ae),n(J),n(We),n(Ne),n(be)),n(p),y(M,e),y(j,e),y(z,e),y(D,e),y(Q,e),y(O,e),y(K),y(ee),y(U),y(te),y(ne),y(ae),y(ie),y(se),y(oe,e),y(re),y(le,e)}}}const Xt='{"title":"SanaSprintPipeline","local":"sanasprintpipeline","sections":[{"title":"Quantization","local":"quantization","sections":[],"depth":2},{"title":"Setting max_timesteps","local":"setting-maxtimesteps","sections":[],"depth":2},{"title":"SanaSprintPipeline","local":"diffusers.SanaSprintPipeline","sections":[],"depth":2},{"title":"SanaPipelineOutput","local":"diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput","sections":[],"depth":2}],"depth":1}';function qt(pe){return kt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Yt extends It{constructor(p){super(),Zt(this,p,qt,Ht,Ut,{})}}export{Yt as component}; | |
Xet Storage Details
- Size:
- 38.5 kB
- Xet hash:
- cb69a607bd6d7420bcec0becdf4557294a8b56d28d68a09b0c82c4f3a342822e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.