| const express = require('express'); |
| const bodyParser = require('body-parser'); |
| const dotenv = require('dotenv'); |
| |
| const fetch = (await import('node-fetch')).default; |
|
|
|
|
|
|
| |
| dotenv.config(); |
|
|
| const app = express(); |
| const port = 3000; |
| const apiKey = process.env.KEY; |
|
|
| app.use(bodyParser.json()); |
|
|
| |
| app.all('/', (req, res, next) => { |
| if (req.method !== 'POST') { |
| res.status(405).send('Только POST'); |
| } else { |
| const { prompt } = req.body; |
|
|
| if (!prompt) { |
| return res.status(400).send('Missing "prompt" in request body'); |
| } |
| |
| try { |
| |
| console.log('Sending request to Hugging Face API...'); |
|
|
| const response = await fetch('https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-3-medium', { |
| method: 'POST', |
| headers: { |
| 'Authorization': `Bearer ${apiKey}`, |
| 'Content-Type': 'application/json' |
| }, |
| body: JSON.stringify({ |
| inputs: prompt |
| }), |
| |
| timeout: 60000 |
| }); |
|
|
| if (!response.ok) { |
| throw new Error(`Error from Hugging Face API: ${response.statusText}`); |
| } |
|
|
| console.log('Received response from Hugging Face API, processing image...'); |
|
|
| const imageBuffer = await response.buffer(); |
| const base64Image = imageBuffer.toString('base64'); |
|
|
| res.json({ image: base64Image }); |
| } catch (error) { |
| console.error('Error generating image:', error.message); |
| res.status(500).send('Error generating image'); |
| } |
| } |
| }); |
| |
| }); |
|
|
| app.listen(port, () => { |
| console.log(`Server is running on http://localhost:${port}`); |
| }); |
|
|