VZN.AI.SOUND / app.py
ZAZA88888's picture
Update app.py
1feb095 verified
import gradio as gr
import torch
import torchaudio
import uuid
import tempfile
from audiocraft.models import MusicGen
device = "cuda" if torch.cuda.is_available() else "cpu"
# Load MusicGen small
musicgen_model = MusicGen.get_pretrained('facebook/musicgen-small').to(device)
def generate_music(prompt):
if musicgen_model:
try:
output = musicgen_model.generate([prompt])
with tempfile.NamedTemporaryFile(suffix=f"_music_{uuid.uuid4()[:8]}.wav", delete=False) as tmp:
music_path = tmp.name
torchaudio.save(music_path, output[0].cpu(), 32000)
torch.cuda.empty_cache()
return music_path, None
except Exception as e:
return None, f"Music generation failed: {str(e)}"
return None, "Music generation model not available."
# UI
custom_css = """
body {
background-color: white;
color: black;
font-family: 'Helvetica Neue', sans-serif;
}
h1, h2, label, p {
color: black;
}
"""
with gr.Blocks(css=custom_css) as app:
gr.Markdown("# **VZN.AI Music**\n##### _Create futuristic soundscapes_")
music_prompt = gr.Textbox(label="Describe the Music...")
music_output = gr.Audio(label="Generated Music")
music_error = gr.Textbox(label="Status", interactive=False)
music_button = gr.Button("Generate Music")
music_button.click(generate_music, inputs=music_prompt, outputs=[music_output, music_error])
app.launch(server_name="0.0.0.0", server_port=7860, share=True)