import{S as Wt,i as jt,s as zt,e as s,k as l,w as V,t as i,M as Bt,c as r,d as o,m as c,a as n,x as H,h as a,b as d,G as e,g as u,y as J,L as Kt,q as U,o as G,B as R,v as Qt}from"../../../chunks/vendor-hf-doc-builder.js";import{D as $e}from"../../../chunks/Docstring-hf-doc-builder.js";import{I as vt}from"../../../chunks/IconCopyLink-hf-doc-builder.js";function Xt(bt){let _,pe,v,y,Y,E,Ee,Z,Ae,he,b,P,ee,A,Te,te,Ne,fe,T,N,Oe,Ie,ue,W,Le,me,j,Ce,ge,x,Fe,O,ke,qe,_e,D,w,oe,I,Ve,se,He,ve,p,L,Je,re,Ue,Ge,f,z,Re,We,ne,je,ze,ie,Be,Ke,ae,Qe,Xe,B,Ye,Ze,K,et,tt,Q,ot,st,rt,X,nt,C,it,at,M,F,dt,de,lt,ct,S,k,pt,le,ht,ft,$,q,ut,ce,mt,be;return E=new vt({}),A=new vt({}),I=new vt({}),L=new $e({props:{name:"class diffusers.DDPMScheduler",anchor:"diffusers.DDPMScheduler",parameters:[{name:"num_train_timesteps",val:": int = 1000"},{name:"beta_start",val:": float = 0.0001"},{name:"beta_end",val:": float = 0.02"},{name:"beta_schedule",val:": str = 'linear'"},{name:"trained_betas",val:": typing.Union[numpy.ndarray, typing.List[float], NoneType] = None"},{name:"variance_type",val:": str = 'fixed_small'"},{name:"clip_sample",val:": bool = True"},{name:"prediction_type",val:": str = 'epsilon'"},{name:"thresholding",val:": bool = False"},{name:"dynamic_thresholding_ratio",val:": float = 0.995"},{name:"clip_sample_range",val:": float = 1.0"},{name:"sample_max_value",val:": float = 1.0"}],parametersDescription:[{anchor:"diffusers.DDPMScheduler.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.DDPMScheduler.beta_start",description:"<strong>beta_start</strong> (<code>float</code>) &#x2014; the starting <code>beta</code> value of inference.",name:"beta_start"},{anchor:"diffusers.DDPMScheduler.beta_end",description:"<strong>beta_end</strong> (<code>float</code>) &#x2014; the final <code>beta</code> value.",name:"beta_end"},{anchor:"diffusers.DDPMScheduler.beta_schedule",description:`<strong>beta_schedule</strong> (<code>str</code>) &#x2014;
the beta schedule, a mapping from a beta range to a sequence of betas for stepping the model. Choose from
<code>linear</code>, <code>scaled_linear</code>, or <code>squaredcos_cap_v2</code>.`,name:"beta_schedule"},{anchor:"diffusers.DDPMScheduler.trained_betas",description:`<strong>trained_betas</strong> (<code>np.ndarray</code>, optional) &#x2014;
option to pass an array of betas directly to the constructor to bypass <code>beta_start</code>, <code>beta_end</code> etc.`,name:"trained_betas"},{anchor:"diffusers.DDPMScheduler.variance_type",description:`<strong>variance_type</strong> (<code>str</code>) &#x2014;
options to clip the variance used when adding noise to the denoised sample. Choose from <code>fixed_small</code>,
<code>fixed_small_log</code>, <code>fixed_large</code>, <code>fixed_large_log</code>, <code>learned</code> or <code>learned_range</code>.`,name:"variance_type"},{anchor:"diffusers.DDPMScheduler.clip_sample",description:`<strong>clip_sample</strong> (<code>bool</code>, default <code>True</code>) &#x2014;
option to clip predicted sample for numerical stability.`,name:"clip_sample"},{anchor:"diffusers.DDPMScheduler.clip_sample_range",description:`<strong>clip_sample_range</strong> (<code>float</code>, default <code>1.0</code>) &#x2014;
the maximum magnitude for sample clipping. Valid only when <code>clip_sample=True</code>.`,name:"clip_sample_range"},{anchor:"diffusers.DDPMScheduler.prediction_type",description:`<strong>prediction_type</strong> (<code>str</code>, default <code>epsilon</code>, optional) &#x2014;
prediction type of the scheduler function, one of <code>epsilon</code> (predicting the noise of the diffusion
process), <code>sample</code> (directly predicting the noisy sample<code>) or </code>v_prediction\` (see section 2.4
<a href="https://imagen.research.google/video/paper.pdf" rel="nofollow">https://imagen.research.google/video/paper.pdf</a>)`,name:"prediction_type"},{anchor:"diffusers.DDPMScheduler.thresholding",description:`<strong>thresholding</strong> (<code>bool</code>, default <code>False</code>) &#x2014;
whether to use the &#x201C;dynamic thresholding&#x201D; method (introduced by Imagen, <a href="https://arxiv.org/abs/2205.11487" rel="nofollow">https://arxiv.org/abs/2205.11487</a>).
Note that the thresholding method is unsuitable for latent-space diffusion models (such as
stable-diffusion).`,name:"thresholding"},{anchor:"diffusers.DDPMScheduler.dynamic_thresholding_ratio",description:`<strong>dynamic_thresholding_ratio</strong> (<code>float</code>, default <code>0.995</code>) &#x2014;
the ratio for the dynamic thresholding method. Default is <code>0.995</code>, the same as Imagen
(<a href="https://arxiv.org/abs/2205.11487" rel="nofollow">https://arxiv.org/abs/2205.11487</a>). Valid only when <code>thresholding=True</code>.`,name:"dynamic_thresholding_ratio"},{anchor:"diffusers.DDPMScheduler.sample_max_value",description:`<strong>sample_max_value</strong> (<code>float</code>, default <code>1.0</code>) &#x2014;
the threshold value for dynamic thresholding. Valid only when <code>thresholding=True</code>.`,name:"sample_max_value"}],source:"https://github.com/huggingface/diffusers/blob/v0.16.0/src/diffusers/schedulers/scheduling_ddpm.py#L76"}}),F=new $e({props:{name:"scale_model_input",anchor:"diffusers.DDPMScheduler.scale_model_input",parameters:[{name:"sample",val:": FloatTensor"},{name:"timestep",val:": typing.Optional[int] = None"}],parametersDescription:[{anchor:"diffusers.DDPMScheduler.scale_model_input.sample",description:"<strong>sample</strong> (<code>torch.FloatTensor</code>) &#x2014; input sample",name:"sample"},{anchor:"diffusers.DDPMScheduler.scale_model_input.timestep",description:"<strong>timestep</strong> (<code>int</code>, optional) &#x2014; current timestep",name:"timestep"}],source:"https://github.com/huggingface/diffusers/blob/v0.16.0/src/diffusers/schedulers/scheduling_ddpm.py#L171",returnDescription:`
<p>scaled input sample</p>
`,returnType:`
<p><code>torch.FloatTensor</code></p>
`}}),k=new $e({props:{name:"set_timesteps",anchor:"diffusers.DDPMScheduler.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.DDPMScheduler.set_timesteps.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>Optional[int]</code>) &#x2014;
the number of diffusion steps used when generating samples with a pre-trained model. If passed, then
<code>timesteps</code> must be <code>None</code>.`,name:"num_inference_steps"},{anchor:"diffusers.DDPMScheduler.set_timesteps.device",description:`<strong>device</strong> (<code>str</code> or <code>torch.device</code>, optional) &#x2014;
the device to which the timesteps are moved to.`,name:"device"},{anchor:"diffusers.DDPMScheduler.set_timesteps.custom_timesteps",description:`<strong>custom_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:"custom_timesteps"}],source:"https://github.com/huggingface/diffusers/blob/v0.16.0/src/diffusers/schedulers/scheduling_ddpm.py#L185"}}),q=new $e({props:{name:"step",anchor:"diffusers.DDPMScheduler.step",parameters:[{name:"model_output",val:": FloatTensor"},{name:"timestep",val:": int"},{name:"sample",val:": FloatTensor"},{name:"generator",val:" = None"},{name:"return_dict",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.DDPMScheduler.step.model_output",description:"<strong>model_output</strong> (<code>torch.FloatTensor</code>) &#x2014; direct output from learned diffusion model.",name:"model_output"},{anchor:"diffusers.DDPMScheduler.step.timestep",description:"<strong>timestep</strong> (<code>int</code>) &#x2014; current discrete timestep in the diffusion chain.",name:"timestep"},{anchor:"diffusers.DDPMScheduler.step.sample",description:`<strong>sample</strong> (<code>torch.FloatTensor</code>) &#x2014;
current instance of sample being created by diffusion process.
generator &#x2014; random number generator.`,name:"sample"},{anchor:"diffusers.DDPMScheduler.step.return_dict",description:"<strong>return_dict</strong> (<code>bool</code>) &#x2014; option for returning tuple rather than DDPMSchedulerOutput class",name:"return_dict"}],source:"https://github.com/huggingface/diffusers/blob/v0.16.0/src/diffusers/schedulers/scheduling_ddpm.py#L312",returnDescription:`
<p><code>~schedulers.scheduling_utils.DDPMSchedulerOutput</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.DDPMSchedulerOutput</code> or <code>tuple</code></p>
`}}),{c(){_=s("meta"),pe=l(),v=s("h1"),y=s("a"),Y=s("span"),V(E.$$.fragment),Ee=l(),Z=s("span"),Ae=i("Denoising Diffusion Probabilistic Models (DDPM)"),he=l(),b=s("h2"),P=s("a"),ee=s("span"),V(A.$$.fragment),Te=l(),te=s("span"),Ne=i("Overview"),fe=l(),T=s("p"),N=s("a"),Oe=i("Denoising Diffusion Probabilistic Models"),Ie=i(`
(DDPM) by Jonathan Ho, Ajay Jain and Pieter Abbeel proposes the diffusion based model of the same name, but in the context of the \u{1F917} Diffusers library, DDPM refers to the discrete denoising scheduler from the paper as well as the pipeline.`),ue=l(),W=s("p"),Le=i("The abstract of the paper is the following:"),me=l(),j=s("p"),Ce=i("We present high quality image synthesis results using diffusion probabilistic models, a class of latent variable models inspired by considerations from nonequilibrium thermodynamics. Our best results are obtained by training on a weighted variational bound designed according to a novel connection between diffusion probabilistic models and denoising score matching with Langevin dynamics, and our models naturally admit a progressive lossy decompression scheme that can be interpreted as a generalization of autoregressive decoding. On the unconditional CIFAR10 dataset, we obtain an Inception score of 9.46 and a state-of-the-art FID score of 3.17. On 256x256 LSUN, we obtain sample quality similar to ProgressiveGAN."),ge=l(),x=s("p"),Fe=i("The original paper can be found "),O=s("a"),ke=i("here"),qe=i("."),_e=l(),D=s("h2"),w=s("a"),oe=s("span"),V(I.$$.fragment),Ve=l(),se=s("span"),He=i("DDPMScheduler"),ve=l(),p=s("div"),V(L.$$.fragment),Je=l(),re=s("p"),Ue=i(`Denoising diffusion probabilistic models (DDPMs) explores the connections between denoising score matching and
Langevin dynamics sampling.`),Ge=l(),f=s("p"),z=s("a"),Re=i("~ConfigMixin"),We=i(" takes care of storing all config attributes that are passed in the scheduler\u2019s "),ne=s("code"),je=i("__init__"),ze=i(`
function, such as `),ie=s("code"),Be=i("num_train_timesteps"),Ke=i(". They can be accessed via "),ae=s("code"),Qe=i("scheduler.config.num_train_timesteps"),Xe=i(`.
`),B=s("a"),Ye=i("SchedulerMixin"),Ze=i(" provides general loading and saving functionality via the "),K=s("a"),et=i("SchedulerMixin.save_pretrained()"),tt=i(` and
`),Q=s("a"),ot=i("from_pretrained()"),st=i(" functions."),rt=l(),X=s("p"),nt=i("For more details, see the original paper: "),C=s("a"),it=i("https://arxiv.org/abs/2006.11239"),at=l(),M=s("div"),V(F.$$.fragment),dt=l(),de=s("p"),lt=i(`Ensures interchangeability with schedulers that need to scale the denoising model input depending on the
current timestep.`),ct=l(),S=s("div"),V(k.$$.fragment),pt=l(),le=s("p"),ht=i("Sets the discrete timesteps used for the diffusion chain. Supporting function to be run before inference."),ft=l(),$=s("div"),V(q.$$.fragment),ut=l(),ce=s("p"),mt=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(t){const h=Bt('[data-svelte="svelte-1phssyn"]',document.head);_=r(h,"META",{name:!0,content:!0}),h.forEach(o),pe=c(t),v=r(t,"H1",{class:!0});var De=n(v);y=r(De,"A",{id:!0,class:!0,href:!0});var Dt=n(y);Y=r(Dt,"SPAN",{});var yt=n(Y);H(E.$$.fragment,yt),yt.forEach(o),Dt.forEach(o),Ee=c(De),Z=r(De,"SPAN",{});var Pt=n(Z);Ae=a(Pt,"Denoising Diffusion Probabilistic Models (DDPM)"),Pt.forEach(o),De.forEach(o),he=c(t),b=r(t,"H2",{class:!0});var ye=n(b);P=r(ye,"A",{id:!0,class:!0,href:!0});var xt=n(P);ee=r(xt,"SPAN",{});var wt=n(ee);H(A.$$.fragment,wt),wt.forEach(o),xt.forEach(o),Te=c(ye),te=r(ye,"SPAN",{});var Mt=n(te);Ne=a(Mt,"Overview"),Mt.forEach(o),ye.forEach(o),fe=c(t),T=r(t,"P",{});var gt=n(T);N=r(gt,"A",{href:!0,rel:!0});var St=n(N);Oe=a(St,"Denoising Diffusion Probabilistic Models"),St.forEach(o),Ie=a(gt,`
(DDPM) by Jonathan Ho, Ajay Jain and Pieter Abbeel proposes the diffusion based model of the same name, but in the context of the \u{1F917} Diffusers library, DDPM refers to the discrete denoising scheduler from the paper as well as the pipeline.`),gt.forEach(o),ue=c(t),W=r(t,"P",{});var $t=n(W);Le=a($t,"The abstract of the paper is the following:"),$t.forEach(o),me=c(t),j=r(t,"P",{});var Et=n(j);Ce=a(Et,"We present high quality image synthesis results using diffusion probabilistic models, a class of latent variable models inspired by considerations from nonequilibrium thermodynamics. Our best results are obtained by training on a weighted variational bound designed according to a novel connection between diffusion probabilistic models and denoising score matching with Langevin dynamics, and our models naturally admit a progressive lossy decompression scheme that can be interpreted as a generalization of autoregressive decoding. On the unconditional CIFAR10 dataset, we obtain an Inception score of 9.46 and a state-of-the-art FID score of 3.17. On 256x256 LSUN, we obtain sample quality similar to ProgressiveGAN."),Et.forEach(o),ge=c(t),x=r(t,"P",{});var Pe=n(x);Fe=a(Pe,"The original paper can be found "),O=r(Pe,"A",{href:!0,rel:!0});var At=n(O);ke=a(At,"here"),At.forEach(o),qe=a(Pe,"."),Pe.forEach(o),_e=c(t),D=r(t,"H2",{class:!0});var xe=n(D);w=r(xe,"A",{id:!0,class:!0,href:!0});var Tt=n(w);oe=r(Tt,"SPAN",{});var Nt=n(oe);H(I.$$.fragment,Nt),Nt.forEach(o),Tt.forEach(o),Ve=c(xe),se=r(xe,"SPAN",{});var Ot=n(se);He=a(Ot,"DDPMScheduler"),Ot.forEach(o),xe.forEach(o),ve=c(t),p=r(t,"DIV",{class:!0});var g=n(p);H(L.$$.fragment,g),Je=c(g),re=r(g,"P",{});var It=n(re);Ue=a(It,`Denoising diffusion probabilistic models (DDPMs) explores the connections between denoising score matching and
Langevin dynamics sampling.`),It.forEach(o),Ge=c(g),f=r(g,"P",{});var m=n(f);z=r(m,"A",{href:!0});var Lt=n(z);Re=a(Lt,"~ConfigMixin"),Lt.forEach(o),We=a(m," takes care of storing all config attributes that are passed in the scheduler\u2019s "),ne=r(m,"CODE",{});var Ct=n(ne);je=a(Ct,"__init__"),Ct.forEach(o),ze=a(m,`
function, such as `),ie=r(m,"CODE",{});var Ft=n(ie);Be=a(Ft,"num_train_timesteps"),Ft.forEach(o),Ke=a(m,". They can be accessed via "),ae=r(m,"CODE",{});var kt=n(ae);Qe=a(kt,"scheduler.config.num_train_timesteps"),kt.forEach(o),Xe=a(m,`.
`),B=r(m,"A",{href:!0});var qt=n(B);Ye=a(qt,"SchedulerMixin"),qt.forEach(o),Ze=a(m," provides general loading and saving functionality via the "),K=r(m,"A",{href:!0});var Vt=n(K);et=a(Vt,"SchedulerMixin.save_pretrained()"),Vt.forEach(o),tt=a(m,` and
`),Q=r(m,"A",{href:!0});var Ht=n(Q);ot=a(Ht,"from_pretrained()"),Ht.forEach(o),st=a(m," functions."),m.forEach(o),rt=c(g),X=r(g,"P",{});var _t=n(X);nt=a(_t,"For more details, see the original paper: "),C=r(_t,"A",{href:!0,rel:!0});var Jt=n(C);it=a(Jt,"https://arxiv.org/abs/2006.11239"),Jt.forEach(o),_t.forEach(o),at=c(g),M=r(g,"DIV",{class:!0});var we=n(M);H(F.$$.fragment,we),dt=c(we),de=r(we,"P",{});var Ut=n(de);lt=a(Ut,`Ensures interchangeability with schedulers that need to scale the denoising model input depending on the
current timestep.`),Ut.forEach(o),we.forEach(o),ct=c(g),S=r(g,"DIV",{class:!0});var Me=n(S);H(k.$$.fragment,Me),pt=c(Me),le=r(Me,"P",{});var Gt=n(le);ht=a(Gt,"Sets the discrete timesteps used for the diffusion chain. Supporting function to be run before inference."),Gt.forEach(o),Me.forEach(o),ft=c(g),$=r(g,"DIV",{class:!0});var Se=n($);H(q.$$.fragment,Se),ut=c(Se),ce=r(Se,"P",{});var Rt=n(ce);mt=a(Rt,`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).`),Rt.forEach(o),Se.forEach(o),g.forEach(o),this.h()},h(){d(_,"name","hf:doc:metadata"),d(_,"content",JSON.stringify(Yt)),d(y,"id","denoising-diffusion-probabilistic-models-ddpm"),d(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"),d(y,"href","#denoising-diffusion-probabilistic-models-ddpm"),d(v,"class","relative group"),d(P,"id","overview"),d(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"),d(P,"href","#overview"),d(b,"class","relative group"),d(N,"href","https://arxiv.org/abs/2006.11239"),d(N,"rel","nofollow"),d(O,"href","https://arxiv.org/abs/2010.02502"),d(O,"rel","nofollow"),d(w,"id","diffusers.DDPMScheduler"),d(w,"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"),d(w,"href","#diffusers.DDPMScheduler"),d(D,"class","relative group"),d(z,"href","/docs/diffusers/v0.16.0/en/api/configuration#diffusers.ConfigMixin"),d(B,"href","/docs/diffusers/v0.16.0/en/api/schedulers/overview#diffusers.SchedulerMixin"),d(K,"href","/docs/diffusers/v0.16.0/en/api/schedulers/overview#diffusers.SchedulerMixin.save_pretrained"),d(Q,"href","/docs/diffusers/v0.16.0/en/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained"),d(C,"href","https://arxiv.org/abs/2006.11239"),d(C,"rel","nofollow"),d(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(p,"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,_),u(t,pe,h),u(t,v,h),e(v,y),e(y,Y),J(E,Y,null),e(v,Ee),e(v,Z),e(Z,Ae),u(t,he,h),u(t,b,h),e(b,P),e(P,ee),J(A,ee,null),e(b,Te),e(b,te),e(te,Ne),u(t,fe,h),u(t,T,h),e(T,N),e(N,Oe),e(T,Ie),u(t,ue,h),u(t,W,h),e(W,Le),u(t,me,h),u(t,j,h),e(j,Ce),u(t,ge,h),u(t,x,h),e(x,Fe),e(x,O),e(O,ke),e(x,qe),u(t,_e,h),u(t,D,h),e(D,w),e(w,oe),J(I,oe,null),e(D,Ve),e(D,se),e(se,He),u(t,ve,h),u(t,p,h),J(L,p,null),e(p,Je),e(p,re),e(re,Ue),e(p,Ge),e(p,f),e(f,z),e(z,Re),e(f,We),e(f,ne),e(ne,je),e(f,ze),e(f,ie),e(ie,Be),e(f,Ke),e(f,ae),e(ae,Qe),e(f,Xe),e(f,B),e(B,Ye),e(f,Ze),e(f,K),e(K,et),e(f,tt),e(f,Q),e(Q,ot),e(f,st),e(p,rt),e(p,X),e(X,nt),e(X,C),e(C,it),e(p,at),e(p,M),J(F,M,null),e(M,dt),e(M,de),e(de,lt),e(p,ct),e(p,S),J(k,S,null),e(S,pt),e(S,le),e(le,ht),e(p,ft),e(p,$),J(q,$,null),e($,ut),e($,ce),e(ce,mt),be=!0},p:Kt,i(t){be||(U(E.$$.fragment,t),U(A.$$.fragment,t),U(I.$$.fragment,t),U(L.$$.fragment,t),U(F.$$.fragment,t),U(k.$$.fragment,t),U(q.$$.fragment,t),be=!0)},o(t){G(E.$$.fragment,t),G(A.$$.fragment,t),G(I.$$.fragment,t),G(L.$$.fragment,t),G(F.$$.fragment,t),G(k.$$.fragment,t),G(q.$$.fragment,t),be=!1},d(t){o(_),t&&o(pe),t&&o(v),R(E),t&&o(he),t&&o(b),R(A),t&&o(fe),t&&o(T),t&&o(ue),t&&o(W),t&&o(me),t&&o(j),t&&o(ge),t&&o(x),t&&o(_e),t&&o(D),R(I),t&&o(ve),t&&o(p),R(L),R(F),R(k),R(q)}}}const Yt={local:"denoising-diffusion-probabilistic-models-ddpm",sections:[{local:"overview",title:"Overview"},{local:"diffusers.DDPMScheduler",title:"DDPMScheduler"}],title:"Denoising Diffusion Probabilistic Models (DDPM)"};function Zt(bt){return Qt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class so extends Wt{constructor(_){super();jt(this,_,Zt,Xt,zt,{})}}export{so as default,Yt as metadata};
