File size: 2,128 Bytes
2137684
 
 
 
 
 
 
 
 
 
 
8951018
 
 
2137684
8951018
2137684
b2a6cfa
2137684
0a36afb
 
 
 
 
2137684
 
0a36afb
4203ba3
0a36afb
 
 
2137684
 
0a36afb
 
 
 
567194a
2137684
4203ba3
2137684
567194a
2137684
 
 
 
 
 
 
 
 
fa394be
2137684
 
 
 
 
 
 
 
 
 
c8ceda2
a84f943
fec3b39
2137684
67c10d2
567194a
2137684
 
 
 
c8ceda2
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
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)

def get_client_ip():
    return request.headers.get(os.getenv('head'), get_remote_address())

limiter = Limiter(
    key_func=get_client_ip,
    app=app,
    default_limits=["8 per minute"]
)


users = 0
userslist = []

@app.route("/")
def index():
    global users 
    global userslist
    if(request.remote_addr not in userslist):
        userslist.append(request.remote_addr)
    users = len(userslist)
    return render_template('models.html')

    
@app.route("/users")
def users():
    return {"total users : " : users}

@app.route('/gen', methods=['POST'])
@limiter.limit("8 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-server2.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)