File size: 1,567 Bytes
76ec65c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2729cfc
 
76ec65c
 
2729cfc
76ec65c
 
 
 
 
 
 
2729cfc
76ec65c
 
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
from flask import Flask, request, jsonify, render_template
import requests
import base64

app = Flask(__name__)

# URL do modelo Hugging Face e seu token de API
HUGGINGFACE_API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2"
HUGGINGFACE_API_TOKEN = "SEU_TOKEN_AQUI"

headers = {
    "Authorization": f"Bearer {HUGGINGFACE_API_TOKEN}"
}

@app.route("/")
def home():
    return """
    <h1>Gerador de Imagens</h1>
    <form action="/generate" method="post" enctype="multipart/form-data">
        <label for="prompt">Descrição:</label>
        <input type="text" name="prompt" id="prompt" required>
        <button type="submit">Gerar</button>
    </form>
    """

@app.route("/generate", methods=["POST"])
def generate_image():
    prompt = request.form.get("prompt")
    if not prompt:
        return jsonify({"error": "O campo 'prompt' é obrigatório."}), 400

    # Requisição para o modelo Hugging Face
    response = requests.post(
        HUGGINGFACE_API_URL,
        headers=headers,
        json={"inputs": prompt}
    )

    if response.status_code != 200:
        return jsonify({"error": "Erro ao gerar a imagem", "details": response.text}), 500

    # Converte imagem para Base64
    image_data = response.content
    image_base64 = base64.b64encode(image_data).decode("utf-8")

    # Retorna a imagem diretamente no navegador
    return f'<img src="data:image/png;base64,{image_base64}" alt="Generated Image">'
    
if __name__ == "__main__":
    from waitress import serve
    serve(app, host="0.0.0.0", port=8080)