nock2 commited on
Commit
f475ceb
·
verified ·
1 Parent(s): 8938fe2

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -0
app.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torchaudio
3
+ from einops import rearrange
4
+ import gradio as gr
5
+ from stable_audio_tools import get_pretrained_model
6
+ from stable_audio_tools.inference.generation import generate_diffusion_cond
7
+
8
+ device = "cuda" if torch.cuda.is_available() else "cpu"
9
+ model, config = get_pretrained_model("stabilityai/stable-audio-open-small")
10
+ model = model.to(device)
11
+ sample_rate = config["sample_rate"]
12
+ sample_size = config["sample_size"]
13
+
14
+ def generate_audio(prompt):
15
+ conditioning = [{"prompt": prompt, "seconds_total": 11}]
16
+ with torch.no_grad():
17
+ output = generate_diffusion_cond(
18
+ model,
19
+ steps=8,
20
+ conditioning=conditioning,
21
+ sample_size=sample_size,
22
+ device=device
23
+ )
24
+ output = rearrange(output, "b d n -> d (b n)")
25
+ output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()
26
+ path = "output.wav"
27
+ torchaudio.save(path, output, sample_rate)
28
+ return path
29
+
30
+ ui = gr.Interface(fn=generate_audio,
31
+ inputs=gr.Textbox(label="Prompt (e.g. 128 BPM tech house drum loop)"),
32
+ outputs=gr.Audio(type="filepath"),
33
+ title="Stable Audio Generator")
34
+
35
+ ui.launch()