Spaces:
Sleeping
Sleeping
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}" | |
} | |
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> | |
""" | |
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) | |