Buckets:
| import{s as _n,o as bn,n as vn}from"../chunks/scheduler.8c3d61f6.js";import{S as yn,i as $n,g as r,s as n,r as f,A as zn,h as a,f as o,c as s,j as b,u as c,x as u,k as v,y as t,a as z,v as m,d as p,t as h,w as g}from"../chunks/index.da70eac4.js";import{T as xn}from"../chunks/Tip.1d9b8c37.js";import{D as $}from"../chunks/Docstring.ee4b6913.js";import{H as Rt,E as wn}from"../chunks/EditOnGithub.1e64e623.js";function qn(Ae){let x,N='Learn how to quantize models in the <a href="../quantization/overview">Quantization</a> guide.';return{c(){x=r("p"),x.innerHTML=N},l(w){x=a(w,"P",{"data-svelte-h":!0}),u(x)!=="svelte-1dd515k"&&(x.innerHTML=N)},m(w,me){z(w,x,me)},p:vn,d(w){w&&o(x)}}}function Tn(Ae){let x,N,w,me,S,Ee,O,Gt='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>.',Ie,U,Yt='Quantization techniques that aren’t supported in Transformers can be added with the <a href="/docs/diffusers/main/en/api/quantization#diffusers.DiffusersQuantizer">DiffusersQuantizer</a> class.',Fe,q,Ve,R,je,_,G,lt,pe,Jt=`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>.`,ut,he,Wt="This replaces <code>load_in_8bit</code> or <code>load_in_4bit</code>therefore both options are mutually exclusive.",ft,ge,Kt=`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.`,ct,T,Y,mt,_e,Xt="Returns <code>True</code> if the model is quantizable, <code>False</code> otherwise.",pt,C,J,ht,be,Zt="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",gt,L,W,_t,ve,en=`This method returns the quantization method used for the model. If the model is not quantizable, it returns | |
| <code>None</code>.`,bt,D,K,vt,ye,tn=`Removes all attributes from config which correspond to the default config attributes for better readability and | |
| serializes to a Python dictionary.`,Ne,X,Se,i,Z,yt,$e,nn=`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.`,$t,ze,sn=`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.`,zt,k,ee,xt,xe,rn="adjust max_memory argument for infer_auto_device_map() if extra memory is needed for quantization",wt,M,te,qt,we,an=`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>.`,Tt,B,ne,Ct,qe,on=`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.`,Lt,P,se,Dt,Te,dn="takes needed components from state_dict and creates quantized param.",kt,Q,re,Mt,Ce,ln=`Potentially dequantize the model to retrive the original model, with some loss in accuracy / performance. Note | |
| not all quantization schemes support this.`,Bt,H,ae,Pt,Le,un=`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.`,Qt,A,oe,Ht,De,fn=`Post-process the model post weights loading. Make sure to override the abstract method | |
| <code>_process_model_after_weight_loading</code>.`,At,E,ie,Et,ke,cn=`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>.`,It,I,de,Ft,Me,mn=`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”“`,Vt,F,le,jt,Be,pn="Override this method if you want to adjust the <code>missing_keys</code>.",Nt,V,ue,St,Pe,hn=`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`,Ot,j,fe,Ut,Qe,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.`,Oe,ce,Ue,He,Re;return S=new Rt({props:{title:"Quantization",local:"quantization",headingTag:"h1"}}),q=new xn({props:{$$slots:{default:[qn]},$$scope:{ctx:Ae}}}),R=new Rt({props:{title:"BitsAndBytesConfig",local:"diffusers.BitsAndBytesConfig",headingTag:"h2"}}),G=new $({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/main/src/diffusers/quantizers/quantization_config.py#L161"}}),Y=new $({props:{name:"is_quantizable",anchor:"diffusers.BitsAndBytesConfig.is_quantizable",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L334"}}),J=new $({props:{name:"post_init",anchor:"diffusers.BitsAndBytesConfig.post_init",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L297"}}),W=new $({props:{name:"quantization_method",anchor:"diffusers.BitsAndBytesConfig.quantization_method",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L340"}}),K=new $({props:{name:"to_diff_dict",anchor:"diffusers.BitsAndBytesConfig.to_diff_dict",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L371",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> | |
| `}}),X=new Rt({props:{title:"DiffusersQuantizer",local:"diffusers.DiffusersQuantizer",headingTag:"h2"}}),Z=new $({props:{name:"class diffusers.DiffusersQuantizer",anchor:"diffusers.DiffusersQuantizer",parameters:[{name:"quantization_config",val:": QuantizationConfigMixin"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L34"}}),ee=new $({props:{name:"adjust_max_memory",anchor:"diffusers.DiffusersQuantizer.adjust_max_memory",parameters:[{name:"max_memory",val:": Dict"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L133"}}),te=new $({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/main/src/diffusers/quantizers/base.py#L91"}}),ne=new $({props:{name:"check_quantized_param",anchor:"diffusers.DiffusersQuantizer.check_quantized_param",parameters:[{name:"model",val:": ModelMixin"},{name:"param_value",val:": torch.Tensor"},{name:"param_name",val:": str"},{name:"state_dict",val:": Dict"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L137"}}),se=new $({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/main/src/diffusers/quantizers/base.py#L151"}}),re=new $({props:{name:"dequantize",anchor:"diffusers.DiffusersQuantizer.dequantize",parameters:[{name:"model",val:""}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L197"}}),ae=new $({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/main/src/diffusers/quantizers/base.py#L113"}}),oe=new $({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/main/src/diffusers/quantizers/base.py#L184"}}),ie=new $({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/main/src/diffusers/quantizers/base.py#L168"}}),de=new $({props:{name:"update_device_map",anchor:"diffusers.DiffusersQuantizer.update_device_map",parameters:[{name:"device_map",val:": Optional"}],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/main/src/diffusers/quantizers/base.py#L79"}}),le=new $({props:{name:"update_missing_keys",anchor:"diffusers.DiffusersQuantizer.update_missing_keys",parameters:[{name:"model",val:""},{name:"missing_keys",val:": List"},{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/main/src/diffusers/quantizers/base.py#L103"}}),ue=new $({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/main/src/diffusers/quantizers/base.py#L68"}}),fe=new $({props:{name:"validate_environment",anchor:"diffusers.DiffusersQuantizer.validate_environment",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L160"}}),ce=new wn({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/quantization.md"}}),{c(){x=r("meta"),N=n(),w=r("p"),me=n(),f(S.$$.fragment),Ee=n(),O=r("p"),O.innerHTML=Gt,Ie=n(),U=r("p"),U.innerHTML=Yt,Fe=n(),f(q.$$.fragment),Ve=n(),f(R.$$.fragment),je=n(),_=r("div"),f(G.$$.fragment),lt=n(),pe=r("p"),pe.innerHTML=Jt,ut=n(),he=r("p"),he.innerHTML=Wt,ft=n(),ge=r("p"),ge.innerHTML=Kt,ct=n(),T=r("div"),f(Y.$$.fragment),mt=n(),_e=r("p"),_e.innerHTML=Xt,pt=n(),C=r("div"),f(J.$$.fragment),ht=n(),be=r("p"),be.textContent=Zt,gt=n(),L=r("div"),f(W.$$.fragment),_t=n(),ve=r("p"),ve.innerHTML=en,bt=n(),D=r("div"),f(K.$$.fragment),vt=n(),ye=r("p"),ye.textContent=tn,Ne=n(),f(X.$$.fragment),Se=n(),i=r("div"),f(Z.$$.fragment),yt=n(),$e=r("p"),$e.textContent=nn,$t=n(),ze=r("p"),ze.innerHTML=sn,zt=n(),k=r("div"),f(ee.$$.fragment),xt=n(),xe=r("p"),xe.textContent=rn,wt=n(),M=r("div"),f(te.$$.fragment),qt=n(),we=r("p"),we.innerHTML=an,Tt=n(),B=r("div"),f(ne.$$.fragment),Ct=n(),qe=r("p"),qe.textContent=on,Lt=n(),P=r("div"),f(se.$$.fragment),Dt=n(),Te=r("p"),Te.textContent=dn,kt=n(),Q=r("div"),f(re.$$.fragment),Mt=n(),Ce=r("p"),Ce.textContent=ln,Bt=n(),H=r("div"),f(ae.$$.fragment),Pt=n(),Le=r("p"),Le.innerHTML=un,Qt=n(),A=r("div"),f(oe.$$.fragment),Ht=n(),De=r("p"),De.innerHTML=fn,At=n(),E=r("div"),f(ie.$$.fragment),Et=n(),ke=r("p"),ke.innerHTML=cn,It=n(),I=r("div"),f(de.$$.fragment),Ft=n(),Me=r("p"),Me.innerHTML=mn,Vt=n(),F=r("div"),f(le.$$.fragment),jt=n(),Be=r("p"),Be.innerHTML=pn,Nt=n(),V=r("div"),f(ue.$$.fragment),St=n(),Pe=r("p"),Pe.textContent=hn,Ot=n(),j=r("div"),f(fe.$$.fragment),Ut=n(),Qe=r("p"),Qe.innerHTML=gn,Oe=n(),f(ce.$$.fragment),Ue=n(),He=r("p"),this.h()},l(e){const l=zn("svelte-u9bgzb",document.head);x=a(l,"META",{name:!0,content:!0}),l.forEach(o),N=s(e),w=a(e,"P",{}),b(w).forEach(o),me=s(e),c(S.$$.fragment,e),Ee=s(e),O=a(e,"P",{"data-svelte-h":!0}),u(O)!=="svelte-gx66go"&&(O.innerHTML=Gt),Ie=s(e),U=a(e,"P",{"data-svelte-h":!0}),u(U)!=="svelte-4nuvgp"&&(U.innerHTML=Yt),Fe=s(e),c(q.$$.fragment,e),Ve=s(e),c(R.$$.fragment,e),je=s(e),_=a(e,"DIV",{class:!0});var y=b(_);c(G.$$.fragment,y),lt=s(y),pe=a(y,"P",{"data-svelte-h":!0}),u(pe)!=="svelte-woamwr"&&(pe.innerHTML=Jt),ut=s(y),he=a(y,"P",{"data-svelte-h":!0}),u(he)!=="svelte-ki5gis"&&(he.innerHTML=Wt),ft=s(y),ge=a(y,"P",{"data-svelte-h":!0}),u(ge)!=="svelte-8qsk2q"&&(ge.innerHTML=Kt),ct=s(y),T=a(y,"DIV",{class:!0});var Ge=b(T);c(Y.$$.fragment,Ge),mt=s(Ge),_e=a(Ge,"P",{"data-svelte-h":!0}),u(_e)!=="svelte-10tvzyv"&&(_e.innerHTML=Xt),Ge.forEach(o),pt=s(y),C=a(y,"DIV",{class:!0});var Ye=b(C);c(J.$$.fragment,Ye),ht=s(Ye),be=a(Ye,"P",{"data-svelte-h":!0}),u(be)!=="svelte-gy26u4"&&(be.textContent=Zt),Ye.forEach(o),gt=s(y),L=a(y,"DIV",{class:!0});var Je=b(L);c(W.$$.fragment,Je),_t=s(Je),ve=a(Je,"P",{"data-svelte-h":!0}),u(ve)!=="svelte-19bn0da"&&(ve.innerHTML=en),Je.forEach(o),bt=s(y),D=a(y,"DIV",{class:!0});var We=b(D);c(K.$$.fragment,We),vt=s(We),ye=a(We,"P",{"data-svelte-h":!0}),u(ye)!=="svelte-1p6bdas"&&(ye.textContent=tn),We.forEach(o),y.forEach(o),Ne=s(e),c(X.$$.fragment,e),Se=s(e),i=a(e,"DIV",{class:!0});var d=b(i);c(Z.$$.fragment,d),yt=s(d),$e=a(d,"P",{"data-svelte-h":!0}),u($e)!=="svelte-n1gm3c"&&($e.textContent=nn),$t=s(d),ze=a(d,"P",{"data-svelte-h":!0}),u(ze)!=="svelte-1fnduym"&&(ze.innerHTML=sn),zt=s(d),k=a(d,"DIV",{class:!0});var Ke=b(k);c(ee.$$.fragment,Ke),xt=s(Ke),xe=a(Ke,"P",{"data-svelte-h":!0}),u(xe)!=="svelte-1d4i4z7"&&(xe.textContent=rn),Ke.forEach(o),wt=s(d),M=a(d,"DIV",{class:!0});var Xe=b(M);c(te.$$.fragment,Xe),qt=s(Xe),we=a(Xe,"P",{"data-svelte-h":!0}),u(we)!=="svelte-eyxa3y"&&(we.innerHTML=an),Xe.forEach(o),Tt=s(d),B=a(d,"DIV",{class:!0});var Ze=b(B);c(ne.$$.fragment,Ze),Ct=s(Ze),qe=a(Ze,"P",{"data-svelte-h":!0}),u(qe)!=="svelte-y0lxmf"&&(qe.textContent=on),Ze.forEach(o),Lt=s(d),P=a(d,"DIV",{class:!0});var et=b(P);c(se.$$.fragment,et),Dt=s(et),Te=a(et,"P",{"data-svelte-h":!0}),u(Te)!=="svelte-odkanz"&&(Te.textContent=dn),et.forEach(o),kt=s(d),Q=a(d,"DIV",{class:!0});var tt=b(Q);c(re.$$.fragment,tt),Mt=s(tt),Ce=a(tt,"P",{"data-svelte-h":!0}),u(Ce)!=="svelte-1wzx7fq"&&(Ce.textContent=ln),tt.forEach(o),Bt=s(d),H=a(d,"DIV",{class:!0});var nt=b(H);c(ae.$$.fragment,nt),Pt=s(nt),Le=a(nt,"P",{"data-svelte-h":!0}),u(Le)!=="svelte-1cb2fzf"&&(Le.innerHTML=un),nt.forEach(o),Qt=s(d),A=a(d,"DIV",{class:!0});var st=b(A);c(oe.$$.fragment,st),Ht=s(st),De=a(st,"P",{"data-svelte-h":!0}),u(De)!=="svelte-6rgq61"&&(De.innerHTML=fn),st.forEach(o),At=s(d),E=a(d,"DIV",{class:!0});var rt=b(E);c(ie.$$.fragment,rt),Et=s(rt),ke=a(rt,"P",{"data-svelte-h":!0}),u(ke)!=="svelte-wiwxpv"&&(ke.innerHTML=cn),rt.forEach(o),It=s(d),I=a(d,"DIV",{class:!0});var at=b(I);c(de.$$.fragment,at),Ft=s(at),Me=a(at,"P",{"data-svelte-h":!0}),u(Me)!=="svelte-5g503h"&&(Me.innerHTML=mn),at.forEach(o),Vt=s(d),F=a(d,"DIV",{class:!0});var ot=b(F);c(le.$$.fragment,ot),jt=s(ot),Be=a(ot,"P",{"data-svelte-h":!0}),u(Be)!=="svelte-13hqoy0"&&(Be.innerHTML=pn),ot.forEach(o),Nt=s(d),V=a(d,"DIV",{class:!0});var it=b(V);c(ue.$$.fragment,it),St=s(it),Pe=a(it,"P",{"data-svelte-h":!0}),u(Pe)!=="svelte-udr2k7"&&(Pe.textContent=hn),it.forEach(o),Ot=s(d),j=a(d,"DIV",{class:!0});var dt=b(j);c(fe.$$.fragment,dt),Ut=s(dt),Qe=a(dt,"P",{"data-svelte-h":!0}),u(Qe)!=="svelte-1ra2q1u"&&(Qe.innerHTML=gn),dt.forEach(o),d.forEach(o),Oe=s(e),c(ce.$$.fragment,e),Ue=s(e),He=a(e,"P",{}),b(He).forEach(o),this.h()},h(){v(x,"name","hf:doc:metadata"),v(x,"content",Cn),v(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(D,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(_,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(H,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(F,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(j,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),v(i,"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,l){t(document.head,x),z(e,N,l),z(e,w,l),z(e,me,l),m(S,e,l),z(e,Ee,l),z(e,O,l),z(e,Ie,l),z(e,U,l),z(e,Fe,l),m(q,e,l),z(e,Ve,l),m(R,e,l),z(e,je,l),z(e,_,l),m(G,_,null),t(_,lt),t(_,pe),t(_,ut),t(_,he),t(_,ft),t(_,ge),t(_,ct),t(_,T),m(Y,T,null),t(T,mt),t(T,_e),t(_,pt),t(_,C),m(J,C,null),t(C,ht),t(C,be),t(_,gt),t(_,L),m(W,L,null),t(L,_t),t(L,ve),t(_,bt),t(_,D),m(K,D,null),t(D,vt),t(D,ye),z(e,Ne,l),m(X,e,l),z(e,Se,l),z(e,i,l),m(Z,i,null),t(i,yt),t(i,$e),t(i,$t),t(i,ze),t(i,zt),t(i,k),m(ee,k,null),t(k,xt),t(k,xe),t(i,wt),t(i,M),m(te,M,null),t(M,qt),t(M,we),t(i,Tt),t(i,B),m(ne,B,null),t(B,Ct),t(B,qe),t(i,Lt),t(i,P),m(se,P,null),t(P,Dt),t(P,Te),t(i,kt),t(i,Q),m(re,Q,null),t(Q,Mt),t(Q,Ce),t(i,Bt),t(i,H),m(ae,H,null),t(H,Pt),t(H,Le),t(i,Qt),t(i,A),m(oe,A,null),t(A,Ht),t(A,De),t(i,At),t(i,E),m(ie,E,null),t(E,Et),t(E,ke),t(i,It),t(i,I),m(de,I,null),t(I,Ft),t(I,Me),t(i,Vt),t(i,F),m(le,F,null),t(F,jt),t(F,Be),t(i,Nt),t(i,V),m(ue,V,null),t(V,St),t(V,Pe),t(i,Ot),t(i,j),m(fe,j,null),t(j,Ut),t(j,Qe),z(e,Oe,l),m(ce,e,l),z(e,Ue,l),z(e,He,l),Re=!0},p(e,[l]){const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),q.$set(y)},i(e){Re||(p(S.$$.fragment,e),p(q.$$.fragment,e),p(R.$$.fragment,e),p(G.$$.fragment,e),p(Y.$$.fragment,e),p(J.$$.fragment,e),p(W.$$.fragment,e),p(K.$$.fragment,e),p(X.$$.fragment,e),p(Z.$$.fragment,e),p(ee.$$.fragment,e),p(te.$$.fragment,e),p(ne.$$.fragment,e),p(se.$$.fragment,e),p(re.$$.fragment,e),p(ae.$$.fragment,e),p(oe.$$.fragment,e),p(ie.$$.fragment,e),p(de.$$.fragment,e),p(le.$$.fragment,e),p(ue.$$.fragment,e),p(fe.$$.fragment,e),p(ce.$$.fragment,e),Re=!0)},o(e){h(S.$$.fragment,e),h(q.$$.fragment,e),h(R.$$.fragment,e),h(G.$$.fragment,e),h(Y.$$.fragment,e),h(J.$$.fragment,e),h(W.$$.fragment,e),h(K.$$.fragment,e),h(X.$$.fragment,e),h(Z.$$.fragment,e),h(ee.$$.fragment,e),h(te.$$.fragment,e),h(ne.$$.fragment,e),h(se.$$.fragment,e),h(re.$$.fragment,e),h(ae.$$.fragment,e),h(oe.$$.fragment,e),h(ie.$$.fragment,e),h(de.$$.fragment,e),h(le.$$.fragment,e),h(ue.$$.fragment,e),h(fe.$$.fragment,e),h(ce.$$.fragment,e),Re=!1},d(e){e&&(o(N),o(w),o(me),o(Ee),o(O),o(Ie),o(U),o(Fe),o(Ve),o(je),o(_),o(Ne),o(Se),o(i),o(Oe),o(Ue),o(He)),o(x),g(S,e),g(q,e),g(R,e),g(G),g(Y),g(J),g(W),g(K),g(X,e),g(Z),g(ee),g(te),g(ne),g(se),g(re),g(ae),g(oe),g(ie),g(de),g(le),g(ue),g(fe),g(ce,e)}}}const Cn='{"title":"Quantization","local":"quantization","sections":[{"title":"BitsAndBytesConfig","local":"diffusers.BitsAndBytesConfig","sections":[],"depth":2},{"title":"DiffusersQuantizer","local":"diffusers.DiffusersQuantizer","sections":[],"depth":2}],"depth":1}';function Ln(Ae){return bn(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Qn extends yn{constructor(x){super(),$n(this,x,Ln,Tn,_n,{})}}export{Qn as component}; | |
Xet Storage Details
- Size:
- 29.4 kB
- Xet hash:
- 4aa2cf06c0780190f5c5427eac4d0170f89851074f0774dfc8760c0089b80167
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.