Spaces:
Paused
Paused
| import { NextRequest } from "next/server"; | |
| export async function POST( | |
| request: NextRequest, | |
| ) { | |
| const { prompt } = await request.json(); | |
| const response = await fetch("https://api-inference.huggingface.co/models/CiroN2022/cd-md-music", { | |
| method: "POST", | |
| headers: { | |
| Authorization: `Bearer ${process.env.HF_TOKEN}`, | |
| 'Content-Type': 'application/json', | |
| ['x-use-cache']: "0" | |
| }, | |
| body: JSON.stringify({ | |
| inputs: prompt, | |
| }), | |
| }) | |
| .then((response: any) => { | |
| if (response.status !== 200) return Response.json({ status: 500, ok: false, message: response.statusText }) | |
| return response.arrayBuffer() | |
| }) | |
| .then((response) => { | |
| return Buffer.from(response) | |
| }) | |
| .catch((error) => { | |
| return { | |
| error: error.message, | |
| } | |
| }) | |
| if ("error" in response) { | |
| return Response.json({ status: 500, ok: false, message: response.error }) | |
| } | |
| // buffer to blob | |
| const image = Buffer.from(response).toString('base64') | |
| return Response.json({ | |
| image: "data:image/png;base64," + image, | |
| }) | |
| } |