File size: 2,066 Bytes
86bd386 8572af6 89c2bab 8572af6 3ea6928 86bd386 3ea6928 5669f71 abed4cc 289e552 3ea6928 5d38af1 289e552 587da90 ffc35f2 0f8eb30 ffc35f2 098cbfd 2b60bab 098cbfd 3146fbf 098cbfd 94f215f 098cbfd 289e552 098cbfd 289e552 098cbfd 94f215f 098cbfd 289e552 098cbfd 2b60bab 587da90 098cbfd 587da90 abed4cc 289e552 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
const express = require('express');
const bodyParser = require('body-parser');
const dotenv = require('dotenv');
// Динамический импорт node-fetch
const fetch = (await import('node-fetch')).default;
// Загрузка переменных окружения из .env файла
dotenv.config();
const app = express();
const port = 3000;
const apiKey = process.env.KEY;
app.use(bodyParser.json());
// Обработка только POST запросов
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
}),
// Добавляем тайм-аут в 60 секунд
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}`);
});
|