import{s as me,o as he,n as ce}from"../chunks/scheduler.182ea377.js";import{S as _e,i as ge,g as d,s as o,r as w,A as $e,h as u,f as n,c as r,j as A,u as y,x as k,k as S,y as m,a,v as T,d as M,t as D,w as P}from"../chunks/index.abf12888.js";import{T as be}from"../chunks/Tip.230e2334.js";import{D as ae}from"../chunks/Docstring.93f6f462.js";import{C as ve}from"../chunks/CodeBlock.57fe6e13.js";import{E as we}from"../chunks/ExampleCodeBlock.658f5cd6.js";import{H as oe}from"../chunks/Heading.16916d63.js";function ye(V){let s,g='Make sure to check out the Schedulers <a href="../../using-diffusers/schedulers">guide</a> to learn how to explore the tradeoff between scheduler speed and quality, and see the <a href="../../using-diffusers/loading#reuse-components-across-pipelines">reuse components across pipelines</a> section to learn how to efficiently load the same components into multiple pipelines.';return{c(){s=d("p"),s.innerHTML=g},l(l){s=u(l,"P",{"data-svelte-h":!0}),k(s)!=="svelte-1wmc0l4"&&(s.innerHTML=g)},m(l,p){a(l,s,p)},p:ce,d(l){l&&n(s)}}}function Te(V){let s,g="Example:",l,p,c;return p=new ve({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBZnJvbSUyMHNjaXB5LmlvLndhdmZpbGUlMjBpbXBvcnQlMjB3cml0ZSUwQSUwQW1vZGVsX2lkJTIwJTNEJTIwJTIyaGFybW9uYWklMkZtYWVzdHJvLTE1MGslMjIlMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2lkKSUwQXBpcGUlMjAlM0QlMjBwaXBlLnRvKCUyMmN1ZGElMjIpJTBBJTBBYXVkaW9zJTIwJTNEJTIwcGlwZShhdWRpb19sZW5ndGhfaW5fcyUzRDQuMCkuYXVkaW9zJTBBJTBBJTIzJTIwVG8lMjBzYXZlJTIwbG9jYWxseSUwQWZvciUyMGklMkMlMjBhdWRpbyUyMGluJTIwZW51bWVyYXRlKGF1ZGlvcyklM0ElMEElMjAlMjAlMjAlMjB3cml0ZShmJTIybWFlc3Ryb190ZXN0XyU3QmklN0Qud2F2JTIyJTJDJTIwcGlwZS51bmV0LnNhbXBsZV9yYXRlJTJDJTIwYXVkaW8udHJhbnNwb3NlKCkpJTBBJTBBJTIzJTIwVG8lMjBkaXNsYXklMjBpbiUyMGdvb2dsZSUyMGNvbGFiJTBBaW1wb3J0JTIwSVB5dGhvbi5kaXNwbGF5JTIwYXMlMjBpcGQlMEElMEFmb3IlMjBhdWRpbyUyMGluJTIwYXVkaW9zJTNBJTBBJTIwJTIwJTIwJTIwZGlzcGxheShpcGQuQXVkaW8oYXVkaW8lMkMlMjByYXRlJTNEcGlwZS51bmV0LnNhbXBsZV9yYXRlKSk=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
<span class="hljs-keyword">from</span> scipy.io.wavfile <span class="hljs-keyword">import</span> write

model_id = <span class="hljs-string">&quot;harmonai/maestro-150k&quot;</span>
pipe = DiffusionPipeline.from_pretrained(model_id)
pipe = pipe.to(<span class="hljs-string">&quot;cuda&quot;</span>)

audios = pipe(audio_length_in_s=<span class="hljs-number">4.0</span>).audios

<span class="hljs-comment"># To save locally</span>
<span class="hljs-keyword">for</span> i, audio <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(audios):
    write(<span class="hljs-string">f&quot;maestro_test_<span class="hljs-subst">{i}</span>.wav&quot;</span>, pipe.unet.sample_rate, audio.transpose())

<span class="hljs-comment"># To dislay in google colab</span>
<span class="hljs-keyword">import</span> IPython.display <span class="hljs-keyword">as</span> ipd

<span class="hljs-keyword">for</span> audio <span class="hljs-keyword">in</span> audios:
    display(ipd.Audio(audio, rate=pipe.unet.sample_rate))`,wrap:!1}}),{c(){s=d("p"),s.textContent=g,l=o(),w(p.$$.fragment)},l(i){s=u(i,"P",{"data-svelte-h":!0}),k(s)!=="svelte-11lpom8"&&(s.textContent=g),l=r(i),y(p.$$.fragment,i)},m(i,h){a(i,s,h),a(i,l,h),T(p,i,h),c=!0},p:ce,i(i){c||(M(p.$$.fragment,i),c=!0)},o(i){D(p.$$.fragment,i),c=!1},d(i){i&&(n(s),n(l)),P(p,i)}}}function Me(V){let s,g,l,p,c,i,h,re='<a href="https://github.com/Harmonai-org/sample-generator" rel="nofollow">Dance Diffusion</a> is by Zach Evans.',z,B,le='Dance Diffusion is the first in a suite of generative audio tools for producers and musicians released by <a href="https://github.com/Harmonai-org" rel="nofollow">Harmonai</a>.',L,J,H,j,O,f,G,K,X,pe="Pipeline for audio generation.",ee,E,de=`This model inherits from <a href="/docs/diffusers/v0.24.0/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a>. Check the superclass documentation for the generic methods
implemented for all pipelines (downloading, saving, running on a particular device, etc.).`,te,$,I,ne,N,ue="The call function to the pipeline for generation.",se,x,Y,Z,R,b,C,ie,U,fe="Output class for audio pipelines.",Q,W,q;return c=new oe({props:{title:"Dance Diffusion",local:"dance-diffusion",headingTag:"h1"}}),J=new be({props:{$$slots:{default:[ye]},$$scope:{ctx:V}}}),j=new oe({props:{title:"DanceDiffusionPipeline",local:"diffusers.DanceDiffusionPipeline",headingTag:"h2"}}),G=new ae({props:{name:"class diffusers.DanceDiffusionPipeline",anchor:"diffusers.DanceDiffusionPipeline",parameters:[{name:"unet",val:""},{name:"scheduler",val:""}],parametersDescription:[{anchor:"diffusers.DanceDiffusionPipeline.unet",description:`<strong>unet</strong> (<a href="/docs/diffusers/v0.24.0/en/api/models/unet#diffusers.UNet1DModel">UNet1DModel</a>) &#x2014;
A <code>UNet1DModel</code> to denoise the encoded audio.`,name:"unet"},{anchor:"diffusers.DanceDiffusionPipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/v0.24.0/en/api/schedulers/overview#diffusers.SchedulerMixin">SchedulerMixin</a>) &#x2014;
A scheduler to be used in combination with <code>unet</code> to denoise the encoded audio latents. Can be one of
<a href="/docs/diffusers/v0.24.0/en/api/schedulers/ipndm#diffusers.IPNDMScheduler">IPNDMScheduler</a>.`,name:"scheduler"}],source:"https://github.com/huggingface/diffusers/blob/v0.24.0/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py#L28"}}),I=new ae({props:{name:"__call__",anchor:"diffusers.DanceDiffusionPipeline.__call__",parameters:[{name:"batch_size",val:": int = 1"},{name:"num_inference_steps",val:": int = 100"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None"},{name:"audio_length_in_s",val:": typing.Optional[float] = None"},{name:"return_dict",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.DanceDiffusionPipeline.__call__.batch_size",description:`<strong>batch_size</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The number of audio samples to generate.`,name:"batch_size"},{anchor:"diffusers.DanceDiffusionPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 50) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher-quality audio sample at
the expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.DanceDiffusionPipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code>, <em>optional</em>) &#x2014;
A <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow"><code>torch.Generator</code></a> to make
generation deterministic.`,name:"generator"},{anchor:"diffusers.DanceDiffusionPipeline.__call__.audio_length_in_s",description:`<strong>audio_length_in_s</strong> (<code>float</code>, <em>optional</em>, defaults to <code>self.unet.config.sample_size/self.unet.config.sample_rate</code>) &#x2014;
The length of the generated audio sample in seconds.`,name:"audio_length_in_s"},{anchor:"diffusers.DanceDiffusionPipeline.__call__.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.24.0/en/api/pipelines/spectrogram_diffusion#diffusers.AudioPipelineOutput">AudioPipelineOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/diffusers/blob/v0.24.0/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py#L49",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>If <code>return_dict</code> is <code>True</code>, <a
  href="/docs/diffusers/v0.24.0/en/api/pipelines/spectrogram_diffusion#diffusers.AudioPipelineOutput"
>AudioPipelineOutput</a> is returned, otherwise a <code>tuple</code> is
returned where the first element is a list with the generated audio.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><a
  href="/docs/diffusers/v0.24.0/en/api/pipelines/spectrogram_diffusion#diffusers.AudioPipelineOutput"
>AudioPipelineOutput</a> or <code>tuple</code></p>
`}}),x=new we({props:{anchor:"diffusers.DanceDiffusionPipeline.__call__.example",$$slots:{default:[Te]},$$scope:{ctx:V}}}),Z=new oe({props:{title:"AudioPipelineOutput",local:"diffusers.AudioPipelineOutput",headingTag:"h2"}}),C=new ae({props:{name:"class diffusers.AudioPipelineOutput",anchor:"diffusers.AudioPipelineOutput",parameters:[{name:"audios",val:": ndarray"}],parametersDescription:[{anchor:"diffusers.AudioPipelineOutput.audios",description:`<strong>audios</strong> (<code>np.ndarray</code>) &#x2014;
List of denoised audio samples of a NumPy array of shape <code>(batch_size, num_channels, sample_rate)</code>.`,name:"audios"}],source:"https://github.com/huggingface/diffusers/blob/v0.24.0/src/diffusers/pipelines/pipeline_utils.py#L125"}}),{c(){s=d("meta"),g=o(),l=d("p"),p=o(),w(c.$$.fragment),i=o(),h=d("p"),h.innerHTML=re,z=o(),B=d("p"),B.innerHTML=le,L=o(),w(J.$$.fragment),H=o(),w(j.$$.fragment),O=o(),f=d("div"),w(G.$$.fragment),K=o(),X=d("p"),X.textContent=pe,ee=o(),E=d("p"),E.innerHTML=de,te=o(),$=d("div"),w(I.$$.fragment),ne=o(),N=d("p"),N.textContent=ue,se=o(),w(x.$$.fragment),Y=o(),w(Z.$$.fragment),R=o(),b=d("div"),w(C.$$.fragment),ie=o(),U=d("p"),U.textContent=fe,Q=o(),W=d("p"),this.h()},l(e){const t=$e("svelte-u9bgzb",document.head);s=u(t,"META",{name:!0,content:!0}),t.forEach(n),g=r(e),l=u(e,"P",{}),A(l).forEach(n),p=r(e),y(c.$$.fragment,e),i=r(e),h=u(e,"P",{"data-svelte-h":!0}),k(h)!=="svelte-z4ffbo"&&(h.innerHTML=re),z=r(e),B=u(e,"P",{"data-svelte-h":!0}),k(B)!=="svelte-dzyais"&&(B.innerHTML=le),L=r(e),y(J.$$.fragment,e),H=r(e),y(j.$$.fragment,e),O=r(e),f=u(e,"DIV",{class:!0});var _=A(f);y(G.$$.fragment,_),K=r(_),X=u(_,"P",{"data-svelte-h":!0}),k(X)!=="svelte-1jvczvp"&&(X.textContent=pe),ee=r(_),E=u(_,"P",{"data-svelte-h":!0}),k(E)!=="svelte-kecqr7"&&(E.innerHTML=de),te=r(_),$=u(_,"DIV",{class:!0});var v=A($);y(I.$$.fragment,v),ne=r(v),N=u(v,"P",{"data-svelte-h":!0}),k(N)!=="svelte-50j04k"&&(N.textContent=ue),se=r(v),y(x.$$.fragment,v),v.forEach(n),_.forEach(n),Y=r(e),y(Z.$$.fragment,e),R=r(e),b=u(e,"DIV",{class:!0});var F=A(b);y(C.$$.fragment,F),ie=r(F),U=u(F,"P",{"data-svelte-h":!0}),k(U)!=="svelte-19ryw33"&&(U.textContent=fe),F.forEach(n),Q=r(e),W=u(e,"P",{}),A(W).forEach(n),this.h()},h(){S(s,"name","hf:doc:metadata"),S(s,"content",De),S($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),S(f,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),S(b,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,t){m(document.head,s),a(e,g,t),a(e,l,t),a(e,p,t),T(c,e,t),a(e,i,t),a(e,h,t),a(e,z,t),a(e,B,t),a(e,L,t),T(J,e,t),a(e,H,t),T(j,e,t),a(e,O,t),a(e,f,t),T(G,f,null),m(f,K),m(f,X),m(f,ee),m(f,E),m(f,te),m(f,$),T(I,$,null),m($,ne),m($,N),m($,se),T(x,$,null),a(e,Y,t),T(Z,e,t),a(e,R,t),a(e,b,t),T(C,b,null),m(b,ie),m(b,U),a(e,Q,t),a(e,W,t),q=!0},p(e,[t]){const _={};t&2&&(_.$$scope={dirty:t,ctx:e}),J.$set(_);const v={};t&2&&(v.$$scope={dirty:t,ctx:e}),x.$set(v)},i(e){q||(M(c.$$.fragment,e),M(J.$$.fragment,e),M(j.$$.fragment,e),M(G.$$.fragment,e),M(I.$$.fragment,e),M(x.$$.fragment,e),M(Z.$$.fragment,e),M(C.$$.fragment,e),q=!0)},o(e){D(c.$$.fragment,e),D(J.$$.fragment,e),D(j.$$.fragment,e),D(G.$$.fragment,e),D(I.$$.fragment,e),D(x.$$.fragment,e),D(Z.$$.fragment,e),D(C.$$.fragment,e),q=!1},d(e){e&&(n(g),n(l),n(p),n(i),n(h),n(z),n(B),n(L),n(H),n(O),n(f),n(Y),n(R),n(b),n(Q),n(W)),n(s),P(c,e),P(J,e),P(j,e),P(G),P(I),P(x),P(Z,e),P(C)}}}const De='{"title":"Dance Diffusion","local":"dance-diffusion","sections":[{"title":"DanceDiffusionPipeline","local":"diffusers.DanceDiffusionPipeline","sections":[],"depth":2},{"title":"AudioPipelineOutput","local":"diffusers.AudioPipelineOutput","sections":[],"depth":2}],"depth":1}';function Pe(V){return he(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ze extends _e{constructor(s){super(),ge(this,s,Pe,Me,me,{})}}export{Ze as component};
