File size: 1,839 Bytes
244baf9 | 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 | from flask import Flask, request, jsonify, send_file, send_from_directory
import os
import requests
from PIL import Image
import io
def generate_image(api_url, positive_prompt, negative_prompt=""):
payload = {
"positive_prompt": positive_prompt,
"negative_prompt": negative_prompt,
}
try:
response = requests.post(
f"{api_url}/generate",
json=payload,
timeout=30
)
if response.status_code == 200:
return Image.open(io.BytesIO(response.content))
else:
error_info = response.json().get("detail", "Unknown error")
print(f"生成失败 ({response.status_code}): {error_info}")
except Exception as e:
print(f"API调用异常: {str(e)}")
app = Flask(__name__)
# Serve static files from the current directory
@app.route('/<path:filename>')
def serve_static(filename):
return send_from_directory('.', filename)
@app.route('/')
def index():
return send_file('index.html')
@app.route('/generate', methods=['POST'])
def generate():
data = request.json
positive_prompt = ", ".join(data['terms'])
# Call image generation
image = generate_image(
"http://192.168.20.113:7888",
positive_prompt=positive_prompt,
negative_prompt="open cloth,pornographic,violence,wearing less,signature, soft, blurry, drawing, sketch, poor quality, ugly, text, type, word, logo, pixelated, low resolution, saturated, high contrast, oversharpened"
)
if image:
image_path = "generated_image.png"
image.save(image_path)
return send_file(image_path, mimetype='image/png')
else:
return jsonify({"error": "Image generation failed"}), 500
if __name__ == '__main__':
app.run(port=5000, debug=True)
|