xyplon
Update app.py
85f1ea1 verified
raw
history blame
1.76 kB
from flask import Flask, render_template,request,jsonify,Response
import os
import json
from flask_cors import CORS
import time
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
import requests
app = Flask(__name__)
CORS(app)
limiter = Limiter(
key_func=get_remote_address,
app=app,
default_limits=["8 per minute"]
)
@app.route("/")
def index():
return render_template('models.html')
@app.route('/gen', methods=['POST'])
@limiter.limit("4 per minute")
def Hf():
prompt = request.json.get('prompt', '')
negative = request.json.get('negative', '')
steps = request.json.get('steps', 20)
width = request.json.get('width',1024)
height = request.json.get('height',1024)
scale = request.json.get('scale',7)
model = request.json.get('model','sd3')
style = request.json.get('style', 'Cinematic')
def Gen(prompt,negative,steps,width,height,scale,style,model):
req = requests.post('https://xyplon-servers.hf.space/hf/img/gen',headers={
'Authorization' : os.getenv('auth')
},json={
'prompt': prompt,
'negative': negative,
'steps': steps,
'width': width,
'height': height,
'scale': scale,
'model' : model,
'style': style
}, stream=True)
if(req.status_code!=200):
return "an error occurred! ", 500
for chunk in req.iter_lines():
yield f'{chunk.decode()}\n'
return Response(Gen(prompt=prompt,negative=negative,steps=steps,width=width,height=height,scale=scale,style=style,model=model), mimetype="text/event-stream")
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=7860, threaded=True)