File size: 1,525 Bytes
86bd386
 
 
3ea6928
86bd386
3ea6928
5669f71
abed4cc
289e552
3ea6928
5d38af1
289e552
587da90
1722338
289e552
a3fc701
289e552
 
 
2b60bab
289e552
86bd386
 
 
1722338
289e552
 
3ea6928
289e552
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2b60bab
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
const express = require('express');
const bodyParser = require('body-parser');
const dotenv = require('dotenv');

// Загрузка переменных окружения из .env файла
dotenv.config();

const app = express();
const port = 3000;
const apiKey = process.env.KEY;

app.use(bodyParser.json());

app.post('/', async (req, res) => {
    const { prompt } = req.body;

    if (!prompt) {
        return res.status(400).send('Missing "prompt" in request body');
    }

    try {
        // Динамический импорт node-fetch
        const fetch = (await import('node-fetch')).default;

        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
            })
        });

        if (!response.ok) {
            throw new Error(`Error from Hugging Face API: ${response.statusText}`);
        }

        const imageBuffer = await response.buffer();
        const base64Image = imageBuffer.toString('base64');

        res.json({ image: base64Image });
    } catch (error) {
        console.error('Error generating image:', error);
        res.status(500).send('Error generating image');
    }
});

app.listen(port, () => {
    console.log(`Server is running on http://localhost:${port}`);
});