Spaces:
Sleeping
Sleeping
File size: 3,105 Bytes
27c79bc 40db3b8 d5fb696 27c79bc d5fb696 27c79bc d5fb696 760ff9a 40db3b8 bbbe8ba d8b766a bbbe8ba d8b766a f552fc6 d8b766a 40db3b8 d5fb696 27c79bc d5fb696 c8a4cd8 760ff9a d5fb696 27c79bc d5fb696 8333c17 d5fb696 8333c17 d5fb696 27c79bc d5fb696 8333c17 d5fb696 27c79bc 5794b1c bbbe8ba |
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# this imports the code from files and modules
from flask import Flask, request, jsonify, send_from_directory, url_for, render_template, send_file
from flask_cors import CORS
import os
import ctypes
import store_helper as sh
import block_builder
import sd_generator as sd
# This is a fix for the way that python doesn't release system memory back to the OS and it was leading to locking up the system
libc = ctypes.cdll.LoadLibrary("libc.so.6")
M_MMAP_THRESHOLD = -3
# Set malloc mmap threshold.
libc.mallopt(M_MMAP_THRESHOLD, 2**20)
# Initialize the Flask application
app = Flask(__name__)
os.makedirs('static/images', exist_ok=True)
# Serve files from the 'static' directory
@app.route('/static/<path:filename>')
def custom_static(filename):
return send_from_directory('static', filename)
# Serve HTML files from the main directory
@app.route('/<path:filename>')
def serve_html(filename):
return send_from_directory('.', filename)
@app.after_request
def apply_headers(response):
response.headers["Cross-Origin-Opener-Policy"] = "same-origin-allow-popups"
return response
@app.route('/')
def index():
css_files = {
'all_css': url_for('static', filename='all.css'),
'font_css': url_for('static', filename='css.css?family=Open+Sans:400,300,600,700'),
'bundle_css': url_for('static', filename='bundle.css'),
'style_css': url_for('static', filename='style.css'),
'phb_style_css': url_for('static', filename='5ePHBstyle.css'),
'store_ui_css': url_for('static', filename='storeUI.css')
}
return render_template('storeUI.html', css_files=css_files)
CORS(app)# Route to handle the incoming POST request with user description
@app.route('/process-description', methods=['POST'])
def process_description():
data = request.json # Get the JSON data from the request
user_input = data.get('user_input', '') # Extract the 'user_input' field
# Print the received input to the console
print(f"Received user input: {user_input}")
# Call the LLM with the user input and return the result
llm_output = sh.call_llm_and_cleanup(user_input)
processed_blocks = block_builder.build_blocks(llm_output, block_builder.block_id)
return jsonify({'html_blocks': processed_blocks}) # Return the LLM output as JSON
@app.route('/generate-image', methods=['POST'])
def generate_image():
data = request.get_json()
image_subject = data.get('store_name')
sd_prompt = data.get('sd_prompt')
image_subject_name = data.get('store_front_sd_prompt')
if not sd_prompt:
return jsonify({'error': 'Missing sd_prompt'}), 400
image_subject = data.get('image_subject')
if not sd_prompt:
return jsonify({'error': 'Missing sd_prompt'}), 400
try:
image_url = sd.preview_and_generate_image(image_subject,image_subject_name, sd_prompt)
return jsonify({'image_url': image_url})
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860, debug=True) # Run the app on localhost, port 7860
|