import{S as as,i as is,s as ns,e as o,k as d,w,t as i,M as cs,c as r,d as s,m as l,a,x as I,h as n,b as c,G as e,g as m,y as M,q as x,o as E,B as T,v as ds}from"../../../chunks/vendor-hf-doc-builder.js";import{T as ls}from"../../../chunks/Tip-hf-doc-builder.js";import{D as ue}from"../../../chunks/Docstring-hf-doc-builder.js";import{I as Ft}from"../../../chunks/IconCopyLink-hf-doc-builder.js";function hs(De){let p,D,v,S,y,b,B,$,J,z,_,C,j;return{c(){p=o("p"),D=o("code"),v=i("epsilon"),S=i(" in the equations for "),y=o("code"),b=i("c_skip"),B=i(" and "),$=o("code"),J=i("c_out"),z=i(" is set to "),_=o("code"),C=i("sigma_min"),j=i(".")},l(k){p=r(k,"P",{});var f=a(p);D=r(f,"CODE",{});var O=a(D);v=n(O,"epsilon"),O.forEach(s),S=n(f," in the equations for "),y=r(f,"CODE",{});var me=a(y);b=n(me,"c_skip"),me.forEach(s),B=n(f," and "),$=r(f,"CODE",{});var Q=a($);J=n(Q,"c_out"),Q.forEach(s),z=n(f," is set to "),_=r(f,"CODE",{});var P=a(_);C=n(P,"sigma_min"),P.forEach(s),j=n(f,"."),f.forEach(s)},m(k,f){m(k,p,f),e(p,D),e(D,v),e(p,S),e(p,y),e(y,b),e(p,B),e(p,$),e($,J),e(p,z),e(p,_),e(_,C),e(p,j)},d(k){k&&s(p)}}}function ps(De){let p,D,v,S,y,b,B,$,J,z,_,C,j,k,f,O,me,Q,P,Se,Be,Ae,G,Je,X,je,Qe,ke,F,U,ye,Z,Xe,be,Ze,Oe,u,ee,et,$e,tt,st,N,ot,fe,rt,at,ge,it,nt,ct,A,te,dt,se,lt,oe,ht,pt,ut,V,mt,K,re,ft,ae,gt,Ce,vt,_t,St,R,ie,yt,we,bt,$t,W,ne,Ct,Ie,wt,It,H,ce,Mt,Me,xt,Pe,q,Y,xe,de,Et,Ee,Tt,Fe,L,le,Dt,he,At,Te,kt,Ot,Ne;return b=new Ft({}),Z=new Ft({}),ee=new ue({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>, defaults to 40) &#x2014;
The number of diffusion steps to train the model.`,name:"num_train_timesteps"},{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_min",description:`<strong>sigma_min</strong> (<code>float</code>, defaults to 0.002) &#x2014;
Minimum noise magnitude in the sigma schedule. Defaults to 0.002 from the original implementation.`,name:"sigma_min"},{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_max",description:`<strong>sigma_max</strong> (<code>float</code>, defaults to 80.0) &#x2014;
Maximum noise magnitude in the sigma schedule. Defaults to 80.0 from the original implementation.`,name:"sigma_max"},{anchor:"diffusers.CMStochasticIterativeScheduler.sigma_data",description:`<strong>sigma_data</strong> (<code>float</code>, defaults to 0.5) &#x2014;
The standard deviation of the data distribution from the EDM
<a href="https://huggingface.co/papers/2206.00364" rel="nofollow">paper</a>. Defaults to 0.5 from the original implementation.`,name:"sigma_data"},{anchor:"diffusers.CMStochasticIterativeScheduler.s_noise",description:`<strong>s_noise</strong> (<code>float</code>, defaults to 1.0) &#x2014;
The amount of additional noise to counteract loss of detail during sampling. A reasonable range is [1.000,
1.011]. Defaults to 1.0 from the original implementation.`,name:"s_noise"},{anchor:"diffusers.CMStochasticIterativeScheduler.rho",description:`<strong>rho</strong> (<code>float</code>, defaults to 7.0) &#x2014;
The parameter for calculating the Karras sigma schedule from the EDM
<a href="https://huggingface.co/papers/2206.00364" rel="nofollow">paper</a>. Defaults to 7.0 from the original implementation.`,name:"rho"},{anchor:"diffusers.CMStochasticIterativeScheduler.clip_denoised",description:`<strong>clip_denoised</strong> (<code>bool</code>, defaults to <code>True</code>) &#x2014;
Whether to clip the denoised outputs to <code>(-1, 1)</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;
An explicit timestep schedule that can be optionally specified. The timesteps are expected to be in
increasing order.`,name:"timesteps"}],source:"https://github.com/huggingface/diffusers/blob/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L44"}}),te=new ue({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/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L254",returnDescription:`
<p>A two-element tuple where <code>c_skip</code> (which weights the current sample) is the first element and <code>c_out</code>
(which weights the consistency model output) is the second element.</p>
`,returnType:`
<p><code>tuple</code></p>
`}}),V=new ls({props:{$$slots:{default:[hs]},$$scope:{ctx:De}}}),re=new ue({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;
The 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/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L116",returnDescription:`
<p>A scaled input sample.</p>
`,returnType:`
<p><code>torch.FloatTensor</code></p>
`}}),ie=new ue({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>, <em>optional</em>) &#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>, <em>optional</em>) &#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 <code>timesteps</code> is passed,
<code>num_inference_steps</code> must be <code>None</code>.`,name:"timesteps"}],source:"https://github.com/huggingface/diffusers/blob/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L162"}}),ne=new ue({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;
A single Karras sigma or an array of Karras sigmas.`,name:"sigmas"}],source:"https://github.com/huggingface/diffusers/blob/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L143",returnDescription:`
<p>A scaled input timestep or scaled input timestep array.</p>
`,returnType:`
<p><code>float</code> or <code>np.ndarray</code></p>
`}}),ce=new ue({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;
The direct output from the learned diffusion model.`,name:"model_output"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.timestep",description:`<strong>timestep</strong> (<code>float</code>) &#x2014;
The current timestep in the diffusion chain.`,name:"timestep"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.sample",description:`<strong>sample</strong> (<code>torch.FloatTensor</code>) &#x2014;
A current instance of a sample created by the diffusion process.`,name:"sample"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.generator",description:`<strong>generator</strong> (<code>torch.Generator</code>, <em>optional</em>) &#x2014;
A random number generator.`,name:"generator"},{anchor:"diffusers.CMStochasticIterativeScheduler.step.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a
<a href="/docs/diffusers/v0.21.0/en/api/schedulers/cm_stochastic_iterative#diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput">CMStochasticIterativeSchedulerOutput</a> or <code>tuple</code>.`,name:"return_dict"}],source:"https://github.com/huggingface/diffusers/blob/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L299",returnDescription:`
<p>If return_dict is <code>True</code>,
<a
  href="/docs/diffusers/v0.21.0/en/api/schedulers/cm_stochastic_iterative#diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput"
>CMStochasticIterativeSchedulerOutput</a> is returned,
otherwise a tuple is returned where the first element is the sample tensor.</p>
`,returnType:`
<p><a
  href="/docs/diffusers/v0.21.0/en/api/schedulers/cm_stochastic_iterative#diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput"
>CMStochasticIterativeSchedulerOutput</a> or <code>tuple</code></p>
`}}),de=new Ft({}),le=new ue({props:{name:"class diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput",anchor:"diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput",parameters:[{name:"prev_sample",val:": FloatTensor"}],parametersDescription:[{anchor:"diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput.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/v0.21.0/src/diffusers/schedulers/scheduling_consistency_models.py#L31"}}),{c(){p=o("meta"),D=d(),v=o("h1"),S=o("a"),y=o("span"),w(b.$$.fragment),B=d(),$=o("span"),J=i("CMStochasticIterativeScheduler"),z=d(),_=o("p"),C=o("a"),j=i("Consistency Models"),k=i(" by Yang Song, Prafulla Dhariwal, Mark Chen, and Ilya Sutskever introduced a multistep and onestep scheduler (Algorithm 1) that is capable of generating good samples in one or a small number of steps."),f=d(),O=o("p"),me=i("The abstract from the paper is:"),Q=d(),P=o("p"),Se=o("em"),Be=i("Diffusion models have made significant breakthroughs in image, audio, and video generation, but they depend on an iterative generation process that causes slow sampling speed and caps their potential for real-time applications. To overcome this limitation, we propose consistency models, a new family of generative models that achieve high sample quality without adversarial training. They support fast one-step generation by design, while still allowing for few-step sampling to trade compute for sample quality. They also support zero-shot data editing, like image inpainting, colorization, and super-resolution, without requiring explicit training on these tasks. Consistency models can be trained either as a way to distill pre-trained diffusion models, or as standalone generative models. Through extensive experiments, we demonstrate that they outperform existing distillation techniques for diffusion models in one- and few-step generation. For example, we achieve the new state-of-the-art FID of 3.55 on CIFAR-10 and 6.20 on ImageNet 64x64 for one-step generation. When trained as standalone generative models, consistency models also outperform single-step, non-adversarial generative models on standard benchmarks like CIFAR-10, ImageNet 64x64 and LSUN 256x256."),Ae=d(),G=o("p"),Je=i("The original codebase can be found at "),X=o("a"),je=i("openai/consistency_models"),Qe=i("."),ke=d(),F=o("h2"),U=o("a"),ye=o("span"),w(Z.$$.fragment),Xe=d(),be=o("span"),Ze=i("CMStochasticIterativeScheduler"),Oe=d(),u=o("div"),w(ee.$$.fragment),et=d(),$e=o("p"),tt=i("Multistep and onestep sampling for consistency models."),st=d(),N=o("p"),ot=i("This model inherits from "),fe=o("a"),rt=i("SchedulerMixin"),at=i(" and "),ge=o("a"),it=i("ConfigMixin"),nt=i(`. Check the superclass documentation for the generic
methods the library implements for all schedulers such as loading and saving.`),ct=d(),A=o("div"),w(te.$$.fragment),dt=d(),se=o("p"),lt=i(`Gets the scalings used in the consistency model parameterization (from Appendix C of the
`),oe=o("a"),ht=i("paper"),pt=i(") to enforce boundary condition."),ut=d(),w(V.$$.fragment),mt=d(),K=o("div"),w(re.$$.fragment),ft=d(),ae=o("p"),gt=i("Scales the consistency model input by "),Ce=o("code"),vt=i("(sigma**2 + sigma_data**2) ** 0.5"),_t=i("."),St=d(),R=o("div"),w(ie.$$.fragment),yt=d(),we=o("p"),bt=i("Sets the timesteps used for the diffusion chain (to be run before inference)."),$t=d(),W=o("div"),w(ne.$$.fragment),Ct=d(),Ie=o("p"),wt=i("Gets scaled timesteps from the Karras sigmas for input to the consistency model."),It=d(),H=o("div"),w(ce.$$.fragment),Mt=d(),Me=o("p"),xt=i(`Predict the sample from the previous timestep by reversing the SDE. This function propagates the diffusion
process from the learned model outputs (most often the predicted noise).`),Pe=d(),q=o("h2"),Y=o("a"),xe=o("span"),w(de.$$.fragment),Et=d(),Ee=o("span"),Tt=i("CMStochasticIterativeSchedulerOutput"),Fe=d(),L=o("div"),w(le.$$.fragment),Dt=d(),he=o("p"),At=i("Output class for the scheduler\u2019s "),Te=o("code"),kt=i("step"),Ot=i(" function."),this.h()},l(t){const h=cs('[data-svelte="svelte-1phssyn"]',document.head);p=r(h,"META",{name:!0,content:!0}),h.forEach(s),D=l(t),v=r(t,"H1",{class:!0});var pe=a(v);S=r(pe,"A",{id:!0,class:!0,href:!0});var Nt=a(S);y=r(Nt,"SPAN",{});var qt=a(y);I(b.$$.fragment,qt),qt.forEach(s),Nt.forEach(s),B=l(pe),$=r(pe,"SPAN",{});var Lt=a($);J=n(Lt,"CMStochasticIterativeScheduler"),Lt.forEach(s),pe.forEach(s),z=l(t),_=r(t,"P",{});var Pt=a(_);C=r(Pt,"A",{href:!0,rel:!0});var zt=a(C);j=n(zt,"Consistency Models"),zt.forEach(s),k=n(Pt," by Yang Song, Prafulla Dhariwal, Mark Chen, and Ilya Sutskever introduced a multistep and onestep scheduler (Algorithm 1) that is capable of generating good samples in one or a small number of steps."),Pt.forEach(s),f=l(t),O=r(t,"P",{});var Gt=a(O);me=n(Gt,"The abstract from the paper is:"),Gt.forEach(s),Q=l(t),P=r(t,"P",{});var Ut=a(P);Se=r(Ut,"EM",{});var Vt=a(Se);Be=n(Vt,"Diffusion models have made significant breakthroughs in image, audio, and video generation, but they depend on an iterative generation process that causes slow sampling speed and caps their potential for real-time applications. To overcome this limitation, we propose consistency models, a new family of generative models that achieve high sample quality without adversarial training. They support fast one-step generation by design, while still allowing for few-step sampling to trade compute for sample quality. They also support zero-shot data editing, like image inpainting, colorization, and super-resolution, without requiring explicit training on these tasks. Consistency models can be trained either as a way to distill pre-trained diffusion models, or as standalone generative models. Through extensive experiments, we demonstrate that they outperform existing distillation techniques for diffusion models in one- and few-step generation. For example, we achieve the new state-of-the-art FID of 3.55 on CIFAR-10 and 6.20 on ImageNet 64x64 for one-step generation. When trained as standalone generative models, consistency models also outperform single-step, non-adversarial generative models on standard benchmarks like CIFAR-10, ImageNet 64x64 and LSUN 256x256."),Vt.forEach(s),Ut.forEach(s),Ae=l(t),G=r(t,"P",{});var qe=a(G);Je=n(qe,"The original codebase can be found at "),X=r(qe,"A",{href:!0,rel:!0});var Kt=a(X);je=n(Kt,"openai/consistency_models"),Kt.forEach(s),Qe=n(qe,"."),qe.forEach(s),ke=l(t),F=r(t,"H2",{class:!0});var Le=a(F);U=r(Le,"A",{id:!0,class:!0,href:!0});var Rt=a(U);ye=r(Rt,"SPAN",{});var Wt=a(ye);I(Z.$$.fragment,Wt),Wt.forEach(s),Rt.forEach(s),Xe=l(Le),be=r(Le,"SPAN",{});var Ht=a(be);Ze=n(Ht,"CMStochasticIterativeScheduler"),Ht.forEach(s),Le.forEach(s),Oe=l(t),u=r(t,"DIV",{class:!0});var g=a(u);I(ee.$$.fragment,g),et=l(g),$e=r(g,"P",{});var Yt=a($e);tt=n(Yt,"Multistep and onestep sampling for consistency models."),Yt.forEach(s),st=l(g),N=r(g,"P",{});var ve=a(N);ot=n(ve,"This model inherits from "),fe=r(ve,"A",{href:!0});var Bt=a(fe);rt=n(Bt,"SchedulerMixin"),Bt.forEach(s),at=n(ve," and "),ge=r(ve,"A",{href:!0});var Jt=a(ge);it=n(Jt,"ConfigMixin"),Jt.forEach(s),nt=n(ve,`. Check the superclass documentation for the generic
methods the library implements for all schedulers such as loading and saving.`),ve.forEach(s),ct=l(g),A=r(g,"DIV",{class:!0});var _e=a(A);I(te.$$.fragment,_e),dt=l(_e),se=r(_e,"P",{});var ze=a(se);lt=n(ze,`Gets the scalings used in the consistency model parameterization (from Appendix C of the
`),oe=r(ze,"A",{href:!0,rel:!0});var jt=a(oe);ht=n(jt,"paper"),jt.forEach(s),pt=n(ze,") to enforce boundary condition."),ze.forEach(s),ut=l(_e),I(V.$$.fragment,_e),_e.forEach(s),mt=l(g),K=r(g,"DIV",{class:!0});var Ge=a(K);I(re.$$.fragment,Ge),ft=l(Ge),ae=r(Ge,"P",{});var Ue=a(ae);gt=n(Ue,"Scales the consistency model input by "),Ce=r(Ue,"CODE",{});var Qt=a(Ce);vt=n(Qt,"(sigma**2 + sigma_data**2) ** 0.5"),Qt.forEach(s),_t=n(Ue,"."),Ue.forEach(s),Ge.forEach(s),St=l(g),R=r(g,"DIV",{class:!0});var Ve=a(R);I(ie.$$.fragment,Ve),yt=l(Ve),we=r(Ve,"P",{});var Xt=a(we);bt=n(Xt,"Sets the timesteps used for the diffusion chain (to be run before inference)."),Xt.forEach(s),Ve.forEach(s),$t=l(g),W=r(g,"DIV",{class:!0});var Ke=a(W);I(ne.$$.fragment,Ke),Ct=l(Ke),Ie=r(Ke,"P",{});var Zt=a(Ie);wt=n(Zt,"Gets scaled timesteps from the Karras sigmas for input to the consistency model."),Zt.forEach(s),Ke.forEach(s),It=l(g),H=r(g,"DIV",{class:!0});var Re=a(H);I(ce.$$.fragment,Re),Mt=l(Re),Me=r(Re,"P",{});var es=a(Me);xt=n(es,`Predict the sample from the previous timestep by reversing the SDE. This function propagates the diffusion
process from the learned model outputs (most often the predicted noise).`),es.forEach(s),Re.forEach(s),g.forEach(s),Pe=l(t),q=r(t,"H2",{class:!0});var We=a(q);Y=r(We,"A",{id:!0,class:!0,href:!0});var ts=a(Y);xe=r(ts,"SPAN",{});var ss=a(xe);I(de.$$.fragment,ss),ss.forEach(s),ts.forEach(s),Et=l(We),Ee=r(We,"SPAN",{});var os=a(Ee);Tt=n(os,"CMStochasticIterativeSchedulerOutput"),os.forEach(s),We.forEach(s),Fe=l(t),L=r(t,"DIV",{class:!0});var He=a(L);I(le.$$.fragment,He),Dt=l(He),he=r(He,"P",{});var Ye=a(he);At=n(Ye,"Output class for the scheduler\u2019s "),Te=r(Ye,"CODE",{});var rs=a(Te);kt=n(rs,"step"),rs.forEach(s),Ot=n(Ye," function."),Ye.forEach(s),He.forEach(s),this.h()},h(){c(p,"name","hf:doc:metadata"),c(p,"content",JSON.stringify(us)),c(S,"id","cmstochasticiterativescheduler"),c(S,"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(S,"href","#cmstochasticiterativescheduler"),c(v,"class","relative group"),c(C,"href","https://huggingface.co/papers/2303.01469"),c(C,"rel","nofollow"),c(X,"href","https://github.com/openai/consistency_models"),c(X,"rel","nofollow"),c(U,"id","diffusers.CMStochasticIterativeScheduler"),c(U,"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(U,"href","#diffusers.CMStochasticIterativeScheduler"),c(F,"class","relative group"),c(fe,"href","/docs/diffusers/v0.21.0/en/api/schedulers/overview#diffusers.SchedulerMixin"),c(ge,"href","/docs/diffusers/v0.21.0/en/api/configuration#diffusers.ConfigMixin"),c(oe,"href","https://huggingface.co/papers/2303.01469"),c(oe,"rel","nofollow"),c(A,"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(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(H,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(u,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(Y,"id","diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput"),c(Y,"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(Y,"href","#diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput"),c(q,"class","relative group"),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(t,h){e(document.head,p),m(t,D,h),m(t,v,h),e(v,S),e(S,y),M(b,y,null),e(v,B),e(v,$),e($,J),m(t,z,h),m(t,_,h),e(_,C),e(C,j),e(_,k),m(t,f,h),m(t,O,h),e(O,me),m(t,Q,h),m(t,P,h),e(P,Se),e(Se,Be),m(t,Ae,h),m(t,G,h),e(G,Je),e(G,X),e(X,je),e(G,Qe),m(t,ke,h),m(t,F,h),e(F,U),e(U,ye),M(Z,ye,null),e(F,Xe),e(F,be),e(be,Ze),m(t,Oe,h),m(t,u,h),M(ee,u,null),e(u,et),e(u,$e),e($e,tt),e(u,st),e(u,N),e(N,ot),e(N,fe),e(fe,rt),e(N,at),e(N,ge),e(ge,it),e(N,nt),e(u,ct),e(u,A),M(te,A,null),e(A,dt),e(A,se),e(se,lt),e(se,oe),e(oe,ht),e(se,pt),e(A,ut),M(V,A,null),e(u,mt),e(u,K),M(re,K,null),e(K,ft),e(K,ae),e(ae,gt),e(ae,Ce),e(Ce,vt),e(ae,_t),e(u,St),e(u,R),M(ie,R,null),e(R,yt),e(R,we),e(we,bt),e(u,$t),e(u,W),M(ne,W,null),e(W,Ct),e(W,Ie),e(Ie,wt),e(u,It),e(u,H),M(ce,H,null),e(H,Mt),e(H,Me),e(Me,xt),m(t,Pe,h),m(t,q,h),e(q,Y),e(Y,xe),M(de,xe,null),e(q,Et),e(q,Ee),e(Ee,Tt),m(t,Fe,h),m(t,L,h),M(le,L,null),e(L,Dt),e(L,he),e(he,At),e(he,Te),e(Te,kt),e(he,Ot),Ne=!0},p(t,[h]){const pe={};h&2&&(pe.$$scope={dirty:h,ctx:t}),V.$set(pe)},i(t){Ne||(x(b.$$.fragment,t),x(Z.$$.fragment,t),x(ee.$$.fragment,t),x(te.$$.fragment,t),x(V.$$.fragment,t),x(re.$$.fragment,t),x(ie.$$.fragment,t),x(ne.$$.fragment,t),x(ce.$$.fragment,t),x(de.$$.fragment,t),x(le.$$.fragment,t),Ne=!0)},o(t){E(b.$$.fragment,t),E(Z.$$.fragment,t),E(ee.$$.fragment,t),E(te.$$.fragment,t),E(V.$$.fragment,t),E(re.$$.fragment,t),E(ie.$$.fragment,t),E(ne.$$.fragment,t),E(ce.$$.fragment,t),E(de.$$.fragment,t),E(le.$$.fragment,t),Ne=!1},d(t){s(p),t&&s(D),t&&s(v),T(b),t&&s(z),t&&s(_),t&&s(f),t&&s(O),t&&s(Q),t&&s(P),t&&s(Ae),t&&s(G),t&&s(ke),t&&s(F),T(Z),t&&s(Oe),t&&s(u),T(ee),T(te),T(V),T(re),T(ie),T(ne),T(ce),t&&s(Pe),t&&s(q),T(de),t&&s(Fe),t&&s(L),T(le)}}}const us={local:"cmstochasticiterativescheduler",sections:[{local:"diffusers.CMStochasticIterativeScheduler",title:"CMStochasticIterativeScheduler"},{local:"diffusers.schedulers.scheduling_consistency_models.CMStochasticIterativeSchedulerOutput",title:"CMStochasticIterativeSchedulerOutput"}],title:"CMStochasticIterativeScheduler"};function ms(De){return ds(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ss extends as{constructor(p){super();is(this,p,ms,ps,ns,{})}}export{Ss as default,us as metadata};
