Spaces:
Sleeping
Sleeping
import { NextResponse } from 'next/server'; | |
export async function POST(request: Request) { | |
const { prompt } = await request.json(); | |
try { | |
const response = await fetch( | |
"https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-3.5-large", | |
{ | |
headers: { | |
Authorization: "Bearer " + process.env.API_TOKEN, | |
"Content-Type": "application/json", | |
}, | |
method: "POST", | |
body: JSON.stringify({ | |
inputs: prompt, | |
parameters: { | |
negative_prompt: "blurry, bad quality, distorted", | |
num_inference_steps: 30, | |
guidance_scale: 7.5, | |
} | |
}), | |
} | |
); | |
if (!response.ok) { | |
throw new Error(`HTTP error! status: ${response.status}`); | |
} | |
const imageBlob = await response.blob(); | |
const arrayBuffer = await imageBlob.arrayBuffer(); | |
const buffer = Buffer.from(arrayBuffer); | |
const base64Image = buffer.toString('base64'); | |
const contentType = response.headers.get('content-type') || 'image/jpeg'; | |
return NextResponse.json({ | |
imageUrl: `data:${contentType};base64,${base64Image}`, | |
success: true | |
}); | |
} catch (error) { | |
console.error('Image generation error:', error); | |
return NextResponse.json({ | |
error: 'Failed to generate image', | |
success: false, | |
}, { status: 500 }); | |
} | |
} |