import{S as gs,i as vs,s as _s,e as r,k as d,w as $,t as i,M as Ss,c as o,d as t,m as h,a as n,x as w,h as a,b as c,G as e,g as _,y as C,L as ys,q as x,o as E,B as I,v as bs}from"../../../chunks/vendor-hf-doc-builder.js";import{D as ne}from"../../../chunks/Docstring-hf-doc-builder.js";import{I as qt}from"../../../chunks/IconCopyLink-hf-doc-builder.js";function Ms(Vt){let S,$e,y,D,ie,G,Ge,ae,Ke,we,b,T,ce,K,qe,le,Ve,Ce,g,Be,q,Ue,Ye,V,He,ze,Z,Re,We,xe,M,P,de,B,Je,he,je,Ee,l,U,Qe,pe,Xe,Ze,A,et,Y,tt,st,H,rt,ot,p,ee,nt,it,ue,at,ct,me,lt,dt,fe,ht,pt,te,ut,mt,se,ft,gt,re,vt,_t,St,v,z,yt,ge,bt,Mt,R,$t,ve,wt,Ct,xt,k,W,Et,J,It,_e,Dt,Tt,Pt,N,j,At,Se,kt,Nt,O,Q,Ot,ye,Lt,Ft,L,X,Gt,be,Kt,Ie;return G=new qt({}),K=new qt({}),B=new qt({}),U=new ne({props:{name:"class diffusers.CMStochasticIterativeScheduler",anchor:"diffusers.CMStochasticIterativeScheduler",parameters:[{name:"num_train_timesteps",val:": int = 40"},{name:"sigma_min",val:": float = 0.002"},{name:"sigma_max",val:": float = 80.0"},{name:"sigma_data",val:": float = 0.5"},{name:"s_noise",val:": float = 1.0"},{name:"rho",val:": float = 7.0"},{name:"clip_denoised",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.CMStochasticIterativeScheduler.num_train_timesteps",description:"<strong>num_train_timesteps</strong> (<code>int</code>) &#x2014; number of diffusion steps used to train the model.",name:"num_train_timesteps"},{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_min",description:`<strong>sigma_min</strong> (<code>float</code>) &#x2014;
Minimum noise magnitude in the sigma schedule. This was set to 0.002 in the original implementation.`,name:"sigma_min"},{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_max",description:`<strong>sigma_max</strong> (<code>float</code>) &#x2014;
Maximum noise magnitude in the sigma schedule. This was set to 80.0 in the original implementation.`,name:"sigma_max"},{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_data",description:`<strong>sigma_data</strong> (<code>float</code>) &#x2014;
The standard deviation of the data distribution, following the EDM paper [2]. This was set to 0.5 in the
original implementation, which is also the original value suggested in the EDM paper.`,name:"sigma_data"},{anchor:"diffusers.CMStochasticIterativeScheduler.s_noise",description:`<strong>s_noise</strong> (<code>float</code>) &#x2014;
The amount of additional noise to counteract loss of detail during sampling. A reasonable range is [1.000,
1.011]. This was set to 1.0 in the original implementation.`,name:"s_noise"},{anchor:"diffusers.CMStochasticIterativeScheduler.rho",description:`<strong>rho</strong> (<code>float</code>) &#x2014;
The rho parameter used for calculating the Karras sigma schedule, introduced in the EDM paper [2]. This was
set to 7.0 in the original implementation, which is also the original value suggested in the EDM paper.`,name:"rho"},{anchor:"diffusers.CMStochasticIterativeScheduler.clip_denoised",description:`<strong>clip_denoised</strong> (<code>bool</code>) &#x2014;
Whether to clip the denoised outputs to <code>(-1, 1)</code>. Defaults to <code>True</code>.`,name:"clip_denoised"},{anchor:"diffusers.CMStochasticIterativeScheduler.timesteps",description:`<strong>timesteps</strong> (<code>List</code> or <code>np.ndarray</code> or <code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Optionally, an explicit timestep schedule can be specified. The timesteps are expected to be in increasing
order.`,name:"timesteps"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_consistency_models.py#L43"}}),z=new ne({props:{name:"get_scalings_for_boundary_condition",anchor:"diffusers.CMStochasticIterativeScheduler.get_scalings_for_boundary_condition",parameters:[{name:"sigma",val:""}],parametersDescription:[{anchor:"diffusers.CMStochasticIterativeScheduler.get_scalings_for_boundary_condition.sigma",description:`<strong>sigma</strong> (<code>torch.FloatTensor</code>) &#x2014;
The current sigma in the Karras sigma schedule.`,name:"sigma"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_consistency_models.py#L242",returnDescription:`
<p>A two-element tuple where c_skip (which weights the current sample) is the first element and c_out
(which weights the consistency model output) is the second element.</p>
`,returnType:`
<p><code>tuple</code></p>
`}}),W=new ne({props:{name:"scale_model_input",anchor:"diffusers.CMStochasticIterativeScheduler.scale_model_input",parameters:[{name:"sample",val:": FloatTensor"},{name:"timestep",val:": typing.Union[float, torch.FloatTensor]"}],parametersDescription:[{anchor:"diffusers.CMStochasticIterativeScheduler.scale_model_input.sample",description:"<strong>sample</strong> (<code>torch.FloatTensor</code>) &#x2014; input sample",name:"sample"},{anchor:"diffusers.CMStochasticIterativeScheduler.scale_model_input.timestep",description:"<strong>timestep</strong> (<code>float</code> or <code>torch.FloatTensor</code>) &#x2014; the current timestep in the diffusion chain",name:"timestep"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_consistency_models.py#L113",returnDescription:`
<p>scaled input sample</p>
`,returnType:`
<p><code>torch.FloatTensor</code></p>
`}}),j=new ne({props:{name:"set_timesteps",anchor:"diffusers.CMStochasticIterativeScheduler.set_timesteps",parameters:[{name:"num_inference_steps",val:": typing.Optional[int] = None"},{name:"device",val:": typing.Union[str, torch.device] = None"},{name:"timesteps",val:": typing.Optional[typing.List[int]] = None"}],parametersDescription:[{anchor:"diffusers.CMStochasticIterativeScheduler.set_timesteps.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>) &#x2014;
the number of diffusion steps used when generating samples with a pre-trained model.`,name:"num_inference_steps"},{anchor:"diffusers.CMStochasticIterativeScheduler.set_timesteps.device",description:`<strong>device</strong> (<code>str</code> or <code>torch.device</code>, optional) &#x2014;
the device to which the timesteps should be moved to. If <code>None</code>, the timesteps are not moved.`,name:"device"},{anchor:"diffusers.CMStochasticIterativeScheduler.set_timesteps.timesteps",description:`<strong>timesteps</strong> (<code>List[int]</code>, optional) &#x2014;
custom timesteps used to support arbitrary spacing between timesteps. If <code>None</code>, then the default
timestep spacing strategy of equal spacing between timesteps is used. If passed, <code>num_inference_steps</code>
must be <code>None</code>.`,name:"timesteps"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_consistency_models.py#L152"}}),Q=new ne({props:{name:"sigma_to_t",anchor:"diffusers.CMStochasticIterativeScheduler.sigma_to_t",parameters:[{name:"sigmas",val:": typing.Union[float, numpy.ndarray]"}],parametersDescription:[{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_to_t.sigmas",description:"<strong>sigmas</strong> (<code>float</code> or <code>np.ndarray</code>) &#x2014; single Karras sigma or array of Karras sigmas",name:"sigmas"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_consistency_models.py#L136",returnDescription:`
<p>scaled input timestep or scaled input timestep array</p>
`,returnType:`
<p><code>float</code> or <code>np.ndarray</code></p>
`}}),X=new ne({props:{name:"step",anchor:"diffusers.CMStochasticIterativeScheduler.step",parameters:[{name:"model_output",val:": FloatTensor"},{name:"timestep",val:": typing.Union[float, torch.FloatTensor]"},{name:"sample",val:": FloatTensor"},{name:"generator",val:": typing.Optional[torch._C.Generator] = None"},{name:"return_dict",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.CMStochasticIterativeScheduler.step.model_output",description:"<strong>model_output</strong> (<code>torch.FloatTensor</code>) &#x2014; direct output from learned diffusion model.",name:"model_output"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.timestep",description:"<strong>timestep</strong> (<code>float</code>) &#x2014; current timestep in the diffusion chain.",name:"timestep"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.sample",description:`<strong>sample</strong> (<code>torch.FloatTensor</code>) &#x2014;
current instance of sample being created by diffusion process.`,name:"sample"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.generator",description:"<strong>generator</strong> (<code>torch.Generator</code>, <em>optional</em>) &#x2014; Random number generator.",name:"generator"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.return_dict",description:"<strong>return_dict</strong> (<code>bool</code>) &#x2014; option for returning tuple rather than EulerDiscreteSchedulerOutput class",name:"return_dict"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_consistency_models.py#L264",returnDescription:`
<p><code>~schedulers.scheduling_utils.CMStochasticIterativeSchedulerOutput</code> if <code>return_dict</code> is True, otherwise a
<code>tuple</code>. When returning a tuple, the first element is the sample tensor.</p>
`,returnType:`
<p><code>~schedulers.scheduling_utils.CMStochasticIterativeSchedulerOutput</code> or <code>tuple</code></p>
`}}),{c(){S=r("meta"),$e=d(),y=r("h1"),D=r("a"),ie=r("span"),$(G.$$.fragment),Ge=d(),ae=r("span"),Ke=i("Consistency Model Multistep Scheduler"),we=d(),b=r("h2"),T=r("a"),ce=r("span"),$(K.$$.fragment),qe=d(),le=r("span"),Ve=i("Overview"),Ce=d(),g=r("p"),Be=i("Multistep and onestep scheduler (Algorithm 1) introduced alongside consistency models in the paper "),q=r("a"),Ue=i("Consistency Models"),Ye=i(` by Yang Song, Prafulla Dhariwal, Mark Chen, and Ilya Sutskever.
Based on the `),V=r("a"),He=i("original consistency models implementation"),ze=i(`.
Should generate good samples from `),Z=r("a"),Re=i("ConsistencyModelPipeline"),We=i(" in one or a small number of steps."),xe=d(),M=r("h2"),P=r("a"),de=r("span"),$(B.$$.fragment),Je=d(),he=r("span"),je=i("CMStochasticIterativeScheduler"),Ee=d(),l=r("div"),$(U.$$.fragment),Qe=d(),pe=r("p"),Xe=i(`Multistep and onestep sampling for consistency models from Song et al. 2023 [1]. This implements Algorithm 1 in the
paper [1].`),Ze=d(),A=r("p"),et=i(`[1] Song, Yang and Dhariwal, Prafulla and Chen, Mark and Sutskever, Ilya. \u201CConsistency Models\u201D
`),Y=r("a"),tt=i("https://arxiv.org/pdf/2303.01469"),st=i(` [2] Karras, Tero, et al. \u201CElucidating the Design Space of Diffusion-Based
Generative Models.\u201D `),H=r("a"),rt=i("https://arxiv.org/abs/2206.00364"),ot=d(),p=r("p"),ee=r("a"),nt=i("~ConfigMixin"),it=i(" takes care of storing all config attributes that are passed in the scheduler\u2019s "),ue=r("code"),at=i("__init__"),ct=i(`
function, such as `),me=r("code"),lt=i("num_train_timesteps"),dt=i(". They can be accessed via "),fe=r("code"),ht=i("scheduler.config.num_train_timesteps"),pt=i(`.
`),te=r("a"),ut=i("SchedulerMixin"),mt=i(" provides general loading and saving functionality via the "),se=r("a"),ft=i("SchedulerMixin.save_pretrained()"),gt=i(` and
`),re=r("a"),vt=i("from_pretrained()"),_t=i(" functions."),St=d(),v=r("div"),$(z.$$.fragment),yt=d(),ge=r("p"),bt=i(`Gets the scalings used in the consistency model parameterization, following Appendix C of the original paper.
This enforces the consistency model boundary condition.`),Mt=d(),R=r("p"),$t=i("Note that "),ve=r("code"),wt=i("epsilon"),Ct=i(" in the equations for c_skip and c_out is set to sigma_min."),xt=d(),k=r("div"),$(W.$$.fragment),Et=d(),J=r("p"),It=i("Scales the consistency model input by "),_e=r("code"),Dt=i("(sigma**2 + sigma_data**2) ** 0.5"),Tt=i(", following the EDM model."),Pt=d(),N=r("div"),$(j.$$.fragment),At=d(),Se=r("p"),kt=i("Sets the timesteps used for the diffusion chain. Supporting function to be run before inference."),Nt=d(),O=r("div"),$(Q.$$.fragment),Ot=d(),ye=r("p"),Lt=i("Gets scaled timesteps from the Karras sigmas, for input to the consistency model."),Ft=d(),L=r("div"),$(X.$$.fragment),Gt=d(),be=r("p"),Kt=i(`Predict the sample at the previous timestep by reversing the SDE. Core function to propagate the diffusion
process from the learned model outputs (most often the predicted noise).`),this.h()},l(s){const f=Ss('[data-svelte="svelte-1phssyn"]',document.head);S=o(f,"META",{name:!0,content:!0}),f.forEach(t),$e=h(s),y=o(s,"H1",{class:!0});var De=n(y);D=o(De,"A",{id:!0,class:!0,href:!0});var Bt=n(D);ie=o(Bt,"SPAN",{});var Ut=n(ie);w(G.$$.fragment,Ut),Ut.forEach(t),Bt.forEach(t),Ge=h(De),ae=o(De,"SPAN",{});var Yt=n(ae);Ke=a(Yt,"Consistency Model Multistep Scheduler"),Yt.forEach(t),De.forEach(t),we=h(s),b=o(s,"H2",{class:!0});var Te=n(b);T=o(Te,"A",{id:!0,class:!0,href:!0});var Ht=n(T);ce=o(Ht,"SPAN",{});var zt=n(ce);w(K.$$.fragment,zt),zt.forEach(t),Ht.forEach(t),qe=h(Te),le=o(Te,"SPAN",{});var Rt=n(le);Ve=a(Rt,"Overview"),Rt.forEach(t),Te.forEach(t),Ce=h(s),g=o(s,"P",{});var F=n(g);Be=a(F,"Multistep and onestep scheduler (Algorithm 1) introduced alongside consistency models in the paper "),q=o(F,"A",{href:!0,rel:!0});var Wt=n(q);Ue=a(Wt,"Consistency Models"),Wt.forEach(t),Ye=a(F,` by Yang Song, Prafulla Dhariwal, Mark Chen, and Ilya Sutskever.
Based on the `),V=o(F,"A",{href:!0,rel:!0});var Jt=n(V);He=a(Jt,"original consistency models implementation"),Jt.forEach(t),ze=a(F,`.
Should generate good samples from `),Z=o(F,"A",{href:!0});var jt=n(Z);Re=a(jt,"ConsistencyModelPipeline"),jt.forEach(t),We=a(F," in one or a small number of steps."),F.forEach(t),xe=h(s),M=o(s,"H2",{class:!0});var Pe=n(M);P=o(Pe,"A",{id:!0,class:!0,href:!0});var Qt=n(P);de=o(Qt,"SPAN",{});var Xt=n(de);w(B.$$.fragment,Xt),Xt.forEach(t),Qt.forEach(t),Je=h(Pe),he=o(Pe,"SPAN",{});var Zt=n(he);je=a(Zt,"CMStochasticIterativeScheduler"),Zt.forEach(t),Pe.forEach(t),Ee=h(s),l=o(s,"DIV",{class:!0});var u=n(l);w(U.$$.fragment,u),Qe=h(u),pe=o(u,"P",{});var es=n(pe);Xe=a(es,`Multistep and onestep sampling for consistency models from Song et al. 2023 [1]. This implements Algorithm 1 in the
paper [1].`),es.forEach(t),Ze=h(u),A=o(u,"P",{});var Me=n(A);et=a(Me,`[1] Song, Yang and Dhariwal, Prafulla and Chen, Mark and Sutskever, Ilya. \u201CConsistency Models\u201D
`),Y=o(Me,"A",{href:!0,rel:!0});var ts=n(Y);tt=a(ts,"https://arxiv.org/pdf/2303.01469"),ts.forEach(t),st=a(Me,` [2] Karras, Tero, et al. \u201CElucidating the Design Space of Diffusion-Based
Generative Models.\u201D `),H=o(Me,"A",{href:!0,rel:!0});var ss=n(H);rt=a(ss,"https://arxiv.org/abs/2206.00364"),ss.forEach(t),Me.forEach(t),ot=h(u),p=o(u,"P",{});var m=n(p);ee=o(m,"A",{href:!0});var rs=n(ee);nt=a(rs,"~ConfigMixin"),rs.forEach(t),it=a(m," takes care of storing all config attributes that are passed in the scheduler\u2019s "),ue=o(m,"CODE",{});var os=n(ue);at=a(os,"__init__"),os.forEach(t),ct=a(m,`
function, such as `),me=o(m,"CODE",{});var ns=n(me);lt=a(ns,"num_train_timesteps"),ns.forEach(t),dt=a(m,". They can be accessed via "),fe=o(m,"CODE",{});var is=n(fe);ht=a(is,"scheduler.config.num_train_timesteps"),is.forEach(t),pt=a(m,`.
`),te=o(m,"A",{href:!0});var as=n(te);ut=a(as,"SchedulerMixin"),as.forEach(t),mt=a(m," provides general loading and saving functionality via the "),se=o(m,"A",{href:!0});var cs=n(se);ft=a(cs,"SchedulerMixin.save_pretrained()"),cs.forEach(t),gt=a(m,` and
`),re=o(m,"A",{href:!0});var ls=n(re);vt=a(ls,"from_pretrained()"),ls.forEach(t),_t=a(m," functions."),m.forEach(t),St=h(u),v=o(u,"DIV",{class:!0});var oe=n(v);w(z.$$.fragment,oe),yt=h(oe),ge=o(oe,"P",{});var ds=n(ge);bt=a(ds,`Gets the scalings used in the consistency model parameterization, following Appendix C of the original paper.
This enforces the consistency model boundary condition.`),ds.forEach(t),Mt=h(oe),R=o(oe,"P",{});var Ae=n(R);$t=a(Ae,"Note that "),ve=o(Ae,"CODE",{});var hs=n(ve);wt=a(hs,"epsilon"),hs.forEach(t),Ct=a(Ae," in the equations for c_skip and c_out is set to sigma_min."),Ae.forEach(t),oe.forEach(t),xt=h(u),k=o(u,"DIV",{class:!0});var ke=n(k);w(W.$$.fragment,ke),Et=h(ke),J=o(ke,"P",{});var Ne=n(J);It=a(Ne,"Scales the consistency model input by "),_e=o(Ne,"CODE",{});var ps=n(_e);Dt=a(ps,"(sigma**2 + sigma_data**2) ** 0.5"),ps.forEach(t),Tt=a(Ne,", following the EDM model."),Ne.forEach(t),ke.forEach(t),Pt=h(u),N=o(u,"DIV",{class:!0});var Oe=n(N);w(j.$$.fragment,Oe),At=h(Oe),Se=o(Oe,"P",{});var us=n(Se);kt=a(us,"Sets the timesteps used for the diffusion chain. Supporting function to be run before inference."),us.forEach(t),Oe.forEach(t),Nt=h(u),O=o(u,"DIV",{class:!0});var Le=n(O);w(Q.$$.fragment,Le),Ot=h(Le),ye=o(Le,"P",{});var ms=n(ye);Lt=a(ms,"Gets scaled timesteps from the Karras sigmas, for input to the consistency model."),ms.forEach(t),Le.forEach(t),Ft=h(u),L=o(u,"DIV",{class:!0});var Fe=n(L);w(X.$$.fragment,Fe),Gt=h(Fe),be=o(Fe,"P",{});var fs=n(be);Kt=a(fs,`Predict the sample at the previous timestep by reversing the SDE. Core function to propagate the diffusion
process from the learned model outputs (most often the predicted noise).`),fs.forEach(t),Fe.forEach(t),u.forEach(t),this.h()},h(){c(S,"name","hf:doc:metadata"),c(S,"content",JSON.stringify($s)),c(D,"id","consistency-model-multistep-scheduler"),c(D,"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(D,"href","#consistency-model-multistep-scheduler"),c(y,"class","relative group"),c(T,"id","overview"),c(T,"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(T,"href","#overview"),c(b,"class","relative group"),c(q,"href","https://arxiv.org/abs/2303.01469"),c(q,"rel","nofollow"),c(V,"href","https://github.com/openai/consistency_models"),c(V,"rel","nofollow"),c(Z,"href","/docs/diffusers/main/en/api/pipelines/consistency_models#diffusers.ConsistencyModelPipeline"),c(P,"id","diffusers.CMStochasticIterativeScheduler"),c(P,"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(P,"href","#diffusers.CMStochasticIterativeScheduler"),c(M,"class","relative group"),c(Y,"href","https://arxiv.org/pdf/2303.01469"),c(Y,"rel","nofollow"),c(H,"href","https://arxiv.org/abs/2206.00364"),c(H,"rel","nofollow"),c(ee,"href","/docs/diffusers/main/en/api/configuration#diffusers.ConfigMixin"),c(te,"href","/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin"),c(se,"href","/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin.save_pretrained"),c(re,"href","/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained"),c(v,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(O,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(l,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(s,f){e(document.head,S),_(s,$e,f),_(s,y,f),e(y,D),e(D,ie),C(G,ie,null),e(y,Ge),e(y,ae),e(ae,Ke),_(s,we,f),_(s,b,f),e(b,T),e(T,ce),C(K,ce,null),e(b,qe),e(b,le),e(le,Ve),_(s,Ce,f),_(s,g,f),e(g,Be),e(g,q),e(q,Ue),e(g,Ye),e(g,V),e(V,He),e(g,ze),e(g,Z),e(Z,Re),e(g,We),_(s,xe,f),_(s,M,f),e(M,P),e(P,de),C(B,de,null),e(M,Je),e(M,he),e(he,je),_(s,Ee,f),_(s,l,f),C(U,l,null),e(l,Qe),e(l,pe),e(pe,Xe),e(l,Ze),e(l,A),e(A,et),e(A,Y),e(Y,tt),e(A,st),e(A,H),e(H,rt),e(l,ot),e(l,p),e(p,ee),e(ee,nt),e(p,it),e(p,ue),e(ue,at),e(p,ct),e(p,me),e(me,lt),e(p,dt),e(p,fe),e(fe,ht),e(p,pt),e(p,te),e(te,ut),e(p,mt),e(p,se),e(se,ft),e(p,gt),e(p,re),e(re,vt),e(p,_t),e(l,St),e(l,v),C(z,v,null),e(v,yt),e(v,ge),e(ge,bt),e(v,Mt),e(v,R),e(R,$t),e(R,ve),e(ve,wt),e(R,Ct),e(l,xt),e(l,k),C(W,k,null),e(k,Et),e(k,J),e(J,It),e(J,_e),e(_e,Dt),e(J,Tt),e(l,Pt),e(l,N),C(j,N,null),e(N,At),e(N,Se),e(Se,kt),e(l,Nt),e(l,O),C(Q,O,null),e(O,Ot),e(O,ye),e(ye,Lt),e(l,Ft),e(l,L),C(X,L,null),e(L,Gt),e(L,be),e(be,Kt),Ie=!0},p:ys,i(s){Ie||(x(G.$$.fragment,s),x(K.$$.fragment,s),x(B.$$.fragment,s),x(U.$$.fragment,s),x(z.$$.fragment,s),x(W.$$.fragment,s),x(j.$$.fragment,s),x(Q.$$.fragment,s),x(X.$$.fragment,s),Ie=!0)},o(s){E(G.$$.fragment,s),E(K.$$.fragment,s),E(B.$$.fragment,s),E(U.$$.fragment,s),E(z.$$.fragment,s),E(W.$$.fragment,s),E(j.$$.fragment,s),E(Q.$$.fragment,s),E(X.$$.fragment,s),Ie=!1},d(s){t(S),s&&t($e),s&&t(y),I(G),s&&t(we),s&&t(b),I(K),s&&t(Ce),s&&t(g),s&&t(xe),s&&t(M),I(B),s&&t(Ee),s&&t(l),I(U),I(z),I(W),I(j),I(Q),I(X)}}}const $s={local:"consistency-model-multistep-scheduler",sections:[{local:"overview",title:"Overview"},{local:"diffusers.CMStochasticIterativeScheduler",title:"CMStochasticIterativeScheduler"}],title:"Consistency Model Multistep Scheduler"};function ws(Vt){return bs(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Is extends gs{constructor(S){super();vs(this,S,ws,Ms,_s,{})}}export{Is as default,$s as metadata};
