| | 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__) |
| |
|
| | |
| | @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']) |
| | |
| | |
| | image = generate_image( |
| | "http://127.0.0.1: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) |
| |
|