basyx commited on
Commit
c592441
·
verified ·
1 Parent(s): aeba6c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +64 -88
app.py CHANGED
@@ -1,93 +1,69 @@
1
- import os
2
  import gradio as gr
3
- from generate import generate_music, load_model
4
-
5
- # ------------------------------------------------
6
- # Load Model (Runs Once)
7
- # ------------------------------------------------
8
- print("Loading MusicGen model...")
9
- model = load_model()
10
- print("Model ready.")
11
-
12
- # ------------------------------------------------
13
- # Generate Handler
14
- # ------------------------------------------------
15
- def create_music(
16
- prompt,
17
- duration,
18
- temperature
19
- ):
20
- """
21
- Generates music from prompt.
22
- Returns path to generated audio file.
23
- """
24
-
25
- if not prompt or prompt.strip() == "":
26
- return None, "Prompt cannot be empty"
27
-
28
- output_file = generate_music(
29
- model=model,
30
- prompt=prompt,
31
- duration=int(duration),
32
- temperature=float(temperature),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  )
34
 
35
- return output_file, "Generation Complete ✅"
36
-
37
-
38
- # ------------------------------------------------
39
- # UI
40
- # ------------------------------------------------
41
- with gr.Blocks(title="Tier 3 AI Music Studio") as demo:
42
-
43
- gr.Markdown("# 🎵 Tier 3 AI Music Generator")
44
-
45
- with gr.Row():
46
- prompt = gr.Textbox(
47
- label="Music Prompt",
48
- placeholder="Epic cinematic orchestra, emotional, cinematic buildup..."
49
- )
50
-
51
- with gr.Row():
52
- duration = gr.Slider(
53
- minimum=5,
54
- maximum=30,
55
- value=10,
56
- step=1,
57
- label="Duration (seconds)"
58
- )
59
-
60
- temperature = gr.Slider(
61
- minimum=0.1,
62
- maximum=1.5,
63
- value=1.0,
64
- step=0.1,
65
- label="Creativity"
66
- )
67
-
68
- generate_btn = gr.Button("Generate Music")
69
-
70
- audio_output = gr.Audio(label="Generated Audio")
71
- status = gr.Textbox(label="Status")
72
-
73
- generate_btn.click(
74
- fn=create_music,
75
- inputs=[
76
- prompt,
77
- duration,
78
- temperature
79
- ],
80
- outputs=[
81
- audio_output,
82
- status
83
- ],
84
  )
85
 
86
- # ------------------------------------------------
87
- # Launch
88
- # ------------------------------------------------
89
- if __name__ == "__main__":
90
- demo.launch(
91
- server_name="0.0.0.0",
92
- server_port=7860
93
- )
 
1
+ from fastapi import FastAPI
2
  import gradio as gr
3
+ from generate import generate_music
4
+
5
+ # ======================
6
+ # FASTAPI BACKEND
7
+ # ======================
8
+
9
+ api = FastAPI(title="AI Background Music Generator")
10
+
11
+ @api.get("/health")
12
+ def health():
13
+ return {"status": "running"}
14
+
15
+ @api.post("/generate")
16
+ def api_generate(prompt: str, duration: int = 10):
17
+ file = generate_music(prompt, duration)
18
+ return {"audio": file}
19
+
20
+
21
+ # ======================
22
+ # GRADIO UI
23
+ # ======================
24
+
25
+ def ui_generate(prompt, duration):
26
+ audio = generate_music(prompt, duration)
27
+ return audio
28
+
29
+
30
+ with gr.Blocks(
31
+ title="AI Background Music Generator",
32
+ theme=gr.themes.Soft()
33
+ ) as demo:
34
+
35
+ gr.Markdown("""
36
+ # 🎵 AI Background Music Generator
37
+ Generate royalty-free background music instantly.
38
+ """)
39
+
40
+ prompt = gr.Textbox(
41
+ label="Music Description",
42
+ placeholder="Soft cinematic nasheed style..."
43
+ )
44
+
45
+ duration = gr.Slider(
46
+ minimum=5,
47
+ maximum=30,
48
+ value=10,
49
+ step=1,
50
+ label="Duration (seconds)"
51
  )
52
 
53
+ btn = gr.Button("Generate")
54
+
55
+ output = gr.Audio(type="filepath")
56
+
57
+ btn.click(
58
+ fn=ui_generate,
59
+ inputs=[prompt, duration],
60
+ outputs=output
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  )
62
 
63
+
64
+ # ======================
65
+ # IMPORTANT FIX
66
+ # ======================
67
+ # Mount GRADIO as ROOT APP
68
+
69
+ app = gr.mount_gradio_app(api, demo, path="/")