from fastapi import FastAPI from fastapi.responses import FileResponse import gradio as gr from generate import generate_music # ====================== # FASTAPI BACKEND # ====================== api = FastAPI(title="AI Background Music Generator") @api.get("/health") def health(): return {"status": "running"} @api.post("/generate") async def api_generate(prompt: str, duration: int = 10): file_path = generate_music(prompt, duration) return FileResponse( path=file_path, media_type="audio/wav", filename="music.wav" ) # ====================== # GRADIO UI # ====================== def ui_generate(prompt, duration): audio = generate_music(prompt, duration) return audio with gr.Blocks( title="AI Background Music Generator", theme=gr.themes.Soft(), ) as demo: gr.Markdown(""" # 🎵 AI Background Music Generator Generate royalty-free background music instantly. """) prompt = gr.Textbox( label="Music Description", placeholder="Soft cinematic nasheed style..." ) duration = gr.Slider( minimum=5, maximum=60, value=10, step=1, label="Duration (seconds)" ) btn = gr.Button("Generate") output = gr.Audio(type="filepath") btn.click( fn=ui_generate, inputs=[prompt, duration], outputs=output ) # ====================== # IMPORTANT FIX # ====================== # Mount GRADIO as ROOT APP app = gr.mount_gradio_app( api, demo, path="/", )