Buckets:
| import{s as Nn,o as Zn,n as jn}from"../chunks/scheduler.8c3d61f6.js";import{S as Rn,i as Xn,g as s,s as n,r as c,A as Wn,h as r,f as i,c as o,j as v,u,x as h,k as y,y as t,a as _,v as f,d as m,t as p,w as g}from"../chunks/index.da70eac4.js";import{T as Sn}from"../chunks/Tip.1d9b8c37.js";import{D as w}from"../chunks/Docstring.6b390b9a.js";import{C as Yn}from"../chunks/CodeBlock.00a903b3.js";import{E as On}from"../chunks/ExampleCodeBlock.db12be95.js";import{H as Oe,E as Kn}from"../chunks/EditOnGithub.1e64e623.js";function eo(qe){let b,D='Learn how to quantize models in the <a href="../quantization/overview">Quantization</a> guide.';return{c(){b=s("p"),b.innerHTML=D},l(q){b=r(q,"P",{"data-svelte-h":!0}),h(b)!=="svelte-1dd515k"&&(b.innerHTML=D)},m(q,T){_(q,b,T)},p:jn,d(q){q&&i(b)}}}function to(qe){let b,D="Example:",q,T,C;return T=new Yn({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEZsdXhUcmFuc2Zvcm1lcjJETW9kZWwlMkMlMjBUb3JjaEFvQ29uZmlnJTBBJTBBcXVhbnRpemF0aW9uX2NvbmZpZyUyMCUzRCUyMFRvcmNoQW9Db25maWcoJTIyaW50OHdvJTIyKSUwQXRyYW5zZm9ybWVyJTIwJTNEJTIwRmx1eFRyYW5zZm9ybWVyMkRNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyYmxhY2stZm9yZXN0LWxhYnMlMkZGbHV4LjEtRGV2JTIyJTJDJTBBJTIwJTIwJTIwJTIwc3ViZm9sZGVyJTNEJTIydHJhbnNmb3JtZXIlMjIlMkMlMEElMjAlMjAlMjAlMjBxdWFudGl6YXRpb25fY29uZmlnJTNEcXVhbnRpemF0aW9uX2NvbmZpZyUyQyUwQSUyMCUyMCUyMCUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMkMlMEEp",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> FluxTransformer2DModel, TorchAoConfig | |
| quantization_config = TorchAoConfig(<span class="hljs-string">"int8wo"</span>) | |
| transformer = FluxTransformer2DModel.from_pretrained( | |
| <span class="hljs-string">"black-forest-labs/Flux.1-Dev"</span>, | |
| subfolder=<span class="hljs-string">"transformer"</span>, | |
| quantization_config=quantization_config, | |
| torch_dtype=torch.bfloat16, | |
| )`,wrap:!1}}),{c(){b=s("p"),b.textContent=D,q=n(),c(T.$$.fragment)},l(z){b=r(z,"P",{"data-svelte-h":!0}),h(b)!=="svelte-11lpom8"&&(b.textContent=D),q=o(z),u(T.$$.fragment,z)},m(z,M){_(z,b,M),_(z,q,M),f(T,z,M),C=!0},p:jn,i(z){C||(m(T.$$.fragment,z),C=!0)},o(z){p(T.$$.fragment,z),C=!1},d(z){z&&(i(b),i(q)),g(T,z)}}}function no(qe){let b,D,q,T,C,z,M,bn='Quantization techniques reduce memory and computational costs by representing weights and activations with lower-precision data types like 8-bit integers (int8). This enables loading larger models you normally wouldn’t be able to fit into memory, and speeding up inference. Diffusers supports 8-bit and 4-bit quantization with <a href="https://huggingface.co/docs/bitsandbytes/en/index" rel="nofollow">bitsandbytes</a>.',Ke,Y,vn='Quantization techniques that aren’t supported in Transformers can be added with the <a href="/docs/diffusers/pr_10312/en/api/quantization#diffusers.DiffusersQuantizer">DiffusersQuantizer</a> class.',et,B,tt,O,nt,$,K,kt,Te,yn=`This is a wrapper class about all possible attributes and features that you can play with a model that has been | |
| loaded using <code>bitsandbytes</code>.`,Dt,Ce,$n="This replaces <code>load_in_8bit</code> or <code>load_in_4bit</code>therefore both options are mutually exclusive.",Lt,Me,wn=`Currently only supports <code>LLM.int8()</code>, <code>FP4</code>, and <code>NF4</code> quantization. If more methods are added to <code>bitsandbytes</code>, | |
| then more arguments will be added to this class.`,Bt,A,ee,At,ke,zn="Returns <code>True</code> if the model is quantizable, <code>False</code> otherwise.",Qt,Q,te,Ft,De,xn="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",It,F,ne,Et,Le,qn=`This method returns the quantization method used for the model. If the model is not quantizable, it returns | |
| <code>None</code>.`,Pt,I,oe,Ht,Be,Tn=`Removes all attributes from config which correspond to the default config attributes for better readability and | |
| serializes to a Python dictionary.`,ot,se,st,L,re,Jt,Ae,Cn="This is a config class for GGUF Quantization techniques.",rt,ie,it,k,ae,Vt,Qe,Mn="This is a config class for torchao quantization/sparsity techniques.",Ut,E,at,de,dt,d,le,Gt,Fe,kn=`Abstract class of the HuggingFace quantizer. Supports for now quantizing HF diffusers models for inference and/or | |
| quantization. This class is used only for diffusers.models.modeling_utils.ModelMixin.from_pretrained and cannot be | |
| easily used outside the scope of that method yet.`,jt,Ie,Dn=`Attributes | |
| quantization_config (<code>diffusers.quantizers.quantization_config.QuantizationConfigMixin</code>): | |
| The quantization config that defines the quantization parameters of your model that you want to quantize. | |
| modules_to_not_convert (<code>List[str]</code>, <em>optional</em>): | |
| The list of module names to not convert when quantizing the model. | |
| required_packages (<code>List[str]</code>, <em>optional</em>): | |
| The list of required pip packages to install prior to using the quantizer | |
| requires_calibration (<code>bool</code>): | |
| Whether the quantization method requires to calibrate the model before using it.`,Nt,P,ce,Zt,Ee,Ln="adjust max_memory argument for infer_auto_device_map() if extra memory is needed for quantization",Rt,H,ue,Xt,Pe,Bn=`Override this method if you want to adjust the <code>target_dtype</code> variable used in <code>from_pretrained</code> to compute the | |
| device_map in case the device_map is a <code>str</code>. E.g. for bitsandbytes we force-set <code>target_dtype</code> to <code>torch.int8</code> | |
| and for 4-bit we pass a custom enum <code>accelerate.CustomDtype.int4</code>.`,Wt,J,fe,St,He,An=`checks if a loaded state_dict component is part of quantized param + some validation; only defined for | |
| quantization methods that require to create a new parameters for quantization.`,Yt,V,me,Ot,Je,Qn="checks if the quantized param has expected shape.",Kt,U,pe,en,Ve,Fn="takes needed components from state_dict and creates quantized param.",tn,G,ge,nn,Ue,In=`Potentially dequantize the model to retrive the original model, with some loss in accuracy / performance. Note | |
| not all quantization schemes support this.`,on,j,he,sn,Ge,En=`returns dtypes for modules that are not quantized - used for the computation of the device_map in case one | |
| passes a str as a device_map. The method will use the <code>modules_to_not_convert</code> that is modified in | |
| <code>_process_model_before_weight_loading</code>. <code>diffusers</code> models don’t have any <code>modules_to_not_convert</code> attributes | |
| yet but this can change soon in the future.`,rn,N,_e,an,je,Pn=`Post-process the model post weights loading. Make sure to override the abstract method | |
| <code>_process_model_after_weight_loading</code>.`,dn,Z,be,ln,Ne,Hn=`Setting model attributes and/or converting model before weights loading. At this point the model should be | |
| initialized on the meta device so you can freely manipulate the skeleton of the model in order to replace | |
| modules in-place. Make sure to override the abstract method <code>_process_model_before_weight_loading</code>.`,cn,R,ve,un,Ze,Jn=`Override this method if you want to pass a override the existing device map with a new one. E.g. for | |
| bitsandbytes, since <code>accelerate</code> is a hard requirement, if no device_map is passed, the device_map is set to | |
| \`“auto”“`,fn,X,ye,mn,Re,Vn="Override this method if you want to adjust the <code>missing_keys</code>.",pn,W,$e,gn,Xe,Un=`Some quantization methods require to explicitly set the dtype of the model to a target dtype. You need to | |
| override this method in case you want to make sure that behavior is preserved`,hn,S,we,_n,We,Gn=`This method is used to potentially check for potential conflicts with arguments that are passed in | |
| <code>from_pretrained</code>. You need to define it for all future quantizers that are integrated with diffusers. If no | |
| explicit check are needed, simply return nothing.`,lt,ze,ct,Ye,ut;return C=new Oe({props:{title:"Quantization",local:"quantization",headingTag:"h1"}}),B=new Sn({props:{$$slots:{default:[eo]},$$scope:{ctx:qe}}}),O=new Oe({props:{title:"BitsAndBytesConfig",local:"diffusers.BitsAndBytesConfig",headingTag:"h2"}}),K=new w({props:{name:"class diffusers.BitsAndBytesConfig",anchor:"diffusers.BitsAndBytesConfig",parameters:[{name:"load_in_8bit",val:" = False"},{name:"load_in_4bit",val:" = False"},{name:"llm_int8_threshold",val:" = 6.0"},{name:"llm_int8_skip_modules",val:" = None"},{name:"llm_int8_enable_fp32_cpu_offload",val:" = False"},{name:"llm_int8_has_fp16_weight",val:" = False"},{name:"bnb_4bit_compute_dtype",val:" = None"},{name:"bnb_4bit_quant_type",val:" = 'fp4'"},{name:"bnb_4bit_use_double_quant",val:" = False"},{name:"bnb_4bit_quant_storage",val:" = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.BitsAndBytesConfig.load_in_8bit",description:`<strong>load_in_8bit</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| This flag is used to enable 8-bit quantization with LLM.int8().`,name:"load_in_8bit"},{anchor:"diffusers.BitsAndBytesConfig.load_in_4bit",description:`<strong>load_in_4bit</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| This flag is used to enable 4-bit quantization by replacing the Linear layers with FP4/NF4 layers from | |
| <code>bitsandbytes</code>.`,name:"load_in_4bit"},{anchor:"diffusers.BitsAndBytesConfig.llm_int8_threshold",description:`<strong>llm_int8_threshold</strong> (<code>float</code>, <em>optional</em>, defaults to 6.0) — | |
| This corresponds to the outlier threshold for outlier detection as described in <code>LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale</code> paper: <a href="https://arxiv.org/abs/2208.07339" rel="nofollow">https://arxiv.org/abs/2208.07339</a> Any hidden states value | |
| that is above this threshold will be considered an outlier and the operation on those values will be done | |
| in fp16. Values are usually normally distributed, that is, most values are in the range [-3.5, 3.5], but | |
| there are some exceptional systematic outliers that are very differently distributed for large models. | |
| These outliers are often in the interval [-60, -6] or [6, 60]. Int8 quantization works well for values of | |
| magnitude ~5, but beyond that, there is a significant performance penalty. A good default threshold is 6, | |
| but a lower threshold might be needed for more unstable models (small models, fine-tuning).`,name:"llm_int8_threshold"},{anchor:"diffusers.BitsAndBytesConfig.llm_int8_skip_modules",description:`<strong>llm_int8_skip_modules</strong> (<code>List[str]</code>, <em>optional</em>) — | |
| An explicit list of the modules that we do not want to convert in 8-bit. This is useful for models such as | |
| Jukebox that has several heads in different places and not necessarily at the last position. For example | |
| for <code>CausalLM</code> models, the last <code>lm_head</code> is typically kept in its original <code>dtype</code>.`,name:"llm_int8_skip_modules"},{anchor:"diffusers.BitsAndBytesConfig.llm_int8_enable_fp32_cpu_offload",description:`<strong>llm_int8_enable_fp32_cpu_offload</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| This flag is used for advanced use cases and users that are aware of this feature. If you want to split | |
| your model in different parts and run some parts in int8 on GPU and some parts in fp32 on CPU, you can use | |
| this flag. This is useful for offloading large models such as <code>google/flan-t5-xxl</code>. Note that the int8 | |
| operations will not be run on CPU.`,name:"llm_int8_enable_fp32_cpu_offload"},{anchor:"diffusers.BitsAndBytesConfig.llm_int8_has_fp16_weight",description:`<strong>llm_int8_has_fp16_weight</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| This flag runs LLM.int8() with 16-bit main weights. This is useful for fine-tuning as the weights do not | |
| have to be converted back and forth for the backward pass.`,name:"llm_int8_has_fp16_weight"},{anchor:"diffusers.BitsAndBytesConfig.bnb_4bit_compute_dtype",description:`<strong>bnb_4bit_compute_dtype</strong> (<code>torch.dtype</code> or str, <em>optional</em>, defaults to <code>torch.float32</code>) — | |
| This sets the computational type which might be different than the input type. For example, inputs might be | |
| fp32, but computation can be set to bf16 for speedups.`,name:"bnb_4bit_compute_dtype"},{anchor:"diffusers.BitsAndBytesConfig.bnb_4bit_quant_type",description:`<strong>bnb_4bit_quant_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"fp4"</code>) — | |
| This sets the quantization data type in the bnb.nn.Linear4Bit layers. Options are FP4 and NF4 data types | |
| which are specified by <code>fp4</code> or <code>nf4</code>.`,name:"bnb_4bit_quant_type"},{anchor:"diffusers.BitsAndBytesConfig.bnb_4bit_use_double_quant",description:`<strong>bnb_4bit_use_double_quant</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| This flag is used for nested quantization where the quantization constants from the first quantization are | |
| quantized again.`,name:"bnb_4bit_use_double_quant"},{anchor:"diffusers.BitsAndBytesConfig.bnb_4bit_quant_storage",description:`<strong>bnb_4bit_quant_storage</strong> (<code>torch.dtype</code> or str, <em>optional</em>, defaults to <code>torch.uint8</code>) — | |
| This sets the storage type to pack the quanitzed 4-bit prarams.`,name:"bnb_4bit_quant_storage"},{anchor:"diffusers.BitsAndBytesConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) — | |
| Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L165"}}),ee=new w({props:{name:"is_quantizable",anchor:"diffusers.BitsAndBytesConfig.is_quantizable",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L338"}}),te=new w({props:{name:"post_init",anchor:"diffusers.BitsAndBytesConfig.post_init",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L301"}}),ne=new w({props:{name:"quantization_method",anchor:"diffusers.BitsAndBytesConfig.quantization_method",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L344"}}),oe=new w({props:{name:"to_diff_dict",anchor:"diffusers.BitsAndBytesConfig.to_diff_dict",parameters:[],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L375",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>Dictionary of all the attributes that make up this configuration instance,</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>Dict[str, Any]</code></p> | |
| `}}),se=new Oe({props:{title:"GGUFQuantizationConfig",local:"diffusers.GGUFQuantizationConfig",headingTag:"h2"}}),re=new w({props:{name:"class diffusers.GGUFQuantizationConfig",anchor:"diffusers.GGUFQuantizationConfig",parameters:[{name:"compute_dtype",val:": typing.Optional[ForwardRef('torch.dtype')] = None"}],parametersDescription:[{anchor:"diffusers.GGUFQuantizationConfig.compute_dtype",description:`<strong>compute_dtype</strong> — (<code>torch.dtype</code>, defaults to <code>torch.float32</code>): | |
| This sets the computational type which might be different than the input type. For example, inputs might be | |
| fp32, but computation can be set to bf16 for speedups.`,name:"compute_dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L398"}}),ie=new Oe({props:{title:"TorchAoConfig",local:"diffusers.TorchAoConfig",headingTag:"h2"}}),ae=new w({props:{name:"class diffusers.TorchAoConfig",anchor:"diffusers.TorchAoConfig",parameters:[{name:"quant_type",val:": str"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List[str]] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.TorchAoConfig.quant_type",description:`<strong>quant_type</strong> (<code>str</code>) — | |
| The type of quantization we want to use, currently supporting:</p> | |
| <ul> | |
| <li> | |
| <p><strong>Integer quantization:</strong></p> | |
| <ul> | |
| <li>Full function names: <code>int4_weight_only</code>, <code>int8_dynamic_activation_int4_weight</code>, | |
| <code>int8_weight_only</code>, <code>int8_dynamic_activation_int8_weight</code></li> | |
| <li>Shorthands: <code>int4wo</code>, <code>int4dq</code>, <code>int8wo</code>, <code>int8dq</code></li> | |
| </ul> | |
| </li> | |
| <li> | |
| <p><strong>Floating point 8-bit quantization:</strong></p> | |
| <ul> | |
| <li>Full function names: <code>float8_weight_only</code>, <code>float8_dynamic_activation_float8_weight</code>, | |
| <code>float8_static_activation_float8_weight</code></li> | |
| <li>Shorthands: <code>float8wo</code>, <code>float8wo_e5m2</code>, <code>float8wo_e4m3</code>, <code>float8dq</code>, <code>float8dq_e4m3</code>, | |
| <code>float8_e4m3_tensor</code>, <code>float8_e4m3_row</code>,</li> | |
| </ul> | |
| </li> | |
| <li> | |
| <p><strong>Floating point X-bit quantization:</strong></p> | |
| <ul> | |
| <li>Full function names: <code>fpx_weight_only</code></li> | |
| <li>Shorthands: <code>fpX_eAwB</code>, where <code>X</code> is the number of bits (between <code>1</code> to <code>7</code>), <code>A</code> is the number | |
| of exponent bits and <code>B</code> is the number of mantissa bits. The constraint of <code>X == A + B + 1</code> must | |
| be satisfied for a given shorthand notation.</li> | |
| </ul> | |
| </li> | |
| <li> | |
| <p><strong>Unsigned Integer quantization:</strong></p> | |
| <ul> | |
| <li>Full function names: <code>uintx_weight_only</code></li> | |
| <li>Shorthands: <code>uint1wo</code>, <code>uint2wo</code>, <code>uint3wo</code>, <code>uint4wo</code>, <code>uint5wo</code>, <code>uint6wo</code>, <code>uint7wo</code></li> | |
| </ul> | |
| </li> | |
| </ul>`,name:"quant_type"},{anchor:"diffusers.TorchAoConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>List[str]</code>, <em>optional</em>, default to <code>None</code>) — | |
| The list of modules to not quantize, useful for quantizing models that explicitly require to have some | |
| modules left in their original precision.`,name:"modules_to_not_convert"},{anchor:"diffusers.TorchAoConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) — | |
| The keyword arguments for the chosen type of quantization, for example, int4_weight_only quantization | |
| supports two keyword arguments <code>group_size</code> and <code>inner_k_tiles</code> currently. More API examples and | |
| documentation of arguments can be found in | |
| <a href="https://github.com/pytorch/ao/tree/main/torchao/quantization#other-available-quantization-techniques" rel="nofollow">https://github.com/pytorch/ao/tree/main/torchao/quantization#other-available-quantization-techniques</a>`,name:"kwargs"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/quantization_config.py#L421"}}),E=new On({props:{anchor:"diffusers.TorchAoConfig.example",$$slots:{default:[to]},$$scope:{ctx:qe}}}),de=new Oe({props:{title:"DiffusersQuantizer",local:"diffusers.DiffusersQuantizer",headingTag:"h2"}}),le=new w({props:{name:"class diffusers.DiffusersQuantizer",anchor:"diffusers.DiffusersQuantizer",parameters:[{name:"quantization_config",val:": QuantizationConfigMixin"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L34"}}),ce=new w({props:{name:"adjust_max_memory",anchor:"diffusers.DiffusersQuantizer.adjust_max_memory",parameters:[{name:"max_memory",val:": typing.Dict[str, typing.Union[int, str]]"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L133"}}),ue=new w({props:{name:"adjust_target_dtype",anchor:"diffusers.DiffusersQuantizer.adjust_target_dtype",parameters:[{name:"torch_dtype",val:": torch.dtype"}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.adjust_target_dtype.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>, <em>optional</em>) — | |
| The torch_dtype that is used to compute the device_map.`,name:"torch_dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L91"}}),fe=new w({props:{name:"check_if_quantized_param",anchor:"diffusers.DiffusersQuantizer.check_if_quantized_param",parameters:[{name:"model",val:": ModelMixin"},{name:"param_value",val:": torch.Tensor"},{name:"param_name",val:": str"},{name:"state_dict",val:": typing.Dict[str, typing.Any]"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L137"}}),me=new w({props:{name:"check_quantized_param_shape",anchor:"diffusers.DiffusersQuantizer.check_quantized_param_shape",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L157"}}),pe=new w({props:{name:"create_quantized_param",anchor:"diffusers.DiffusersQuantizer.create_quantized_param",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L151"}}),ge=new w({props:{name:"dequantize",anchor:"diffusers.DiffusersQuantizer.dequantize",parameters:[{name:"model",val:""}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L200"}}),he=new w({props:{name:"get_special_dtypes_update",anchor:"diffusers.DiffusersQuantizer.get_special_dtypes_update",parameters:[{name:"model",val:""},{name:"torch_dtype",val:": torch.dtype"}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.get_special_dtypes_update.model",description:`<strong>model</strong> (<code>~diffusers.models.modeling_utils.ModelMixin</code>) — | |
| The model to quantize`,name:"model"},{anchor:"diffusers.DiffusersQuantizer.get_special_dtypes_update.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>) — | |
| The dtype passed in <code>from_pretrained</code> method.`,name:"torch_dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L113"}}),_e=new w({props:{name:"postprocess_model",anchor:"diffusers.DiffusersQuantizer.postprocess_model",parameters:[{name:"model",val:": ModelMixin"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.postprocess_model.model",description:`<strong>model</strong> (<code>~diffusers.models.modeling_utils.ModelMixin</code>) — | |
| The model to quantize`,name:"model"},{anchor:"diffusers.DiffusersQuantizer.postprocess_model.kwargs",description:`<strong>kwargs</strong> (<code>dict</code>, <em>optional</em>) — | |
| The keyword arguments that are passed along <code>_process_model_after_weight_loading</code>.`,name:"kwargs"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L187"}}),be=new w({props:{name:"preprocess_model",anchor:"diffusers.DiffusersQuantizer.preprocess_model",parameters:[{name:"model",val:": ModelMixin"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.preprocess_model.model",description:`<strong>model</strong> (<code>~diffusers.models.modeling_utils.ModelMixin</code>) — | |
| The model to quantize`,name:"model"},{anchor:"diffusers.DiffusersQuantizer.preprocess_model.kwargs",description:`<strong>kwargs</strong> (<code>dict</code>, <em>optional</em>) — | |
| The keyword arguments that are passed along <code>_process_model_before_weight_loading</code>.`,name:"kwargs"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L171"}}),ve=new w({props:{name:"update_device_map",anchor:"diffusers.DiffusersQuantizer.update_device_map",parameters:[{name:"device_map",val:": typing.Optional[typing.Dict[str, typing.Any]]"}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.update_device_map.device_map",description:`<strong>device_map</strong> (<code>Union[dict, str]</code>, <em>optional</em>) — | |
| The device_map that is passed through the <code>from_pretrained</code> method.`,name:"device_map"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L79"}}),ye=new w({props:{name:"update_missing_keys",anchor:"diffusers.DiffusersQuantizer.update_missing_keys",parameters:[{name:"model",val:""},{name:"missing_keys",val:": typing.List[str]"},{name:"prefix",val:": str"}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.update_missing_keys.missing_keys",description:`<strong>missing_keys</strong> (<code>List[str]</code>, <em>optional</em>) — | |
| The list of missing keys in the checkpoint compared to the state dict of the model`,name:"missing_keys"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L103"}}),$e=new w({props:{name:"update_torch_dtype",anchor:"diffusers.DiffusersQuantizer.update_torch_dtype",parameters:[{name:"torch_dtype",val:": torch.dtype"}],parametersDescription:[{anchor:"diffusers.DiffusersQuantizer.update_torch_dtype.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>) — | |
| The input dtype that is passed in <code>from_pretrained</code>`,name:"torch_dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L68"}}),we=new w({props:{name:"validate_environment",anchor:"diffusers.DiffusersQuantizer.validate_environment",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/vr_10312/src/diffusers/quantizers/base.py#L163"}}),ze=new Kn({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/quantization.md"}}),{c(){b=s("meta"),D=n(),q=s("p"),T=n(),c(C.$$.fragment),z=n(),M=s("p"),M.innerHTML=bn,Ke=n(),Y=s("p"),Y.innerHTML=vn,et=n(),c(B.$$.fragment),tt=n(),c(O.$$.fragment),nt=n(),$=s("div"),c(K.$$.fragment),kt=n(),Te=s("p"),Te.innerHTML=yn,Dt=n(),Ce=s("p"),Ce.innerHTML=$n,Lt=n(),Me=s("p"),Me.innerHTML=wn,Bt=n(),A=s("div"),c(ee.$$.fragment),At=n(),ke=s("p"),ke.innerHTML=zn,Qt=n(),Q=s("div"),c(te.$$.fragment),Ft=n(),De=s("p"),De.textContent=xn,It=n(),F=s("div"),c(ne.$$.fragment),Et=n(),Le=s("p"),Le.innerHTML=qn,Pt=n(),I=s("div"),c(oe.$$.fragment),Ht=n(),Be=s("p"),Be.textContent=Tn,ot=n(),c(se.$$.fragment),st=n(),L=s("div"),c(re.$$.fragment),Jt=n(),Ae=s("p"),Ae.textContent=Cn,rt=n(),c(ie.$$.fragment),it=n(),k=s("div"),c(ae.$$.fragment),Vt=n(),Qe=s("p"),Qe.textContent=Mn,Ut=n(),c(E.$$.fragment),at=n(),c(de.$$.fragment),dt=n(),d=s("div"),c(le.$$.fragment),Gt=n(),Fe=s("p"),Fe.textContent=kn,jt=n(),Ie=s("p"),Ie.innerHTML=Dn,Nt=n(),P=s("div"),c(ce.$$.fragment),Zt=n(),Ee=s("p"),Ee.textContent=Ln,Rt=n(),H=s("div"),c(ue.$$.fragment),Xt=n(),Pe=s("p"),Pe.innerHTML=Bn,Wt=n(),J=s("div"),c(fe.$$.fragment),St=n(),He=s("p"),He.textContent=An,Yt=n(),V=s("div"),c(me.$$.fragment),Ot=n(),Je=s("p"),Je.textContent=Qn,Kt=n(),U=s("div"),c(pe.$$.fragment),en=n(),Ve=s("p"),Ve.textContent=Fn,tn=n(),G=s("div"),c(ge.$$.fragment),nn=n(),Ue=s("p"),Ue.textContent=In,on=n(),j=s("div"),c(he.$$.fragment),sn=n(),Ge=s("p"),Ge.innerHTML=En,rn=n(),N=s("div"),c(_e.$$.fragment),an=n(),je=s("p"),je.innerHTML=Pn,dn=n(),Z=s("div"),c(be.$$.fragment),ln=n(),Ne=s("p"),Ne.innerHTML=Hn,cn=n(),R=s("div"),c(ve.$$.fragment),un=n(),Ze=s("p"),Ze.innerHTML=Jn,fn=n(),X=s("div"),c(ye.$$.fragment),mn=n(),Re=s("p"),Re.innerHTML=Vn,pn=n(),W=s("div"),c($e.$$.fragment),gn=n(),Xe=s("p"),Xe.textContent=Un,hn=n(),S=s("div"),c(we.$$.fragment),_n=n(),We=s("p"),We.innerHTML=Gn,lt=n(),c(ze.$$.fragment),ct=n(),Ye=s("p"),this.h()},l(e){const a=Wn("svelte-u9bgzb",document.head);b=r(a,"META",{name:!0,content:!0}),a.forEach(i),D=o(e),q=r(e,"P",{}),v(q).forEach(i),T=o(e),u(C.$$.fragment,e),z=o(e),M=r(e,"P",{"data-svelte-h":!0}),h(M)!=="svelte-gx66go"&&(M.innerHTML=bn),Ke=o(e),Y=r(e,"P",{"data-svelte-h":!0}),h(Y)!=="svelte-1s84hqw"&&(Y.innerHTML=vn),et=o(e),u(B.$$.fragment,e),tt=o(e),u(O.$$.fragment,e),nt=o(e),$=r(e,"DIV",{class:!0});var x=v($);u(K.$$.fragment,x),kt=o(x),Te=r(x,"P",{"data-svelte-h":!0}),h(Te)!=="svelte-woamwr"&&(Te.innerHTML=yn),Dt=o(x),Ce=r(x,"P",{"data-svelte-h":!0}),h(Ce)!=="svelte-ki5gis"&&(Ce.innerHTML=$n),Lt=o(x),Me=r(x,"P",{"data-svelte-h":!0}),h(Me)!=="svelte-8qsk2q"&&(Me.innerHTML=wn),Bt=o(x),A=r(x,"DIV",{class:!0});var xe=v(A);u(ee.$$.fragment,xe),At=o(xe),ke=r(xe,"P",{"data-svelte-h":!0}),h(ke)!=="svelte-10tvzyv"&&(ke.innerHTML=zn),xe.forEach(i),Qt=o(x),Q=r(x,"DIV",{class:!0});var ft=v(Q);u(te.$$.fragment,ft),Ft=o(ft),De=r(ft,"P",{"data-svelte-h":!0}),h(De)!=="svelte-gy26u4"&&(De.textContent=xn),ft.forEach(i),It=o(x),F=r(x,"DIV",{class:!0});var mt=v(F);u(ne.$$.fragment,mt),Et=o(mt),Le=r(mt,"P",{"data-svelte-h":!0}),h(Le)!=="svelte-19bn0da"&&(Le.innerHTML=qn),mt.forEach(i),Pt=o(x),I=r(x,"DIV",{class:!0});var pt=v(I);u(oe.$$.fragment,pt),Ht=o(pt),Be=r(pt,"P",{"data-svelte-h":!0}),h(Be)!=="svelte-1p6bdas"&&(Be.textContent=Tn),pt.forEach(i),x.forEach(i),ot=o(e),u(se.$$.fragment,e),st=o(e),L=r(e,"DIV",{class:!0});var gt=v(L);u(re.$$.fragment,gt),Jt=o(gt),Ae=r(gt,"P",{"data-svelte-h":!0}),h(Ae)!=="svelte-1r606z3"&&(Ae.textContent=Cn),gt.forEach(i),rt=o(e),u(ie.$$.fragment,e),it=o(e),k=r(e,"DIV",{class:!0});var Se=v(k);u(ae.$$.fragment,Se),Vt=o(Se),Qe=r(Se,"P",{"data-svelte-h":!0}),h(Qe)!=="svelte-1pwo8e0"&&(Qe.textContent=Mn),Ut=o(Se),u(E.$$.fragment,Se),Se.forEach(i),at=o(e),u(de.$$.fragment,e),dt=o(e),d=r(e,"DIV",{class:!0});var l=v(d);u(le.$$.fragment,l),Gt=o(l),Fe=r(l,"P",{"data-svelte-h":!0}),h(Fe)!=="svelte-n1gm3c"&&(Fe.textContent=kn),jt=o(l),Ie=r(l,"P",{"data-svelte-h":!0}),h(Ie)!=="svelte-1fnduym"&&(Ie.innerHTML=Dn),Nt=o(l),P=r(l,"DIV",{class:!0});var ht=v(P);u(ce.$$.fragment,ht),Zt=o(ht),Ee=r(ht,"P",{"data-svelte-h":!0}),h(Ee)!=="svelte-1d4i4z7"&&(Ee.textContent=Ln),ht.forEach(i),Rt=o(l),H=r(l,"DIV",{class:!0});var _t=v(H);u(ue.$$.fragment,_t),Xt=o(_t),Pe=r(_t,"P",{"data-svelte-h":!0}),h(Pe)!=="svelte-eyxa3y"&&(Pe.innerHTML=Bn),_t.forEach(i),Wt=o(l),J=r(l,"DIV",{class:!0});var bt=v(J);u(fe.$$.fragment,bt),St=o(bt),He=r(bt,"P",{"data-svelte-h":!0}),h(He)!=="svelte-y0lxmf"&&(He.textContent=An),bt.forEach(i),Yt=o(l),V=r(l,"DIV",{class:!0});var vt=v(V);u(me.$$.fragment,vt),Ot=o(vt),Je=r(vt,"P",{"data-svelte-h":!0}),h(Je)!=="svelte-1170ss6"&&(Je.textContent=Qn),vt.forEach(i),Kt=o(l),U=r(l,"DIV",{class:!0});var yt=v(U);u(pe.$$.fragment,yt),en=o(yt),Ve=r(yt,"P",{"data-svelte-h":!0}),h(Ve)!=="svelte-odkanz"&&(Ve.textContent=Fn),yt.forEach(i),tn=o(l),G=r(l,"DIV",{class:!0});var $t=v(G);u(ge.$$.fragment,$t),nn=o($t),Ue=r($t,"P",{"data-svelte-h":!0}),h(Ue)!=="svelte-1wzx7fq"&&(Ue.textContent=In),$t.forEach(i),on=o(l),j=r(l,"DIV",{class:!0});var wt=v(j);u(he.$$.fragment,wt),sn=o(wt),Ge=r(wt,"P",{"data-svelte-h":!0}),h(Ge)!=="svelte-1cb2fzf"&&(Ge.innerHTML=En),wt.forEach(i),rn=o(l),N=r(l,"DIV",{class:!0});var zt=v(N);u(_e.$$.fragment,zt),an=o(zt),je=r(zt,"P",{"data-svelte-h":!0}),h(je)!=="svelte-6rgq61"&&(je.innerHTML=Pn),zt.forEach(i),dn=o(l),Z=r(l,"DIV",{class:!0});var xt=v(Z);u(be.$$.fragment,xt),ln=o(xt),Ne=r(xt,"P",{"data-svelte-h":!0}),h(Ne)!=="svelte-wiwxpv"&&(Ne.innerHTML=Hn),xt.forEach(i),cn=o(l),R=r(l,"DIV",{class:!0});var qt=v(R);u(ve.$$.fragment,qt),un=o(qt),Ze=r(qt,"P",{"data-svelte-h":!0}),h(Ze)!=="svelte-5g503h"&&(Ze.innerHTML=Jn),qt.forEach(i),fn=o(l),X=r(l,"DIV",{class:!0});var Tt=v(X);u(ye.$$.fragment,Tt),mn=o(Tt),Re=r(Tt,"P",{"data-svelte-h":!0}),h(Re)!=="svelte-13hqoy0"&&(Re.innerHTML=Vn),Tt.forEach(i),pn=o(l),W=r(l,"DIV",{class:!0});var Ct=v(W);u($e.$$.fragment,Ct),gn=o(Ct),Xe=r(Ct,"P",{"data-svelte-h":!0}),h(Xe)!=="svelte-udr2k7"&&(Xe.textContent=Un),Ct.forEach(i),hn=o(l),S=r(l,"DIV",{class:!0});var Mt=v(S);u(we.$$.fragment,Mt),_n=o(Mt),We=r(Mt,"P",{"data-svelte-h":!0}),h(We)!=="svelte-1ra2q1u"&&(We.innerHTML=Gn),Mt.forEach(i),l.forEach(i),lt=o(e),u(ze.$$.fragment,e),ct=o(e),Ye=r(e,"P",{}),v(Ye).forEach(i),this.h()},h(){y(b,"name","hf:doc:metadata"),y(b,"content",oo),y(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(F,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(I,"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"),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(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(H,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(U,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(j,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(X,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),y(d,"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,a){t(document.head,b),_(e,D,a),_(e,q,a),_(e,T,a),f(C,e,a),_(e,z,a),_(e,M,a),_(e,Ke,a),_(e,Y,a),_(e,et,a),f(B,e,a),_(e,tt,a),f(O,e,a),_(e,nt,a),_(e,$,a),f(K,$,null),t($,kt),t($,Te),t($,Dt),t($,Ce),t($,Lt),t($,Me),t($,Bt),t($,A),f(ee,A,null),t(A,At),t(A,ke),t($,Qt),t($,Q),f(te,Q,null),t(Q,Ft),t(Q,De),t($,It),t($,F),f(ne,F,null),t(F,Et),t(F,Le),t($,Pt),t($,I),f(oe,I,null),t(I,Ht),t(I,Be),_(e,ot,a),f(se,e,a),_(e,st,a),_(e,L,a),f(re,L,null),t(L,Jt),t(L,Ae),_(e,rt,a),f(ie,e,a),_(e,it,a),_(e,k,a),f(ae,k,null),t(k,Vt),t(k,Qe),t(k,Ut),f(E,k,null),_(e,at,a),f(de,e,a),_(e,dt,a),_(e,d,a),f(le,d,null),t(d,Gt),t(d,Fe),t(d,jt),t(d,Ie),t(d,Nt),t(d,P),f(ce,P,null),t(P,Zt),t(P,Ee),t(d,Rt),t(d,H),f(ue,H,null),t(H,Xt),t(H,Pe),t(d,Wt),t(d,J),f(fe,J,null),t(J,St),t(J,He),t(d,Yt),t(d,V),f(me,V,null),t(V,Ot),t(V,Je),t(d,Kt),t(d,U),f(pe,U,null),t(U,en),t(U,Ve),t(d,tn),t(d,G),f(ge,G,null),t(G,nn),t(G,Ue),t(d,on),t(d,j),f(he,j,null),t(j,sn),t(j,Ge),t(d,rn),t(d,N),f(_e,N,null),t(N,an),t(N,je),t(d,dn),t(d,Z),f(be,Z,null),t(Z,ln),t(Z,Ne),t(d,cn),t(d,R),f(ve,R,null),t(R,un),t(R,Ze),t(d,fn),t(d,X),f(ye,X,null),t(X,mn),t(X,Re),t(d,pn),t(d,W),f($e,W,null),t(W,gn),t(W,Xe),t(d,hn),t(d,S),f(we,S,null),t(S,_n),t(S,We),_(e,lt,a),f(ze,e,a),_(e,ct,a),_(e,Ye,a),ut=!0},p(e,[a]){const x={};a&2&&(x.$$scope={dirty:a,ctx:e}),B.$set(x);const xe={};a&2&&(xe.$$scope={dirty:a,ctx:e}),E.$set(xe)},i(e){ut||(m(C.$$.fragment,e),m(B.$$.fragment,e),m(O.$$.fragment,e),m(K.$$.fragment,e),m(ee.$$.fragment,e),m(te.$$.fragment,e),m(ne.$$.fragment,e),m(oe.$$.fragment,e),m(se.$$.fragment,e),m(re.$$.fragment,e),m(ie.$$.fragment,e),m(ae.$$.fragment,e),m(E.$$.fragment,e),m(de.$$.fragment,e),m(le.$$.fragment,e),m(ce.$$.fragment,e),m(ue.$$.fragment,e),m(fe.$$.fragment,e),m(me.$$.fragment,e),m(pe.$$.fragment,e),m(ge.$$.fragment,e),m(he.$$.fragment,e),m(_e.$$.fragment,e),m(be.$$.fragment,e),m(ve.$$.fragment,e),m(ye.$$.fragment,e),m($e.$$.fragment,e),m(we.$$.fragment,e),m(ze.$$.fragment,e),ut=!0)},o(e){p(C.$$.fragment,e),p(B.$$.fragment,e),p(O.$$.fragment,e),p(K.$$.fragment,e),p(ee.$$.fragment,e),p(te.$$.fragment,e),p(ne.$$.fragment,e),p(oe.$$.fragment,e),p(se.$$.fragment,e),p(re.$$.fragment,e),p(ie.$$.fragment,e),p(ae.$$.fragment,e),p(E.$$.fragment,e),p(de.$$.fragment,e),p(le.$$.fragment,e),p(ce.$$.fragment,e),p(ue.$$.fragment,e),p(fe.$$.fragment,e),p(me.$$.fragment,e),p(pe.$$.fragment,e),p(ge.$$.fragment,e),p(he.$$.fragment,e),p(_e.$$.fragment,e),p(be.$$.fragment,e),p(ve.$$.fragment,e),p(ye.$$.fragment,e),p($e.$$.fragment,e),p(we.$$.fragment,e),p(ze.$$.fragment,e),ut=!1},d(e){e&&(i(D),i(q),i(T),i(z),i(M),i(Ke),i(Y),i(et),i(tt),i(nt),i($),i(ot),i(st),i(L),i(rt),i(it),i(k),i(at),i(dt),i(d),i(lt),i(ct),i(Ye)),i(b),g(C,e),g(B,e),g(O,e),g(K),g(ee),g(te),g(ne),g(oe),g(se,e),g(re),g(ie,e),g(ae),g(E),g(de,e),g(le),g(ce),g(ue),g(fe),g(me),g(pe),g(ge),g(he),g(_e),g(be),g(ve),g(ye),g($e),g(we),g(ze,e)}}}const oo='{"title":"Quantization","local":"quantization","sections":[{"title":"BitsAndBytesConfig","local":"diffusers.BitsAndBytesConfig","sections":[],"depth":2},{"title":"GGUFQuantizationConfig","local":"diffusers.GGUFQuantizationConfig","sections":[],"depth":2},{"title":"TorchAoConfig","local":"diffusers.TorchAoConfig","sections":[],"depth":2},{"title":"DiffusersQuantizer","local":"diffusers.DiffusersQuantizer","sections":[],"depth":2}],"depth":1}';function so(qe){return Zn(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class mo extends Rn{constructor(b){super(),Xn(this,b,so,no,Nn,{})}}export{mo as component}; | |
Xet Storage Details
- Size:
- 37.8 kB
- Xet hash:
- 33e61f955fc69b8318a06bb2ebadb556859d9a712bee34b8d3c6cd5cd1a5f24e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.