import{S as oc,i as lc,s as dc,e as r,k as i,w as oe,t as o,M as ic,c as s,d as t,m as n,a,x as le,h as l,b as c,G as e,g as p,y as de,q as ie,o as ne,B as ce,v as nc}from"../../../chunks/vendor-hf-doc-builder.js";import{T as cc}from"../../../chunks/Tip-hf-doc-builder.js";import{D as ra}from"../../../chunks/Docstring-hf-doc-builder.js";import{I as sa}from"../../../chunks/IconCopyLink-hf-doc-builder.js";function hc(vs){let m,he,g,b,x,S,Te,A,w,fe,v;return{c(){m=r("p"),he=o("To use private or "),g=r("a"),b=o("gated models"),x=o(`, log-in with
`),S=r("code"),Te=o("huggingface-cli login"),A=o(`. You can also activate the special
`),w=r("a"),fe=o("\u201Coffline-mode\u201D"),v=o(` to use this method in a
firewalled environment.`),this.h()},l(k){m=s(k,"P",{});var E=a(m);he=l(E,"To use private or "),g=s(E,"A",{href:!0,rel:!0});var qe=a(g);b=l(qe,"gated models"),qe.forEach(t),x=l(E,`, log-in with
`),S=s(E,"CODE",{});var Be=a(S);Te=l(Be,"huggingface-cli login"),Be.forEach(t),A=l(E,`. You can also activate the special
`),w=s(E,"A",{href:!0,rel:!0});var ue=a(w);fe=l(ue,"\u201Coffline-mode\u201D"),ue.forEach(t),v=l(E,` to use this method in a
firewalled environment.`),E.forEach(t),this.h()},h(){c(g,"href","https://huggingface.co/docs/hub/models-gated#gated-models"),c(g,"rel","nofollow"),c(w,"href","https://huggingface.co/diffusers/installation.html#offline-mode"),c(w,"rel","nofollow")},m(k,E){p(k,m,E),e(m,he),e(m,g),e(g,b),e(m,x),e(m,S),e(S,Te),e(m,A),e(m,w),e(w,fe),e(m,v)},d(k){k&&t(m)}}}function fc(vs){let m,he,g,b,x,S,Te,A,w,fe,v,k,E,qe,Be,ue,aa,oa,Jt,la,da,Vt,ia,na,Gt,ca,ha,gs,We,fa,Es,pe,we,ua,Yt,pa,ma,_a,ye,va,jt,ga,Ea,Ds,y,Da,Pe,Sa,ba,$e,Ma,Ta,Ss,me,Qt,O,Xt,wa,ya,Zt,Pa,$a,er,xa,Aa,h,C,tr,ka,Oa,rr,ze,Ca,Ka,bs,La,K,sr,Na,Ra,ar,Je,Ha,Ia,Ve,Ua,or,Fa,qa,L,lr,Ba,Wa,dr,Ge,za,Ja,Ye,Va,ir,Ga,Ya,N,nr,ja,Qa,cr,je,Xa,Za,_e,eo,hr,to,ro,fr,so,ao,R,ur,oo,lo,pr,io,no,Qe,co,mr,ho,fo,H,_r,uo,po,vr,mo,_o,Xe,vo,gr,go,Eo,I,Er,Do,So,Dr,Ze,bo,Mo,Ms,To,U,Sr,wo,yo,br,et,Po,$o,tt,xo,Mr,Ao,ko,F,Tr,Oo,Co,wr,rt,Ko,Lo,Ts,No,q,yr,Ro,Ho,Pr,st,Io,Uo,at,Fo,$r,qo,Bo,B,xr,Wo,zo,Ar,ot,Jo,Vo,ws,Go,W,kr,Yo,jo,Or,lt,Qo,Xo,dt,Zo,Cr,el,tl,z,Kr,rl,sl,Lr,al,ol,ys,ll,J,Nr,dl,il,Rr,nl,cl,Ps,hl,V,Hr,fl,ul,Ir,it,pl,ml,$s,_l,G,Ur,vl,gl,Fr,nt,El,Dl,xs,Sl,Y,qr,bl,Ml,Br,ct,Tl,wl,As,yl,j,Wr,Pl,$l,zr,ht,xl,Al,ks,kl,Q,Jr,Ol,Cl,Vr,ft,Kl,Ll,ut,Nl,Gr,Rl,Hl,X,Yr,Il,Ul,jr,pt,Fl,ql,Os,Bl,Z,Qr,Wl,zl,Xr,mt,Jl,Vl,Cs,Ks,ve,Gl,_t,Yl,jl,Ls,ee,ge,Zr,xe,Ql,es,Xl,Ns,_,Ae,Zl,ts,ed,td,vt,gt,rd,sd,ad,M,Et,od,ld,rs,dd,id,ss,nd,cd,as,hd,fd,ud,os,pd,md,ls,P,ds,_d,vd,is,gd,Ed,Dt,Dd,Sd,bd,$,ke,Md,ns,Td,wd,Ee,yd,De,Oe,Pd,Ce,$d,St,xd,Ad,Rs,te,Se,cs,Ke,kd,hs,Od,Hs,re,Le,Cd,Ne,Kd,fs,Ld,Nd,Is,se,be,us,Re,Rd,ps,Hd,Us,He,ms,Id,Ud,Fs,Me,Fd,Ie,qd,Bd,qs;return S=new sa({}),xe=new sa({}),Ae=new ra({props:{name:"class diffusers.SchedulerMixin",anchor:"diffusers.SchedulerMixin",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L63"}}),ke=new ra({props:{name:"from_pretrained",anchor:"diffusers.SchedulerMixin.from_pretrained",parameters:[{name:"pretrained_model_name_or_path",val:": typing.Dict[str, typing.Any] = None"},{name:"subfolder",val:": typing.Optional[str] = None"},{name:"return_unused_kwargs",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.SchedulerMixin.from_pretrained.pretrained_model_name_or_path",description:`<strong>pretrained_model_name_or_path</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) &#x2014;
Can be either:</p>
<ul>
<li>A string, the <em>model id</em> (for example <code>google/ddpm-celebahq-256</code>) of a pretrained model hosted on
the Hub.</li>
<li>A path to a <em>directory</em> (for example <code>./my_model_directory</code>) containing the scheduler
configuration saved with <a href="/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin.save_pretrained">save_pretrained()</a>.</li>
</ul>`,name:"pretrained_model_name_or_path"},{anchor:"diffusers.SchedulerMixin.from_pretrained.subfolder",description:`<strong>subfolder</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The subfolder location of a model file within a larger model repository on the Hub or locally.`,name:"subfolder"},{anchor:"diffusers.SchedulerMixin.from_pretrained.return_unused_kwargs",description:`<strong>return_unused_kwargs</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether kwargs that are not consumed by the Python class should be returned or not.`,name:"return_unused_kwargs"},{anchor:"diffusers.SchedulerMixin.from_pretrained.cache_dir",description:`<strong>cache_dir</strong> (<code>Union[str, os.PathLike]</code>, <em>optional</em>) &#x2014;
Path to a directory where a downloaded pretrained model configuration is cached if the standard cache
is not used.`,name:"cache_dir"},{anchor:"diffusers.SchedulerMixin.from_pretrained.force_download",description:`<strong>force_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to force the (re-)download of the model weights and configuration files, overriding the
cached versions if they exist.`,name:"force_download"},{anchor:"diffusers.SchedulerMixin.from_pretrained.resume_download",description:`<strong>resume_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to resume downloading the model weights and configuration files. If set to <code>False</code>, any
incompletely downloaded files are deleted.`,name:"resume_download"},{anchor:"diffusers.SchedulerMixin.from_pretrained.proxies",description:`<strong>proxies</strong> (<code>Dict[str, str]</code>, <em>optional</em>) &#x2014;
A dictionary of proxy servers to use by protocol or endpoint, for example, <code>{&apos;http&apos;: &apos;foo.bar:3128&apos;, &apos;http://hostname&apos;: &apos;foo.bar:4012&apos;}</code>. The proxies are used on each request.`,name:"proxies"},{anchor:"diffusers.SchedulerMixin.from_pretrained.output_loading_info(bool,",description:`<strong>output_loading_info(<code>bool</code>,</strong> <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to also return a dictionary containing missing keys, unexpected keys and error messages.`,name:"output_loading_info(bool,"},{anchor:"diffusers.SchedulerMixin.from_pretrained.local_files_only(bool,",description:`<strong>local_files_only(<code>bool</code>,</strong> <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to only load local model weights and configuration files or not. If set to <code>True</code>, the model
won&#x2019;t be downloaded from the Hub.`,name:"local_files_only(bool,"},{anchor:"diffusers.SchedulerMixin.from_pretrained.use_auth_token",description:`<strong>use_auth_token</strong> (<code>str</code> or <em>bool</em>, <em>optional</em>) &#x2014;
The token to use as HTTP bearer authorization for remote files. If <code>True</code>, the token generated from
<code>diffusers-cli login</code> (stored in <code>~/.huggingface</code>) is used.`,name:"use_auth_token"},{anchor:"diffusers.SchedulerMixin.from_pretrained.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;main&quot;</code>) &#x2014;
The specific model version to use. It can be a branch name, a tag name, a commit id, or any identifier
allowed by Git.`,name:"revision"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L83"}}),Ee=new cc({props:{$$slots:{default:[hc]},$$scope:{ctx:vs}}}),Oe=new ra({props:{name:"save_pretrained",anchor:"diffusers.SchedulerMixin.save_pretrained",parameters:[{name:"save_directory",val:": typing.Union[str, os.PathLike]"},{name:"push_to_hub",val:": bool = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.SchedulerMixin.save_pretrained.save_directory",description:`<strong>save_directory</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
Directory to save a configuration JSON file to. Will be created if it doesn&#x2019;t exist.`,name:"save_directory"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L149"}}),Ke=new sa({}),Le=new ra({props:{name:"class diffusers.schedulers.scheduling_utils.SchedulerOutput",anchor:"diffusers.schedulers.scheduling_utils.SchedulerOutput",parameters:[{name:"prev_sample",val:": FloatTensor"}],parametersDescription:[{anchor:"diffusers.schedulers.scheduling_utils.SchedulerOutput.prev_sample",description:`<strong>prev_sample</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, num_channels, height, width)</code> for images) &#x2014;
Computed sample <code>(x_{t-1})</code> of previous timestep. <code>prev_sample</code> should be used as next model input in the
denoising loop.`,name:"prev_sample"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L50"}}),Re=new sa({}),{c(){m=r("meta"),he=i(),g=r("h1"),b=r("a"),x=r("span"),oe(S.$$.fragment),Te=i(),A=r("span"),w=o("Schedulers"),fe=i(),v=r("p"),k=o("\u{1F917} Diffusers provides many scheduler functions for the diffusion process. A scheduler takes a model\u2019s output (the sample which the diffusion process is iterating on) and a timestep to return a denoised sample. The timestep is important because it dictates where in the diffusion process the step is; data is generated by iterating forward "),E=r("em"),qe=o("n"),Be=o(" timesteps and inference occurs by propagating backward through the timesteps. Based on the timestep, a scheduler may be "),ue=r("em"),aa=o("discrete"),oa=o(" in which case the timestep is an "),Jt=r("code"),la=o("int"),da=o(" or "),Vt=r("em"),ia=o("continuous"),na=o(" in which case the timestep is a "),Gt=r("code"),ca=o("float"),ha=o("."),gs=i(),We=r("p"),fa=o("Depending on the context, a scheduler defines how to iteratively add noise to an image or how to update a sample based on a model\u2019s output:"),Es=i(),pe=r("ul"),we=r("li"),ua=o("during "),Yt=r("em"),pa=o("training"),ma=o(", a scheduler adds noise (there are different algorithms for how to add noise) to a sample to train a diffusion model"),_a=i(),ye=r("li"),va=o("during "),jt=r("em"),ga=o("inference"),Ea=o(", a scheduler defines how to update a sample based on a pretrained model\u2019s output"),Ds=i(),y=r("p"),Da=o("Many schedulers are implemented from the "),Pe=r("a"),Sa=o("k-diffusion"),ba=o(" library by "),$e=r("a"),Ma=o("Katherine Crowson"),Ta=o(", and they\u2019re also widely used in A1111. To help you map the schedulers from k-diffusion and A1111 to the schedulers in \u{1F917} Diffusers, take a look at the table below:"),Ss=i(),me=r("table"),Qt=r("thead"),O=r("tr"),Xt=r("th"),wa=o("A1111/k-diffusion"),ya=i(),Zt=r("th"),Pa=o("\u{1F917} Diffusers"),$a=i(),er=r("th"),xa=o("Usage"),Aa=i(),h=r("tbody"),C=r("tr"),tr=r("td"),ka=o("DPM++ 2M"),Oa=i(),rr=r("td"),ze=r("a"),Ca=o("DPMSolverMultistepScheduler"),Ka=i(),bs=r("td"),La=i(),K=r("tr"),sr=r("td"),Na=o("DPM++ 2M Karras"),Ra=i(),ar=r("td"),Je=r("a"),Ha=o("DPMSolverMultistepScheduler"),Ia=i(),Ve=r("td"),Ua=o("init with "),or=r("code"),Fa=o("use_karras_sigmas=True"),qa=i(),L=r("tr"),lr=r("td"),Ba=o("DPM++ 2M SDE"),Wa=i(),dr=r("td"),Ge=r("a"),za=o("DPMSolverMultistepScheduler"),Ja=i(),Ye=r("td"),Va=o("init with "),ir=r("code"),Ga=o('algorithm_type="sde-dpmsolver++"'),Ya=i(),N=r("tr"),nr=r("td"),ja=o("DPM++ 2M SDE Karras"),Qa=i(),cr=r("td"),je=r("a"),Xa=o("DPMSolverMultistepScheduler"),Za=i(),_e=r("td"),eo=o("init with "),hr=r("code"),to=o("use_karras_sigmas=True"),ro=o(" and "),fr=r("code"),so=o('algorithm_type="sde-dpmsolver++"'),ao=i(),R=r("tr"),ur=r("td"),oo=o("DPM++ 2S a"),lo=i(),pr=r("td"),io=o("N/A"),no=i(),Qe=r("td"),co=o("very similar to  "),mr=r("code"),ho=o("DPMSolverSinglestepScheduler"),fo=i(),H=r("tr"),_r=r("td"),uo=o("DPM++ 2S a Karras"),po=i(),vr=r("td"),mo=o("N/A"),_o=i(),Xe=r("td"),vo=o("very similar to  "),gr=r("code"),go=o("DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)"),Eo=i(),I=r("tr"),Er=r("td"),Do=o("DPM++ SDE"),So=i(),Dr=r("td"),Ze=r("a"),bo=o("DPMSolverSinglestepScheduler"),Mo=i(),Ms=r("td"),To=i(),U=r("tr"),Sr=r("td"),wo=o("DPM++ SDE Karras"),yo=i(),br=r("td"),et=r("a"),Po=o("DPMSolverSinglestepScheduler"),$o=i(),tt=r("td"),xo=o("init with "),Mr=r("code"),Ao=o("use_karras_sigmas=True"),ko=i(),F=r("tr"),Tr=r("td"),Oo=o("DPM2"),Co=i(),wr=r("td"),rt=r("a"),Ko=o("KDPM2DiscreteScheduler"),Lo=i(),Ts=r("td"),No=i(),q=r("tr"),yr=r("td"),Ro=o("DPM2 Karras"),Ho=i(),Pr=r("td"),st=r("a"),Io=o("KDPM2DiscreteScheduler"),Uo=i(),at=r("td"),Fo=o("init with "),$r=r("code"),qo=o("use_karras_sigmas=True"),Bo=i(),B=r("tr"),xr=r("td"),Wo=o("DPM2 a"),zo=i(),Ar=r("td"),ot=r("a"),Jo=o("KDPM2AncestralDiscreteScheduler"),Vo=i(),ws=r("td"),Go=i(),W=r("tr"),kr=r("td"),Yo=o("DPM2 a Karras"),jo=i(),Or=r("td"),lt=r("a"),Qo=o("KDPM2AncestralDiscreteScheduler"),Xo=i(),dt=r("td"),Zo=o("init with "),Cr=r("code"),el=o("use_karras_sigmas=True"),tl=i(),z=r("tr"),Kr=r("td"),rl=o("DPM adaptive"),sl=i(),Lr=r("td"),al=o("N/A"),ol=i(),ys=r("td"),ll=i(),J=r("tr"),Nr=r("td"),dl=o("DPM fast"),il=i(),Rr=r("td"),nl=o("N/A"),cl=i(),Ps=r("td"),hl=i(),V=r("tr"),Hr=r("td"),fl=o("Euler"),ul=i(),Ir=r("td"),it=r("a"),pl=o("EulerDiscreteScheduler"),ml=i(),$s=r("td"),_l=i(),G=r("tr"),Ur=r("td"),vl=o("Euler a"),gl=i(),Fr=r("td"),nt=r("a"),El=o("EulerAncestralDiscreteScheduler"),Dl=i(),xs=r("td"),Sl=i(),Y=r("tr"),qr=r("td"),bl=o("Heun"),Ml=i(),Br=r("td"),ct=r("a"),Tl=o("HeunDiscreteScheduler"),wl=i(),As=r("td"),yl=i(),j=r("tr"),Wr=r("td"),Pl=o("LMS"),$l=i(),zr=r("td"),ht=r("a"),xl=o("LMSDiscreteScheduler"),Al=i(),ks=r("td"),kl=i(),Q=r("tr"),Jr=r("td"),Ol=o("LMS Karras"),Cl=i(),Vr=r("td"),ft=r("a"),Kl=o("LMSDiscreteScheduler"),Ll=i(),ut=r("td"),Nl=o("init with "),Gr=r("code"),Rl=o("use_karras_sigmas=True"),Hl=i(),X=r("tr"),Yr=r("td"),Il=o("N/A"),Ul=i(),jr=r("td"),pt=r("a"),Fl=o("DEISMultistepScheduler"),ql=i(),Os=r("td"),Bl=i(),Z=r("tr"),Qr=r("td"),Wl=o("N/A"),zl=i(),Xr=r("td"),mt=r("a"),Jl=o("UniPCMultistepScheduler"),Vl=i(),Cs=r("td"),Ks=i(),ve=r("p"),Gl=o("All schedulers are built from the base "),_t=r("a"),Yl=o("SchedulerMixin"),jl=o(" class which implements low level utilities shared by all schedulers."),Ls=i(),ee=r("h2"),ge=r("a"),Zr=r("span"),oe(xe.$$.fragment),Ql=i(),es=r("span"),Xl=o("SchedulerMixin"),Ns=i(),_=r("div"),oe(Ae.$$.fragment),Zl=i(),ts=r("p"),ed=o("Base class for all schedulers."),td=i(),vt=r("p"),gt=r("a"),rd=o("SchedulerMixin"),sd=o(` contains common functions shared by all schedulers such as general loading and saving
functionalities.`),ad=i(),M=r("p"),Et=r("a"),od=o("ConfigMixin"),ld=o(" takes care of storing the configuration attributes (like "),rs=r("code"),dd=o("num_train_timesteps"),id=o(`) that are passed to
the scheduler\u2019s `),ss=r("code"),nd=o("__init__"),cd=o(" function, and the attributes can be accessed by "),as=r("code"),hd=o("scheduler.config.num_train_timesteps"),fd=o("."),ud=i(),os=r("p"),pd=o("Class attributes:"),md=i(),ls=r("ul"),P=r("li"),ds=r("strong"),_d=o("_compatibles"),vd=o(" ("),is=r("code"),gd=o("List[str]"),Ed=o(`) \u2014 A list of scheduler classes that are compatible with the parent scheduler
class. Use `),Dt=r("a"),Dd=o("from_config()"),Sd=o(` to load a different compatible scheduler class (should be overridden
by parent class).`),bd=i(),$=r("div"),oe(ke.$$.fragment),Md=i(),ns=r("p"),Td=o("Instantiate a scheduler from a pre-defined JSON configuration file in a local directory or Hub repository."),wd=i(),oe(Ee.$$.fragment),yd=i(),De=r("div"),oe(Oe.$$.fragment),Pd=i(),Ce=r("p"),$d=o(`Save a scheduler configuration object to a directory so that it can be reloaded using the
`),St=r("a"),xd=o("from_pretrained()"),Ad=o(" class method."),Rs=i(),te=r("h2"),Se=r("a"),cs=r("span"),oe(Ke.$$.fragment),kd=i(),hs=r("span"),Od=o("SchedulerOutput"),Hs=i(),re=r("div"),oe(Le.$$.fragment),Cd=i(),Ne=r("p"),Kd=o("Base class for the output of a scheduler\u2019s "),fs=r("code"),Ld=o("step"),Nd=o(" function."),Is=i(),se=r("h2"),be=r("a"),us=r("span"),oe(Re.$$.fragment),Rd=i(),ps=r("span"),Hd=o("KarrasDiffusionSchedulers"),Us=i(),He=r("p"),ms=r("code"),Id=o("KarrasDiffusionSchedulers"),Ud=o(" are a broad generalization of schedulers in \u{1F917} Diffusers. The schedulers in this class are distinguished at a high level by their noise sampling strategy, the type of network and scaling, the training strategy, and how the loss is weighed."),Fs=i(),Me=r("p"),Fd=o("The different schedulers in this class, depending on the ordinary differential equations (ODE) solver type, fall into the above taxonomy and provide a good abstraction for the design of the main schedulers implemented in \u{1F917} Diffusers. The schedulers in this class are given "),Ie=r("a"),qd=o("here"),Bd=o("."),this.h()},l(d){const u=ic('[data-svelte="svelte-1phssyn"]',document.head);m=s(u,"META",{name:!0,content:!0}),u.forEach(t),he=n(d),g=s(d,"H1",{class:!0});var Ue=a(g);b=s(Ue,"A",{id:!0,class:!0,href:!0});var ei=a(b);x=s(ei,"SPAN",{});var ti=a(x);le(S.$$.fragment,ti),ti.forEach(t),ei.forEach(t),Te=n(Ue),A=s(Ue,"SPAN",{});var ri=a(A);w=l(ri,"Schedulers"),ri.forEach(t),Ue.forEach(t),fe=n(d),v=s(d,"P",{});var T=a(v);k=l(T,"\u{1F917} Diffusers provides many scheduler functions for the diffusion process. A scheduler takes a model\u2019s output (the sample which the diffusion process is iterating on) and a timestep to return a denoised sample. The timestep is important because it dictates where in the diffusion process the step is; data is generated by iterating forward "),E=s(T,"EM",{});var si=a(E);qe=l(si,"n"),si.forEach(t),Be=l(T," timesteps and inference occurs by propagating backward through the timesteps. Based on the timestep, a scheduler may be "),ue=s(T,"EM",{});var ai=a(ue);aa=l(ai,"discrete"),ai.forEach(t),oa=l(T," in which case the timestep is an "),Jt=s(T,"CODE",{});var oi=a(Jt);la=l(oi,"int"),oi.forEach(t),da=l(T," or "),Vt=s(T,"EM",{});var li=a(Vt);ia=l(li,"continuous"),li.forEach(t),na=l(T," in which case the timestep is a "),Gt=s(T,"CODE",{});var di=a(Gt);ca=l(di,"float"),di.forEach(t),ha=l(T,"."),T.forEach(t),gs=n(d),We=s(d,"P",{});var ii=a(We);fa=l(ii,"Depending on the context, a scheduler defines how to iteratively add noise to an image or how to update a sample based on a model\u2019s output:"),ii.forEach(t),Es=n(d),pe=s(d,"UL",{});var Bs=a(pe);we=s(Bs,"LI",{});var Ws=a(we);ua=l(Ws,"during "),Yt=s(Ws,"EM",{});var ni=a(Yt);pa=l(ni,"training"),ni.forEach(t),ma=l(Ws,", a scheduler adds noise (there are different algorithms for how to add noise) to a sample to train a diffusion model"),Ws.forEach(t),_a=n(Bs),ye=s(Bs,"LI",{});var zs=a(ye);va=l(zs,"during "),jt=s(zs,"EM",{});var ci=a(jt);ga=l(ci,"inference"),ci.forEach(t),Ea=l(zs,", a scheduler defines how to update a sample based on a pretrained model\u2019s output"),zs.forEach(t),Bs.forEach(t),Ds=n(d),y=s(d,"P",{});var bt=a(y);Da=l(bt,"Many schedulers are implemented from the "),Pe=s(bt,"A",{href:!0,rel:!0});var hi=a(Pe);Sa=l(hi,"k-diffusion"),hi.forEach(t),ba=l(bt," library by "),$e=s(bt,"A",{href:!0,rel:!0});var fi=a($e);Ma=l(fi,"Katherine Crowson"),fi.forEach(t),Ta=l(bt,", and they\u2019re also widely used in A1111. To help you map the schedulers from k-diffusion and A1111 to the schedulers in \u{1F917} Diffusers, take a look at the table below:"),bt.forEach(t),Ss=n(d),me=s(d,"TABLE",{});var Js=a(me);Qt=s(Js,"THEAD",{});var ui=a(Qt);O=s(ui,"TR",{});var Mt=a(O);Xt=s(Mt,"TH",{});var pi=a(Xt);wa=l(pi,"A1111/k-diffusion"),pi.forEach(t),ya=n(Mt),Zt=s(Mt,"TH",{});var mi=a(Zt);Pa=l(mi,"\u{1F917} Diffusers"),mi.forEach(t),$a=n(Mt),er=s(Mt,"TH",{});var _i=a(er);xa=l(_i,"Usage"),_i.forEach(t),Mt.forEach(t),ui.forEach(t),Aa=n(Js),h=s(Js,"TBODY",{});var f=a(h);C=s(f,"TR",{});var Tt=a(C);tr=s(Tt,"TD",{});var vi=a(tr);ka=l(vi,"DPM++ 2M"),vi.forEach(t),Oa=n(Tt),rr=s(Tt,"TD",{});var gi=a(rr);ze=s(gi,"A",{href:!0});var Ei=a(ze);Ca=l(Ei,"DPMSolverMultistepScheduler"),Ei.forEach(t),gi.forEach(t),Ka=n(Tt),bs=s(Tt,"TD",{}),a(bs).forEach(t),Tt.forEach(t),La=n(f),K=s(f,"TR",{});var wt=a(K);sr=s(wt,"TD",{});var Di=a(sr);Na=l(Di,"DPM++ 2M Karras"),Di.forEach(t),Ra=n(wt),ar=s(wt,"TD",{});var Si=a(ar);Je=s(Si,"A",{href:!0});var bi=a(Je);Ha=l(bi,"DPMSolverMultistepScheduler"),bi.forEach(t),Si.forEach(t),Ia=n(wt),Ve=s(wt,"TD",{});var Wd=a(Ve);Ua=l(Wd,"init with "),or=s(Wd,"CODE",{});var Mi=a(or);Fa=l(Mi,"use_karras_sigmas=True"),Mi.forEach(t),Wd.forEach(t),wt.forEach(t),qa=n(f),L=s(f,"TR",{});var yt=a(L);lr=s(yt,"TD",{});var Ti=a(lr);Ba=l(Ti,"DPM++ 2M SDE"),Ti.forEach(t),Wa=n(yt),dr=s(yt,"TD",{});var wi=a(dr);Ge=s(wi,"A",{href:!0});var yi=a(Ge);za=l(yi,"DPMSolverMultistepScheduler"),yi.forEach(t),wi.forEach(t),Ja=n(yt),Ye=s(yt,"TD",{});var zd=a(Ye);Va=l(zd,"init with "),ir=s(zd,"CODE",{});var Pi=a(ir);Ga=l(Pi,'algorithm_type="sde-dpmsolver++"'),Pi.forEach(t),zd.forEach(t),yt.forEach(t),Ya=n(f),N=s(f,"TR",{});var Pt=a(N);nr=s(Pt,"TD",{});var $i=a(nr);ja=l($i,"DPM++ 2M SDE Karras"),$i.forEach(t),Qa=n(Pt),cr=s(Pt,"TD",{});var xi=a(cr);je=s(xi,"A",{href:!0});var Ai=a(je);Xa=l(Ai,"DPMSolverMultistepScheduler"),Ai.forEach(t),xi.forEach(t),Za=n(Pt),_e=s(Pt,"TD",{});var _s=a(_e);eo=l(_s,"init with "),hr=s(_s,"CODE",{});var ki=a(hr);to=l(ki,"use_karras_sigmas=True"),ki.forEach(t),ro=l(_s," and "),fr=s(_s,"CODE",{});var Oi=a(fr);so=l(Oi,'algorithm_type="sde-dpmsolver++"'),Oi.forEach(t),_s.forEach(t),Pt.forEach(t),ao=n(f),R=s(f,"TR",{});var $t=a(R);ur=s($t,"TD",{});var Ci=a(ur);oo=l(Ci,"DPM++ 2S a"),Ci.forEach(t),lo=n($t),pr=s($t,"TD",{});var Ki=a(pr);io=l(Ki,"N/A"),Ki.forEach(t),no=n($t),Qe=s($t,"TD",{});var Jd=a(Qe);co=l(Jd,"very similar to  "),mr=s(Jd,"CODE",{});var Li=a(mr);ho=l(Li,"DPMSolverSinglestepScheduler"),Li.forEach(t),Jd.forEach(t),$t.forEach(t),fo=n(f),H=s(f,"TR",{});var xt=a(H);_r=s(xt,"TD",{});var Ni=a(_r);uo=l(Ni,"DPM++ 2S a Karras"),Ni.forEach(t),po=n(xt),vr=s(xt,"TD",{});var Ri=a(vr);mo=l(Ri,"N/A"),Ri.forEach(t),_o=n(xt),Xe=s(xt,"TD",{});var Vd=a(Xe);vo=l(Vd,"very similar to  "),gr=s(Vd,"CODE",{});var Hi=a(gr);go=l(Hi,"DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)"),Hi.forEach(t),Vd.forEach(t),xt.forEach(t),Eo=n(f),I=s(f,"TR",{});var At=a(I);Er=s(At,"TD",{});var Ii=a(Er);Do=l(Ii,"DPM++ SDE"),Ii.forEach(t),So=n(At),Dr=s(At,"TD",{});var Ui=a(Dr);Ze=s(Ui,"A",{href:!0});var Fi=a(Ze);bo=l(Fi,"DPMSolverSinglestepScheduler"),Fi.forEach(t),Ui.forEach(t),Mo=n(At),Ms=s(At,"TD",{}),a(Ms).forEach(t),At.forEach(t),To=n(f),U=s(f,"TR",{});var kt=a(U);Sr=s(kt,"TD",{});var qi=a(Sr);wo=l(qi,"DPM++ SDE Karras"),qi.forEach(t),yo=n(kt),br=s(kt,"TD",{});var Bi=a(br);et=s(Bi,"A",{href:!0});var Wi=a(et);Po=l(Wi,"DPMSolverSinglestepScheduler"),Wi.forEach(t),Bi.forEach(t),$o=n(kt),tt=s(kt,"TD",{});var Gd=a(tt);xo=l(Gd,"init with "),Mr=s(Gd,"CODE",{});var zi=a(Mr);Ao=l(zi,"use_karras_sigmas=True"),zi.forEach(t),Gd.forEach(t),kt.forEach(t),ko=n(f),F=s(f,"TR",{});var Ot=a(F);Tr=s(Ot,"TD",{});var Ji=a(Tr);Oo=l(Ji,"DPM2"),Ji.forEach(t),Co=n(Ot),wr=s(Ot,"TD",{});var Vi=a(wr);rt=s(Vi,"A",{href:!0});var Gi=a(rt);Ko=l(Gi,"KDPM2DiscreteScheduler"),Gi.forEach(t),Vi.forEach(t),Lo=n(Ot),Ts=s(Ot,"TD",{}),a(Ts).forEach(t),Ot.forEach(t),No=n(f),q=s(f,"TR",{});var Ct=a(q);yr=s(Ct,"TD",{});var Yi=a(yr);Ro=l(Yi,"DPM2 Karras"),Yi.forEach(t),Ho=n(Ct),Pr=s(Ct,"TD",{});var ji=a(Pr);st=s(ji,"A",{href:!0});var Qi=a(st);Io=l(Qi,"KDPM2DiscreteScheduler"),Qi.forEach(t),ji.forEach(t),Uo=n(Ct),at=s(Ct,"TD",{});var Yd=a(at);Fo=l(Yd,"init with "),$r=s(Yd,"CODE",{});var Xi=a($r);qo=l(Xi,"use_karras_sigmas=True"),Xi.forEach(t),Yd.forEach(t),Ct.forEach(t),Bo=n(f),B=s(f,"TR",{});var Kt=a(B);xr=s(Kt,"TD",{});var Zi=a(xr);Wo=l(Zi,"DPM2 a"),Zi.forEach(t),zo=n(Kt),Ar=s(Kt,"TD",{});var en=a(Ar);ot=s(en,"A",{href:!0});var tn=a(ot);Jo=l(tn,"KDPM2AncestralDiscreteScheduler"),tn.forEach(t),en.forEach(t),Vo=n(Kt),ws=s(Kt,"TD",{}),a(ws).forEach(t),Kt.forEach(t),Go=n(f),W=s(f,"TR",{});var Lt=a(W);kr=s(Lt,"TD",{});var rn=a(kr);Yo=l(rn,"DPM2 a Karras"),rn.forEach(t),jo=n(Lt),Or=s(Lt,"TD",{});var sn=a(Or);lt=s(sn,"A",{href:!0});var an=a(lt);Qo=l(an,"KDPM2AncestralDiscreteScheduler"),an.forEach(t),sn.forEach(t),Xo=n(Lt),dt=s(Lt,"TD",{});var jd=a(dt);Zo=l(jd,"init with "),Cr=s(jd,"CODE",{});var on=a(Cr);el=l(on,"use_karras_sigmas=True"),on.forEach(t),jd.forEach(t),Lt.forEach(t),tl=n(f),z=s(f,"TR",{});var Nt=a(z);Kr=s(Nt,"TD",{});var ln=a(Kr);rl=l(ln,"DPM adaptive"),ln.forEach(t),sl=n(Nt),Lr=s(Nt,"TD",{});var dn=a(Lr);al=l(dn,"N/A"),dn.forEach(t),ol=n(Nt),ys=s(Nt,"TD",{}),a(ys).forEach(t),Nt.forEach(t),ll=n(f),J=s(f,"TR",{});var Rt=a(J);Nr=s(Rt,"TD",{});var nn=a(Nr);dl=l(nn,"DPM fast"),nn.forEach(t),il=n(Rt),Rr=s(Rt,"TD",{});var cn=a(Rr);nl=l(cn,"N/A"),cn.forEach(t),cl=n(Rt),Ps=s(Rt,"TD",{}),a(Ps).forEach(t),Rt.forEach(t),hl=n(f),V=s(f,"TR",{});var Ht=a(V);Hr=s(Ht,"TD",{});var hn=a(Hr);fl=l(hn,"Euler"),hn.forEach(t),ul=n(Ht),Ir=s(Ht,"TD",{});var fn=a(Ir);it=s(fn,"A",{href:!0});var un=a(it);pl=l(un,"EulerDiscreteScheduler"),un.forEach(t),fn.forEach(t),ml=n(Ht),$s=s(Ht,"TD",{}),a($s).forEach(t),Ht.forEach(t),_l=n(f),G=s(f,"TR",{});var It=a(G);Ur=s(It,"TD",{});var pn=a(Ur);vl=l(pn,"Euler a"),pn.forEach(t),gl=n(It),Fr=s(It,"TD",{});var mn=a(Fr);nt=s(mn,"A",{href:!0});var _n=a(nt);El=l(_n,"EulerAncestralDiscreteScheduler"),_n.forEach(t),mn.forEach(t),Dl=n(It),xs=s(It,"TD",{}),a(xs).forEach(t),It.forEach(t),Sl=n(f),Y=s(f,"TR",{});var Ut=a(Y);qr=s(Ut,"TD",{});var vn=a(qr);bl=l(vn,"Heun"),vn.forEach(t),Ml=n(Ut),Br=s(Ut,"TD",{});var gn=a(Br);ct=s(gn,"A",{href:!0});var En=a(ct);Tl=l(En,"HeunDiscreteScheduler"),En.forEach(t),gn.forEach(t),wl=n(Ut),As=s(Ut,"TD",{}),a(As).forEach(t),Ut.forEach(t),yl=n(f),j=s(f,"TR",{});var Ft=a(j);Wr=s(Ft,"TD",{});var Dn=a(Wr);Pl=l(Dn,"LMS"),Dn.forEach(t),$l=n(Ft),zr=s(Ft,"TD",{});var Sn=a(zr);ht=s(Sn,"A",{href:!0});var bn=a(ht);xl=l(bn,"LMSDiscreteScheduler"),bn.forEach(t),Sn.forEach(t),Al=n(Ft),ks=s(Ft,"TD",{}),a(ks).forEach(t),Ft.forEach(t),kl=n(f),Q=s(f,"TR",{});var qt=a(Q);Jr=s(qt,"TD",{});var Mn=a(Jr);Ol=l(Mn,"LMS Karras"),Mn.forEach(t),Cl=n(qt),Vr=s(qt,"TD",{});var Tn=a(Vr);ft=s(Tn,"A",{href:!0});var wn=a(ft);Kl=l(wn,"LMSDiscreteScheduler"),wn.forEach(t),Tn.forEach(t),Ll=n(qt),ut=s(qt,"TD",{});var Qd=a(ut);Nl=l(Qd,"init with "),Gr=s(Qd,"CODE",{});var yn=a(Gr);Rl=l(yn,"use_karras_sigmas=True"),yn.forEach(t),Qd.forEach(t),qt.forEach(t),Hl=n(f),X=s(f,"TR",{});var Bt=a(X);Yr=s(Bt,"TD",{});var Pn=a(Yr);Il=l(Pn,"N/A"),Pn.forEach(t),Ul=n(Bt),jr=s(Bt,"TD",{});var $n=a(jr);pt=s($n,"A",{href:!0});var xn=a(pt);Fl=l(xn,"DEISMultistepScheduler"),xn.forEach(t),$n.forEach(t),ql=n(Bt),Os=s(Bt,"TD",{}),a(Os).forEach(t),Bt.forEach(t),Bl=n(f),Z=s(f,"TR",{});var Wt=a(Z);Qr=s(Wt,"TD",{});var An=a(Qr);Wl=l(An,"N/A"),An.forEach(t),zl=n(Wt),Xr=s(Wt,"TD",{});var kn=a(Xr);mt=s(kn,"A",{href:!0});var On=a(mt);Jl=l(On,"UniPCMultistepScheduler"),On.forEach(t),kn.forEach(t),Vl=n(Wt),Cs=s(Wt,"TD",{}),a(Cs).forEach(t),Wt.forEach(t),f.forEach(t),Js.forEach(t),Ks=n(d),ve=s(d,"P",{});var Vs=a(ve);Gl=l(Vs,"All schedulers are built from the base "),_t=s(Vs,"A",{href:!0});var Cn=a(_t);Yl=l(Cn,"SchedulerMixin"),Cn.forEach(t),jl=l(Vs," class which implements low level utilities shared by all schedulers."),Vs.forEach(t),Ls=n(d),ee=s(d,"H2",{class:!0});var Gs=a(ee);ge=s(Gs,"A",{id:!0,class:!0,href:!0});var Kn=a(ge);Zr=s(Kn,"SPAN",{});var Ln=a(Zr);le(xe.$$.fragment,Ln),Ln.forEach(t),Kn.forEach(t),Ql=n(Gs),es=s(Gs,"SPAN",{});var Nn=a(es);Xl=l(Nn,"SchedulerMixin"),Nn.forEach(t),Gs.forEach(t),Ns=n(d),_=s(d,"DIV",{class:!0});var D=a(_);le(Ae.$$.fragment,D),Zl=n(D),ts=s(D,"P",{});var Rn=a(ts);ed=l(Rn,"Base class for all schedulers."),Rn.forEach(t),td=n(D),vt=s(D,"P",{});var Xd=a(vt);gt=s(Xd,"A",{href:!0});var Hn=a(gt);rd=l(Hn,"SchedulerMixin"),Hn.forEach(t),sd=l(Xd,` contains common functions shared by all schedulers such as general loading and saving
functionalities.`),Xd.forEach(t),ad=n(D),M=s(D,"P",{});var ae=a(M);Et=s(ae,"A",{href:!0});var In=a(Et);od=l(In,"ConfigMixin"),In.forEach(t),ld=l(ae," takes care of storing the configuration attributes (like "),rs=s(ae,"CODE",{});var Un=a(rs);dd=l(Un,"num_train_timesteps"),Un.forEach(t),id=l(ae,`) that are passed to
the scheduler\u2019s `),ss=s(ae,"CODE",{});var Fn=a(ss);nd=l(Fn,"__init__"),Fn.forEach(t),cd=l(ae," function, and the attributes can be accessed by "),as=s(ae,"CODE",{});var qn=a(as);hd=l(qn,"scheduler.config.num_train_timesteps"),qn.forEach(t),fd=l(ae,"."),ae.forEach(t),ud=n(D),os=s(D,"P",{});var Bn=a(os);pd=l(Bn,"Class attributes:"),Bn.forEach(t),md=n(D),ls=s(D,"UL",{});var Wn=a(ls);P=s(Wn,"LI",{});var Fe=a(P);ds=s(Fe,"STRONG",{});var zn=a(ds);_d=l(zn,"_compatibles"),zn.forEach(t),vd=l(Fe," ("),is=s(Fe,"CODE",{});var Jn=a(is);gd=l(Jn,"List[str]"),Jn.forEach(t),Ed=l(Fe,`) \u2014 A list of scheduler classes that are compatible with the parent scheduler
class. Use `),Dt=s(Fe,"A",{href:!0});var Vn=a(Dt);Dd=l(Vn,"from_config()"),Vn.forEach(t),Sd=l(Fe,` to load a different compatible scheduler class (should be overridden
by parent class).`),Fe.forEach(t),Wn.forEach(t),bd=n(D),$=s(D,"DIV",{class:!0});var zt=a($);le(ke.$$.fragment,zt),Md=n(zt),ns=s(zt,"P",{});var Gn=a(ns);Td=l(Gn,"Instantiate a scheduler from a pre-defined JSON configuration file in a local directory or Hub repository."),Gn.forEach(t),wd=n(zt),le(Ee.$$.fragment,zt),zt.forEach(t),yd=n(D),De=s(D,"DIV",{class:!0});var Ys=a(De);le(Oe.$$.fragment,Ys),Pd=n(Ys),Ce=s(Ys,"P",{});var js=a(Ce);$d=l(js,`Save a scheduler configuration object to a directory so that it can be reloaded using the
`),St=s(js,"A",{href:!0});var Yn=a(St);xd=l(Yn,"from_pretrained()"),Yn.forEach(t),Ad=l(js," class method."),js.forEach(t),Ys.forEach(t),D.forEach(t),Rs=n(d),te=s(d,"H2",{class:!0});var Qs=a(te);Se=s(Qs,"A",{id:!0,class:!0,href:!0});var jn=a(Se);cs=s(jn,"SPAN",{});var Qn=a(cs);le(Ke.$$.fragment,Qn),Qn.forEach(t),jn.forEach(t),kd=n(Qs),hs=s(Qs,"SPAN",{});var Xn=a(hs);Od=l(Xn,"SchedulerOutput"),Xn.forEach(t),Qs.forEach(t),Hs=n(d),re=s(d,"DIV",{class:!0});var Xs=a(re);le(Le.$$.fragment,Xs),Cd=n(Xs),Ne=s(Xs,"P",{});var Zs=a(Ne);Kd=l(Zs,"Base class for the output of a scheduler\u2019s "),fs=s(Zs,"CODE",{});var Zn=a(fs);Ld=l(Zn,"step"),Zn.forEach(t),Nd=l(Zs," function."),Zs.forEach(t),Xs.forEach(t),Is=n(d),se=s(d,"H2",{class:!0});var ea=a(se);be=s(ea,"A",{id:!0,class:!0,href:!0});var ec=a(be);us=s(ec,"SPAN",{});var tc=a(us);le(Re.$$.fragment,tc),tc.forEach(t),ec.forEach(t),Rd=n(ea),ps=s(ea,"SPAN",{});var rc=a(ps);Hd=l(rc,"KarrasDiffusionSchedulers"),rc.forEach(t),ea.forEach(t),Us=n(d),He=s(d,"P",{});var Zd=a(He);ms=s(Zd,"CODE",{});var sc=a(ms);Id=l(sc,"KarrasDiffusionSchedulers"),sc.forEach(t),Ud=l(Zd," are a broad generalization of schedulers in \u{1F917} Diffusers. The schedulers in this class are distinguished at a high level by their noise sampling strategy, the type of network and scaling, the training strategy, and how the loss is weighed."),Zd.forEach(t),Fs=n(d),Me=s(d,"P",{});var ta=a(Me);Fd=l(ta,"The different schedulers in this class, depending on the ordinary differential equations (ODE) solver type, fall into the above taxonomy and provide a good abstraction for the design of the main schedulers implemented in \u{1F917} Diffusers. The schedulers in this class are given "),Ie=s(ta,"A",{href:!0,rel:!0});var ac=a(Ie);qd=l(ac,"here"),ac.forEach(t),Bd=l(ta,"."),ta.forEach(t),this.h()},h(){c(m,"name","hf:doc:metadata"),c(m,"content",JSON.stringify(uc)),c(b,"id","schedulers"),c(b,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(b,"href","#schedulers"),c(g,"class","relative group"),c(Pe,"href","https://github.com/crowsonkb/k-diffusion"),c(Pe,"rel","nofollow"),c($e,"href","https://github.com/crowsonkb/"),c($e,"rel","nofollow"),c(ze,"href","/docs/diffusers/main/en/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler"),c(Je,"href","/docs/diffusers/main/en/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler"),c(Ge,"href","/docs/diffusers/main/en/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler"),c(je,"href","/docs/diffusers/main/en/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler"),c(Ze,"href","/docs/diffusers/main/en/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler"),c(et,"href","/docs/diffusers/main/en/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler"),c(rt,"href","/docs/diffusers/main/en/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler"),c(st,"href","/docs/diffusers/main/en/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler"),c(ot,"href","/docs/diffusers/main/en/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler"),c(lt,"href","/docs/diffusers/main/en/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler"),c(it,"href","/docs/diffusers/main/en/api/schedulers/euler#diffusers.EulerDiscreteScheduler"),c(nt,"href","/docs/diffusers/main/en/api/schedulers/euler_ancestral#diffusers.EulerAncestralDiscreteScheduler"),c(ct,"href","/docs/diffusers/main/en/api/schedulers/heun#diffusers.HeunDiscreteScheduler"),c(ht,"href","/docs/diffusers/main/en/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler"),c(ft,"href","/docs/diffusers/main/en/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler"),c(pt,"href","/docs/diffusers/main/en/api/schedulers/deis#diffusers.DEISMultistepScheduler"),c(mt,"href","/docs/diffusers/main/en/api/schedulers/unipc#diffusers.UniPCMultistepScheduler"),c(_t,"href","/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin"),c(ge,"id","diffusers.SchedulerMixin"),c(ge,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(ge,"href","#diffusers.SchedulerMixin"),c(ee,"class","relative group"),c(gt,"href","/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin"),c(Et,"href","/docs/diffusers/main/en/api/configuration#diffusers.ConfigMixin"),c(Dt,"href","/docs/diffusers/main/en/api/configuration#diffusers.ConfigMixin.from_config"),c($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(St,"href","/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained"),c(De,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(_,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(Se,"id","diffusers.schedulers.scheduling_utils.SchedulerOutput"),c(Se,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(Se,"href","#diffusers.schedulers.scheduling_utils.SchedulerOutput"),c(te,"class","relative group"),c(re,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(be,"id","karrasdiffusionschedulers"),c(be,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(be,"href","#karrasdiffusionschedulers"),c(se,"class","relative group"),c(Ie,"href","https://github.com/huggingface/diffusers/blob/a69754bb879ed55b9b6dc9dd0b3cf4fa4124c765/src/diffusers/schedulers/scheduling_utils.py#L32"),c(Ie,"rel","nofollow")},m(d,u){e(document.head,m),p(d,he,u),p(d,g,u),e(g,b),e(b,x),de(S,x,null),e(g,Te),e(g,A),e(A,w),p(d,fe,u),p(d,v,u),e(v,k),e(v,E),e(E,qe),e(v,Be),e(v,ue),e(ue,aa),e(v,oa),e(v,Jt),e(Jt,la),e(v,da),e(v,Vt),e(Vt,ia),e(v,na),e(v,Gt),e(Gt,ca),e(v,ha),p(d,gs,u),p(d,We,u),e(We,fa),p(d,Es,u),p(d,pe,u),e(pe,we),e(we,ua),e(we,Yt),e(Yt,pa),e(we,ma),e(pe,_a),e(pe,ye),e(ye,va),e(ye,jt),e(jt,ga),e(ye,Ea),p(d,Ds,u),p(d,y,u),e(y,Da),e(y,Pe),e(Pe,Sa),e(y,ba),e(y,$e),e($e,Ma),e(y,Ta),p(d,Ss,u),p(d,me,u),e(me,Qt),e(Qt,O),e(O,Xt),e(Xt,wa),e(O,ya),e(O,Zt),e(Zt,Pa),e(O,$a),e(O,er),e(er,xa),e(me,Aa),e(me,h),e(h,C),e(C,tr),e(tr,ka),e(C,Oa),e(C,rr),e(rr,ze),e(ze,Ca),e(C,Ka),e(C,bs),e(h,La),e(h,K),e(K,sr),e(sr,Na),e(K,Ra),e(K,ar),e(ar,Je),e(Je,Ha),e(K,Ia),e(K,Ve),e(Ve,Ua),e(Ve,or),e(or,Fa),e(h,qa),e(h,L),e(L,lr),e(lr,Ba),e(L,Wa),e(L,dr),e(dr,Ge),e(Ge,za),e(L,Ja),e(L,Ye),e(Ye,Va),e(Ye,ir),e(ir,Ga),e(h,Ya),e(h,N),e(N,nr),e(nr,ja),e(N,Qa),e(N,cr),e(cr,je),e(je,Xa),e(N,Za),e(N,_e),e(_e,eo),e(_e,hr),e(hr,to),e(_e,ro),e(_e,fr),e(fr,so),e(h,ao),e(h,R),e(R,ur),e(ur,oo),e(R,lo),e(R,pr),e(pr,io),e(R,no),e(R,Qe),e(Qe,co),e(Qe,mr),e(mr,ho),e(h,fo),e(h,H),e(H,_r),e(_r,uo),e(H,po),e(H,vr),e(vr,mo),e(H,_o),e(H,Xe),e(Xe,vo),e(Xe,gr),e(gr,go),e(h,Eo),e(h,I),e(I,Er),e(Er,Do),e(I,So),e(I,Dr),e(Dr,Ze),e(Ze,bo),e(I,Mo),e(I,Ms),e(h,To),e(h,U),e(U,Sr),e(Sr,wo),e(U,yo),e(U,br),e(br,et),e(et,Po),e(U,$o),e(U,tt),e(tt,xo),e(tt,Mr),e(Mr,Ao),e(h,ko),e(h,F),e(F,Tr),e(Tr,Oo),e(F,Co),e(F,wr),e(wr,rt),e(rt,Ko),e(F,Lo),e(F,Ts),e(h,No),e(h,q),e(q,yr),e(yr,Ro),e(q,Ho),e(q,Pr),e(Pr,st),e(st,Io),e(q,Uo),e(q,at),e(at,Fo),e(at,$r),e($r,qo),e(h,Bo),e(h,B),e(B,xr),e(xr,Wo),e(B,zo),e(B,Ar),e(Ar,ot),e(ot,Jo),e(B,Vo),e(B,ws),e(h,Go),e(h,W),e(W,kr),e(kr,Yo),e(W,jo),e(W,Or),e(Or,lt),e(lt,Qo),e(W,Xo),e(W,dt),e(dt,Zo),e(dt,Cr),e(Cr,el),e(h,tl),e(h,z),e(z,Kr),e(Kr,rl),e(z,sl),e(z,Lr),e(Lr,al),e(z,ol),e(z,ys),e(h,ll),e(h,J),e(J,Nr),e(Nr,dl),e(J,il),e(J,Rr),e(Rr,nl),e(J,cl),e(J,Ps),e(h,hl),e(h,V),e(V,Hr),e(Hr,fl),e(V,ul),e(V,Ir),e(Ir,it),e(it,pl),e(V,ml),e(V,$s),e(h,_l),e(h,G),e(G,Ur),e(Ur,vl),e(G,gl),e(G,Fr),e(Fr,nt),e(nt,El),e(G,Dl),e(G,xs),e(h,Sl),e(h,Y),e(Y,qr),e(qr,bl),e(Y,Ml),e(Y,Br),e(Br,ct),e(ct,Tl),e(Y,wl),e(Y,As),e(h,yl),e(h,j),e(j,Wr),e(Wr,Pl),e(j,$l),e(j,zr),e(zr,ht),e(ht,xl),e(j,Al),e(j,ks),e(h,kl),e(h,Q),e(Q,Jr),e(Jr,Ol),e(Q,Cl),e(Q,Vr),e(Vr,ft),e(ft,Kl),e(Q,Ll),e(Q,ut),e(ut,Nl),e(ut,Gr),e(Gr,Rl),e(h,Hl),e(h,X),e(X,Yr),e(Yr,Il),e(X,Ul),e(X,jr),e(jr,pt),e(pt,Fl),e(X,ql),e(X,Os),e(h,Bl),e(h,Z),e(Z,Qr),e(Qr,Wl),e(Z,zl),e(Z,Xr),e(Xr,mt),e(mt,Jl),e(Z,Vl),e(Z,Cs),p(d,Ks,u),p(d,ve,u),e(ve,Gl),e(ve,_t),e(_t,Yl),e(ve,jl),p(d,Ls,u),p(d,ee,u),e(ee,ge),e(ge,Zr),de(xe,Zr,null),e(ee,Ql),e(ee,es),e(es,Xl),p(d,Ns,u),p(d,_,u),de(Ae,_,null),e(_,Zl),e(_,ts),e(ts,ed),e(_,td),e(_,vt),e(vt,gt),e(gt,rd),e(vt,sd),e(_,ad),e(_,M),e(M,Et),e(Et,od),e(M,ld),e(M,rs),e(rs,dd),e(M,id),e(M,ss),e(ss,nd),e(M,cd),e(M,as),e(as,hd),e(M,fd),e(_,ud),e(_,os),e(os,pd),e(_,md),e(_,ls),e(ls,P),e(P,ds),e(ds,_d),e(P,vd),e(P,is),e(is,gd),e(P,Ed),e(P,Dt),e(Dt,Dd),e(P,Sd),e(_,bd),e(_,$),de(ke,$,null),e($,Md),e($,ns),e(ns,Td),e($,wd),de(Ee,$,null),e(_,yd),e(_,De),de(Oe,De,null),e(De,Pd),e(De,Ce),e(Ce,$d),e(Ce,St),e(St,xd),e(Ce,Ad),p(d,Rs,u),p(d,te,u),e(te,Se),e(Se,cs),de(Ke,cs,null),e(te,kd),e(te,hs),e(hs,Od),p(d,Hs,u),p(d,re,u),de(Le,re,null),e(re,Cd),e(re,Ne),e(Ne,Kd),e(Ne,fs),e(fs,Ld),e(Ne,Nd),p(d,Is,u),p(d,se,u),e(se,be),e(be,us),de(Re,us,null),e(se,Rd),e(se,ps),e(ps,Hd),p(d,Us,u),p(d,He,u),e(He,ms),e(ms,Id),e(He,Ud),p(d,Fs,u),p(d,Me,u),e(Me,Fd),e(Me,Ie),e(Ie,qd),e(Me,Bd),qs=!0},p(d,[u]){const Ue={};u&2&&(Ue.$$scope={dirty:u,ctx:d}),Ee.$set(Ue)},i(d){qs||(ie(S.$$.fragment,d),ie(xe.$$.fragment,d),ie(Ae.$$.fragment,d),ie(ke.$$.fragment,d),ie(Ee.$$.fragment,d),ie(Oe.$$.fragment,d),ie(Ke.$$.fragment,d),ie(Le.$$.fragment,d),ie(Re.$$.fragment,d),qs=!0)},o(d){ne(S.$$.fragment,d),ne(xe.$$.fragment,d),ne(Ae.$$.fragment,d),ne(ke.$$.fragment,d),ne(Ee.$$.fragment,d),ne(Oe.$$.fragment,d),ne(Ke.$$.fragment,d),ne(Le.$$.fragment,d),ne(Re.$$.fragment,d),qs=!1},d(d){t(m),d&&t(he),d&&t(g),ce(S),d&&t(fe),d&&t(v),d&&t(gs),d&&t(We),d&&t(Es),d&&t(pe),d&&t(Ds),d&&t(y),d&&t(Ss),d&&t(me),d&&t(Ks),d&&t(ve),d&&t(Ls),d&&t(ee),ce(xe),d&&t(Ns),d&&t(_),ce(Ae),ce(ke),ce(Ee),ce(Oe),d&&t(Rs),d&&t(te),ce(Ke),d&&t(Hs),d&&t(re),ce(Le),d&&t(Is),d&&t(se),ce(Re),d&&t(Us),d&&t(He),d&&t(Fs),d&&t(Me)}}}const uc={local:"schedulers",sections:[{local:"diffusers.SchedulerMixin",title:"SchedulerMixin"},{local:"diffusers.schedulers.scheduling_utils.SchedulerOutput",title:"SchedulerOutput"},{local:"karrasdiffusionschedulers",title:"KarrasDiffusionSchedulers"}],title:"Schedulers"};function pc(vs){return nc(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ec extends oc{constructor(m){super();lc(this,m,pc,fc,dc,{})}}export{Ec as default,uc as metadata};
